Arduino - Qt

Electrónica: 
Informática: 

Pues hacía tiempo que había oído hablar de Arduino pero no le había hecho mucho caso. La cosa es que como todo el mundo se ha vuelto loco con la Raspberry Pi y los plazos de entrega son -o eran- inaceptables, decidí comprarme una placa de Arduino. Empecé a experimentar y me gustó mucho, porque es todo muy sencillo -aunque hay que decir que la gente de Atmel se portan muy bien con Linux y su último IDE es genial-. Con esta placa de desarrollo se pueden hacer multitud de cosas interesantes y pensé que al conectarla con un ordenador la cosa se hacía más apetecible. Como siempre, empecé con Qt y sinceramente... aunque no tienen una clase para los puertos serie -esto cambia con la versión 5- es super fácil y está super bien integrado en Linux. Simplemente tenemos que utilizar un QSocketNotifier y reescribir 2 cosas. Hasta aquí todo bien... pero se me rompió el disco duro... y sólo me queda uno con Windows y las cosas cambian. La clase QSocketNotifier ya no nos avisa si hay eventos en el puerto serie... y tenemos que utilizar las cosas de Windows... un rollo, pero por lo menos he aprendido. Al final, si haces que la comunicación sea asíncrona -overlapped dicen ellos- la cosa no es tan mala. De hecho, tengo un hilo que escucha los eventos del puerto serie y no lo tengo tan bien integrado como con Linux, pero he visto que puedo utilizar Qt para que escuche eventos de Windows -después sólo tengo que filtrar los que sean del puerto serie-, así que seguramente se pueda hacer una integración casi tan simple como en Linux. Si todo esto te parece un rollo -y eso que no puesto nada sobre el porqué de una aplicación asíncrona por eventos- puedes utilizar cosas como: QextSerialPort o esperar a la versión Qt5 que ya viene con QSerialPort -para más información sobre el puerto serie visita Serial Howto, Serial programming y Serial Communications in Windows-. Bueno, ya simplemente poner el vídeo en el que muestro mi supersimple aplicación, que en realidad es sólo la unión de dos ejemplos: -Dimmer -Graph

Social_buttons: