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

Robot Wireless - Câmera, GPS, entre outros.

Started by tgferreira, 15 de October de 2011, 19:25

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

tgferreira

Boas!

É assim, quanto aos motores e controladores acho que se dá, (e pelo que percebo é simples), não vale a pena maçar-vos mais sequer. Seguem estes :)

Quanto à webcam:

Tenho várias hipóteses:

-Uma webcam ligada com esse conversor à porta Rj45;
-Uma câmera ethernet;
-Uma câmera com Wi-fi integrado.

E decidi por discardar as duas últimas opções por:
1- Ambas necessitam de alimentação externa, e pelo que sei é bem mais do que uma webcam;
2- A nível de preços são ambas mais caras do que uma webcam, e tenho webcams já disponíveis para testar;
3- A câmera com Wi-fi poderia de algum modo fazer interferências com o Wi-fi do router ou outros equipamentos (julgo), mas principalmente porque assim caso necessite de uma maior range aumento apenas a do router e mais fácilmente!

Mas, opinem à vontade! Provavelmente estou errado em algumas coisas que digo!

Tiago Ferreira.

dvdt

Eu nao tenho muita certeza se uma webcam vai funcionar com esses adaptadores. Se fosse eu ia para uma ethernet
Engenharia Electrotécnica e Computadores (IST)
Analyst in a Big 4

zordlyon

Eu usei uma webcam normal USB compativel com Linux de 8€ na worten... ;)

Cumprimentos,
André Carvalho.

JPTuga

É assim se fosse eu usava uma webcam WI-FI, Range já vi pessoas a alcançar os 200m sem problemas, depende mas é como montas o esquema  ;)

tgferreira

Boas!

Pessoal, sem ofensa mas acho melhor tentar com o adaptador RJ45 e webcam. Se der, óptimo, assim fica tudo num sinal wireless...

Agora, o meu problema é mesmo a configuração final. Acho que o código do arduino é simples. Pensei em ser algo mais ou menos assim, para tentar:

Configuro o arduino no router na porta que escolho e com o ID que aquilo me atribui. No arduino ponho um código só com o Serial.begin(9600) e com o resto das formalidades do código, para o Arduino ficar com a porta de comunicação "aberta". De seguida ligo-me ao arduino pelo telnet. Supondo que a porta que escolho é a 3001, faço assim no cmd:

telnet 1922.168.1.1 3001

E depois escrevo uma coisa qualquer, só para confirmar que o LED RX no Arduino acende. Se acender quando mando texto, óptimo!

O problema é que ontem depois voltei a re-tentar, mas na cmd recebo mensagens a dizer que a ligação falhou, mesmo dando para fazer o mesmo para o mesmo IP mas sem a porta. Será que a porta está fechada? (lembrei-me agora).

E depois de fazer esta ligação e obter resultados, qual é o melhor programa para comunicar com o arduino desse modo? Queria ver se fazia uma interface gráfica. Aguardo sugestões!

Zordlyon, pvieira e todos os outros entendidos, chamam-se à recepção!

Cumprimentos!

JPTuga

tgferreira se quiseres eu tb te posso ajudar  ;) é assim provavelmente a porta esta fechada como dizes.

Não sei se foi erro de escrita mas provavelmente o ip é 192.168.1.1...devias meter 192.168.1.XX, sem ser 0, 1 e 254.

Se der erro novamente configuras o router, se presisares de ajuda posta o id do router.  ;)

Para a interface gráfica, não sei se usas linux ou Windows, mas para linux usas python, é o que costumo usar. Para Windows basta usares o Visual Basic, não vás para C#. Neste tipo de aplicações não vale a pena!

Bah, se presisares alguma coisa diz...  ;D

JPTuga

ahhh já agora, posta aqui o teu código para eu dar uma vista de olhos...  ;D

Marvin

Quote from: JPTuga on 13 de April de 2012, 11:10
Para Windows basta usares o Visual Basic, não vás para C#. Neste tipo de aplicações não vale a pena!

Se estiveres a falar de VB .net , a diferença é apenas a sintaxe da linguagem pois ambas usam o CLR http://pt.wikipedia.org/wiki/Common_Language_Runtime, ou seja é uma questão de gosto.

