Minggu, 21 Februari 2016

Robot Kontrol Berbasis Komputer dan Interface Processing 2.2.1 (Processing 3.0.1)



Pada pembahasan sebelumnya kita telah mempelajari bagaimana mengendalikan LED menggunakan komputer menggunakan interface Processing 2.21 dengan metode komunikasi serial, maka pada postingan ini kita akan membahas pembuatan kontrol gerak robot menggunakan komputer interface Processing yang merupakan komunikasi serial antara PC/Laptop dengan Arduino.

Gambar 1 Ilustrasi kontrol robot menggunakan PC/ Laptop

Dalam hal ini PC bertugas sebagai transmitter pemberi perintah, sedangkan robot sebagai receiver penerima perintah. Komunikasi serial antara komputer dan Arduino ini akan ditampilkan menggunakan interface Processing 2.2.1 


Desain Robot Mobile dengan Kontrol Berbasis Komputer



Desain Rangkaian Robot Digital yang Dikendalikan Keyboard PC



Untuk membuat sebuah robot yang dapat dikendalikan komputer, board Arduino telah dilengkapi dengan komunikasi serial berbasis USB yang menghubungkan board Arduino dengan komputer PC/laptop. Gambar 2 adalah desain lengkap robot digital yang dikendalikan komputer menggunakan Arduino Uno. Motor driver untuk motor DC terhubung dengan Port Arduino yaitu PORT 9, 6, 5, dan 3.

Gambar 2 Simulasi Proteus robot kontrol PC

Pemrograman Robot Digital yang Dikendalikan Keyboard PC

Tabel berikut ini menunjukkan logika pada Arduino untuk menterjemahkan perintah karakter yang dikirimkan oleh keyboard PC

Tabel 1 Logika gerak pada Arduino untuk menterjemahkan
karakter dari komputer PC
Karakter
PORT 9
PORT 6
PORT 5
PORT 3
Makna
A
LOW
HIGH
HIGH
LOW
Belok kanan
Z
HIGH
LOW
LOW
HIGH
Belok kiri
K
LOW
HIGH
LOW
HIGH
Maju
M
HIGH
LOW
HIGH
LOW
Mundur
O
LOW
LOW
LOW
LOW
Diam

Berikut adalah langkah pembuatan robot dengan kontrol keyboard komputer:

1.      Susun rangkaian robot kontrol menggunakan PC seperti Gambar 3.


Gambar 3 Desain Fritzing rangkaian robot kontrol komputer



2.      Hubungkan Arduino ke komputer dengan kabel USB.

3.      Buka software Arduino, dan ketik program berikut:





// ROBOT KONTROL KOMPUTER
// Definisi awal
int kiriA = 9;
int kiriB = 6;
int kananA = 5;
int kananB = 3;
void setup()
{
  Serial.begin(9600);
  pinMode(kiriA,OUTPUT);
  pinMode(kiriB,OUTPUT);
  pinMode(kananA,OUTPUT);
  pinMode(kananB,OUTPUT);
}
void loop()
{
  if(Serial.available()>0)
  {
    byte dataku=Serial.read();
    if (dataku=='M')
    {
      digitalWrite(kiriA,HIGH);
      digitalWrite(kiriB,LOW);
      digitalWrite(kananA,HIGH);
      digitalWrite(kananB,LOW);
      Serial.println("ROBOT MUNDUR");
    }
    else if (dataku=='K')
    {
      digitalWrite(kiriA,LOW);
      digitalWrite(kiriB,HIGH);
      digitalWrite(kananA,LOW);
      digitalWrite(kananB,HIGH);
      Serial.println("ROBOT MAJU");
    }
    else if (dataku=='Z')
    {
      digitalWrite(kiriA,LOW);
      digitalWrite(kiriB,HIGH);
      digitalWrite(kananA,HIGH);
      digitalWrite(kananB,LOW);
      Serial.println("ROBOT BELOK KIRI");
    }
    else if (dataku=='A')
    {
      digitalWrite(kiriA,HIGH);
      digitalWrite(kiriB,LOW);
      digitalWrite(kananA,LOW);
      digitalWrite(kananB,HIGH);
      Serial.println("ROBOT BELOK KANAN");
    }
    else
    {
      digitalWrite(kiriA,LOW);
      digitalWrite(kiriB,LOW);
      digitalWrite(kananA,LOW);
      digitalWrite(kananB,LOW);
      Serial.println("ROBOT DIAM");
    }
  }
}
4.      Pilih Board dan Serial PORT yang digunakan di menu Tools.
5.      Tekan tombol Verify dipojok kiri toolbar.
6.      Setelah muncul pesan “Done Compiling”, selanjutnya tekan tombol Upload yang ada di kanan tombol Verify.
7.      Setelah muncul pesan “Done Uploading”. Selanjutnya buka Serial Monitor Arduino dengan mengklik tombol bergambar kaca pembesar di ojok kanan Toolbar. Ketika kita menekan huruf “A” atau “shift a”, maka akan muncul tulisan “ROBOT BELOK KANAN”, ketika menekan huruf “Z” atau “shift z”, maka akan muncul tulisan “ROBOT BELOK KIRI”, ketika menekan huruf “K” atau “shift k” maka muncul tulisan “ROBOT MAJU”, dan ketika menekan huruf “M” atau “shift m” maka muncul tulisan “ROBOT MUNDUR”, sedangkan ketika huruf yang lain yang ditekan maka akan muncul tulisan “ROBOT DIAM”.
Gambar 4 Pengujian simulasi robot kontrol kendali PC



