Paso 4: Software
El software tiene dos partes principales: el código que se ejecuta en Arduino para trabajar el hardware y un servidor a decirle a Arduino qué hacer.
Código de Arduino
LittleBits Arduino no tiene todavía mucha documentación. Lo que necesita saber:
- su hardware es compatible, de Arduino Leonardo eligió que escriba en el IDE de Arduino
- para energía, sólo tiene que conectar el módulo a cualquiera de las clavijas de entrada (lado izquierdo)
El código de Arduino es Github. Sus partes son:
Pernos hechos salir:
Configurar los pines utilizados para las banderas de ida y vuelta y la meta! signo. El módulo Arduino sólo tiene fácil acceso a la salida de D1, D5 y D9 pines. D5 y D9 deben cambiarse a modo de PWM. En el código en el momento el equipo local (team0) es pin D9, el equipo visitante es D5 y el símbolo es D1.
Escucha en el puerto serie:
Escucha en el puerto serie "H", "A" o "G":
- H significa Inicio equipo puntuación: ondea la bandera y parpadea el signo
- A significa puntaje de equipo visitante: ondea la bandera y parpadea el signo
- G significa juego evento (comienzo o fin del juego): agitar juntos dos banderas
La última parte fue complicada, que los servos tienden a bloquear hasta que me he puesto un retraso de 25 ms entre los comandos de los dos servos. Esta solución fue confirmada por otros maestros de servo le pregunté más tarde, por lo que se trata de un buen conocimiento para proyectos futuros. Afortunadamente no pueden realmente notar el efecto de este retraso en el comportamiento, así que todo bien. El servo también necesita al menos unos 300ms a onda correctamente. Menos de puede se comportan raro, mucho más de lo hace que sea mucho menos ondulado.
El código es muy hacky, fue escrito en un tiempo corto, por lo que probablemente podría hacerse mucho mejor. Su kilometraje puede variar.
Código de servidor
El servidor tira la información del juego y manda el Arduino lo que debe hacer. Es un simple servidor Node.js .
Estoy usando API de Copa de mundo no oficial de Kimonolabs este tiempo.
- Regístrate en Kimonolabs para una API
- Encontrar el juego de su interés en el explorador (coincide con la ficha, mejor manera es tal vez por la hora del juego), partido "id de la copia".
- Compruebe hacia fuera el littleGoal código en Github, instalar las dependencias ("npm install" en el directorio del proyecto)
- copiar "config.json.example" a "config.json" dentro del directorio, agregue su API clave, actualiza el id del juego y su puerto de Arduino
Yo he probado en Linux, debe ser el mismo en todas partes donde se puede ejecutar Node.js.