Buat Robot Line Follower ini untuk Proyek Pameran Sains

Coba Instrumen Kami Untuk Menghilangkan Masalah





Dalam posting ini kita belajar bagaimana membangun sirkuit robot pengikut garis menggunakan Arduino, yang akan menjalankan tata letak garis yang digambar secara khusus dan akan dengan setia mengikutinya selama tersedia dan dapat dilacak oleh sensornya.

Oleh navneet sajwan



Apa itu Robot Line Follower

Robot otonom adalah mesin yang dapat melakukan serangkaian tindakan seperti yang diperintahkan oleh pemrogram, tanpa dikendalikan secara manual oleh manusia secara real-time.

Pengikut garis (LFR) juga merupakan mobil robot otonom yang dipandu oleh satu atau lebih sensor dan jalur garis hitam atau putih. Mereka membentuk dasar mobil self-driving modern.



Seperti setiap robot otonom, pengikut garis memiliki unit pemrosesan sinyal dan pengambilan keputusan, sensor, dan aktuator. Jika Anda seorang pemula dalam robotika dan ingin menanganinya dengan serius, di sinilah Anda harus memulai. Mari mulai membuatnya.

Saya telah menggunakan dua sensor infra merah dan penggerak tiga roda untuk membuat proyek ini. Jumlah minimum sensor yang dapat digunakan adalah satu dan maksimum delapan sudah mencukupi untuk mengikuti jalur berbasis PID.

Komponen yang Dibutuhkan:

Arduino uno

Casis

Dua motor yang dioperasikan dengan baterai (b.o.) Dan ban yang kompatibel

Bola jarak

Dua sensor infra merah

Modul driver motor

Sumber Daya listrik

Perangkat lunak Arduino IDE

Sekarang, mari kita lihat komponen kita:

ARDUINO ONE : Bayangkan itu sebagai ruang kendali robot kita. Sekarang, ada banyak papan pengembangan, yang dipertimbangkan untuk proyek ini, tetapi Arduino UNO sama sekali bukan tandingan yang lain. Bukan berarti protagonis kita lebih unggul dalam hal fitur multidimensi.

Jika itu masalahnya, Raspberry Pi dan Intel Edison akan memukulnya di antara kedua mata. Argumen paling meyakinkan yang mengarah pada pemilihan Arduino UNO dibentuk oleh kombinasi fitur, harga, ukuran, dan persyaratan untuk proyek tersebut.

Beberapa alasan yang relevan adalah:

UKURAN : Ini cukup kecil dibandingkan dengan papan pengembangan berbasis Atmega16 atau Atmega8, menghabiskan sedikit ruang pada sasis, jadi Anda mendapatkan bot yang ringkas dan praktis.

Ini sangat penting dalam kompetisi robotika. Percayalah, Anda akan benci berkeliaran dengan bot jelek dan besar itu, berganti tempat sepanjang hari.

Semakin kecil ukurannya, semakin cepat robot dan lebih efisien belokan.

DEWAN PROTOTIPING TERBAIK : Tidak diragukan lagi, Arduino UNO memiliki kombinasi fitur terbaik untuk pembuatan prototipe . Setelah sirkuit Anda terpasang dan proyek Anda bekerja dengan sempurna, Anda dapat menggantinya dengan sesuatu yang lebih kecil dan lebih murah seperti Arduino Nano dan Attiny85 ic.

Bagi mereka yang membuat pengikut garis untuk proyek perguruan tinggi, saya sarankan mengganti UNO dengan Nano di akhir.

CASIS : Ini adalah bingkai yang menahan semua komponen pada posisinya. Ada beberapa hal yang perlu dipertimbangkan saat membeli sasis baru,

Ini harus ringan dan kuat.

Untuk proyek, lebih baik Anda membelinya dari pasar. Tetapi jika Anda bersiap untuk kompetisi, saya sangat menyarankan Anda menyesuaikan sendiri, dengan mengingat dimensi dan persyaratan kompetisi.