Interface Processing untuk Kontrol Robot

Sebagaimana telah dibahas diatasa yaitu robot kontrol menggunakan keyboard PC, komunikasi data serial antara komputer PC/Laptop dan Arduino dapat menggunakan fasilitas Serial Monitor Pada IDE Arduino, Maka sekarang kita akan membuat tampilan sendiri dengan menggunakan software Processing 2.2.1. Dengan menggunakan Processing 2.2.1 kita dapat membuat sistem interfacing untuk mengontrol arah gerak robot yaitu maju, mundur, belok kiri, dan belok kanan dengan tampilan yang lebih menarik dan mudah digunakan. 
1. Bukalah program Processing 2.2.1 yang dapat didownload secara free pada alamat: https://processing.org/download/
Gambar 5 Tampilan start-up Processing 2.2.1

2. Setelah di buka, maka akan muncul tampilan sketch seperti berikut ini
Gambar 6 Tampilan sketch Processing 2.2.1

3. Buatlah program berikut pada sketch
 




import processing.serial.*;
Serial myPort;
int a = 200;
void setup(){ 
  myPort = new Serial(this, "COM21", 9600);
  myPort.buffer(1);
  size(300, 300);
  background(200);
  noLoop();  // Makes draw() only run once
}
void draw() {
  fill(a,0,0);
  rect(100,0,width/3, height/3);
  rect(0,100,width/3, height/3);
  rect(100,100,width/3, height/3);
  rect(200,100,width/3, height/3);
  rect(100,200,width/3, height/3);
}
void mousePressed() {
  println("Coordinates: " + mouseX +"," + mouseY);
  mouseAction();
    }
void mouseAction(){
  if( mouseX > 100 && mouseX < 200){
   if( mouseY > 0 && mouseY < 100){
    println("MAJU");
    myPort.write('K');
   }
  }
  if( mouseX > 0 && mouseX < 100){
   if( mouseY > 100 && mouseY < 200){
    println("KIRI");
    myPort.write('A');
   }
  }
  if( mouseX > 100 && mouseX < 200){
   if( mouseY > 100 && mouseY < 200){
    println("DIAM");
    myPort.write('O');
   }
  }
    if( mouseX > 200 && mouseX < 300){
   if( mouseY > 100 && mouseY < 200){
    println("KANAN");
    myPort.write('Z');
   }
  }
  if( mouseX > 100 && mouseX < 200){
   if( mouseY > 200 && mouseY < 300){
    println("MUNDUR");
    myPort.write('M');
   }
  }
}
 
Untuk membuat interface maka gunakanlah program komunikasi serial sebagaimana telah dibahas pada bab mengakses komunikasi PC dan Arduino. Kemudian dibuat pengiriman perintah berupa karakter tertentu yang akan diterjemahkan oleh mikrokontroler untuk menggerakan robot.

3. Setelah membuat program, kemudian tekan toolbar save misalnya GUI_Robot_Kontrol, Selanjutnya, hubungkan board Arduino robot dengan komputer kemudian klik run pada GUI_Robot_Kontrol maka akan muncul tampilan berikut dan sistem siap untuk dilakukan pengujian.
Gambar 7 Interface untuk menggerakan mobile robot

4. Untuk board Arduino yang berbeda, lakukan juga pengujian kontrol arah gerak robot dengan terlebih dahulu mengisi/mengganti COM pada file program sesuai seperti yang tertera pada Device Manager dan Baudrate sesuai dengan Arduino yang digunakan pada program Processing diatas.
Gambar 8 Robot digital dengan kontrol GUI processing

 
Share:

2 komentar: