Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
He estado mirando la comunicacion serie de los AVR por la USART y he encontrado bastante documentacion del lado de los micros, pero para mi sorpresa, casi no puedo encontrar informacion del otro lado, el ordenador.
Conoceis algun sitio, libro, tutorial o manual para aprender esa parte? es decir, que se necesita para hacer un programa que controle un AVR desde el ordenador?
Anh bueno claro, yo pensaba que lo que pretendía era crear una aplicación del lado del PC que hablase con el puerto serie. Sino en linux puedes usar minicom (si lo que quieres es solo hablar con el puerto serie de forma directa). También te puedes bajar el código fuente de esta aplicación y ver cómo funciona.
No obstante, podrías recurrir a cosas multiplataforma, como python. Aquí te pongo la web de la librería pySerial: http://pyserial.wiki.sourceforge.net/pySerial " onclick="window.open(this.href);return false;
Ahí viene todo explicado y algunos ejemplos.
Un saludo.
Gracias por la cantidad de respuestas jeje
La idea es la siguiente:
Todo esta relacionado con el bioloid del que hable en otro hilo. Su avr trae dos USART, una de ellas se utiliza para el bus que controla los servos y la otra es para la conexion con el ordenador. La idea es conectar en el futuro una CMU-Cam a la USART que se usa para el ordenador. El atmega128 se encargara del control fisico del robot y la CMU-Cam hara las veces de cerebro durante los combates.
Para desarrollar todo esto habia pensado programar por un lado la CMU,y por otro el avr del bioloid. Durante el proceso de desarrollo pretendo utilizar el ordenador como si fuese la camara, conectada a la USART, enviando la informacion que se enviaria durante un combate real.
Por tanto la intencion es hacer un programa en el ordenador con el que pueda enviar pequeños paquetes de informacion a traves del puerto serie igual que lo hará la camara en su momento.
El problema es que es la primera vez que me meto en el tema de las comunicaciones entre micros o micro-PC y estoy un poco perdido.
Concretamente ahora me estoy leyendo la parte del datasheet del atmega sobre el uso de las USARTs
Bueno, el datasheet te podrá ayudar a la hora de programar el Bioloid, pero no te va a ayudar con la parte del PC. Yo optaría por hacer un programa en python o java, ya que así te servirá para cualquier plataforma. Si vas a restringirte a Windows, entonces lo que te han comentado de C# Express creo que es muy fácil de usar.
No tengo interes especial en restringirme a windows, y de hecho python suena a opcion muy interesante.
Hace tiempo aprendi algo de python pero nunca le habia dado ningun uso util, quiza sea el momento.
Algun consejo sobre comunicaciones serie? algo que evitar, etc...?
Un detalle que a muchos se les pasa por alto a la hora de hacer sus comunicaciones por primera vez: la sincronización de mensajes.
Transmitir siempre un byte de datos con el mismo valor es sencillo, pero mandar un paquete no. Hace falta saber por donde empieza y por donde acaba dicho paquete.
Para simplificar, y de paso hacer conexión con múltiples nodos, yo uso el ModBus, que explica cómo hacer esto, pero para tu uso particular igual te conviene otra cosa. Hay múltiples formas de solucionar este detalle, empezando por el uso del bit de paridad para indicar inicio de paquete, por ejemplo. Otro sistema es usar 'delimitadores' de inicio y final, pero eso significa que estos valores no se pueden repetir durante el resto del mensaje.
Las comunicaciones serie desde el ATmega son muy sencillas, una vez tienes el paquete de datos que enviar, igual que ensamblar el paquete recibido. Procesar el protocolo ya no es tan sencillo.