Pilih sasis plastik atau kayu. Ketika bingkai logam bersentuhan dengan Arduino, sejumlah pin mengalami korsleting. Ini adalah faktor besar yang harus diperhatikan saat mencari sasis.

Jaga sasis Anda serendah mungkin - ini memberikan stabilitas pada bot.

MOTOR : Gunakan baterai ringan yang dioperasikan (B.O.) d.c. motor.

BOLA CASTOR : Roda normal memberikan gerakan penerjemahan di sepanjang sumbu tunggal tetapi bola jarak dirancang untuk bergerak ke segala arah di permukaan. Ini memberi kita penggerak tiga roda.

Alasan untuk lebih memilih penggerak tiga roda daripada 4 roda adalah karena aksi beloknya yang relatif lebih cepat. Anda mungkin pernah memperhatikan becak yang menembus lalu lintas seperti reptil. Sama halnya dengan robot kami.

SENSOR : Ini adalah perangkat yang mendeteksi atau mengukur parameter fisik lingkungan kita dan mengubahnya menjadi sinyal listrik. Dalam hal ini parameter yang terdeteksi adalah sinar infra merah.

Sensor sangat penting untuk robot apa pun. Nah, jika Arduino adalah otak bot kita, sensor mungkin juga memainkan peran mata. Berikut beberapa hal tentang sensor:

Sensor harus diorientasikan sedemikian rupa sehingga led (s) menghadap ke tanah.

Harus ditempatkan di ujung depan bot Anda.

Jarak minimum antara keduanya harus lebih besar dari lebar garis hitam.

DEWAN PENGEMUDI MOTOR : Driver motor adalah sirkuit penyangga yang mengambil sinyal tegangan rendah untuk menghidupkan motor yang membutuhkan tegangan lebih tinggi.

Dalam kasus kami, Arduino dapat memberikan tegangan yang cukup untuk menggerakkan motor tetapi tidak dapat memberikan arus yang cukup. Pin 5v dan GND Arduino UNO memiliki rating saat ini 200mA sementara pin GPIO mana pun memiliki rating 40 mA. Ini jauh lebih rendah daripada motor arus start dan stall yang kita butuhkan.

Ada dua driver motor yang saya sukai untuk proyek ini: L298N dan L293D. Keduanya sama-sama cocok untuk pembuatan proyek ini.

Meskipun, L293D relatif lebih murah tetapi memiliki rating arus yang rendah. Hubungan mereka hampir sama. Karena, saya telah memberikan koneksi untuk keduanya, terserah Anda bagaimana Anda membuat bot Anda.

SUMBER DAYA LISTRIK :

Gunakan adaptor 12 v atau baterai (tidak lebih dari 12 volt).

Penempatan komponen (dari ujung depan ke belakang):

Sensor di bagian depan bot Anda.

Roda kastor di tengah.

Motor dan ban dalam satu baris di belakang.

Koneksi:

SENSOR ke ARDUINO :

Hubungkan pin sensor ke pin arduino seperti yang ditunjukkan,

Pin sensorPin Arduino
VCC (5v)5V
GND (G)GND
SENSOR KIRI (LAKUKAN)pin 6
SENSOR KANAN (LAKUKAN)pin 7

Catatan: Untuk memeriksa apakah sensor Anda dihidupkan, arahkan kamera ponsel Anda ke led pemancar IR. Anda akan melihat led bersinar di layar yang tidak bisa dilihat dengan mata telanjang kita. Beberapa kamera ponsel modern memiliki filter Infra merah. Jadi, harap pertimbangkan itu.

MOTOR ke MOTOR DRIVER:

Setiap motor memiliki dua terminal yang perlu dihubungkan ke driver motor. Jangan pernah mencoba menghubungkannya langsung ke arduino. Melihat dari belakang bot Anda, dengan motor di dekat Anda dan sensor jauhnya, hubungkan mereka sebagai berikut:

