Cara membangun garis sederhana mengikuti robot dengan Arduino

Memulai proyek robotik bisa sangat menarik dan mendidik, terutama ketika Anda membangun sesuatu yang nyata seperti robot mengikuti garis. Memanfaatkan Arduino, salah satu mikrokontroler paling populer, membuat proses dapat diakses bahkan untuk pemula. Dalam panduan ini, kami akan memandu Anda melalui langkah-langkah untuk membuat robot mengikuti garis sederhana yang dapat menavigasi jalur secara mandiri.

Bahan yang Anda butuhkan

  • Arduino uno - Otak robot Anda.
  • Modul Driver Motor (L298N) - untuk mengendalikan motor.
  • DC Motors dengan roda - untuk gerakan.
  • Casis - Bingkai untuk menampung semua komponen.
  • Modul Sensor Garis (mis., QRE1113) - untuk mendeteksi garis.
  • Paket baterai - Sumber daya untuk robot.
  • Kabel jumper - untuk koneksi.
  • Papan tempat memotong roti - Untuk prototipe koneksi.
  • Sekrup, mur, dan baut - Untuk mengumpulkan sasis.

Langkah 1: Merakit sasis

Sasis berfungsi sebagai fondasi robot Anda. Mulailah dengan memasang motor DC ke sasis menggunakan sekrup dan mur. Pastikan motor diperbaiki dengan aman untuk mencegah gerakan apa pun selama operasi. Pasang roda ke poros motor dan posisikan paket baterai dan Arduino ke sasis. Pastikan semua komponen pas dan mudah dijangkau untuk kabel.

Langkah 2: Kabel motor

Hubungkan motor DC ke modul driver motor (L298N). Pengemudi motor bertindak sebagai antarmuka antara Arduino dan motor, memungkinkan Arduino untuk mengontrol kecepatan dan arah motor tanpa beban.


// Connect motor A
const int motorA_EN = 9;
const int motorA_IN1 = 7;
const int motorA_IN2 = 8;

// Connect motor B
const int motorB_EN = 10;
const int motorB_IN3 = 5;
const int motorB_IN4 = 6;

void setup() {
  // Motor A
  pinMode(motorA_EN, OUTPUT);
  pinMode(motorA_IN1, OUTPUT);
  pinMode(motorA_IN2, OUTPUT);
  
  // Motor B
  pinMode(motorB_EN, OUTPUT);
  pinMode(motorB_IN3, OUTPUT);
  pinMode(motorB_IN4, OUTPUT);
}

Langkah 3: Menghubungkan Sensor Garis

Sensor garis mendeteksi kontras antara garis dan permukaan. Biasanya, sensor ini memiliki LED inframerah dan fotodioda untuk mendeteksi permukaan yang memantulkan. Hubungkan VCC dan GND sensor masing -masing ke Arduino's 5V dan GND. Pin output sensor akan terhubung ke pin digital atau analog Arduino berdasarkan jenis sensor.


// Line sensor pins
const int sensorLeft = A0;
const int sensorRight = A1;

void setup() {
  pinMode(sensorLeft, INPUT);
  pinMode(sensorRight, INPUT);
}

Langkah 4: Menulis Kode Arduino

Kode Arduino akan membaca nilai sensor dan mengontrol motor yang sesuai untuk mengikuti garis. Di bawah ini adalah contoh sederhana tentang penampilan kode:


// Define motor pins
const int motorA_EN = 9;
const int motorA_IN1 = 7;
const int motorA_IN2 = 8;
const int motorB_EN = 10;
const int motorB_IN3 = 5;
const int motorB_IN4 = 6;

// Define sensor pins
const int sensorLeft = A0;
const int sensorRight = A1;

// Threshold for line detection
const int threshold = 500;

void setup() {
  // Initialize motor pins
  pinMode(motorA_EN, OUTPUT);
  pinMode(motorA_IN1, OUTPUT);
  pinMode(motorA_IN2, OUTPUT);
  
  pinMode(motorB_EN, OUTPUT);
  pinMode(motorB_IN3, OUTPUT);
  pinMode(motorB_IN4, OUTPUT);
  
  // Initialize sensor pins
  pinMode(sensorLeft, INPUT);
  pinMode(sensorRight, INPUT);
  
  // Start serial communication for debugging
  Serial.begin(9600);
}

