Cá esta um novo projecto ainda em desenvolvimento, que deriva do meu topico de duvidas (
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- Placa pvc expandido
- Varão roscado
- Anilhas
- Porcas
Ferramenta- Serra tico-tico
- Maquina de furar
- Broca
- Lixa
A construçãoO 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:
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.
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:
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.
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- Arduino Duemilanove
- Fonera 2200 (DD-WRT)
- Fio condutor
- Computador
A montagemA 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:
A comunicação e programaçãoAté 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/). 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.
Efectuamos o login e devemos obter uma imagem deste tipo:
E para escrever nos pinos da porta serie usamos o seguinte código:
echo [texto a enviar] >/dev/tts/0
No 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.
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:
#!/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:
...
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:
Acho que isto já esta bastante extenso mas para já é o que tenho.
Ideias e sugestões são bem vindas!!