Toaletten Buddy (10 / 12 steg)
Steg 10: programvara
Huvudloop
huvudprogrammet går genom denna kod, kontroll av en anledning att spela en stickprovskontroll.
Repeat
seatstatus := seatposition
lightstatus := checklight
IF (lightstatus == 1 AND seatstatus == 1)
playaudio(string("cover.wav"))
IF (lightstatus == 0 AND seatstatus == 1)
playaudio(string("seat.wav"))
IF (lightstatus == 3 AND seatstatus == 0)
playaudio(string("light.wav"))
Först körs metoden seatposition och lagrar det värde som returneras i den rörliga seatstatus. Det gör sedan samma sak med checklight, lagra det returnerade värdet i lightstatus.
Om lightstatus == 1 och seatstatus == 1, sätet är upp och ljuset är på. Toaletten kompis går framåt och spelar cover.wav. Om ljuset är avstängd och sätet är upp, spelas seat.wav.
Om lightstatus == 3, som betyder ljus tidsgränsen har uppnåtts. Det spelar sedan filen light.wav.
checklight
Den här metoden kontrollerar om badrum ljus är på. Objektet rctime (del av Propeller verktyg nedladdning) används för att utföra som. Det laddar upp kondensatorn ansluten till fotomotstånd och räknar hur länge det tar för att urladdning med en enda rad;
RC.RCTIME(phresistor,1,
Variabeln RCValue lagrar ansvarsfrihet tiden. Om det är större än den fastställts, det betyder inte så mycket ljus slår fotomotstånd, och vi återvänder 0. Om mer ljus slår det, vi öka ljus timern och återvända 1, tills vi når gränsen på light timer.
seatposition
Vi kontrollerar status för sätet med denna metod. IR-objekt används för att åstadkomma detta, som är också en del av Propeller verktyg nedladdning. Först vi måste berätta den IR-metoden vilka stift att IR-LED och mottagaren är ansluten till - vi gör detta i början av programmet med;
ir.init(IRAnode, IRCathode, IRSensor)
Sedan, när vi kallar ir.distance, returneras det uppmätta avståndet till ett objekt framför sensorn.
playaudio
Denna metod faktiskt hand tar om ljuduppspelning. Det är en förenklad version av rayman's wav spelare. Först, det öppnar filen vi begärt. Sedan läser rubriken om wav-fil är 44khz eller 48khz. Den startar då wav spelare i en andra kärna. Vår första core fyller sedan audio bufferten för andra kärnan.
Viktigt att komma ihåg är denna spelare kommer bara uppspelning 16-bitars stereo wavs. Rubrikerna på wav-fil måste också vara tom så att spelaren kan hitta samplingsfrekvens.