COMUNICACION ARDUINO PYTHON en Raspberry

COMUNICACION ARDUINO PYTHON

Hola es mi primer post

Si talvez existe un foro con esta pregunta agradeceria agregar los links, sinembargo no he encontrado lo que estoy buscando, espero me puedan ayudar.

La pregunta es la siguiente.

Estoy intentando realizar un proyecto de un robot con vision artificial, pero que el actuador sea ARDUINO, para esto estoy utilizando un Raspberry y Python.

El problema que tengo es el siguiente, necesito enviar una señal la cual me indique que el robot haya avanzado, lo cual lo hace el Arduino, para que Python haga un reconocimiento con OpenCV de imagenes.

Arduino - mueve motores
Python - procesa de imagenes

Arduino recibe señal de Python
Python recibe señal desde Arduino

Me gustaria que me puedan ayudar, recordando que todo lo estoy haciendo con un Raspberry.

Muchas Gracias.

Simple. Define tu protocolo de comandos para que Raspberry lo entienda y listo.
De todas formas no entiendo algo que me parece esta mal en tu lógica.

Esta claro que Raspberry y Python trabajando con OpenCV manejan la imagen.
Ahora si Raspberry le dice muevete para aca o para alla al arduino, que señal esperas que de Arduino?
No tiene sensores, al menos hasta donde te has explicado.

Arduino no te va a responder, "1000 pasos derecha terminado" como respuesta al comando "Derecha 1000"
Que sentido tiene, o si tiene sentido, lo haces por puerto serie del arduino, conectado al Raspberry diciendo, o repetiendo el comando con un CUMPLIDO u otra comando que le indique que fue realizada. la orden.

Yo, a lo que no acabo de ver el sentido es al uso de arduino, pudiendo usar el gpio de raspberry...

ahh bueno pero tu lo planteas asi. Yo haria todo con el Raspberry como bien dices. Para que usar arduino?

Buenas a todos:

Estaba revisando este foro, y he visto este post. En primer lugar, como bien decís se puede usar el GPIO de la raspberry Pi. SIn embargo, siempre puedes conectar el arduino para que haga de actuador puedes hacerlo a través del mismo USB(si no quieres usar una shield especifica) usando la librería de python pyserial.

Puedes ver un pequeño artículo que hice con la comunicación raspberry - Arduino:

Espero que os sea de ayuda.

Un saludo.

Hola muy buenos dias, en primer lugar muchas gracias a todos por su respuesta.

En relacion a los sensores, si, los estoy utilizando y obviamente recivo las señales de estos en el arduino, a lo que me referia es que necesito una señal para realizar una maquina de estados, es decir, si el robot avanza hasta cierto punto, se envia una señal desde arduino al raspberry para comunicar el fin de un estado e inicio de otro. Es esta la razon de mi pregunta, esta comunicacion es la que se me complica, ya que a priori, es todavia un poco lento, 1.2 segundos aproximadamente. O que estoy haciendo mal?

Por otro lado, en relacion a la utilización de arduino, es por la cantidad de actuadores y sensores que estoy utlizando, mi idea es no sobrecargar al raspberry, ya que solo en sensores necesito aproximadamente 12 entradas, luego si añadimos los motores, pues me parece que lo mejor es no sobrecargar al raspberry, y que este solo se ocupe del procesamiento de imagenes.

Muchas gracias de nuevo.

Imposible que demore 1.2 segundos. La conexión que usas entre Arduino y RaspBerry es la del link que pusiste? Miro y te amplio la respuesta.

Conexión via USB y dices que tarda 1.2 segundos?

Lo que veo en la página que sugeriste luce muy fácil y no tiene elementos que demoren la comunicación. Habrá que ver que puede ser.
Yo tengo un BB asi queno puedo reproducir ese problema.

Hola surbyte

En la programación, si coloco menos de 1.2 segundos no realiza los cambios de estado, lo estoy resolviendo por programación de otra manera, realizando clases y obviamente programación orientada a objetos, para agilitar el procesamiento, y me esta funcionando bien, sin embargo, si tienes alguna otra solución que me podria ayudar, te agradeceria.

Muchas Gracias

Santiago tu me afirmas (y no tengo porque desconfiar) que ese demo que esta por ahi, que comunica el Raspberry con el Arduino demora 1.2 segundos?
Algo muy raro esta ocurriendo ahi?

Si al arduino le envias datos via Serial o el los pone en el Serial son inmediatos. De modo que algo ocurre.