Pessoalmente acho que se deve de utilizar sempre uma linguagem que não mude muito a sintaxe independentemente da plataforma utilizada, logo o C# é muito parecido com o java e com o C++ (mais c o primeiro).

Por outro lado para ser independente de plataforma o melhor é o java.

Dronetech BlogThe Scientist and the Geek

JPTuga

Sim também uso java no linux, mas depende dos gostos...

Para iniciar eu apoio o visual basic...

tgferreira

#84
Boas pessoal!

Informações gerais: uma vez mais, toda a ajuda é bem vinda! Estou a torrar a cabeça com esta coisa toda do USB quando a maior parte das pessoas liga o router por serial. Portanto, vou deixar a ideia de ligar o router por USB ao Arduino por terra agora. De maneira que todos os bits de código e how-to que quiserem fornecer agradeço :P

Bom, tinha a firewall desligada, procurei por portas fechadas e nada. Deve ser algo que não entendo e que me está a escapar. Além disso, o endereço que o router atribuía ao Arduino nunca era sempre o mesmo, e ía variando. Como tal, venha serial! Agora vamos é a ver se não estrago o router no processo :/

JPTuga: Venha ajuda! :D o código que tenho para já não é nada, mas assim que fizer algo posto aqui! O que tenho é só mesmo para o Arduino estar à espera de comunicações serial, para ver o LED piscar. É isto:


void setup() {
    Serial.begin(9600);
}

void loop() {
 
}


Quanto à linguagem a usar para o programa no PC, podem opinar à vontade! Eu a única que sei um bocadinho de nada é Python. Já agora, uso Windows (shame on me...).

Bom, quando tiver este projecto mais adiantado começo uma série de tutoriais sobre todo o tipo de coisas que abordei durante a sua execução, caso alguém assim o queira. Caso precisem de ajuda em alguma coisa que saiba, perguntem!

Cumprimentos, e novidades daqui a pouquinho tempo!


UPDATE1:

Bom, estou cheio de sorte. Um dos buracos da serial port nem sequer está furado. Alguém tem uma sugestão para isto? Devo furar ou soldar no sítio sem furar?

zordlyon

Boas, portanto desistis-te da ideia USB certo?

Eu tenho o router ligado  via serial ao Arduino...

Não precisas de furar nada...simplesmente soldas directo no sitio onde supostamente devias ter o furo...

não esquecer quando for a fazer comunicação serial do router para o arduino, usar um conversor 3v3 pra 5v...

Depois tens que ligar TX-RX e RX-TX....Outra coisa, para testar a ligação serial entre arduino-router, podes ligar TX-TX e RX-TX...

colocas este codigo no arduino:
void setup() {}
void loop() {}

NOTA: não ter ligado o router e o arduino e tentar carregar codigo para o arduino com o router ligado, porque estas a tentar aceder a serial pelo USB do arduino e pelo TX/RX

Abres o terminal windows acedes ao router via SSH "ssh root@192.168.x.x" e depois abres a consola do arduino, e escreves qualquer coisa tipo "ola mundo" na consola do arduino, e depois ves se recebes te o mesmo no terminal do router que acedes te via SSH....

Atençao que isto e so para testar, depois trata de trocar os fios e coloca TX com RX e vice versa....

Cumprimentos,
André Carvalho.

tgferreira

#86
Boas,

Ya, desisti do USB. Já tenho a ligação serial soldada, tudo, só falta ligar. Espero não ter pifado o router no processo, porque parece-me que dei cabo da pcb no gnd do router. A ver vamos se está a fazer a ligação.

Para testar como disseste, tenho uma dúvida:

se coloco aquele código no arduino, como faço para receber o arduino na consola do router? Ponho o olá mundo no código, faço upload e ligo ao router para ver se o arduino está a enviar aquilo por serial? Não percebi :S


E já agora, como vejo qual vai ser IP/porta do arduino?

Cumprimentos!

UPDATE:

Boas, percebi o que queres dizer. Mesmo assim continuo com algumas dúvidas:

