LusoRobótica - Robótica em Português

Robótica => Projectos de robótica => Projectos em desenvolvimento => Tópico iniciado por: nunosilvarocha em 08 de Março de 2011, 19:09

Título: ArdFonCar
Enviado por: nunosilvarocha em 08 de Março de 2011, 19:09
Cá esta um novo projecto ainda em desenvolvimento, que deriva do meu topico de duvidas (http://lusorobotica.com/index.php?topic=3314.0 (http://lusorobotica.com/index.php?topic=3314.0)), agora numa forma mais formal.
O nome deriva da junção do Arduino, um Fonera e uma plataforma com rodas.
Trata-se então de uma plataforma com rodas controlado por um Arduino que recebe dados de um Fonera que são enviados pelo computador.
Acho melhor portanto ir dividindo as coisas e passar a apresentação.

A plataforma

    Material
    Ferramenta

A construção

O primeiro passo da construção foi o desenho da plataforma, algo que me pudesse dar uma ideia do resultado final, usei a ferramenta Google Sketchup e desenhei a ideia que tinha para a plataforma em 3D.
E o resultado foi este:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg146.imageshack.us%2Fimg146%2F3315%2Fcarroredondo.jpg&hash=ab47424e50727c8ff18c76331b4046a9cf5b275e)

Depois de ter o desenho do projecto concluído iniciei a passagem para o material.
Desenhei no PVC expandido as formas da base a recortar.

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg19.imageshack.us%2Fimg19%2F5605%2F18022011247.jpg&hash=0de523d1696e4e62006ace0a7fd34702e00ed903)

Depois de ter tudo desenhado iniciei os recortes.
Para isso usei uma Serra tico-tico com uma lamina para cortar ferro, foi a que achei mais adequada.
O PVC Expandido é um material fácil de cortar.
Acabado os cortes foi tempo de por a maquina de furar a trabalhar e fazer todos os furos necessários.
Um pouco de lixa para dar os últimos retoques e o resultado final:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg827.imageshack.us%2Fimg827%2F1549%2F22022011259j.jpg&hash=04b930f14789980d6df326f549c6ecb8d013372a)

Como se trata de uma plataforma de 2 andares utilizei um varão roscado para fazer a fixação, umas porcas e umas aninhas e a base estava concluída.

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg192.imageshack.us%2Fimg192%2F4761%2F23022011266.jpg&hash=d6428089fd0b10de19ae92ea413992610962859b)

Estando a plataforma concluída foi tempo de alguns testes.
Montei o Arduino, os servos moto,r as rodas, uma breadboard e uma ponte H, com um código simples fiz a plataforma mover-se para a frente, para trás e para os lados para ver a estabilidade e os resultados foram positivos.

A plataforma está pronta!!


Arduino e o Fonera

  Material


A montagem

A montagem entre o Arduino e o Fonera foi bastante simples.
O Fonera possibilita-nos a ligação por serie pelos pinos que podemos encontrar no interior do mesmo, e no Arduino utilizamos os pinos Rx e Tx (pin 0 e 1).
Como dentro do Fonera não encontramos a designação de cada pino uma pequena pesquisa revelou essa informação.
No finar vamos ter uma ligação deste tipo:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ft1.gstatic.com%2Fimages%3Fq%3Dtbn%3AANd9GcSQTcy-4gV5r7tEnPwseWQ7inaqAQb7nZIQnMfVMVsOijboW7ksnw%26amp%3Bt%3D1&hash=c8a6cbd727080f0023a0ab80117e460d1453f4de)

A comunicação e programação

Até aqui o trabalho foi fácil, a parte difícil é a comunicação.
O Fonera já se encontrava flashado com DD-WRT, para libertar o acesso ao ssh e para libertar outras funções, tornando-o bastante mais versátil. O processo de flashar o Fonera não vai ser abordado aqui, e há montes de tutoriais na net.
Para podermos enviar dados para a porta de serie do Fonera temos que estabelecer uma ligação via wireless com o mesmo, e efectuar uma ligação por ssh.
Numa fase inicial usei um programa chamado Putty (http://www.putty.org/ (http://www.putty.org/)). O programa é bastante simples e acessível, corre sem instalação e basta pormos o IP do Fonera e a porta (22 por padrão) e podemos efectuar a nossa ligação.

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Funixwiz.net%2Fimages%2Fputty-openssh-3.gif&hash=4fa59e91f6e44a98bc06958f215bde77485d5f33)

