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.

Related Posts Plugin for WordPress, Blogger...Share

One Response to “Projecto RobóticTank – Controlo Via Teclado”

  1. […] é 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 […]

Leave a Reply