LusoRobótica - Robótica em Português

Robótica => Iniciantes => Tópico iniciado por: david pereira em 15 de Setembro de 2010, 14:53

Título: Controlar Arduino pelo PC
Enviado por: david pereira em 15 de Setembro de 2010, 14:53
Boas
Sou estudante do 12º ano e para AP queria fazer um robot telecomandado, mas como nao precebo de telecomandos gostaria de saber se é possivel controlar um robot a partir do PC, ou seja, quando clicasse numa tecla ele virava para esquerda, direita, etc... Se sim como?
Cumprimentos
Título: Re: Controlar Arduino pelo PC
Enviado por: ptrobotics em 15 de Setembro de 2010, 16:00
Cabo ou wireless?

Wireless: Infra-vermelhos, radio, Zigbee ou bluetooth?
Título: Re: Controlar Arduino pelo PC
Enviado por: david pereira em 15 de Setembro de 2010, 16:22
estava a pensar controlar atravez do cabo USB que liga o Arduino ao PC, pretendia ter 3 motores, 2 para a direcção e 1 para movimetar uma webcam no topo do robot.
Título: Re: Controlar Arduino pelo PC
Enviado por: AcidDagger em 15 de Setembro de 2010, 16:29
Então é super simples. Arduino + Processing e comunicação serial
Título: Re: Controlar Arduino pelo PC
Enviado por: david pereira em 15 de Setembro de 2010, 16:31
o Arduino + Processing e comunicação serial depois dá para eu poder usar por exemplo as teclas A=esquerda D=direita W=frente S=tras ?? e por exemplo Q=webparacima e E= webparabaixo??
Onde posso comprar isso?
Título: Re: Controlar Arduino pelo PC
Enviado por: XicoMBD em 15 de Setembro de 2010, 16:41
O processing não se compra, é open source, podes encontrá-lo aqui:
http://processing.org/ (http://processing.org/)
Já o arduino podes comprar na maior parte destas lojas portuguesas:
http://lusorobotica.com/index.php?topic=86.0 (http://lusorobotica.com/index.php?topic=86.0)

E sim podes fazer isso tal como eu fiz neste robot:
http://letsmakerobots.com/node/20554 (http://letsmakerobots.com/node/20554)
e neste, no qual ando a trabalhar:
http://letsmakerobots.com/node/22470 (http://letsmakerobots.com/node/22470)

Título: Re: Controlar Arduino pelo PC
Enviado por: AcidDagger em 15 de Setembro de 2010, 16:45
para controlar pela teclas é so usar a função key press () no processing. Super simples!

Se precisares de ajuda diz. Que eu dou-te um exemplo fácil.
Título: Re: Controlar Arduino pelo PC
Enviado por: andre_f_carvalho em 15 de Setembro de 2010, 16:53
O processing não se compra, é open source, podes encontrá-lo aqui:
http://processing.org/ (http://processing.org/)
Já o arduino podes comprar na maior parte destas lojas portuguesas:
http://lusorobotica.com/index.php?topic=86.0 (http://lusorobotica.com/index.php?topic=86.0)

E sim podes fazer isso tal como eu fiz neste robot:
http://letsmakerobots.com/node/20554 (http://letsmakerobots.com/node/20554)
e neste, no qual ando a trabalhar:
http://letsmakerobots.com/node/22470 (http://letsmakerobots.com/node/22470)

no robô que estas a trabalhar podes utilizar um esticador de correntes como se usa nas bikes de DH e assim a lagarta n te sai do lugar como mostra no vídeo

cump.
Título: Re: Controlar Arduino pelo PC
Enviado por: david pereira em 15 de Setembro de 2010, 16:56
Ok então mando vir um Arduino duemilanove e depois basta liga-lo ao PC abrir o Arduino Servo Control e direcionar o meu robot?? em termos de codigos , é que ainda nao sei nada... se pudesse meter um exemplo tipo usando as setas ou umas teclas quaisquer agradecia bastante
Título: Re: Controlar Arduino pelo PC
Enviado por: AcidDagger em 15 de Setembro de 2010, 16:57
Arduino Servo Control?  ::) Não  :P

Para controlares o robot tens de criar uma pequena aplicação em processing. Não é nada de mais  :)

Basta chamar a função void KeyPressed () e sempre que carregares numa tecla vai ser enviado um valor (ASCII) depois tens que ter um sketch a correr no arduino para caso seja pressionada a tecla 'W' por exemplo o robot andar para a frente.
Título: Re: Controlar Arduino pelo PC
Enviado por: david pereira em 15 de Setembro de 2010, 16:58
como é que faço isso?
Título: Re: Controlar Arduino pelo PC
Enviado por: AcidDagger em 15 de Setembro de 2010, 17:00
Basta chamar a função void KeyPressed () e sempre que carregares numa tecla vai ser enviado um valor (ASCII) depois tens que ter um sketch a correr no arduino para caso seja pressionada a tecla 'W' por exemplo o robot andar para a frente.
Título: Re: Controlar Arduino pelo PC
Enviado por: ptrobotics em 15 de Setembro de 2010, 17:02
Antes de haver Arduino, fiz muitas coisas com AVR+Bascom AVR (compilador Basic)+transceivers Aurel ou Radiometrix+Visual Basic. Mas neste momento não tenho nenhuma especie de tutorial.
Título: Re: Controlar Arduino pelo PC
Enviado por: david pereira em 15 de Setembro de 2010, 17:04
existem alguns tuturiais sobre isso (processing no arduino)?
Título: Re: Controlar Arduino pelo PC
Enviado por: amando96 em 15 de Setembro de 2010, 17:04
Boas,
Instalas o processing, e vais seguindo os exemplos básicos, rápidamente apanhas o jeito, é mesmo muito simples, e há uma carrada de exemplos no próprio IDE.

