ROBOT HALANG RINTANG | DH-BOT | EKSKUL ROBOTIC | SMA IT DHBS BONTANG


 Untuk dapat melihat video percobaan, silahkan di klik pada link youtube dibawah ini:


Robot Halang Rintang Sederhana Menggunakan Arduino

Robot halang rintang adalah robot yang dirancang untuk dapat bergerak secara otomatis dan mendeteksi serta menghindari halangan di depannya menggunakan sensor. Robot ini menggunakan Arduino sebagai mikrokontroler utama untuk mengendalikan semua komponen.

Cara Kerja Robot Halang Rintang

  1. Pendeteksian Halangan: Robot dilengkapi dengan sensor ultrasonik yang mendeteksi jarak ke objek di depannya.
  2. Pengambilan Keputusan: Jika sensor mendeteksi adanya halangan dalam jarak tertentu, Arduino akan memutuskan untuk mengubah arah.
  3. Pergerakan Motor: Robot bergerak menggunakan motor DC yang dikendalikan melalui motor driver.

Alat dan Bahan yang Dibutuhkan

  1. Arduino Uno: Mikrokontroler utama untuk mengendalikan semua komponen.
  2. Sensor Ultrasonik HC-SR04: Untuk mendeteksi jarak ke objek di depan robot.
  3. Motor Driver L293N: Mengontrol motor DC agar dapat bergerak maju, mundur, atau berbelok.
  4. Motor DC dengan Roda: Sebagai penggerak robot.
  5. Chassis Robot: Rangka tempat meletakkan semua komponen.
  6. Baterai (6V atau 9V): Sebagai sumber daya robot.
  7. Breadboard: Untuk menyusun rangkaian sementara.
  8. Kabel Jumper: Menghubungkan komponen ke Arduino.
  9. Switch On/Off: Untuk menyalakan atau mematikan robot.
  10. Obeng dan Sekrup: Untuk merakit chassis robot.
  11. Laptop/Komputer dengan Arduino IDE: Untuk memprogram Arduino.

Langkah-Langkah Perakitan

  1. Rangka Robot:

    • Pasang motor DC pada chassis robot.
    • Tempelkan roda pada motor.
    • Pasang roda pendukung (caster wheel) di bagian depan atau belakang robot.
  2. Pemasangan Sensor Ultrasonik:

    • Pasang sensor ultrasonik di bagian depan robot untuk mendeteksi halangan.
    • Sambungkan pin trig dan echo sensor ke pin digital Arduino.
  3. Pengendalian Motor:

    • Sambungkan motor DC ke motor driver L298N.
    • Hubungkan motor driver ke pin output Arduino untuk mengontrol arah dan kecepatan motor.
  4. Sumber Daya:

    • Hubungkan baterai ke motor driver dan Arduino sebagai sumber daya.
  5. Pemrograman Arduino:

    • Tulis kode untuk membaca data dari sensor ultrasonik dan mengendalikan motor.
    • Unggah kode ke Arduino melalui Arduino IDE.
  6. Pengujian:

    • Hidupkan robot menggunakan switch.
    • Letakkan robot di area dengan halangan, lalu uji apakah robot dapat menghindari halangan secara otomatis.

Kode Contoh untuk Robot Halang Rintang

#include <AFMotor.h> #include <NewPing.h> #include <Servo.h> #define TRIG_PIN A4 #define ECHO_PIN A5 #define MAX_DISTANCE 200 #define MAX_SPEED 200 // setting kecepatan motor 1-255 #define MAX_SPEED_OFFSET 20 NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE); AF_DCMotor motor1(1, MOTOR12_1KHZ); AF_DCMotor motor2(3, MOTOR12_1KHZ); Servo myservo; boolean goesForward=false; int distance = 100; int speedSet = 0; void setup() { myservo.attach(9); myservo.write(90); delay(1000); distance = readPing(); delay(100); distance = readPing(); delay(100); distance = readPing(); delay(100); distance = readPing(); delay(100); } void loop() { int distanceR = 0; int distanceL = 0; delay(40); if(distance<=40)//jarak sensor bisa atur sesuai kondisi { moveStop(); delay(100); moveBackward(); delay(300); moveStop(); delay(200); distanceR = lookRight(); delay(200); distanceL = lookLeft(); delay(200); if(distanceR>=distanceL) { turnRight(); moveStop(); }else { turnLeft(); moveStop(); } }else { moveForward(); } distance = readPing(); } int lookRight() { myservo.write(40); delay(500); int distance = readPing(); delay(100); myservo.write(90); return distance; } int lookLeft() { myservo.write(170); delay(500); int distance = readPing(); delay(100); myservo.write(90); return distance; delay(100); } int readPing() { delay(70); int cm = sonar.ping_cm(); if(cm==0) { cm = 250; } return cm; } void moveStop() { motor1.run(RELEASE); motor2.run(RELEASE); } void moveForward() { if(!goesForward) { goesForward=true; motor1.run(FORWARD); motor2.run(FORWARD); for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=1) { motor1.setSpeed(speedSet); motor2.setSpeed(speedSet); delay(5); } } } void moveBackward() { goesForward=false; motor1.run(BACKWARD); motor2.run(BACKWARD); for (speedSet = 0; speedSet < MAX_SPEED; speedSet+=1) { motor1.setSpeed(speedSet); motor2.setSpeed(speedSet); delay(5); } } void turnRight() { motor1.run(FORWARD); motor2.run(BACKWARD); delay(100); motor1.run(FORWARD); motor2.run(FORWARD); } void turnLeft() { motor1.run(BACKWARD); motor2.run(FORWARD); delay(100); motor1.run(FORWARD); motor2.run(FORWARD); }

Manfaat Robot Halang Rintang

  1. Pembelajaran: Cocok untuk melatih keterampilan dasar robotika dan pemrograman.
  2. Efisiensi: Bisa digunakan untuk berbagai eksperimen teknologi otomatisasi.
  3. Kesadaran Teknologi: Mengajarkan prinsip kerja sensor dan kontrol elektronik sederhana.

Robot ini adalah proyek sederhana namun menarik yang dapat disesuaikan lebih lanjut untuk aplikasi yang lebih kompleks. 😊



Tidak ada komentar:

Posting Komentar