Paso 3: Arduino
La función setup() es llamada cuando se inicia un dibujo. Utiliza para inicializar variables, modos de pin y los motores. La función de configuración sólo se suben una vez, después de cada alimentación o reset de la placa Arduino.
Luego hay la función de loop que comienza, el inByte se define como una variable byte y asigna el valor 255 y comienza un tiempo bucle que se ejecutará hasta que obtiene un valor de cero (0) a través de Serial.read(). Esto es importante para saber que los tres valores siguientes que son los valores del comando. Si no usamos el cero se mezclan los comandos (ej. a veces el cambio de valores para un lugar así en lugar de mover motorX se movería Ciencias). En el tiempo bucle nos también llamada la readInteruptors() de la función para poder verificar si el carro ha alcanzado uno de los interruptores de límite y parar los motores. Cuando se pone a cero el tiempo de valor se sale del bucle y comienza leyendo los siguientes tres valores y cuando obtiene los valores de los tres llama a la función runMotors().
La función de runMotors() comprueba la dirección que cada motor debe funcionar y también si el carro se encuentra en sus límites. La única función restante es stateChange() que se activa cuando algo cae en el conducto. Envía un mensaje que ha ganado a la aplicación de aire que luego lo envía al usuario que se está reproduciendo.