Link e mais info Aqui (http://processing.org/)

Quando já tiveres mais habituado podes começar a fazer códigos mesmo teus, e quando tiveres mais prática passas para o controlo do robô.

Irás encontrar exemplos de comunicar com o arduino, outros de controlar servos com o arduino, etc, depois terás de saber juntá-los e pô-los a funcionar para a tua aplicação especifica.

Já programaste em que lingua?
Título: Re: Controlar Arduino pelo PC
Enviado por: david pereira em 15 de Setembro de 2010, 17:06
eu nunca programei ... sou mesmo novato
Título: Re: Controlar Arduino pelo PC
Enviado por: XicoMBD em 15 de Setembro de 2010, 17:07
depois tens que ter um sketch a correr no arduino para caso seja pressionada a tecla 'W' por exemplo o robot andar para a frente.
Ou podes utilizar a biblioteca arduino (http://www.arduino.cc/playground/Interfacing/Processing (http://www.arduino.cc/playground/Interfacing/Processing)) para o processing que ainda torna as coisas mais simples.

no robô que estas a trabalhar podes utilizar um esticador de correntes como se usa nas bikes de DH e assim a lagarta n te sai do lugar como mostra no vídeo

cump.
Isso ja foi resolvido, bastou apretar melhor com alicates...

eu nunca programei ... sou mesmo novato
Faz o que o amando diz, instala o processing, vai experimentando os exemplos e tenta perceber com funciona.
Título: Re: Controlar Arduino pelo PC
Enviado por: david pereira em 15 de Setembro de 2010, 17:11
só não precebi o que era o IDE

("Boas,
Instalas o processing, e vais seguindo os exemplos básicos, rápidamente apanhas o jeito, é mesmo muito simples, e há uma carrada de exemplos no próprio IDE.")
Título: Re: Controlar Arduino pelo PC
Enviado por: XicoMBD em 15 de Setembro de 2010, 17:13
só não precebi o que era o IDE

http://pt.wikipedia.org/wiki/Ambiente_de_Desenvolvimento_Integrado (http://pt.wikipedia.org/wiki/Ambiente_de_Desenvolvimento_Integrado)

É o programa que utilizas para criar as aplicações...
Neste caso o processing e o arduino
Título: Re: Controlar Arduino pelo PC
Enviado por: david pereira em 15 de Setembro de 2010, 17:16
e em relação aos motores? quais é que recomendam?
 
Título: Re: Controlar Arduino pelo PC
Enviado por: Cynary em 15 de Setembro de 2010, 17:18
Para fazeres o que pretendes fazer, precisas de aprender a programar.
Antes de aprenderes os básicos pelo menos, qualquer resposta que te possamos dar vai provavelmente ser-te inútil.
A linguagem que o arduino usa é processing (C com algumas funções que facilitam muita coisa). Aconselho-te a aprender processing (consegues fazer isso bem durante um período, se é para teres isso feito em AP) e C. Depois de perceberes pelo menos as bases, volta aqui, lê tudo o que escreveram, e vê se já percebes o que queremos dizer ;) Depois, pede ajuda com quaisquer dúvidas que tenhas ... agora simplesmente não estás pronto para perceber as respostas :/
O IDE do arduino é um programa que facilita a escrita, compilação e upload dos programas do computador para o arduino (se já fizeste alguma coisa com o arduino, de certeza já usaste o IDE!).
O controlo do motor, comunicação com o computador, etc. é feito através dos programas em processing.
Título: Re: Controlar Arduino pelo PC
Enviado por: david pereira em 15 de Setembro de 2010, 17:21
ok obrigadao malta, vou começar a ler e aprender essa linguagem e depois se tiver alguma duvida , voçes ajudam-me.
cumprimentos
Título: Re: Controlar Arduino pelo PC
Enviado por: amando96 em 15 de Setembro de 2010, 17:26
O IDE do arduino serve para desenvolver código para o arduino, tem exemplos, botões para verificar erros no programa, para programar, para receber dados do arduino, etc...

Por isso dá para comparar com por exemplo o microsoft Word, serve para redigir textos, logo tem spell checker, botões para tamahos de letra, bold, italico etc, aliás, o IDE do arduino tem menos botões que o Word :P

Começa a modificar uns exemplos, assim vês o que faz o quê, irás decerteza receber de vez em quando uns erros, se perceberes inglês, consegues perceber o que é que o erro está a detectar, e depois podes corrigi-lo, para o programa funcionar :)

Se não percebers o que o erro significa, copia e cola no google, normalmente encontras a resposta num forum, de alguém que teve um erro igual  ;D
Título: Re: Controlar Arduino pelo PC
Enviado por: david pereira em 15 de Setembro de 2010, 17:28
Ok então mando vir um Arduino duemilanove e depois basta liga-lo ao PC abrir o Arduino Servo Control e direcionar o meu robot?? em termos de codigos , é que ainda nao sei nada... se pudesse meter um exemplo tipo usando as setas ou umas teclas quaisquer agradecia bastante


O Arduino Servo Control era outra coisa :S Nevermind....
Obrigadao pelo apoio xD
Título: Re: Controlar Arduino pelo PC
Enviado por: david pereira em 18 de Setembro de 2010, 14:20
olá outra vez, encontrei um codigo que controla dois servos pela porta serie.

#include <Servo.h>
int minPulse1     =  0;   // minimum servo position
int maxPulse1     =  180; // maximum servo position
int turnRate1     =  10;  // servo turn rate increment (larger value, faster rate)
int minPulse2     =  0;  // minimum servo position
int maxPulse2     =  180; // maximum servo position
int turnRate2     =  10;  // servo turn rate increment (larger value, faster rate)
int buttonPin     = 13;    // pin that the trigger will be connected to
/** The Arduino will calculate these values for you **/
int centerServo1;
int centerServo2;
int pulseWidth1;       // servo pulse width
int pulseWidth2;       // servo pulse width

Servo servo1;
Servo servo2;

void setup() {
  pinMode(buttonPin, OUTPUT);
  servo1.attach(9);
  servo2.attach(10);
  centerServo1 = maxPulse1 - ((maxPulse1 - minPulse1)/2);
  centerServo2 = maxPulse2 - ((maxPulse2 - minPulse2)/2);
  pulseWidth1 =  centerServo1;
  pulseWidth2 =  centerServo2;
  Serial.begin(9600);   // opens serial port, sets data rate to 9600 bps
  Serial.println("   Arduino Serial Servo Control");
  Serial.println("Press a, s, d, or w to move, spacebar to center, and f to fire");
  Serial.println();
}

void loop() {

  // check for serial input
  if (Serial.available() > 0) {

    int data = Serial.read();    // read the incoming byte:
    digitalWrite(buttonPin, LOW);  // turn the pin off on any incoming data
    switch(data)
    {
   case 'a' :  pulseWidth1 = pulseWidth1 - turnRate1;  break;
   case 'd' :  pulseWidth1 = pulseWidth1 + turnRate1;  break ;
   case ' ' :  pulseWidth1 = pulseWidth2 = centerServo1;  break;
   case 's' :  pulseWidth2 = pulseWidth2 - turnRate1;  break;
   case 'w' :  pulseWidth2 = pulseWidth2 + turnRate1;  break ;
   case 'f' :  digitalWrite(buttonPin, HIGH); delay (1000); digitalWrite(buttonPin, LOW); break;

    }
    // stop servo pulse at min and max
    if (pulseWidth1 > maxPulse1) { pulseWidth1 = maxPulse1; }
    if (pulseWidth1 < minPulse1) { pulseWidth1 = minPulse1; }

   // stop servo pulse at min and max
    if (pulseWidth2 > maxPulse2) { pulseWidth2 = maxPulse2; }
    if (pulseWidth2 < minPulse2) { pulseWidth2 = minPulse2; }

     servo1.write(pulseWidth1);
     servo2.write(pulseWidth2);

    // print pulseWidth back to the Serial Monitor (uncomment to debug)
    Serial.print("Servo 1: ");
    Serial.print(pulseWidth1);
    Serial.print(" Servo 2: ");
    Serial.print(pulseWidth2);
    Serial.println("degrees");
  }
}

Eu agora queria saber umas coisas... no código a rotaçao do servo é de 0 a 180 graus, logo nao me interessa porque eu quero um motor sempre a andar quanto clico nas teclas , e nos case "w" pelo que percebi só roda UM motor num sentido e não os dois... queria fazer tipo DIFFERENTIAL DRIVE mas preciso da vossa ajuda.
Título: Re: Controlar Arduino pelo PC
Enviado por: magno em 09 de Outubro de 2010, 03:59
ola sou novo na areea d autoaçao mas gostaria d saber com fazer um robo controlado via wireless??






grato
Título: Re: Controlar Arduino pelo PC
Enviado por: magno em 09 de Outubro de 2010, 04:02
ola sou novo na area de automaçao e gostaria de saber com fazer um robo controlado via wireless??
materiais? programaçao? conexoes?



grato
Título: Re: Controlar Arduino pelo PC
Enviado por: ptrobotics em 09 de Outubro de 2010, 10:36
A forma mais fácil:

PC:
1 - Arduino
1 - Shield Xbee (wireless)
Software: Arduino+Processing

Robot
1 - Arduino
1 - Shield Xbee (wireless)
1 - Shield Motor
Software: Arduino

E já vi pelo forum algures um exemplo de comunicação, tens de procurar  8)