Bash, E / S serie y Arduino
Entonces, estoy un poco por encima de mi cabeza y siento que estoy muy cerca de una solución, pero todavía no está funcionando del todo. Aquí está mi situación:
Estoy trabajando con un microcontrolador Arduino e intento escribir dos scripts de Bash (ahora en ejecución en Mac OS X 10.6) que (a) imprimirán todos los datos en serie que salen de la unidad Arduino a la salida estándar, y (b) permitirme enviar datos en serie a la unidad Arduino. Estos scripts se llamarán utilizando la API NativeProcess de Adobe AIR para permitir una estrecha integración entre la unidad Arduino y un FlexAdobe AIR solicitud.
Mis dos guiones son muy simples:
Aquí está mi script WriteToSerial.sh:
echo $1 > $2
($ 1 es obviamente mi cadena, $ 2 es la ubicación del puerto serie - actualmente /dev/tty.usbserial-A800eIUj)
Y aquí está mi script ReadSerialOutput.sh:
tail -f $1
($ 1 es la ubicación de mi puerto serie, actualmente /dev/tty.usbserial-A800eIUj)
Cuando llamo a cualquiera de estos scripts (o incluso si solo escribo los comandos directamente en la consola Bash), mi computadora simplemente se cuelga: puedo escribir caracteres, pero no sucede nada hasta queCtrl + C fuera del proceso.
Sin embargo, si abro el IDE de Arduino y enciendo el Monitor de serie, entoncestail -f
el puerto, cierre el monitor en serie y luego haga eco "prueba"> puerto en serie, todo funciona de maravilla.
Esto me sugiere que abrir el Serial Monitor dentro del Arduino IDE es de alguna manera inicializar el puerto serial, lo que a su vez me permite seguirlo sin problemas. Esto a su vez me sugiere que simplemente no estoy ingresando algún tipo de comando de inicialización. Sin embargo, he estado buscando altas y bajas durante días y parece que no puedo encontrar nada que aborde este problema.
¿Cuál es la solución?