Étape 10 : logiciel
Boucle principale
le programme principal s’exécute par le biais de ce code, recherchant une raison de jouer un échantillon ;
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"))
Tout d’abord, il exécute la méthode seatposition et stocke la valeur retournée dans la variable seatstatus. Puis il fait la même chose avec lampe on, stocker la valeur retournée dans lightstatus.
Si lightstatus == 1 et seatstatus == 1, le siège est en place et le voyant est allumé. Copain de toilette va de l’avant et joue cover.wav. Si le voyant est éteint et que le siège est en place, seat.wav est joué.
Si lightstatus == 3, qui signifie la lumière timeout a été atteint. Il joue ensuite le fichier light.wav.
lampe on
Cette méthode vérifie si la salle de bain est allumée. Il utilise l’objet rctime (partie de l’hélice outil de téléchargement) pour y parvenir. Il charge vers le haut le condensateur relié à la photorésistance et compte combien de temps il faut pour s’acquitter avec une seule ligne ;
RC.RCTIME(phresistor,1,
La variable RCValue stocke le temps de décharge. Si elle est supérieure à la limite, que nous avons mis, cela signifie que pas beaucoup de lumière frappe la photorésistance et nous renvoient 0. Si plus de lumière est frappant, nous incrémenter la minuterie lumineuse et retourner 1, jusqu'à arriver à la limite de minuterie lumineuse.
seatposition
Nous vérifions l’état du siège avec cette méthode. Nous utilisons l’objet ir pour accomplir ceci, qui fait également partie de l’hélice outil de téléchargement. Tout d’abord, nous devons dire la méthode ir quels broches de la LED IR et récepteur sont connectés à - nous faisons cela au début du programme
ir.init(IRAnode, IRCathode, IRSensor)
Ensuite, lorsque nous appelons ir.distance, il affiche la distance d’un objet devant le capteur.
playAudio
En fait, cette méthode prend soin de la lecture audio. C’est une version simplifiée du lecteur wav de rayman. Tout d’abord, il ouvre le fichier, que nous avons demandé. Puis, il lit l’en-tête pour vérifier si le fichier wav est 44khz ou 48khz. Ensuite, il démarre le lecteur wav dans un second noyau. Le coeur de notre premier remplit ensuite le tampon audio pour le second noyau.
La chose importante à garder à l’esprit est ce joueur sera seulement lecture 16-bit stéréo wavs. En outre, les en-têtes du fichier wav doivent être vides afin que le joueur peut trouver la fréquence d’échantillonnage.