Paso 10: Software
Bucle principal
el programa principal se ejecuta a través de este código, verificar una razón jugar una muestra;
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"))
En primer lugar, el método seatposition se ejecuta y almacena el valor devuelto en la variable seatstatus. Luego hace lo mismo con checklight, almacenando el valor devuelto en lightstatus.
Si lightstatus == 1 y seatstatus == 1, el asiento es para arriba y la luz está encendida. Compañero de aseo sigue adelante y juega cover.wav. Si la luz está apagada y el asiento está para arriba, se juega seat.wav.
Si lightstatus == 3, que significa el tiempo de espera de luz ha sido alcanzado. A continuación reproduce el archivo de light.wav.
checklight
Este método comprueba si la luz del baño está encendida. Utiliza el objeto rctime (parte de la descarga de la herramienta de hélice) para lograrlo. Cargos hasta el condensador conectado a la fotorresistencia y cuenta el tiempo que tarda la descarga con una sola línea;
RC.RCTIME(phresistor,1,
La variable RCValue guarda el tiempo de descarga. Si es mayor que el límite que establece, significa que no mucho la luz está alcanzando el fotoresistor, y volvemos a 0. Si luz más golpea, incrementa el contador de luz y 1, hasta alcanzar el límite de temporizador de luz.
seatposition
Comprobamos el estado del asiento con este método. Utilizamos ir objeto para lograr esto, que es también parte de la descarga de la herramienta de la hélice. En primer lugar, tenemos al método de ir qué pines el IR LED y el receptor están conectados a - hacemos esto al principio del programa
ir.init(IRAnode, IRCathode, IRSensor)
Luego, cuando llamamos a ir.distance, devuelve la distancia medida de un objeto delante del sensor.
playaudio
Este método realmente se encarga de la reproducción de audio. Es una versión simplificada del reproductor de wav de rayman. En primer lugar, abre el archivo que solicitó. Entonces lee el encabezado para ver si el archivo wav es de 44khz o 48khz. Luego se inicia el reproductor de wav en un segundo núcleo. Nuestro primer núcleo entonces llena el búfer de audio para la segunda base.
Lo importante a tener en cuenta es este reproductor sólo reproducción 16-bit estéreo wav. También, los encabezados en el archivo de wav necesitan estar vacío para que el jugador puede encontrar la frecuencia de muestreo.