Projecto RobóticTank – Controlo Via Teclado
Posted by admin on 12 de Fevereiro de 2012 | Filed under Electrónica, Programação, Projectos, Robótica

Já tinha apresentado anteriormente uma experiência de controlar o meu robot através do teclado, mas era necessário usar o SerialMonitor para fazer a leitura das teclas desejadas.
No entanto existe a possibilidade de recorrer a tecnologia “Processing” para criar uma solução mais directa para o controlo do robot, e foi o que eu explorei agora.
Recorrendo à tecnologia “Processing” criei o seguinte código no qual uso as teclas “UP”, “DOWN”, “RIGHT”, “LEFT” e “S” para andar para a frente, para trás, para a direita, para a esquerda e para parar, respectivamente.
O código criado é o seguinte:
import processing.serial.*;
Serial myPort;
void setup()
{
size(200,200);
noStroke();
background(0);
// Change "COM35" by your board's COM port
myPort = new Serial(this, "COM3", 9600);
}
void draw()
{
//Seta avançar
triangle(100 , 25, 75, 75, 125, 75);
//Seta Esquerda
triangle(75 , 125, 75, 75, 25, 100);
//Seta Recuar
triangle(75 , 125, 100, 175, 125, 125);
//Seta Direita
triangle(175 , 100, 125, 75, 125, 125);
}
void keyPressed()
{
if (key == CODED)
{
if (keyCode == UP)
{
myPort.write(119);
fill(153);
//Seta avançar
triangle(100 , 25, 75, 75, 125, 75);
fill(255);
//Seta Esquerda
triangle(75 , 125, 75, 75, 25, 100);
//Seta Recuar
triangle(75 , 125, 100, 175, 125, 125);
//Seta Direita
triangle(175 , 100, 125, 75, 125, 125);
}
else if (keyCode == DOWN)
{
myPort.write(115);
fill(153);
//Seta Recuar
triangle(75 , 125, 100, 175, 125, 125);
fill(255);
//Seta avançar
triangle(100 , 25, 75, 75, 125, 75);
//Seta Esquerda
triangle(75 , 125, 75, 75, 25, 100);
//Seta Recuar
triangle(75 , 125, 100, 175, 125, 125);
//Seta Direita
triangle(175 , 100, 125, 75, 125, 125);
}
else if (keyCode == LEFT)
{
myPort.write(100);
fill(153);
//Seta Esquerda
triangle(75 , 125, 75, 75, 25, 100);
fill(255);
//Seta Recuar
triangle(75 , 125, 100, 175, 125, 125);
//Seta avançar
triangle(100 , 25, 75, 75, 125, 75);
//Seta Esquerda
triangle(75 , 125, 75, 75, 25, 100);
//Seta Direita
triangle(175 , 100, 125, 75, 125, 125);
}
else if (keyCode == RIGHT)
{
myPort.write(97);
fill(153);
//Seta Direita
triangle(175 , 100, 125, 75, 125, 125);
fill(255);
//Seta Esquerda
triangle(75 , 125, 75, 75, 25, 100);
//Seta Recuar
triangle(75 , 125, 100, 175, 125, 125);
//Seta avançar
triangle(100 , 25, 75, 75, 125, 75);
}
}
else if (key == 's' || key == 'S')
{
myPort.write(113);
}
}
No futuro ainda irei fazer algumas melhorias no código pelo que depois colocarei mais informação acerca deste assunto.
Share



Maio 14th, 2013 at 12:01 am
[…] é uma linguagem de programação da qual eu já falei aqui no blog, é uma linguagem de programação que tem uma sintaxe muito semelhante ao C mas que permite fazer […]