void loop() {
  int leftSensor = analogRead(sensorLeft);
  int rightSensor = analogRead(sensorRight);
  
  Serial.print("Left: ");
  Serial.print(leftSensor);
  Serial.print(" | Right: ");
  Serial.println(rightSensor);
  
  if (leftSensor > threshold && rightSensor > threshold) {
    // Move forward
    moveForward();
  }
  else if (leftSensor < threshold && rightSensor > threshold) {
    // Turn right
    turnRight();
  }
  else if (leftSensor > threshold && rightSensor < threshold) {
    // Turn left
    turnLeft();
  }
  else {
    // Stop
    stopMovement();
  }
}

void moveForward() {
  digitalWrite(motorA_IN1, HIGH);
  digitalWrite(motorA_IN2, LOW);
  digitalWrite(motorB_IN3, HIGH);
  digitalWrite(motorB_IN4, LOW);
  
  analogWrite(motorA_EN, 200);
  analogWrite(motorB_EN, 200);
}

void turnRight() {
  digitalWrite(motorA_IN1, HIGH);
  digitalWrite(motorA_IN2, LOW);
  digitalWrite(motorB_IN3, LOW);
  digitalWrite(motorB_IN4, LOW);
  
  analogWrite(motorA_EN, 200);
  analogWrite(motorB_EN, 0);
}

void turnLeft() {
  digitalWrite(motorA_IN1, LOW);
  digitalWrite(motorA_IN2, LOW);
  digitalWrite(motorB_IN3, HIGH);
  digitalWrite(motorB_IN4, LOW);
  
  analogWrite(motorA_EN, 0);
  analogWrite(motorB_EN, 200);
}

void stopMovement() {
  digitalWrite(motorA_IN1, LOW);
  digitalWrite(motorA_IN2, LOW);
  digitalWrite(motorB_IN3, LOW);
  digitalWrite(motorB_IN4, LOW);
  
  analogWrite(motorA_EN, 0);
  analogWrite(motorB_EN, 0);
}

Langkah 5: Menyalakan robot

Setelah semua koneksi dibuat, sambungkan paket baterai Anda ke Arduino dan driver motor. Pastikan bahwa polaritas benar untuk mencegah kerusakan pada komponen. Ini adalah praktik yang baik untuk menguji koneksi dengan multimeter sebelum menyalakan.

Pengujian dan Kalibrasi

Setelah menyala, letakkan robot Anda di permukaan dengan garis yang jelas (mis., Pita hitam di atas kertas putih). Amati bagaimana itu berperilaku dan membuat penyesuaian yang diperlukan. Anda mungkin perlu mengubah ambang sensor atau menyesuaikan kecepatan dengan mengubah nilai PWM dalam kode untuk mencapai kinerja yang optimal.

Tips untuk sukses

  • Pastikan koneksi yang stabil: Kabel yang longgar dapat menyebabkan perilaku intermiten. Gunakan papan tempat memotong roti untuk membuat prototipe dan pertimbangkan koneksi solder untuk pengaturan permanen.
  • Gunakan Sensor Kualitas: Sensor garis yang andal dapat secara signifikan meningkatkan kinerja robot Anda.
  • Kalibrasi sensor Anda: Permukaan dan kondisi pencahayaan yang berbeda dapat mempengaruhi pembacaan sensor. Kalibrasi ambang batas Anda.
  • Optimalkan kode: Kode yang efisien memastikan waktu respons yang cepat. Pastikan tidak ada penundaan yang tidak perlu di loop Anda.

Peningkatan dan pembelajaran lebih lanjut

Setelah Anda berhasil membangun robot mengikuti garis dasar, pertimbangkan untuk menambahkan lebih banyak fitur untuk meningkatkan kemampuannya:

  • Deteksi Persimpangan: Aktifkan robot Anda untuk membuat keputusan di persimpangan.
  • Kontrol Kecepatan: Menerapkan penyesuaian kecepatan dinamis berdasarkan input sensor.
  • Kontrol Nirkabel: Tambahkan modul Bluetooth atau Wi-Fi untuk mengontrol robot Anda dari jarak jauh.
  • Penghindaran hambatan: Gabungkan sensor ultrasonik untuk menavigasi rintangan.

Membangun robot mengikuti garis dengan Arduino adalah cara yang fantastis untuk menyelam ke dunia robotika dan sistem tertanam. Ini mengajarkan Anda konsep-konsep mendasar seperti integrasi sensor, kontrol motorik, dan pengambilan keputusan waktu nyata. Dengan kesabaran dan eksperimen, Anda dapat memperluas proyek dasar ini menjadi robot yang lebih kompleks dan mampu. Bangunan yang bahagia!

Tinggalkan komentar

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.