Control de un gadget con Arduino con Qt y C++

Hola amigos, antes de nada decir que he abierto este mismo hilo en el foro internacional, pero logicamente si consigo respuesta en castellano mucho mejor :D. Tengo prácticamente acabado, salvo algunos detallesun robot en Arduino con un panel de control físico, basicamente 3 botones y una resistenciavariable, algo bastante sencillo. Ahora me gustaría hacer esto mismo de forma virtual con Qt y C++, pero la única referencia que tengo así es esta Control Your Arduino From Your PC With the Qt Gui : 5 Steps - Instructables, de la cual no puedo obtener el código para estudiarla. Así que os pido ayuda a ver si conocéis un proyecto parecido, los únicos que encuentro están en Python y Qt, pero no entiendo nada de Python, solo algo de C y por ello quiero realizarlo en C++ (además de por la portabilidad). Bueno, como véis estoy aún en el principio de todo esto, y mi primera duda es: ¿Qué librería uso para el control por puerto serie, Firmata o qExtSerialPort? Cualquier consejo o sugerencia es buena.

Muchas gracias de antemano.

Te sugiero Lazarus, es objeto-pascal todo visualcon la potencia de c++. Hay una variante llamada codetyphon que trae preinstalado miles de componentes (controles)

¿Tiene que ser necesariamente QT y C++?

Hola,

Pues empieza por la comunicación serial. Aquí unos enlaces si googleas encuentras muchos más:
http://playground.arduino.cc/Interfacing/CPPWindows

Saludos.

Lo siento, pero por el tema de portabilidad y rendimiento quiero que sea QT y C++. Y y lo de Visual Studio mire algo también pero no quiero porque es necesario que se utilice únicamente software libre. Y como dije lo único que he visto fue el enlace que puse anteriormente, pero no vienen ni códigos ni manuales, solo que se puede hacer.

Creo que cogeré los enlaces de Luis_AM3C y intentaré portarlo a QT, haber que puedo hacer, buscaré gente por el foro que hayam hecho algo parecido.

Lazarus es tan potente como c++ y no tienes que hacer binding entre código y GUI. Y portabilidad?? Pufff hay una extensión que tu código lo compila para android, de base hace win, máx, Linux con gtk, qt u otros, Solaris, ARM, y más. Acceso a usb, serial, y más
Dale un vistazo y no te arrepentirás.

Ok, mientras no vea algo que me convenza en Qt y C++, le daré una oportunidad a Lazarus a ver como se porta, pero mi idea es crear una herramienta que después se pueda calibrar a través del programa y cargar ficheros de configuración etc... Y por supuesto que sea compatible para Windows, Linux y Mac. Veré si Lazarus satisface todas mis necesidades, aunque por lo pronto tiene mucha más documentación de la que he encontrado para Qt y C++. Iré experimentando y comunicando mis resultados.

PD: Una pregunta rápida y tonta, lo primero decir que no tengo ni papa de Pascal, iré viendo como es. Y la pregunta ¿Lazarus es un lenguaje que proviene del Pascal o un entorno de desarrollo para Pascal como fue en su día Delphi? Y por último, ¿es todo software libre?

Mira, no se que quieres hacer, pero de pronto te cuento que existen programas hechos en lazarus desde sistemas contables hasta un analizador de imagenes doppler, y todo lo que se te ocurra o mejor dicho sepas programar.
Porque no explicas tu idea y vemos que sale.
Te sugiero el foro o mejor la lista de correo de lazarus en español: http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es.do
Te reclaco la que veas Codetyphon, es lazarus desde repositorios svn, con cientos de controles preinstalados. Sobre todo para controles visuales y de acceso a bases de datos.
Si te interesa te ayudo

Hola,

Aqui hay algo mas RS-232 for Linux and Windows

Pero si pones en google Serial Port QT C++ sale este video 05.01 Instalar Modulo Serial Port - Qt C++ - YouTube, alli dice Full Suport para WIndows y Linux.

Saludos.

Interesante el video, llevo viéndolo un rato, y más tarde lo veré entero con más detenimiento. El caso es que de serial port en QT si que he encontrado bastante documentación mi duda es por ejemplo, si tengo como INPUT el pin 2 de mi placa Arduino, como hago que se active o se desactive a través del puerto serie. Concretando más, en mi placa tengo un interrutor físico en el pin2 como entrada, y quiero que ese interruptor esté también de forma virtual en el programa QT con C++ o bien con Lazarus, que le he estado echando un vistazo y parece bastante interesante también. ¿Alguien sabe como se hace esto? Aunque sea en un programa modo consola escrito en C, por lo menos para ir haciéndome una idea con un ejemplo comentado para Dummys.

PD: Me he dado cuenta que este post debería estar más bien en la sección de Software, no? Si el moderador pudiese ponerlo allí, quizás haya más gente que lo vea.

Muchas gracias por toda la documentación que me estáis enviando chicos, no estoy teniendo tiempo ni para digerirla :wink:

Hola,

Lo que necesitas es crear una interfaz con el arduino, supongo defines unos comandos que envias por serial y que el arduino al recibirlos ejecuta una acción o envía una respuesta.

Estoy viendo que hay muchas interfaces, echate un ojo aquí antes de continuar Arduino Playground - InterfacingWithSoftware

Si tu fuerte es QT pues sigue adelante y luego que lo termines puedes hacer que tu código aparezca allí listado.

Si por el contrario quieres hacer unas pruebas rapidas yo te diria que intentes con Processing Arduino Playground - HomePage, que es libre multiplataforma y hay bastante ejemplos.

Saludos.