LusoRobótica - Robótica em Português
Robótica => Iniciantes => Tópico iniciado 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
-
Cabo ou wireless?
Wireless: Infra-vermelhos, radio, Zigbee ou bluetooth?
-
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.
-
Então é super simples. Arduino + Processing e comunicação serial
-
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?
-
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)
-
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.
-
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.
-
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
-
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.
-
como é que faço isso?
-
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.
-
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.
-
existem alguns tuturiais sobre isso (processing no arduino)?
-
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?
-
eu nunca programei ... sou mesmo novato
-
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.
-
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.")
-
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
-
e em relação aos motores? quais é que recomendam?
-
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.
-
ok obrigadao malta, vou começar a ler e aprender essa linguagem e depois se tiver alguma duvida , voçes ajudam-me.
cumprimentos
-
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
-
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
-
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.
-
ola sou novo na areea d autoaçao mas gostaria d saber com fazer um robo controlado via wireless??
grato
-
ola sou novo na area de automaçao e gostaria de saber com fazer um robo controlado via wireless??
materiais? programaçao? conexoes?
grato
-
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)