Go Down

Topic: Algún Guru del linux? (Read 5020 times) previous topic - next topic

Igor R

Hola,

Estoy jugando con un router Linksys y el dd-wrt. Le he sacado el puerto serie del micro del router y se lo he conectado al Arduino. (Hay mucha info por la red).

Me conecto a la consola del router por telnet mediante WIFI, y para enviar algo por puerto serie, hago:
echo S1F > /dev/cua/1
ó
echo S0F > /dev/cua/1

Mi Arduino interpreta estos comandos como apaga(S0F) ó enciende(S1F) un led.
Hasta aquí, todo bien. Me funciona y puedo encender/apagar mi led conectado al Arduino via WIFI.

¿Como puedo hacer lo contrario? Es decir, como puedo ver lo que se recibe por el puerto serie del router al shell.
(No tengo conocimientos acerca de linux)


Gracias!!   ;)



Igor R.

Pofenas

Prueba con:

cat  /dev/cua1

con esto deberias cver la salida por la consola

Igor R

#2
Oct 16, 2009, 08:46 pm Last Edit: Oct 16, 2009, 09:07 pm by igorreal Reason: 1
Gracias Pofenas...

Asi debe ser.... Acabo de encontrar un link que dice eso mismo...
http://www.herbert-dingfelder.de/WRT54GL_add_on/WRT54GL_add_on.html

cat < /dev/cua/1

Voy a probarlo!!!!!


;)



[edit]
Lo he probado... y funciona!!! Pero tengo que abrir dos conexiones (tal y como dice el documento del link)  :D  :D  :D  :D
[/edit]



Igor R.



lsdios

Hola, este es mi primer post aki, asi ke tambien sera el de presentacion, asi pues,
¡Hola a to el mundo!! y siguiendo con el tema que nos atañe, decirte que estoy haciendo mas o menos lo mismo, pero en lugar de un Linksys con una fonera, que a efectos es lo mismo. En mi caso en lugar de DD-WRT lo tengo con OpenWRT, por lo tanto deberia funcionar igual.
Volviendo al tema, comentarte, que para comunicar arduino >> fonera, lo que hago es ejecutar comandos directamenete desde el serial, asi por ejemeplo puedo ejecutar scripts, para que la fonera haga lo que kiero, o por ejemplo para guardar datos, como  por ejemplo la temperatura medida con un DS18s20, y lo guarde en un fichero en la fonera, con registro de fecha y hora.
Asi que depende de lo que quieras hacer es mas comodo hacerlo asi que hacer que el router este a la espera de ordendes con cat < /dev/cua/1

Salu2

Igor R

Hola Isdios,

Exactamente no es quedarse a la espera con la orden cat, es recibir dato enviado desde Arduino a la consola (por ejemplo, para confirmar que la instrucción que le has mandando se está ejecutando... es decir, tener feedback).

Esta claro que lo de poder utilizar la potencia del router ejecutando scripts es buenisimo..... Como no controlo mucho de linux, estoy en ello... ya nos contarás tus experiencias!!!   ;)

Bienvenido!!


Saludos


Igor R.



Igor R

Por cierto.... algún link para aprender scripting, comandos del shell (VeryBusybox??), etc. ?


Gracias!!!


;)

TuTTe

Buenas a todos, yo también soy nuevo por aquí.
El caso es que yo también me puse manos a la obra con mi router (asus WL500gP) y OpenWRT.
La verdad es que funciona bastante bien aunque no he tenido tiempo para programar mucha cosa, los drivers son poca cosa así que no debería de dar problemas, en mi caso le he implementado una interfaz web con lighttpd para controlar el arduino, pero como ya os he dicho, no he tenido tiempo de trastear mucho más. En cuanto pueda iré poniendo cómo lo he montado en el router :)

Un saludo!

Eduardo_g

Igor, yo tengo un robot desarrollado con un Linksys y un arduino. La pega de la programación en script en OpenWrt o DD es que no es un sistema Linux completo. Como intérprete de comandos utiliza una aplicación (busybox) que emula un montón de comandos, con la intención de ahorrar espacio. El busybox en cuanto al bash, emula bastante fielmente las funciones más utilizadas, pero hace una interpretación particular en otras funciones, y hay otras que ni siquiera entiende.
Si conoces algo de programación, es muy sencillo programar en C para linksys. Si tienes otro sistema linux aparte, instalando un pequeño paquete podrás hacer compilación cruzada. En C luego ya es coser y cantar, abres el puerto, esperas recepción , interpretas lo recibido, ejecutas lo que sea, etc.

Igor R

Hola Eduardo,

¿Qué se ha de tener instalado para realizarlo en C? Lo digo para programar en C en linksys... aunque no quiero perder el dd-wrt, ya que me interesa el poder utilizar WDS y/ó repetidor universal con el entorno web que tiene....


Gracias!!


;)

Eduardo_g

No se si me has entendido, me refiero a programar en C fuera del linksys, es decir, tener otro PC con linux (linux completo, no DD ni WRT), instalar un paquete de compilación cruzada, y generar la aplicación binaria para meter en el linksys. No pierdes absolutamente nada del linksys, sigue teniendo sus funciones 100%, simplemente lanzas una aplicación más generada por ti. Te busco la pagina donde descargué el paquete este, que hace ya bastante tiempo.

Igor R

ahhhhhhh!! No entendí bien.... No sé si necesito tanto....Me imagino que lo que quiero hacer, con scripting servirá... Bueno, si tienes info, por si acaso, nunca está mal tenerla a mano...

Y de scripting, algo de info???


Gracias!!

Eduardo_g

No encuentro de dónde me bajé el paquete, sigo buscando...
Mientras tanto, en cuanto a scripting, lo que más te interesa empollarte son lo que se conocen como "textutils", que son herramientas sencillas para manipular cadenas de texto.
Por ejemplo cat, tac, nl, tail, head, sort, split, wc, etc
También hay un par de aplicaciones más "gordas" que ahora mismo no recuerdo si vienen instaladas en DD o WRT, que son SED y AWK, la primera más sencilla que la segunda.
Estas últimas herramientas permiten operaciones sencillas, como buscar, reemplazar, ordenar, etc, pero también tienen un lenguaje interpretado específico para que puedas realizar un "script" dentro de la aplicación para procesar cadenas de textos. Especialmente AWK es MUY potente.
Dime en qué puedo ayudarte, llevo desde el 92 manejando Linux.

Eduardo_g

Ya lo he encontrado:
http://www.dd-wrt.com/phpBB2/viewtopic.php?p=261635&sid=f4057f23385fb3d28986ed6e4d035f8d

Basicamente es bajarte el paquete, descomprimirlo, cambiar el path para que al ejecutar el compilador lo encuentre en su ubicación, y finalmente, desde la carpeta donde está el .c a compilar, ejecutar:

mips-linux-uclibc-gcc ejemplo.c -o ejemplo

Esto te genera el binario ejemplo (mira con "file ejemplo", verás que no es i386 sino mips) que directamente puedes pasar a la SD del linksys y ejecutarlo.

En mi caso he seguido este metodo (extraído de otra página pero venía a decir más o menos lo mismo) y me ha funcionado perfectamente para compilar programas.
Suerte!

Go Up