Efectuamos o login e devemos obter uma imagem deste tipo:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh4.ggpht.com%2F_8Q2FGcPQyL8%2FSWy8BsYZxtI%2FAAAAAAAAAfc%2F7HVoTKKY2MA%2Fdd-wrt-telnet%255B3%255D.png&hash=02e2b9258dad1e0936d28451557375dbbdd94487)

E para escrever nos pinos da porta serie usamos o seguinte código:
Código: [Seleccione]
echo [texto a enviar] >/dev/tts/0No Arduino ligamos o Pino Tx do Fonera no Tx do Arduino (apenas fazemos isto desta vez, para podermos visualizar os dados que enviamos no Monitor Serial do IDE do Arduino) e programamos o Arduino com este simples código.
Código: [Seleccione]
 
void setup(){ }
void loop(){ }
A partir daqui e se tudo estiver direito já podemos enviar dados usando o Putty e visualiza-los no Monitor Serial do IDE do Arduino
Esta é a forma mais básica que conheço para obtermos algum resultado.

O problema deste método é que sempre que queremos enviar dados temos que repetir o código sequencialmente. Para me ver livre de tar problema tive que mudar para Linux.
Em Linux criei um ficheiro bash que me facilita bastante a vida usando apenas este código:
Código: [Seleccione]
#!/bin/bash
cat | ssh utilizador@router "cat > /dev/ttl/0"
Com este curto código conseguimos enviar dados sequencialmente sem ter que repetir o código, basta digitar os dados pressionar Enter e os dados são enviados.

Do lado do Arduino apenas temos que fazer uma leitura normal de Serie usando:
Código: [Seleccione]
...
Digital.read();
...

Ficamos com uma comunicação do tipo:
Aplicação Cliente >> Wireless >> Fonera >> Arduino >> Restante electronica

Neste momento o meu projecto está parado por aqui, ainda tenho que melhorar o programa cliente, este tem que ser capaz de ler dados validar e trabalha-los e por fim envia-los, no Arduino ele já os recebe e interpreta, e neste momentos controla os servos motor usando uma ponte H
Deixo algumas fotos:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg88.imageshack.us%2Fimg88%2F3669%2F08032011281.jpg&hash=0a3fe5a74e4879813d6495830e73bafeaf663761)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg42.imageshack.us%2Fimg42%2F753%2F08032011289.jpg&hash=264e86c3f070857b641d4f05110a307ab72be56d)

Acho que isto já esta bastante extenso mas para já é o que tenho.
Ideias e sugestões são bem vindas!!
Título: Re: ArdFonCar
Enviado por: Gaspar em 13 de Março de 2011, 01:55
Projecto muito interessante!

Estou a iniciar um semelhante, tambem com o arduino e com um router fonera!

Uma questão, não tiveste de "flashar" o router?
Título: Re: ArdFonCar
Enviado por: nunosilvarocha em 13 de Março de 2011, 13:43
Projecto muito interessante!

Estou a iniciar um semelhante, tambem com o arduino e com um router fonera!

Uma questão, não tiveste de "flashar" o router?

Sim tive, esqueci-me me descrever isso!!
Título: Re: ArdFonCar
Enviado por: nunosilvarocha em 13 de Março de 2011, 13:49
Projecto muito interessante!

Estou a iniciar um semelhante, tambem com o arduino e com um router fonera!

Uma questão, não tiveste de "flashar" o router?

Já adicionei a informação, no entanto não descrevi como flashar, existem montes de tutoriais na net, é só procurar um bocadinho!!
Título: Re: ArdFonCar
Enviado por: buh em 23 de Março de 2011, 02:47
Citar
Neste momento o meu projecto está parado por aqui, ainda tenho que melhorar o programa cliente, este tem que ser capaz de ler dados validar e trabalha-los e por fim envia-los, no Arduino ele já os recebe e interpreta, e neste momentos controla os servos motor usando uma ponte H

Como estás a ir buscar os dados passados por ssh ao arduino? Não defines a baud?
Título: Re: ArdFonCar
Enviado por: nunosilvarocha em 24 de Março de 2011, 02:29
Citar
Neste momento o meu projecto está parado por aqui, ainda tenho que melhorar o programa cliente, este tem que ser capaz de ler dados validar e trabalha-los e por fim envia-los, no Arduino ele já os recebe e interpreta, e neste momentos controla os servos motor usando uma ponte H

