ini merupakan robot avoider dari dewata elektronik yang merupakan pengembangan dari robot pengikut garis (Line Follower Robot) yang pernah kami bahas pada artikel sebelumnya. unjuk kerja robot ini adalah mendeteksi objek di depan dengan memanfaatkan sebuah sensor Ultrasonik, apabila objek berupa dinding atau penghalang lainnya di deteksi oleh sensor maka robot akan melakukan manuver (berbelok) sesuai dengan kondisi objek lain disekitarnya. Tentunya saja robot ini berbasiskan ErulDuino Board. pada pembuatan robot ini memerlukan bahan-bahan antara lain :
  • Sebuah Board Erulduino dari Dewata Elektronik
  • Sebuah Sensor Ultrasonik (SRF04 atau kompatibel lainnya)
  • Satu Set Twin Gearbox Tamiya
  • Satu Set Track Whell Tamiya
  • Sebuah Driver motor L293D
  • Bahan acrylic dan PCB polos
hal yang terpenting dalam pembuatan robot sederhana ini adalah pemilihan body robot agar tidak terlalu berat. maka penulis memanfaatkan bahan pcb lubang dang pcb plos untuk mendisain body dasar dari robot ini seperti penampakan dalam gambar ini :
Dalam Gambar tersebut, terlihat bagaimana penempatan dari Twin Gearbox berada pada posisi belakang dari Track Whell sehingga apabila robot saat berjalan maju ataupun mundur titik tumpuan dari berat badan robot tepat berada di tengah, hal ini sangat penting untuk menjaga keseimbangan robot saat bermanuver. pada bagian penggeraknya kmai memanfaatkan satu set Twin Gearbox motor milik Tamiya berikut ini gambar Gearbox beserta ukuran Dimensinya.







Dengan memanfaatkan sebuah IC Driver Motor 1Amp yang bernama L293D dimana arus maksimum yang dihasilkan adalah 1 ampere maka sudah cukup untuk menggerakkan 2 buah motor dc 5volt yang terdapat pada Twin Gearbox tersebut berikut ini merupakan konfigurasi dari pin L293d yang digunakan pada robot koplakoid ini :
IC L293 adalah IC Quadruple Half H Driver yang dapat digunakan sebagai driver 2 arah  untuk arus yang cukup besar (1A, untuk tipe L293D maks 600mA). datasheet ICL293 dapat diunduh disini .
Sebagaimana kita ketahui bahwa pin digital Arduino (umumnya) hanya bisa meng handle arus sekitar 40 mA, sehingga untuk menggerakan motor DC, stepper Motor, ataupun beban lainnya yang memerlukan arus besar perlu driver. oleh sebab itulah IC ini yang penulis gunakan untuk mendrive Twin Gearbox motor pada robot ini.

dan selanjutnya ini merupakan potongan program dari robot koplakoid yang penulis buat :

1
//Robot Koplakoid dewata-elektronik
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46


int arrayIndex = 0;
int total = 0;
int averageDistance = 0;
 
int echoPin = 2;                               // SRF05 echo pin (digital 2)
int initPin = 3;                               // SRF05 trigger pin (digital 3)
unsigned long pulseTime = 0;
unsigned long distance = 0;
int motor1Pin1 = 6;                             // pin 2 pada L293D
int motor1Pin2 = 5;                             // pin 7 pada L293D
int enable1Pin = 9;                             // pin 1 pada L293D
int motor2Pin1 = 4;                             // pin 10 pada L293D
int motor2Pin2 = 7;                             // pin  15 pada L293D
int enable2Pin = 10;                            // pin 9 pada L293D
int a = 8;
int b = 10;
void setup() {
 
  Serial.begin(9600);
  pinMode(motor1Pin1, OUTPUT);
  pinMode(motor1Pin2, OUTPUT);
  pinMode(enable1Pin, OUTPUT);
  pinMode(motor2Pin1, OUTPUT);
  pinMode(motor2Pin2, OUTPUT);
  pinMode(enable2Pin, OUTPUT);
  pinMode(a, OUTPUT);
  pinMode(b, OUTPUT);
  digitalWrite(enable1Pin, HIGH);
  digitalWrite(enable2Pin, HIGH);
  digitalWrite(a, LOW);
  digitalWrite(b, HIGH);
  pinMode(initPin, OUTPUT);
  pinMode(echoPin, INPUT);
  for (int thisReading = 0; thisReading < numOfReadings; thisReading++) {
    readings[thisReading] = 0;
  }
}
void loop() {
  digitalWrite(initPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(initPin, LOW);
  pulseTime = pulseIn(echoPin, HIGH);
  distance = pulseTime/58;
  total= total - readings[arrayIndex];
  readings[arrayIndex] = distance;
  total= total + readings[arrayIndex];