• Welcome to LusoRobótica - Robótica em Português.
 

Wifi Robot ( Rc car + Arduino + Router )

Started by pvieira, 12 de May de 2009, 12:26

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

pvieira

Boas. Achei que era interessante partilhar o que fiz até agora nesta área. http://www.pedrov.org.

De um carro rc, usei a estrutura e os motores. Fiz um circuito para controlar a velocidade e sentido. Esse ciruito está liago ao arduino que por sua vez recebe comandos atraves do router. Pode ser controlado via teclado, gamepad ou wiimote (era o que tinha por casa). A camara é uma webcam, que espero fazer upgrade em breve, à camara, e tornar-la direccional (servos, tenho de os comprar).

O codigo ainda esta a ser corrigido, mas esta disponivel no site. A proxima fase é visão artificial, e mobilidade autonoma. Para isso já estive a dar uma vista de olhos no roborealm , e no opencv.

Já coloquei uns videos no Youtube http://www.youtube.com/paov1976



Comentários constructivos aceitam-se. Donativos materiais também :-)

Pedro Vieira

tr3s

Eh láaaa! Sim shr vais começar a dar dicas aqui à malta não vais!? Belo projecto parabéns!
;)
Tr3s
Daniel Gonçalves

TigPT

Muito bom, vou ter que analisar esse projecto com mais detalhe ;)

Rebel

Será que vou por o meu asus a passear pela casa enquanto saca uns torrents???

metRo_

Muito bem :)

Como fizeste a ligação do router ao arduino?!

tr3s

Quote from: Rebel on 12 de May de 2009, 14:34
Será que vou por o meu asus a passear pela casa enquanto saca uns torrents???

Ahahahahahhahahahahahahha  :D :D :D :D :D
Tr3s
Daniel Gonçalves

pvieira

Quote from: tr3s on 12 de May de 2009, 13:53
Eh láaaa! Sim shr vais começar a dar dicas aqui à malta não vais!? Belo projecto parabéns!
;)

A maior parte das coisas estão na página. O que eu não me lembrei, ou não tive paciência para colocar, perguntem que eu respondo.

pvieira

Quote from: metRo_ on 12 de May de 2009, 14:58
Muito bem :)

Como fizeste a ligação do router ao arduino?!

No meu caso foi bastante simples usb to usb :-) O meu router yem portas usb, por isso não tive de inventar muito, foi só comprar o arduino com ficha usb. No Router instalei o firmware x-wrt, python e o módulo pyserial.

o código em python fica assim:

import socket
import serial
HOST = '' # Symbolic name meaning all available interfaces
PORT = 16985 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr

ser = serial.Serial('COM19', 9600, timeout=1)

while 1:
    data = conn.recv(1024)
    if not data: break
    conn.send(data)
    ser.write(data)
    print(data)
ser.close()
conn.close()

metRo_

esse código está a correr no router, certo?
No arduino usas o seria.write e serial.read para os dados, e no pc?

pvieira

Quote from: metRo_ on 12 de May de 2009, 16:30
esse código está a correr no router, certo?
No arduino usas o seria.write e serial.read para os dados, e no pc?


Versão curta:

Portátil com wireless a correr a aplicação feita em vb.net. A aplicação lê os inputs do teclado ou gamepad ou wiimote (comando da wii) e envia uma mensagem para o router ( é mensagem poruqe já não é um único byte, e porque tem inicio e fim). O router sempre que recebe qualquer coisa, envia para a porta "serie". O arduino depois de receber a mensagem que lhe é enviada pelo router "processa" e envi os sinais para a controladora dos motores.
O codigo está no site http://www.pedrov.org assim que corrigir os erros, coloco a versão final. Mas a que lá está já dá para entender.

rjrv

Eu tenho 1 asus destes, e estou a guarda-lo para algo deste tipo.
Se virem na net existem bastantes firmwares bootlegs para ele.
E como ele de origem já permite ligar uma webcam e um disco externo é excelente para utilizações deste tipo.
Este firmware não conhecia, mas já tinha visto outros, o mais falado é o do OLEG. ;)
"Somos humanos, demasiado humanos." - Friedrich Nietzsche

pvieira

Quote from: rjrv on 12 de May de 2009, 16:38
Eu tenho 1 asus destes, e estou a guarda-lo para algo deste tipo.
Se virem na net existem bastantes firmwares bootlegs para ele.
E como ele de origem já permite ligar uma webcam e um disco externo é excelente para utilizações deste tipo.
Este firmware não conhecia, mas já tinha visto outros, o mais falado é o do OLEG. ;)

O firmware original permite possui apenas dois drivers para webcam. logo nem todas funcionam. Relativamente ao disco, não me lembro se tinha de estar formatado em fat32, acho que não lia em ntfs. O OLEG é na minha opinião (e se não me engano) a versão menos alterada, o ambiente gráfico é o mesmo e tudo.

Existe o openwrt, o x-wrt, o ddwrt, ... eu escolhi o x-wrt (versao alterada do openwrt) porque tinha mais informação, sdk, e mais pacotes de software para instalação http://downloads.openwrt.org/kamikaze/8.09/brcm47xx/packages/ . Deixa de ser um router e passa efectivamente a ser um "pc". Cheguei a ver pessoal que lhe ligava uma placa de som usb :-) Ja pensei em por o carro a sacar e dar musica, mas sou um forreta de todo o tamanho :-) E estou mais interessado na parte de reconhecimento de imagem :-)

Podes sempre dar uma olhada no que fiz ao meu router em Hacking the Asus wl500gp  sim, porque ele arranca atrvés de uma pen de 1GB, por isso posso instalar "tudo" o que me apetecer.

metRo_

#12
E consegues ligar a net com o arduino? Isto é ter tipo um webserver no arduino?

Editado: Consegues aceder ao arduino fora da tua rede local? A minha duvida é se essa porta usb no router pode ser acedida fora da tua rede loca.

rjrv

Pelo que me lembro, com o firmware original, o disco tem que ser formatado em linux... ???
Se puderes mete mais informação sobre como instalaste esse firmware e das alterações ao router, please ;D
"Somos humanos, demasiado humanos." - Friedrich Nietzsche

pvieira

Quote from: metRo_ on 12 de May de 2009, 17:12
E consegues ligar a net com o arduino? Isto é ter tipo um webserver no arduino?

Editado: Consegues aceder ao arduino fora da tua rede local? A minha duvida é se essa porta usb no router pode ser acedida fora da tua rede loca.

Ainda não pus em pratica o que dizes, mas sim, é possível. Até agora só usei o router como "servidor", mas ele pode ser colocado em modo cliente. Desse  modo o router wireless capta sinal de outro router. No router "rede" eu posso dizer para fazer forward de todo o trafego para o router "robot". Sempre que eu me ligo remotamente à minha rede de casa, so sinal é todo reencaminhado para o ip do "router" carro.

Sim acho que será possível ter uma amostra de webserver no arduino.