Triple Sensor Obstacle Avoider Robot
Perkenalan
Project ini merupakan pengembangan dari Project Obstacle Avoider Robot sebelumnya.
Project tersebut hanya menggunakan satu buah sensor jarak pada sisi tengah depan robot saja. Sehingga hanya bisa mendeteksi sisi bagian depan saja.
Pada project ini kita akan menambahkan sensor jarak pada sisi kiri dan sisi kanan robot sehingga robot bisa melihat tidak hanya pada sisi depan saja, tapi juga bisa melihat sisi kiri dan kanan juga.
Mari kita langsung merangkai.
Alat dan Komponen yang diperlukan
- Alat 🛠
- Komponen Yang Dibutuhkan 🔑
- Obeng Plus
- 1 x Arduino Nano
- 1 x Kabel USB Arduino Nano
- 1 x Komputer/Laptop
- 3 x Sensor Jarak
- 1 x Driver Motor
- 2 X Motor DC + Ban
- 1 x Kotak Baterai 2 Slot
- 2 x Baterai
- Baut seperlunya
- Kabel Jumper seperlunya
Petunjuk Merakit
◼️ Merakit Komponen Utama
▪️ Memasang Dudukan Motor ke Rangka Utama
Siapkan dua buah Dudukan Motor dan Rangka Utama seperti pada gambar di bawah ini.
Kemudian ambil salah satu dari dudukan motor. Kita akan memasang untuk sisi kiri terlebih dahulu. Pasangkan dudukan motor pada rangka utama dengan posisi seperti pada gambar di bawah ini.
Selanjutnya kita akan memasang untuk sisi kanan. Pasangkan dudukan motor pada rangka utama dengan posisi seperti pada gambar di bawah ini.
▪️ Memasang Motor Kiri
Setelah kedua dudukan motor terpasang, selanjutnya kita akan memasang motor kiri. Siapkan terlebih dahulu motor DC seperti ditunjukkan pada gambar di bawah ini.
Sebelumnya, pastikan titik tengah pada motor DC seperti yang ditunjuk oleh tanda panah di bawah ini menghadap atas.Kemudian masukkan baut panjang pada lubang sebelah kanan pada Motor DC seperti ditunjukkan pada gambar di bawah.
Masukkan baut panjang pada lubang sebelah kiri pada Motor DC seperti ditunjukkan pada gambar di bawah.
Selanjutnya, kita akan mengencangkan Motor DC pada Dudukan Motor menggunakan baut panjang yang telah kita pasang tadi. Sejajarkan ujung baut panjang pada lubang yang tersedia pada Dudukan Motor DC seperti ditunjukkan pada gambar di bawah ini.
Selanjutnya, kita akan mengencangkan Motor DC pada Dudukan Motor menggunakan baut panjang yang telah kita pasang tadi. Sejajarkan ujung baut panjang pada lubang yang tersedia pada Dudukan Motor DC seperti ditunjukkan pada gambar di bawah ini.
Setelah ujung baut panjang sejajar dengan lubang pada Dudukan Motor DC, kencangkan kedua baut tersebut dengan obeng seperti pada gambar di bawah ini.
Setelah dikencangkan, Motor DC akan tetap diam pada Dudukan Motor seperti pada gambar di bawah ini.
▪️ Memasang Motor Kanan
Selanjutnya, kita akan memasang Motor DC pada dudukan kanan. Langkah-langkahnya sama seperti memasang Motor DC kiri sebelumnya. Setelah Motor DC kanan terpasang, hasil akhirnya akan seperti pada gambar di bawah ini.
▪️ Memasang Roda Bebas
Langkah berikutnya, kita akan memasang roda bebas, yakni roda yang bebas bergerak ke arah manapun. Siapkan komponen roda bebas seperti yang ditunjukkan pada gambar di bawah.
Kemudian kita akan memasang roda bebas tersebut pada sisi bawah rangka utama. Perhatikan baik-baik gambar di bawah.
Sejajarkan lubang yang terdapat pada roda bebas dengan lubang yang terdapat pada bagian bawah rangka utama seperti yang ditunjuk oleh tanda panah di bawah.
Kencangkan roda bebas dengan baut seperti ditunjuk pada gambar di bawah.
Maka hasil akhirnya akan seperti pada gambar di bawah. Bagian depan rangka utama akan tampak naik karena terdapat roda bebas di bawahnya.
▪️ Memasang Ban
Selanjutnya kita akan memasang ban pada Motor DC. Siapkan dua buah ban Motor DC seperti pada gambar di bawah.
Kita akan memasang ban nya pada poros Motor DC yang berwarna putih.
Namun sebelum itu, perhatikan terlebih dahulu kalau terdapat bentuk yang unik antara poros Motor DC dan poros Ban. Pastikan antara poros Motor DC dan poros Ban sudah sejajar seperti ditandai pada gambar di bawah ini.
Setelah sejajar, doronglah Ban tersebut ke poros Motor DC secara perlahan.Lakukanlah hal yang sama untuk ban sebelah kanan. Jika kedua ban sudah terpasang, maka hasilnya akan seperti pada gambar di bawah ini.
▪️ Memasang Driver Motor
Selanjutnya kita akan memasang Driver Motor pada rangka utama. Siapkan 4 buah spacer kertas dan Driver Motor L298N seperti pada gambar di bawah ini.
Bukalah baut yang sebelumnya masih terpasang pada spacer kertas. Kemudian pasang keempat spacer kertas tersebut pada keempat lubang yang terdapat pada Driver Motor L298N. Hasil akhirnya akan seperti pada gambar di bawah ini yang menunjukkan keempat spacer kertas telah terpasang pada Driver Motor L298N.
Setelah memasang keempat spacer kertas pada Driver Motor L298N, selanjutnya kita akan memasangkannya pada rangka utama. Namun sebelum itu, perhatikan terlebih dahulu keempat posisi lubang pada rangka utama untuk memasang Driver Motor L298N di bawah ini.
Tancapkan dan sejajarkan ujung tajam spacer kertas pada keempat lubang tersebut dengan posisi seperti ditunjukkan pada gambar di bawah ini.
Apabila sudah keempat lubang sudah sejajar dengan keempat ujung spacer kertas, tekanlah hingga ujung spacer kertas terbenam sepenuhnya.Hasil akhir apabila Driver Motor L298N telah terpasang pada rangka utama akan seperti pada gambar di bawah ini.
▪️ Memasang Kotak Baterai
Selanjutnya kita akan memasang kotak baterai pada rangka utama. Siapkan komponen di bawah ini.
Pada rangka utama terdapat dua buah lubang baut untuk memasang kotak baterai seperti ditunjukkan pada gambar di bawah ini.
Sejajarkan dua buah lubang pada rangka utama tersebut dengan dua buah lubang yang terdapat pada kotak baterai.
Kemudian kencangkan dua buah lubang tersebut dengan dua buah baut.Maka hasil akhirnya setelah kotak baterai terpasang akan seperti pada gambar di bawah ini.
▪️ Memasang Baterai
Selanjutnya kita akan memasang dua buah baterai pada kotak baterai tersebut. Siapkan dua buah baterai seperti pada gambar di bawah ini.
Kemudian masukkan salah satu baterai ke slot pertama pada kotak baterai. Perhatikan petunjuk pada gambar di bawah. Masukkan baterai dengan kutub negatif masuk terlebih dahulu ke pegas pada kotak baterai.
Kemudian tekan hingga baterai masuk sepenuhnya pada slot pertama kotak baterai.
Lakukan hal yang sama untuk baterai kedua. Masukkan baterai dengan kutub negatif masuk terlebih dahulu menghadap pegas pada kotak baterai seperti ditunjukkan oleh gambar di bawah ini.
Kemudian tekan hingga baterai masuk sepenuhnya pada slot kotak baterai.
Untuk keamanan, sebelum lanjut ke langkah berikutnya, pastikan posisi saklar pada kotak baterai sudah berada pada posisi OFF seperti ditunjukkan pada gambar di bawah ini.
Beginilah hasil akhirnya apabila kita telah memasang baterai pada kotak baterai.
▪️ Memasang Arduino Nano
Selanjutnya kita akan memasang Arduino Nano pada rangka utama. Siapkan 4 buah spacer kertas dan Arduino Nano.
Pasangkan keempat spacer kertas pada keempat lubang yang terdapat pada Arduino Nano sehingga menjadi seperti pada gambar di bawah ini.
Setelah keempat spacer kertas dipasang, kita akan memasangkan pada rangka utama. Perhatikan tanda panah pada gambar di bawah ini. Lubang yang ditandai oleh tanda panah putih pada gambar di bawah ini adalah lubang tempat kita memasukkan keempat ujung spacer kertas tadi.
Sejajarkan keempat ujung spacer kertas dengan keempat lubang pada rangka utama seperti ditunjukkan pada gambar di bawah ini.Kemudian tekan keempat spacer kertas hingga bagian putih spacer kertas menyentuh rangka utama seperti pada gambar di bawah ini.
▪️ Memasang Sensor Jarak
Karena kita akan memasang tiga buah sensor jarak yang terletak pada sisi kiri, tengah, dan kanan robot, kita akan membaginya segmen ini menjadi tiga bagian agar tidak membuat teman-teman bingung.
Sensor Jarak Kiri
Kita akan memasang sensor jarak pada sisi kiri robot. Siapkan terlebih dahulu dudukan Servo Motor dan posisikan seperti pada gambar di bawah ini.
Kita akan memasangkan dua buah baut pada dua lubang seperti yang ditunjuk oleh tanda panah di bawah ini.
Namun, jangan memasang kedua baut tersebut sampai masuk semua terlebih dahulu. Sisakan sedikit bagian ujung tajam baut seperti pada gambar di bawah ini.Selanjutnya, kita akan memasang nya pada pada rangka utama. Perhatikan dua buah lubang yang ditandai oleh tanda panah seperti pada gambar di bawah ini.
Masih ingat bagian ujung tajam baut pada langkah 31 tadi? Masukkan kedua ujung tajam baut tadi pada lubang yang ditandai oleh tanda panah hitam di atas. Pastikan posisi nya seperti pada gambar di bawah ini.
Setelah kedua ujung tajam baut sejajar dengan lubang pada rangka utama, kencangkan kedua baut tersebut dengan obeng plus. Sehingga dudukan motor servo akan menempel seperti pada gambar di bawah ini.Selanjutnya, kita akan memasang Sensor Jarak pada dudukan sensor. Siapkan dudukan sensor dengan posisi slot menghadap kiri seperti ditunjukkan oleh tanda panah pada gambar di bawah.
Masukkan Sensor Jarak pada dudukan sensor. Ingat, pastikan posisi slot menghadap kiri seperti ditunjukkan oleh tanda panah pada gambar di bawah.Kemudian kita akan memasangnya pada rangka utama melalui dudukan servo motor yang telah kita pasang pada langkah 32 hingga langkah 33 tadi.
Masukkan Sensor Jarak yang telah terpasang pada dudukan sensor dengan posisi seperti pada gambar di bawah.
Kini Sensor Jarak sebelah kiri telah terpasang seperti pada gambar di bawah.
Sensor Jarak Kanan
Kita akan memasang sensor jarak pada sisi kanan robot. Siapkan terlebih dahulu dudukan Servo Motor dan posisikan seperti pada gambar di bawah ini.
Kita akan memasangkan dua buah baut pada dua lubang seperti yang ditunjuk oleh tanda panah di bawah ini.
Namun, jangan memasang kedua baut tersebut sampai masuk semua terlebih dahulu. Sisakan sedikit bagian ujung tajam baut seperti pada gambar di bawah ini.Selanjutnya, kita akan memasang nya pada pada rangka utama. Perhatikan dua buah lubang yang ditandai oleh tanda panah seperti pada gambar di bawah ini.
Masih ingat bagian ujung tajam baut pada langkah 33 tadi? Masukkan kedua ujung tajam baut tadi pada lubang yang ditandai oleh tanda panah hitam di atas. Pastikan posisi nya seperti pada gambar di bawah ini.
Setelah kedua ujung tajam baut sejajar dengan lubang pada rangka utama, kencangkan kedua baut tersebut dengan obeng plus. Sehingga dudukan motor servo akan menempel seperti pada gambar di bawah ini.Selanjutnya, kita akan memasang Sensor Jarak pada dudukan sensor. Siapkan dudukan sensor dengan posisi slot menghadap kanan seperti ditunjukkan oleh tanda panah pada gambar di bawah.
Masukkan Sensor Jarak pada dudukan sensor. Ingat, pastikan posisi slot menghadap kanan seperti ditunjukkan oleh gambar di bawah.Kemudian kita akan memasangnya pada rangka utama melalui dudukan servo motor yang telah kita pasang pada langkah 37 hingga langkah 38 tadi.
Masukkan Sensor Jarak yang telah terpasang pada dudukan sensor dengan posisi seperti pada gambar di bawah.
Kini Sensor Jarak sebelah kanan telah terpasang seperti pada gambar di bawah.
Sensor Jarak Tengah
Kita akan memasang sensor jarak pada sisi tengah robot. Siapkan terlebih dahulu dudukan Sensor Jarak dan posisikan seperti pada gambar di bawah ini.
Posisikan slot menghadap kiri seperti ditunjukkan oleh tanda panah pada gambar di bawah.
Masukkan Sensor Jarak pada dudukan sensor. Ingat, pastikan posisi slot menghadap kiri seperti ditunjukkan oleh gambar di bawah.Kemudian kita akan memasangnya pada rangka utama.
Masukkan Sensor Jarak yang telah terpasang pada dudukan sensor pada slot yang terdapat pada rangka utama dengan posisi seperti pada gambar di bawah.
Kini Sensor Jarak tengah telah terpasang seperti pada gambar di bawah.
◼️ Wiring Diagram
Selanjutnya, kita akan merangkai dan menghubungkan komponen-komponen tersebut dengan kabel jumper.
▪️ Diagram Gambar
Teman-teman bisa gunakan gambar Wiring Diagram di bawah ini sebagai petunjuk untuk merangkai kabel-kabelnya.
▪️ Diagram Tabel
Apabila titik ujung kabel pada gambar di atas kurang jelas, teman-teman bisa gunakan tabel di bawah ini.
Sensor Jarak Kiri | Sensor Jarak Tengah | Sensor Jarak Kanan | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
Mengetik Program
Kemudian ketik program di bawah ini. Setelah selesai mengetik, jalankan proses Verify. Setelah proses verify dan compiling selesai, upload programnya ke Arduino Nano.
#include <Ultrasonic.h> //Baris ini untuk memasukkan library Ultrasonic.h yang digunakan untuk membaca sensor PING
Ultrasonic leftSensor(4,7);//pin no 4 arduino dipasang ke pin Trigger, pin no 7 arduino dipasang ke pin Echo
Ultrasonic centerSensor(12,13);//pin no 12 arduino dipasang ke pin Trigger, pin no 13 arduino dipasang ke pin Echo
Ultrasonic rightSensor(2,3);//pin no 2 arduino dipasang ke pin Trigger, pin no 3 arduino dipasang ke pin Echo
int leftDist;
int centerDist;
int rightDist;
// Motor A connections
//Red Cable goes to OUT1
//Brown Cable goes to OUT2
int enA = 10;
int in1 = 9;
int in2 = 8;
// Motor B connections
//Red Cable goes to OUT4
//Brown Cable goes to OUT3
int in3 = 6;
int in4 = 5;
int enB = 11;
void setup() {
Serial.begin(9600);
// Set all the motor control pins to outputs
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
// Turn off motors - Initial state
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
void loop() {
delay(50);// Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
leftDist = leftSensor.read();
centerDist = centerSensor.read();
rightDist = rightSensor.read();
//dekomentar bagian ini jika ingin memeriksa kondisi ketiga sensor jarak
/*
Serial.print("Jarak: ");
Serial.print(leftDist);
Serial.print(" ; ");
Serial.print(centerDist);
Serial.print(" ; ");
Serial.print(rightDist);
Serial.println(" ; ");
*/
if (centerDist>10 && rightDist>10 && leftDist>10) //forward move routine 1
{
forward();
}
else if (centerDist>10 && rightDist<10) //left turn routine 1
{
backward();
delay(100);
turnleft();
delay(100);
}
else if (centerDist<10 && rightDist<10) //left turn routine 2
{
backward();
delay(500);
turnleft();
delay(300);
}
else if (centerDist>10 && leftDist<10) //right turn routine 1
{
backward();
delay(100);
turnright();
delay(100);
}
else if (centerDist<10 && leftDist<10) //right turn routine 2
{
backward();
delay(500);
turnright();
delay(300);
}
}//end void loop()
void forward(){
analogWrite(enA, 140);
analogWrite(enB, 140);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
//delay(2000);
}
void backward(){
analogWrite(enA, 250);
analogWrite(enB, 250);
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
//delay(500);
}
void turnleft(){
analogWrite(enA, 250);
analogWrite(enB, 250);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
//delay(2000);
}
void turnright(){
analogWrite(enA, 250);
analogWrite(enB, 250);
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
//delay(2000);
}