MESINL298NL293D
MOTOR KIRIPIN 1 DAN 2PIN 7 DAN 8
MOTOR KANANPIN 13 DAN 14PIN 9 DAN 10

MOTOR DRIVER ke ARDUINO UNO:

PENGEMUDI MOTOR (L298N)ARDUINO ONE
PIN 4ANGGUR
PIN 5GND
PIN 65V
PIN 8 & PIN 9PIN 3 & PIN 9
PIN 10 & PIN 11PIN 5 & PIN 10
PIN 7 & PIN 125V
PENGEMUDI MOTOR (L293D)ARDUINO ONE
PIN 3ANGGUR
PIN 2GND
PIN 15V
PIN 5 DAN PIN 6PIN 3 & PIN 9
PIN 11 DAN PIN 12PIN 5 & PIN 10
PIN 4 DAN PIN 55V

CATATAN: Pin 8 dan 9 dari l298n digunakan untuk mengontrol motor yang terhubung ke 1 dan 2. Dan, motor kontrol 10 dan 11 terhubung ke pin 13 dan 14. Demikian pula, pin 5 dan 6 dari l293d digunakan untuk mengontrol motor yang terhubung ke 7 dan 8. Dan, motor kontrol 12 dan 11 dihubungkan ke pin 9 dan 10.

Ini dia guys, sampai akhir dari bagian desain. Kami masih memiliki pengkodean yang harus dilakukan tetapi sebelum itu kami akan membahas prinsip-prinsip yang memungkinkan mengikuti baris.

Cara kerja sensor infra merah:

Sensor infra merah (sensor IR) dapat digunakan untuk merasakan kontras dalam warna dan kedekatan objek dengannya. Prinsip di balik kerja sensor IR cukup mendasar.

Seperti yang bisa kita lihat, ini memiliki dua led - led pemancar IR dan fotodioda. Mereka bertindak sebagai pasangan pemancar-penerima. Ketika penghalang datang di depan sinar pemancar, mereka dipantulkan kembali dan dicegat oleh penerima.

Ini menghasilkan sinyal digital yang dapat diumpankan ke mikrokontroler dan aktuator untuk mengambil tindakan yang diperlukan saat menghadapi kendala.

Fisika dasar memberi tahu kita bahwa benda hitam menyerap semua radiasi elektromagnetik yang terjadi di atasnya sementara benda putih memantulkannya. Prinsip ini dimanfaatkan oleh pengikut garis untuk membedakan antara permukaan putih dan hitam.

Cara kerja robot pengikut garis:

TATA LETAK LINE FOLLOWER

Dalam kondisi normal, robot bergerak sedemikian rupa sehingga kedua sensor berada di atas putih dan garis hitam berada di tengah kedua sensor.

Ini diprogram untuk memutar kedua motor sedemikian rupa sehingga bot bergerak ke arah depan.

Secara alami, seiring berjalannya waktu, salah satu dari dua sensor muncul di atas garis hitam.

Jika sensor kiri melewati garis, motor kiri diistirahatkan dan akibatnya bot mulai berbelok ke kiri kecuali jika sensor kiri kembali ke permukaan putih dan kondisi normal tercapai.

Demikian pula, ketika sensor kanan melewati garis hitam, motor kanan dihentikan dan akibatnya bot sekarang berbelok ke kanan kecuali jika sensor kembali ke permukaan putih. Mekanisme belok ini dikenal sebagai mekanisme penggerak diferensial.

DIAGRAM SIRKUIT:

RINCIAN KABEL:

PEMROGRAMAN DAN KONSEP:

