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 […]