Como estás a ir buscar os dados passados por ssh ao arduino? Não defines a baud?

Faço um leitura por serial!!
Título: Re: ArdFonCar
Enviado por: buh em 24 de Março de 2011, 20:23
Ora com certeza. Mas suponho que  estejas a ler da frequência (baud) 115200 que é a por defeito do firmware do fonera, acontece que nessa frequência recebes muito "lixo". Pelo menos é o que me acontece.. Não tens erros na comunicação?
Título: Re: ArdFonCar
Enviado por: senso em 24 de Março de 2011, 20:43
Não é bem bem uma frequência..
É uma velocidade a que os dados são enviados e 115200 não é assim tão rápido quanto isso, até um Arduino consegue ler bem mais rápido que a essa baud.
Título: Re: ArdFonCar
Enviado por: buh em 24 de Março de 2011, 20:44
É uma taxa, disse mal. Na verdade é o numero de bits por segundo julgo.
Título: Re: ArdFonCar
Enviado por: zordlyon em 24 de Março de 2011, 21:43
Eu com o router Wl520Gu estava a usar 19200...

Cumprimentos...
Título: Re: ArdFonCar
Enviado por: nunosilvarocha em 25 de Março de 2011, 17:15
Ora com certeza. Mas suponho que  estejas a ler da frequência (baud) 115200 que é a por defeito do firmware do fonera, acontece que nessa frequência recebes muito "lixo". Pelo menos é o que me acontece.. Não tens erros na comunicação?

Sim, não sei o valor agora ao certo mas penso que seja 115200.
Quanto ao lixo, nos testes que fiz estou a receber algum. Mas para já não me esta a fazer muita diferença, o Arduino lê carácter a carácter, e só está a executar funções para uns determinados valores, como o resto do lixo são zeros não tenho tido muita interferência.

Isto para já também está um pouco parado, por falta de tempo não tenho trabalhado nisto. Mas quando voltar a minha atenção vai ser voltada para o programa cliente, pois este ainda não está como eu quero.
Título: Re: ArdFonCar
Enviado por: nunosilvarocha em 25 de Março de 2011, 17:21
buh, podias mostrar ai o teu projeto!!
Título: Re: ArdFonCar
Enviado por: GnGz em 25 de Março de 2011, 17:51
Baudrate É uma taxa de transmissão que é o numero de eventos ou mudanças de sinal que ocorrem durante um segundo.

PS: O numero de bits por segundo é bitrate.
Título: Re: ArdFonCar
Enviado por: iMartins87 em 15 de Abril de 2011, 13:42
Eu também estou a desenvolver um projecto similar a este  ;D

Relativamente à velocidade utilizada por defeito na comunicação serial entre o arduino e o router, caso queiram altera-la basta executar o seguinte comando no router:

Código: [Seleccione]
stty -F /dev/tts/0 9600

Deduzindo que estão a usar o router fonera com o firmware dd-wrt (que é o meu caso).


Boa continuação do projecto
Cumpts
Título: Re: ArdFonCar
Enviado por: nunosilvarocha em 15 de Abril de 2011, 14:52
Eu também estou a desenvolver um projecto similar a este  ;D

Relativamente à velocidade utilizada por defeito na comunicação serial entre o arduino e o router, caso queiram altera-la basta executar o seguinte comando no router:

Código: [Seleccione]
stty -F /dev/tts/0 9600

Deduzindo que estão a usar o router fonera com o firmware dd-wrt (que é o meu caso).


Boa continuação do projecto
Cumpts

Muito obrigado, isto pode vir a dar muito jeito!
Será que pode deixar aqui como comunica entre o Arduino e o Fonera?
Uma apresentação do seu projeto seria bom!
Título: Re: ArdFonCar
Enviado por: dvdt em 15 de Abril de 2012, 17:16
desculpem desenterrar este tópico mas Nuno aonde é que se pode arranjar um router desses e por quanto
Título: Re: ArdFonCar
Enviado por: nunosilvarocha em 15 de Abril de 2012, 18:50
Já tenho este router à muitos anos, a Fon ainda não fazia parte da Zon.
Na altura comprei diretamente no site da Fon.
Tenho um que está queimado, mas outro ainda operacional que está ate a servir de AP cá em casa.