Setelah selesai dengan bagian sirkuit, sekarang kita akan beralih ke bagian pemrograman. Pada bagian ini, kita akan memahami program yang mengontrol robot kita. Ini kodenya: / *
Created and tested by Navneet Singh Sajwan
*Based on digital output of two sensors
*Speed control added
*/
int left, right
int value=250
void setup()
{
pinMode(6,INPUT)//left sensor
pinMode(7,INPUT)//right sensor
pinMode(9,OUTPUT)//left motor
pinMode(3,OUTPUT)//left motor
pinMode(10,OUTPUT)//right motor
pinMode(5,OUTPUT)//right motor
// Serial.begin(9600)
}
void read_sensors()
{
left=digitalRead(6)
right= digitalRead(7)
}
void move_forward()
{
analogWrite(9,value)//3,9 for left motor
digitalWrite(3,LOW)
analogWrite(10,value)//10,5 for right motor
digitalWrite(5,LOW)
}
void turn_left()
{
digitalWrite(9,LOW)//9,3 for left motor
digitalWrite(3,LOW)
analogWrite(10,value)//10,5 for right motor
digitalWrite(5,LOW)
}
void turn_right()
{
analogWrite(9,value)// 9,3 for left motor
digitalWrite(3,LOW)
digitalWrite(10,LOW)// 10,5 for right motor
digitalWrite(5,LOW)
}
void halt()
{
digitalWrite(9,LOW)// 9,3 for left motor
digitalWrite(3,LOW)
digitalWrite(10,LOW)// 10,5 for right motor
digitalWrite(5,LOW)
}
void print_readings()
{
Serial.print(' leftsensor')
Serial.print(' ')
Serial.print(left)
Serial.print('rightsensor')
Serial.print(' ')
Serial.print(right)
Serial.println()
}
void loop()
{
read_sensors()
while((left==0)&&(right==1)) // left sensor is over black line
{
turn_left()
read_sensors()
print_readings()
}
while((left==1)&&(right==0)) // right sensor is over black line
{
turn_right()
read_sensors()
print_readings()
}
while((left==0)&&(right==0)) // both sensors over the back line
{
halt()
read_sensors()
print_readings()
}
while((left==1)&&(right==1))// no sensor over black line
{
move_forward()
read_sensors()
print_readings()
}
}

Deskripsi fungsi yang digunakan:

read_sensors (): Dibutuhkan pembacaan dari kedua sensor dan menyimpannya di variabel kiri dan kanan.

move_forward (): Ketika arduino menjalankan fungsi ini, kedua motor bergerak ke arah depan.

turn_left (): Motor kiri berhenti. Bot belok kiri.

turn_right (): Motor kanan berhenti. Bot belok kanan.

halt (): Bot berhenti.

print_readings (): Menampilkan pembacaan sensor pada monitor serial. Untuk ini, Anda harus menghapus komentar 'Serial.begin (9600)' di penyetelan kosong.

BACAAN SENSOR:

SENSOR OVER LINEBACAAN SENSOR
KIRIBAIK
SENSOR KIRI01
SENSOR KANAN10
TIDAK ADA11
KEDUA00

KONTROL KECEPATAN:

Terkadang kecepatan motor sangat tinggi sehingga sebelum Arduino menginterpretasikan sinyal sensor, robot kehilangan garis. Singkatnya, bot tidak mengikuti garis karena kecepatan tinggi dan terus kehilangan garis meskipun algoritmanya benar.

Untuk menghindari keadaan seperti itu, kami menurunkan kecepatan bot menggunakan teknik PWM. Pada kode di atas ada variabel bernama value.

Kurangi saja nilai numerik dalam fungsi untuk menurunkan kecepatan. Di Arduino UNO Anda hanya dapat memiliki nilai pwm antara 0 dan 255.

analogWrite (pin, nilai)

0<= value <=255

Ini akhir dari posting saya on line follower. Saya harap ini cukup rinci untuk menjawab semua pertanyaan Anda yang terbakar dan jika dalam kenyataan yang paling langka tidak, maka kami selalu menyediakan bagian komentar untuk Anda. Komentari keraguan Anda. Selamat bermain-main!




Sepasang: Mobil Robot Kontrol Ponsel Menggunakan Modul DTMF Berikutnya: Sakelar HIDUP / MATI Sumber Listrik AC yang Dikendalikan Kata Sandi