Artículo |
Conexión Gambas-Arduino
|
Tengo un problema y querría saber si podríais ayudarme. El caso es que estoy haciendo pruebas con el serial para comunicar pc-arduino.
Tengo el ide de arduino con el serial monitor y gambas abiertos a la vez para comprobar que info envían y reciben(para aprender), y me he dado cuenta que si cierro el serial monitor...
dejan de comunicarse...
No entiendo nada... el motivo de ese comportamiento me está rompiendo la cabeza y me fustra. Pienso pasarme a python pero eso de no tener un ide gráfico al estilo gambas no me seduce.
Gracias por vuestra ayuda y saludos.
última edición por celtilander el Lunes, 31 Marzo 2014, 13:22; editado 1 vez
|
celtilander [ Lunes, 31 Marzo 2014, 10:06 ]
|
|
Comentarios |
Re: Conexión Gambas-Arduino
|
celtilander:
Vaya, no puedo ayudarte con el tema de Arduino.
En cuanto a lo que comentabas luego, tendrías que crear un tema nuevo.
Solo por no mezclar cosas. Me parece interesante pero se hablaría de otra cosa
y no tendría nada que ver con la pregunta original.
Saludos
última edición por Shell el Lunes, 31 Marzo 2014, 11:15; editado 1 vez
|
Shell [ Lunes, 31 Marzo 2014, 11:14 ]
|
|
Re: Conexión Gambas-Arduino
|
Hecho. Saludos.
|
celtilander [ Lunes, 31 Marzo 2014, 13:25 ]
|
|
Re: Conexión Gambas-Arduino
|
@celtilander
Supongo que estás comunicando el Arduino a través del interface USB/serie que trae. En realidad, si fuese un puerto serie rs-232 sólo tendría acceso exclusivo al puerto físico un sólo dispositivo, pero en USB lo desconozco. Como también desconozco si en Linux es posible monitorizar comunicaciones serie entre dos dispositivos desde un tercero...
Siento no ser de más ayuda, pero si nos ilustras con un par de esquemas lo que estás tratando de hacer, quizás pueda encontrar información al respecto en alguno de mis libros.
Saludos
|
jguardon [ Lunes, 31 Marzo 2014, 17:06 ]
|
|
Re: Conexión Gambas-Arduino
|
celtilander:
Citar: haciendo pruebas con el serial para comunicar pc-arduino.
Nos tienes que decir que modelo de arduino estas usando (porque algunos son realmente puerto series y los más modernos son ya USB reales)
Yo he usado dos modelos de arduino, que fisicamente se conectan con un cable USB al PC, pero el más antiguo era una emulacion del puerto serie-Usb, y el nuevo modelo de arduino era un USB real. A efectos prácticos, lo que cambia es el nombre del puerto:
- Arduino modelo Diecimila: /dev/ttyUSB0
- Arduino modelo UNO o Leonardo: /dev/ttyACM0
Citar: Tengo el ide de arduino con el serial monitor y gambas abiertos a la vez para comprobar que info envían y reciben(para aprender
Realmente solo con gambas, puedes ver (y representar), lo que recibes del arduino, y lo que envias desde gambas, también lo puedes escribir en un textbox, por ejemplo.,para ver que están haciendo... (ver ejemplo: http://jsbsan.blogspot.com.es/2011/...basarduino.html )
Citar: y me he dado cuenta que si cierro el serial monitor... dejan de comunicarse...
Supongo que eso pasa porque al cerrar la ventana del ide de arduino, estas cerrando el puerto (sin querer).
En las aplicaciones que he hecho, nunca he tenido necesidad de tener el IDE de Arduino (ni la ventana del puerto Serie) abierto para comunicarme entre los programas y el Arduino.
Lo que hacia era grabar el programa en el Arduino, salia del IDE de Arduino, y luego trabajaba con el programa hecho en Gambas.
Prueba el ejemplo que te he indicado, a ver si te da problemas, y nos cuentas.
Saludos
Julio
|
jsbsan [ Lunes, 31 Marzo 2014, 18:17 ]
|
|
Re: Conexión Gambas-Arduino
|
He hecho pruebas con el soft de JBSAN.
Resultado:
-Ejecuto la aplicación en gambas con el ide abierto de arduino, funciona. Si abro el serial monitor, el led, deja de encenderse/apagarse.
-Ejecuto la aplicación de gambas con el ide y el serial monitor, funciona aun cerrando el serial monitor, pero falla los mensajes, parte del mensaje "Arduino: He apagado el led 13" se visualiza en el serial monitor y otra parte en el TextArea.
Resumiendo... sigo "viendo" cosas muuuy raras que no se a que achacarlo... el caso es que me resulta muy inestable conectar gambas/arduino.
Uso 2 Arduinos UNO R3, uno original y el otro de Sparkfun. Ambos reaccionan igual. El S.O. Ubuntu 12.04 y gambas 3.5.2
Mi idea era hacerme un robot y mezclar:
Arduino (para recibir datos de sensores y enviar/recibir datos de los servos para pasarselos al pc)
Un Pc Radxa que haría de cerebro y con capacidad de hacer un programa (suficientemente complejo y grande para procesar los datos enviados por arduino de las lecturas de sensores y servos) que arduino no podría, y que este decida las ordenes a pasar al arduino y este a los servos. Para un segundo paso, dejo el tema de la cámara, del que ya os pregunté.
Creo que me he explicado...:(
Saludos.
|
celtilander [ Lunes, 31 Marzo 2014, 19:56 ]
|
|
Re: Conexión Gambas-Arduino
|
celtilander.
Haz la siguiente prueba:
-> Solo ejecuta el programa de gambas (sin ide de Arduino y sin serial monitor (que supongo que es el del Ide de Arduino))
Te debe de salir todo en el textArea...
Citar: "Un Pc Radxa "
No se si este mini pc tiene capacidad para ejecutar gambas...
|
jsbsan [ Lunes, 31 Marzo 2014, 20:07 ]
|
|
Re: Conexión Gambas-Arduino
|
En el caso que me ocupa me pasa esto:
-Si no abro el serialmonitor, no funciona.
-Si tengo abierto el serial monitor, funciona, pero recibo 2 mensajes de arduino
La aplicación trata de enviar desde un textbox un texto tipo "LETRA,NUMERO,NUMERO", arduino lo recibe y contesta con lo recibido que visualizo en un TextArea. El caso es que como he dicho en el primer caso... la aplicación de gambas no recibe nada y en el segundo recibe 2 mensajes, el primero con la info enviada y un segundo vacío.
Perdonar por la longitud del mensaje pero no se hacerlo de otra forma.
Código gambas
Código Arduino
const int lonbuffer=5; // longitud del buffer
char buffer[lonbuffer]; // buffer para almacenar el comando
int val1; // valor de primer parámetro
int val2; // valor de segundo parámetro
void setup()
{
Serial.begin(57600);
}
void loop()
{
if (Serial.available());
{
comunicar();
}
}
void comunicar()
{
if (Serial.available() > 0)
{
int lonComando;
lonComando=Serial.readBytesUntil(',', buffer, lonbuffer);
buffer[lonComando]='\0'; // Añadimos el terminador de cadena
// el buffer debe contener un comando.
val1=Serial.parseInt();
val2=Serial.parseInt();
// Recibimos los dos parámetros. Si el número de parámetros varía dependiendo del comando, deberemos primero ver qué comando es para saber qué y cuántos parámetros recibiremos
Serial.print("Comando recibido: ");
Serial.println(buffer);
Serial.print("Param1: ");
Serial.println(val1);
Serial.print("Param2: ");
Serial.println(val2);
}
}
|
celtilander [ Lunes, 31 Marzo 2014, 20:15 ]
|
|
Re: Conexión Gambas-Arduino
|
celtilander.
Haz la siguiente prueba:
-> Solo ejecuta el programa de gambas (sin ide de Arduino y sin serial monitor (que supongo que es el del Ide de Arduino))
Te debe de salir todo en el textArea...
Citar: "Un Pc Radxa "
No se si este mini pc tiene capacidad para ejecutar gambas...
Pues si. Solo abriendo gambas, responde correctamente.
Estupendo, pues entonces cerraré siempre el ide de arduino para realizar pruebas. Gracias.
Respecto a que el miniPc pueda ejecutar gambas... ni me lo había planteado... como tiene arranque dual Android/Ubuntu me imaginé que podría.
Es un Quad core ARM Cortex-A9 a 1.6Ghz con 2 Gb de RAM...
|
celtilander [ Lunes, 31 Marzo 2014, 20:22 ]
|
|
Re: Conexión Gambas-Arduino
|
celtilander:
Citar: Si no abro el serialmonitor, no funciona.
No, no es necesario abrir el serialmonitor....
If SportA.Status = Net.Active
Close SportA
Esta parte de tu codigo esta mal, le falta el "THEN"
Citar: Gambas....ni me lo había planteado... como tiene arranque dual Android/Ubuntu me imaginé que podría.
Es un Quad core ARM Cortex-A9 a 1.6Ghz con 2 Gb de RAM...
No se si hay version para ARM de gambas3, se que estan haciendo alguna version para raspberry pi (que tambien es ARM), pero no se si ya funciona bien.
|
jsbsan [ Lunes, 31 Marzo 2014, 20:34 ]
|
|
|
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
|
|