Búsqueda personalizada

09 septiembre 2006

Conversación entre Arduino y Linksys

Mas proyectos en: http://eduardomarin.es/node/2

Al final Arduino y Linksys conversan.


La idea de este proyecto está, por un lado, en poder ampliar la limitada memoria de la que dispone Arduino, y, por otro, en poder acceder de forma remota a sus señales.
Para ello, necesitamos, como es lógico, la placa Arduino (en mi caso uso la versión USB), y un router Linksys WRT45GL, el cual está trabajando ahora mismo como punto de acceso libre a la red social FON.


Éste último necesita una pequeña modificación técnica, pues aunque viene de fábrica con la circuitería impresa para el puerto serie, éste no dispone del conector para cable plano. Por este motivo en primer lugar se lleva a cabo una identificación de los pines, y, una vez asegurados, empezamos a soldar el conector. Una vez soldado y montado el cable plano tan sólo nos queda establecer la conexión entre los dos.
















La idea de esta conexión se esboza en la siguiente imagen.

Por fortuna, gracias a que el router Linksys tiene un sistema embebido linux, podemos acceder a él de una forma muy flexible y potente. Ésto nos permite conectarnos en modo telnet desde un ordenador remoto, ya sea a través de su enlace wifi o a través de internet, si éste está conectado a la red (el router). Una vez conectados al router, podemos enviar datos a través del puerto serie hacia arduino, y, dependiendo de cómo hayamos programado éste, controlar todos aquellos dispositivos que nos podamos imaginar.
Es decir, la potencia de esta combinación es visible, tan sólo hay que echar imaginación, tiempo y ganas.

Veamos con más detalle en qué consiste este primer acceso remoto a arduino.


Vamos a controlar 10 deds conectados sobre las salidas digitales de la placa Arduino.
Para codificarlos, cada uno de ellos se encenderá o apagará según se envíe el dígito 0 - 9 desde el router. Es decir, a través del puerto serie, el router enviará el byte del carácter "0" y se iluminará o apagará el led nº 0, y así con todos los demás.
Ese caracter enviado, realmente se envía en primer lugar vía wifi desde el ordenador hasta el router, haciendo uso de la escritura sobre el fichero asociado al puerto serie.



Así, si mediante telnet escribimos: echo 0489 > /dev/cua/1 se iluminarán simultáneamente los leds 0, 4, 8, y 9; siendo el fichero /dev/cua/1 el equivalente al puerto serie COM2 del router (en otros modelos se identifican por ttyS0 y ttyS1). Cabe destacar que el proceso inverso, esto es, leer datos desde arduino, sería equivalente. Si Arduino envía datos al router (pongamos por ejemplo que hace lecturas periódicas de temperaturas, presion, etc), Linksys tan sólo tendría que adquirir estos datos viendo el contenido del archivo 1 (cat /dev/cua/1), e interpretarlo convenientemente.











Puede verse el resultado en el siguiente vídeo:




No hay que olvidar pasarse por cualquiera de estas direcciones, que contienen toda la información sobre Arduino y sobre FON.

3 comentarios:

Javi dijo...

Hola. Tu página está pero que muy bien, es una sorpresa encontrar esto y en español (uno ya ha perdido la fe).

Estoy construyendo un robot y pensaba controlarlo a distancia, bien con un mando de infrarrojos o con un modem radio. Pero viendo que el router Linksys cuesta casi lo mismo que un modem radio, tu artículo me ha abierto los ojos.

Por cierto, lo del mando a distancia ya lo he solucionado, por si te interesa puedes verlo en mi página web

Un saludo.

Alwar dijo...

Ten cuidado porque la version que venden ahora es la v8 y esa no lleva puerto serie con el que interactuar... puede que sea mejor que te compres un Xport (Puerto Ethernet para Arduino)

Josep dijo...

Hola.
Menudo maquinón electrónico estás hecho!
Yo quería hacerte unas preguntas, a ver si me puedes ayudar;
La conexión entre el router y el arduino, ¿es directa? quiero decir, conectas directamente el Rx, Tx, y el voltage del linksys a la placa arduino? o hay alguna resistencia de por medio??
Podrias poner algún esquema completo de como van todas las conexiones??
Disculpa mi ignorancia, pero estoy empezando en todo esto, y me pilla con muchas ganas pero muy novato.
Un saludo,
Suerte !!