Sorry…

..it was him or my CPU

Por el momento no puedo dejar que virtuoso-t siga consumiendo tantos recursos (la temperatura de los núcleos del cpu había llegado a 80ºC cuando lo cerré) para tener una búsqueda semántica que no uso muy seguido que digamos…

Leer y enviar datos a una placa Arduino

Ya hace un tiempo comente que me había comprado una Arduino UNO, la verdad que son una genialidad, muy buenas, y el hecho es que hace un tiempo que estoy viendo cosas en la placa junto a un LCD 16×2, y envió cadenas desde la computadora hacia la placa para que esta la muestre en el display, el hecho es que cada ves que quería enviar algo debía iniciar el IDE de arduino para abrir el puerto serial, algo realmente molesto. Una búsqueda en Google me envió a este post, donde suben un programa hecho en C que sirve para comunicarnos con la placa (si bien las placas se conectan vía USB, el integrado encargado de esa conexión en la placa hace que esta aparezca como un dispositivo serial (segundo párrafo de esta pagina)).

Para usar el programa es muy sencillo. Primero lo compilamos:

gcc arduino-serial.c -o arduino-serial

Luego, para usarlo tenemos varias opciones, las pueden ver haciendo:

./arduino-serial --help

Por ejemplo, para enviar una cadena seria:

./arduino-serial --port=/dev/ttyACM0 -b 9600 -d 2000 --send="Hola loco" -d 2000

Habrán notado que puse dos veces -d 2000, esto es porque las arduino uno cuando abrimos o cerramos el puerto se auto reinician, por lo que es necesario, una ves abierto el puerto esperar un poco, luego enviamos/recibimos la info y volvemos a esperar, porque recuerden que al reiniciar la placa el programa se reinicia, volviendo todo a setup() y luego a loop(). Este detalle de esperar me estuvo volviendo loco a lo largo de una semana, hasta que me di cuenta de que se reseteaba.