A ligação está assim feita:

Router > Logical Level LV / Logical Level HV > Arduino

3.3V        LV                         HV                         5V
GND        GND                      GND                       GND
TX           RX0                       RX1                        Rx0
RX           TX1                       TX0                        Tx0

É assim para testar? Acho que está tudo bem, só na parte do Arduino é que não tenho a certeza, entre o Rx e o Tx.

Ok, então pelo que percebi coloquei o código que disseste no arduino e depois envio comandos através do serial monitor. Mas onde posso ver no router? Sei aceder por telnet, é suposto eles aparecerem aqui? Se sim não estão a aparecer.

Cumprimentos!

zordlyon

#87
Sim é isso tudo...

Para testar o Ola mundo no serial monitor do arduino e aparecer te na linha de comandos do telnet tens que ter TX (arduino) com (TX router) e RX(arduino) com RX(router)....

Isto somente para testar aquele codigo "vazio"...

Depois inseres o ola no serial monitor e na linha de comandos deve te aparecer o ola...

Em relação ao IP isso és tu que defines nas configurações do router...

O arduino se está ligado via Serial nao tem IP nenhum, o que tem um IP é o router em que esse IP te permite aceder ao arduino via serial...


Depois de testares isso a ver se tens ligação do lado do arduino tens que fazer um "Serial.read(var)" e print(var)....

E por exemplo na linha de comandos ao acederes via SSH, fazes "echo Ola mundo>dev/tty/0"

E no serial monitor deve te aparecer o Ola mundo...

ATENÇAO QUE AQUI TENS QUE TER O TX->RX e RX->TX...

Cumprimentos,
André Carvalho.

Cumprimentos,
André Carvalho.

dvdt

Boas tenho que fazer uma pergunta de noob pois eu routers só os usei para ligação á net e nunca para mais nada e nunca abri nenhum.
Dá para soldar uma porta serial em qualquer router?
Eu ando a seguir este post pois tambem que adicionar este sistema para controlar o meu veiculo e ja tinha visto um projecto onde usam este router e parece funcionar bem mas se funciona-se com os mais baratos
Engenharia Electrotécnica e Computadores (IST)
Analyst in a Big 4

tgferreira

#89
Boas,

Bom, estive a tentar o que disseste Zord, mas não consegui nada. Desconfio que me está a faltar algo, por isso decidi fazer um hard reset ao router e começar de novo. Então, deixo aqui a lista que me falta fazer, a partir do format para ver se acerto com isto:

-Hard reset,
-Re-configurar para aceitar telnet, ssh, etc etc;
-Instalar drivers para enviar o sinal serial para a net e configura-los(?);
-Por código fantasma no Arduino, fazer a ligação como disse;
-Abrir a consola serial do arduino, e abrir o IP do router com a porta do Arduino no final, por telnet;
-Enviar algo do serial monitor e receber no telnet.

É isto? É que se sim, tenho várias dúvidas:

É só preciso utilizar o ser2net ou é preciso mais algum driver?

A configuração do ser2net é assim:

ser2net -C "3001:raw:600:/dev/tty/0:9600 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS"  ?


dvdt:

pelo que sei nem todos os routers têm serial port. e julgo que para a poderes usar convém teres um firmware como o ddwrt ou openwrt. Mas não tenho a certeza! No entanto, apanhas por exemplo esse router baratinho no eBay!

Cumprimentos,
Tiago Ferreira.

update:

Boas,
Fiz o que disse acima, exactamente igual e nada. Há uma maneira que se eu me ligar os cabos cruzados (com o logic level converter no meio, claro) que recebo um monte de caracteres sem sentido na serial console do PC. mas se puser os cabos como o Zordlyon disse para eu testar, nada na mesma.
Tentei-me ligar por putty e telnet. No putty acedeu-me à consola normal, no telnet não fez nada, a janela do cmd fica toda preta e se carregar em alguma tecla no pc que está a "ver" o que eu escrevo no serial monitor (outro pc), vai para o cmd normal.

Pessoal, alguma sugestão? será que estarei a fazer algo mal?

Cumprimentos,
Tiago.