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

Comandar Robot via PC

Started by pedroc, 15 de August de 2012, 01:07

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

pedroc

Ola a todos.
Chamo-me Pedro, sou de Aveiro e um recem chegado a este forum.
Sou um auto didacta nestas coisas dos robots, e tenho ja brincado com arduino, e montado alguns robots simples, que se desviam de objectos, ou seguem luzes.

Agora, queria dar mais um passo, mas ja tentei dezenas de variantes e li imensos artigos, mas nao consigo o que quero fazer...
Pretendia fazer um programa VB, que me controlasse uma porta COM.
Esse programa em VB apenas tinha 4 botoes (frente, tras, esquerda e direita).
Essa porta COM, iria liga aos pinos do arduino, que por sua vez comandava os motores.
A minha questao é, qual a melhor forma de o fazer??
Ja tentei varias opções mas todas sem resultado.

Alguem me pode dar umas luzes?
Abraço e desde ja obrigado

Pedrock

Queres fazer isso com o cabo USB?

pedroc

Quote from: Pedrock on 15 de August de 2012, 01:09
Queres fazer isso com o cabo USB?

Boas.
Nao, a minha ideia era usar os pinos de uma DB9, para ligar directo aos inputs do arduino.
Devido aos varios metros de cabo que irei precisar, o USB limita-me um bocado

Pedrock

Tens que ligar os pinos RX e TX aos pinos 0 e 1 do arduino e funciona da mesma forma que a comunicação USB. Podes usar o serial monitor.

pedroc

pois, mas pelo que me apercebi, o meu problema reside no que envio nas portas DB9.
É que essa comunicação nao é assim tao linear, e preciso de enviar 4 dados (1 para cada comando).
Das outras vezes safei-me bem, mas desta nao chega nada ao meu arduino.
fonix

rglove

Se comprares um modem bluetooth podes fazer isso sem fios desde que tenhas bluetooth no computador. O modem bluetooth liga-se ao computador e comunicas pela porta serial na mesma.

pedroc

Ola rglove,
Tambem pensei nisso, mas queria mesmo o fio.
Isto porque quero por uma camara em cima dele, e assim o mesmo cabo levava-me o comando e trazia-me a imagem

pedroc

Desculpem insistir, mas vou tentar clarificar melhor aquilo que queria.
Queria que do meu PC me saissem 4 fios (SEM SER USB) onde cada um deles entrava no arduino, e eu queria colocar esses fios como ligado ou desligado no PC.
Tenho de usar cabo, e não pode ser USB. Alguem tem sugestoes para isto?
Estive a ver, e penso não conseguir controlar pino a pino uma porta serie ou paralela.
Assim, estou a ficar sem alternativas :(

pedroc

A minha impossiblidade de usar USB, prende-se com o facto de precisar de 25 a 30 metros de cabo, entre o PC e o arduino

Pedrock

#9
Pois o USB tem um limite de 5 metros.

Se vires aqui:
http://arduino.cc/en/Main/ArduinoBoardSerial
Os primeiros arduinos não tinham USB mas sim RS232.

Se vires o pinout do RS232, há lá um TX e um RX. Basta ligar esses aos pinos 0 e 1 do arduino.
No DB9 é praticamente a mesma coisa. O 2º pino é o RX e o 3º é o TX.

EDIT:
OK. Afinal não é mesmo assim tão simples.
Penso que vais ter que montar este circuito.
http://arduino.cc/hu/Tutorial/ArduinoSoftwareRS232

pedroc

pois... Ess eja tinha visto, mas estava a evitar.
É que as portas do arduino ja vao ser a justa, e assim com mais esse circuito vou ter de migrar par ao mega.
E nao tenho nenhum, e euros é coisa que anda em extinção por estas bandas :)

Alguem conhece, sabe, etc, alguma forma de eu conseguir tirar um cabo do PC com um valor logico ou analogico?
Se eu conseguisse comandar cada pino do DB9 do pc era facil, mas nao é possivel isso.
Eu queria no PC dizer: mete este pino da ficha XPTO a 1, e pronto, voilá..
Mas nao estou a encontrar alternativas. Se alguem se lembrar de alguma...

Pedrock

Só tens de ligar 2 fios. De qualquer forma tinha quer ser assim. TX e RX.
Talvez dê para só ligar o TX ao RX do arduino, para receber a informação, e como não precisas transmitir, não se liga o RX ao TX do arduino. Mas não sei se se pode fazer isso.

pedroc

nao da. O Tx da porta serie nao s emantem ON. Ele envia e fica a espera do handshake.
Alem disso, isso obrigava-me a usar 4 portas COM, o que era uma confusão brutal..
A unica opção possivel que estou a ver, é por USB controlar um breaduino, que por sua vez, me envia os sinais por cabo UTP para o arduino final.

Não estou a conseguir arranjar outra solução

senso

Que confusão que vai para ai nessa cabeça, parece que não estás a entender com um fio de serial, podes enviar comandos, e não apenas um bite, até porque no serial o minimo qu envias é um byte, ou seja 8 bits, logo basta mandar um caracter via serial e tens os 4 bits actualizados que queres, a unica coisa que precisas é mesmo o fio de TX do serial e um fio de massa, e no lado do Arduino tens de ter um MAX232 porque o serial do pc é RS-232 que tem valores de tensão entre + e - 12v e o max232 é um conversor de voltagens(simplificadamente), se usares qualquer outro meio de controlo tens de usar mais fios, o que achas que é mais facil, enviar um byte por serial que é bem suportado ou andar com essas invenções que falas?
Avr fanboy

pedroc

Ola amigo senso, boa tarde.
Pois, eu acredito que isto seja um pouco confuso..
O que quero, é com um cabo de 25 a 30 metros, enviar comandos para o arduino.
Um desses comandos, é o controlo do smotores.
Terei uma aplicaçaõ com 4 botoes, que me indica para onde o motor deve ir.
Nao queria comunicação serie, porque isso envia uma vez e pára. Queria colocar um bit a 1, e deixa-lo estar até soltar o botão.
Como dizes, tambem dá, mas da-me mais trabalho na programação VB

Que componente é esse que dizes?
E so preciso de 2 fios?? O serial precisa de 6 para funcionar...