LusoRobótica - Robótica em Português
Robótica => Projectos de robótica => Projectos em desenvolvimento => Tópico iniciado por: nunosilvarocha em 24 de Fevereiro de 2011, 20:11
-
Muitos de nos certamente já vimos projectos de electronica em que ligam o Arduino a um router.
Uma das soluções que já vi é a ligação de um Fonera ao Arduino.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ft1.gstatic.com%2Fimages%3Fq%3Dtbn%3AANd9GcSQTcy-4gV5r7tEnPwseWQ7inaqAQb7nZIQnMfVMVsOijboW7ksnw%26amp%3Bt%3D1&hash=c8a6cbd727080f0023a0ab80117e460d1453f4de)
Hoje, depois de algumas alterações na rede aqui em casa consegui libertar o meu Fonera2200 com dd-wrt.
Decidi fazer alguma pesquisa das ligações que tenho que fazer e como efectuar a comunicação.
A ligação é bastante simples pelo que já encontrei, o problema está mesmo em como efectuar a comunicação!!
Inicialmente a ideia será ligar o Arduino ao Fonera e efectuar ligação com o computador e transmitir alguns dados.
Mas precisava de ajuda para saber como enviar e receber dados.
-
Procura aqui no forum que há quem tem usado Arduino com um asus que tinha esse mesmo firmware!
-
Boas, eu tenho andado um bocado ocupado, mas eu tenho andado a fazer um tutorial de como fazer isso num Asus WL 520GU..
Basicamente ligas o arduino via tx, rx ao router e depois fazes um programa em python e colocas no router, para enviar dados via serial para o arduino...
depois comunicas do teu computador com o router via SSH e os dados que mandares por SSH irão ser transmitidos ao arduino..
Basicamente por alto é isto...eu tive o DD-WRT instalado no meu, mas preferi instalar o Open-WRT depois de ler muitos topicos pela net fora...
Aqui tens um bom forum com pessoas que ja fizeram o que estás a fazer com outros routers ou até com um igual ao teu, e questão de sorte...
http://mightyohm.com/forum/viewforum.php?f=1&sid=3a4422c4465ddda46a3949d2d0fa300b (http://mightyohm.com/forum/viewforum.php?f=1&sid=3a4422c4465ddda46a3949d2d0fa300b)
Cumprimentos..
-
Vamos iniciar-nos pela ligação.
Para não haver erros, nos pinos do Arduino tenho 5v nos pinos do Fonera tenho 3v3.
Deste modo tenho que arranjar maneira de 'converter' isto para que o Tx e Rx dois dois equipamentos se entendam.
Servirá este esquema para fazer a conversão?
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2F1.bp.blogspot.com%2F_R49Ujm5KVjw%2FSqVrQP4508I%2FAAAAAAAAAfY%2FO2VqT6JreLQ%2Fs1600%2Fcnv335.png&hash=4a33877dad59fc5bf8388e3acaa52672ec4ead1c)
Ou será que apenas um MAX3232 servirá?
-
Em termos de electrónica discreta ainda não percebo grande coisa, mas isso que ai tens deve funcionar, um Max232 converte os sinais para RS-232, ou seja +12 e -12v, logo queimas isso com um MAX.
Mas tens uma solução muito mais simples, no Tx do Arduino para o Rx da Fonera metes um divisor resistivo para que os 5v do Arduino passem a ser 3.3v ou 3.2v, e no Rx ligas directo porque o Atmega considera os 3.3v como um sinal High, logo funciona sem problemas, não esquecer é de partilhar as massas.
-
um simples divisor de tensão serve:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.makingthings.com%2Fdocumentation%2Fhow-to%2Fscale-a-5v-signal-to-3.3v%2Fresolveuid%2F45f4d88d0030e374d12c5123b3083c44%2Fimage_preview&hash=7b5d68df4b1c4cf384102c8db78e5952160d504c)
fonte (http://www.makingthings.com/documentation/how-to/scale-a-5v-signal-to-3.3v)
R1 - 10k
R2 - 15K
ou semelhante, tens aqui uma calculadora: http://www.raltron.com/cust/tools/voltage_divider.asp (http://www.raltron.com/cust/tools/voltage_divider.asp)
[edit] o senso foi mais rápido :P
-
Podes sempre fazer como eu fiz...
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg11.imageshack.us%2Fimg11%2F2496%2Fusbconnectedrouter1.jpg&hash=934af4f3650093a8f1cea892ed599e7da0dcdf0b)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg713.imageshack.us%2Fimg713%2F7263%2Fusbconnectedrouter2.jpg&hash=68aef78af3ff60b645e467c4c62428083f0c97e5)
Está aqui o link...
http://loja.lusorobotica.com/117-ftdi-basic-breakout-33v.html (http://loja.lusorobotica.com/117-ftdi-basic-breakout-33v.html)
Cumprimentos..
-
Mas ele pode querer meter OpenWrt no router e por exemplo controlar um robot com o router.
-
Mas ele pode querer meter OpenWrt no router e por exemplo controlar um robot com o router.
Isso é o que estou a fazer com o meu router tambem ;)
-
Entao, para que o FTDI?
-
talvez para flashar o router ???
-
Sim exactamente...foi para flashar com o open-wrt via tftp...
Cumprimentos..
-
Isto não está a ser muito fácil de perceber.
As ligações entre o Fonera e o Arduino já está mais que percebido.
O pior está mesmo agora em enviar dados para o fonera e este passa-los para o Arduino.
Ainda não percebi bem o que tenho que fazer.
Alguém me pode dar umas dicas ou então um tutorial?
Estou a usar DD-WRT no Fonera
-
Acredita que isto é um "brain crash test" lol...pelo menos para mim foi...
Eu com o dd-wrt não sei como funciona...
mas é o seguinte...
Tens que arranjar um package para o teu router que suporte programas em python...instalas o package ok?
Depois tens que ver se o router tem o wireless ligado?! deve ter com o dd-wrt....
De seguida fazes um programa na linguagem que quiseres que comunique via SSH com o router...ou seja conectas te ao router via wireless e depois mandas lhe comandos através de SSH...
Apos isto, já comunicas com o router via SSH...no programa em python fazes algo que escreva de retorno por exemplo "Hello World"...e tu mandas lhe um codigo via SSH e ja ves se o router está a responder...
Pronto tendo o router a comunicar com o PC, metade já esta...Agora basta fazeres as ligaçoes do router ao arduino e fazer um programa do lado do arduino que interprete os dados vindos do pc via SSH, que por sua vez vão ser comunicados para o arduino via o programa em python...
Dá para entender ou ta muito confuso?
Acho que é isto mais ou menos...
ve se isto ajuda, sei que o router e diferente, mas a ideia é a mesma...
http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/ (http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/)
Tens aqui uma lista de packages...e para teres uma ideia do que tens que procurar, julgo que ate deve ser o teu firmware kamikaze ne?..
http://mightyohm.com/files/kamikaze-2.4/packages/mipsel/ (http://mightyohm.com/files/kamikaze-2.4/packages/mipsel/)
Tens aqui outro exemplo ja com ligação ao arduino..
http://takenapart.com/?p=3 (http://takenapart.com/?p=3)
Espero ter ajudado...
Cumprimentos..
-
Pessoal, nem de propósito: http://lusorobotica.com/index.php?topic=3319 (http://lusorobotica.com/index.php?topic=3319)
-
obrigado zordlyon, hoje estive a tentar aprender a trabalhar com o putty e o fonera, não cheguei a grandes conclusões mas já deu para perceber algumas coisas. Vou ver o que me deixaste, mas acho que grande ajuda vai ser o post do microbyte.
Mas isso fica para amanha!!
-
Olá pessoal, eu tb comprei um fonera aqui há uns tempos e flashei-o com o open-WRT com a ideia de compilar codigo para ele para criar o cerebro para um robo.
Mas dps de começar a ver como as coisas funcionavam achei extremamente complico a compilação do código para dps correr no router, nao investi mto neste sentigo também, gostava de saber como é que voces estao a criar a aplicacao do lado do router que recebe por wireless e comunica por porta série para controlar o router.
Cumprimentos, Mauro Martins.
-
Olá pessoal, eu tb comprei um fonera aqui há uns tempos e flashei-o com o open-WRT com a ideia de compilar codigo para ele para criar o cerebro para um robo.
Mas dps de começar a ver como as coisas funcionavam achei extremamente complico a compilação do código para dps correr no router, nao investi mto neste sentigo também, gostava de saber como é que voces estao a criar a aplicacao do lado do router que recebe por wireless e comunica por porta série para controlar o router.
Cumprimentos, Mauro Martins.
Ou estou a tentar trabalhar com um fonera tambem, mas o meu tem DD-WRT, o que penso ser um pouco diferente do teu.
Para já não te posso ajudar muito porque ainda estou em testes, mas dentro de alguns dias espero poder criar um tutorial.
-
Bem pessoal, agora a noite dediquei-me a fazer mais uns testes.
Segui o tutorial do microbyte, e depois de alguns ajustes lá vi as mensagens que escrevia a aparecer na janela do Serial do Arduino
Para efectuar a comunicação entre o computador e o Arduino utilizei o programa putty.
Vou continuar com os testes.
-
Depois de analisar isto, acho que vou começar por arranjar uma linguagem que suporte ssh.
A partir dai vou tentar fazer um programa que comunique com o Fonera.
Escrevo no programa que programei e aparece o mesmo na janela Serial do Arduino.
Visual Basic servirá?
-
Sim visual basic serve perfeitamente, julgo que nem precisas de fazer codigo nenhum, basta reaproveitares...
Ve este link...por baixo da imagem tens ai para sacar o codigo VB...
E procura neste blog que foi um utilizador de ca, que também ja fez algo deste genero...
http://pedrov.org/wordpress/?p=40 (http://pedrov.org/wordpress/?p=40)
tens aqui os trabalhos que ele fez...
http://pedrov.org/wordpress/?p=35 (http://pedrov.org/wordpress/?p=35)
Cumprimentos..
-
Sim visual basic serve perfeitamente, julgo que nem precisas de fazer codigo nenhum, basta reaproveitares...
Ve este link...por baixo da imagem tens ai para sacar o codigo VB...
E procura neste blog que foi um utilizador de ca, que também ja fez algo deste genero...
http://pedrov.org/wordpress/?p=40 (http://pedrov.org/wordpress/?p=40)
tens aqui os trabalhos que ele fez...
http://pedrov.org/wordpress/?p=35 (http://pedrov.org/wordpress/?p=35)
Cumprimentos..
zordlyon, pelo que eu consegui perceber, esse projecto foi desenvolvido para openwrt, no meu caso tenho dd-wrt.
O método de envio de dados é bastante diferente, portanto não funciona no meu caso
O que estou a procura é de uma maneira de criar um programa que possibilite conexão por ssh
Mas obrigado na mesma
-
Não sei se precisa de suportar o SSH... :/
Penso que é possível fazer um programa que corra uma aplicação de consola (que faça a ligação SSH), e que possibilite interação com esta (ver output e meter input)... (?)
--- EDIT
Já agora... Vê se percebes alguma coisa do que está aqui: http://javassh.org/space/start (http://javassh.org/space/start)
-
Viva pessoal
A minha ideia seria criar um programa que corresse no router e usar sockets TCP/IP para comunicar, dps o arduino (no meu caso pic) iria fazer a bridge entre o router e o robo.
Alguem tem ideias? Como vos disse nao perdi mto tempo a ver a toolchain para compilar codigo para o open wrt, mas pareceu-me complicado ainda.
Cumprimentos, Mauro Martins.
-
Não sei se precisa de suportar o SSH... :/
Penso que é possível fazer um programa que corra uma aplicação de consola (que faça a ligação SSH), e que possibilite interação com esta (ver output e meter input)... (?)
--- EDIT
Já agora... Vê se percebes alguma coisa do que está aqui: http://javassh.org/space/start (http://javassh.org/space/start)
A ideia tambem pode ser essa, mas ainda não encontrei maneira de fazer, com openwrt existe alguma informação, com dd-wrt não existe muita coisa
-
Usar pipes, e em vez de linguagens compiladas, que é dificil fazer o Cross-compiling, usam-se linguagens interpretadas, tipo Perl, Python, PHP, coisas assim, penso que quase todas conseguem executar shellcode, depois é executar o shellcode e lfazer gets da consola e parsar.
-
Usar pipes, e em vez de linguagens compiladas, que é dificil fazer o Cross-compiling, usam-se linguagens interpretadas, tipo Perl, Python, PHP, coisas assim, penso que quase todas conseguem executar shellcode, depois é executar o shellcode e lfazer gets da consola e parsar.
Podes explicar isso de uma forma mais simplificada?
-
Como posso retirar a password do login do ssh
Já "desliguei " no fonera, mas assim não consigo ligar-me nem com o putty.
Existe alguma configuração que me permita conectar por ssh sem ter que fazer login?
-
Já consigo transmitir dados por wireless para o Arduino.
O programa já envia os dados pela conexão ssh para o fonera e o Arduino já os lê.
Ainda estou a fazer umas afinações no projecto.
Quando vir que isto está a ficar direito crio um novo tópico e apresento o projecto.
-
Olá Nuno, entretanto esqueci-me de postar uma resposta a uma pergunta que tinhas feito anteriormente.
Existe a possibilidade de ligar a shell do fonera através de uma ligação série (uma porta série comum) o problema desta porta série é que é mesmo para ser usada para shell e não para uso genérico em comunicações.
Aqui fica uma página com informações mto uteis http://www.dd-wrt.com/wiki/index.php/LaFonera_Hardware_Serial-Cable-Port (http://www.dd-wrt.com/wiki/index.php/LaFonera_Hardware_Serial-Cable-Port) o facto de o fonera funcionar a 3.3V não implica comprar nenhum adaptador série caro, o tipico max232 funciona bem, já testei da seguinte forma, alimentando um max232 a 3.3V directamente do fonera.
Uma ideia seria usar o arduino a ler o que sai directamente da shell e interpretar isso, mas pelo que dizes ja conseguiste outra forma, fico a aguardar mais informações sobre o teu projecto.
Cumprimentos, Mauro.
-
Olá Nuno, entretanto esqueci-me de postar uma resposta a uma pergunta que tinhas feito anteriormente.
Existe a possibilidade de ligar a shell do fonera através de uma ligação série (uma porta série comum) o problema desta porta série é que é mesmo para ser usada para shell e não para uso genérico em comunicações.
Aqui fica uma página com informações mto uteis http://www.dd-wrt.com/wiki/index.php/LaFonera_Hardware_Serial-Cable-Port (http://www.dd-wrt.com/wiki/index.php/LaFonera_Hardware_Serial-Cable-Port) o facto de o fonera funcionar a 3.3V não implica comprar nenhum adaptador série caro, o tipico max232 funciona bem, já testei da seguinte forma, alimentando um max232 a 3.3V directamente do fonera.
Uma ideia seria usar o arduino a ler o que sai directamente da shell e interpretar isso, mas pelo que dizes ja conseguiste outra forma, fico a aguardar mais informações sobre o teu projecto.
Cumprimentos, Mauro.
No meu caso basta correr um ficheiro bash em Linux com poucas linhas de código que me possibilita a ligação por ssh, depois é só escrever e enviar dados.
O Arduino lê os dados, interpreta, e neste momento faz mover e direccionar uma plataforma.
Neste momento o 8 faz a plataforma andar para a frente o 2 para traz, o 4 para a esquerda o, 6 para a direita e o 5 para parar.
Do lado do Arduino penso estar tudo +/- funcional, do lado do cliente ssh é que ainda tenho que fazer alguns ajustes.
-
Coloca la isso quando puderes que ainda faço o mesmo no meu :P...embora o tempo não seja muito mas havendo ja alguem que fez as coisas torna-se mais facil...
Cumprimentos..
-
Olá nunosilvarocha,
Uma questão em relação ao que estás a fazer no fonera é, onde estás a ligar o arduino?!
Cumprimentos, Mauro.
-
Coloca la isso quando puderes que ainda faço o mesmo no meu :P...embora o tempo não seja muito mas havendo ja alguem que fez as coisas torna-se mais facil...
Cumprimentos..
Vou tratar de fazer isso!!
-
Olá nunosilvarocha,
Uma questão em relação ao que estás a fazer no fonera é, onde estás a ligar o arduino?!
Cumprimentos, Mauro.
Estou a usar os pinos da porta de serie do Fonera, no Arduino ligo o pino Tx do Fonera ao pino Rx do Arduino!
-
AHHH, oki, então sp é como tinha dito à uns posts atrás.
Ou seja estás a interpretar no arduino o que te aparece na consola.
Com que estás a enviar os comandos para ssh?!
-
AHHH, oki, então sp é como tinha dito à uns posts atrás.
Ou seja estás a interpretar no arduino o que te aparece na consola.
Com que estás a enviar os comandos para ssh?!
estou a criar um topico onde descrevo o projecto todo, mais uns minutos e está pronto!!
-
Cá está ele!!
http://lusorobotica.com/index.php?topic=3361.0 (http://lusorobotica.com/index.php?topic=3361.0)