Isi kandungan:

Garis Berasaskan PID Mengikuti Robot Dengan Array-sensor POLOLU QTR 8RC: 6 Langkah (dengan Gambar)
Garis Berasaskan PID Mengikuti Robot Dengan Array-sensor POLOLU QTR 8RC: 6 Langkah (dengan Gambar)

Video: Garis Berasaskan PID Mengikuti Robot Dengan Array-sensor POLOLU QTR 8RC: 6 Langkah (dengan Gambar)

Video: Garis Berasaskan PID Mengikuti Robot Dengan Array-sensor POLOLU QTR 8RC: 6 Langkah (dengan Gambar)
Video: Di jejak Peradaban Kuno? 🗿 Bagaimana jika kita telah keliru tentang masa lalu kita? 2024, Julai
Anonim
Garis Berasaskan PID Mengikuti Robot Dengan Array-sensor POLOLU QTR 8RC
Garis Berasaskan PID Mengikuti Robot Dengan Array-sensor POLOLU QTR 8RC

Helo!

ini adalah penulisan pertama saya mengenai instruksional, dan hari ini saya akan membawa anda ke jalan, dan menerangkan tentang cara membariskan garis berdasarkan PID berikut robot menggunakan array sensor QTR-8RC.

Sebelum pergi ke bangunan robot, kita perlu memahami apa yang disebut sebagai PID,

Langkah 1: Prinsip Kerja

Apa itu PID ??

Istilah PID bermaksud proporsional, integral, derivative. Jadi, apa yang kita lakukan dengan melibatkan PID dengan garis berikut adalah, kita memberi perintah kepada robot untuk mengikuti garis dan untuk mengesan belokan dengan mengira kesalahan dengan mempertimbangkan bagaimana jauh ia bergerak di luar landasan.

istilah utama seperti yang disebutkan dalam dokumen polalu

Nilai perkadaran hampir sebanding dengan kedudukan robot anda sehubungan dengan garis. Maksudnya, jika robot anda berpusat tepat pada garis, kami menjangkakan nilai berkadar tepat 0

Nilai integral mencatat sejarah pergerakan robot anda: ini adalah jumlah semua nilai istilah berkadar yang direkodkan sejak robot mula berjalan

Derivatifnya adalah kadar perubahan nilai berkadar

Dalam tutorial ini, kita hanya akan membincangkan istilah Kp dan Kd, namun hasilnya dapat dicapai dengan menggunakan istilah Ki juga. Bacaan yang kita perolehi dari sensor bukan hanya bacaan analog tetapi juga pembacaan posisi robot. Jadi pada dasarnya Sensor memberikan nilai dari 0 hingga 2500 mulai dari pantulan maksimum hingga pantulan minimum, tetapi, pada masa yang sama, juga memberikan maklumat mengenai sejauh mana robot itu terdampar dari garis.)

Sekarang kita perlu mempertimbangkan istilah kesalahan, Ini adalah perbezaan dari dua nilai setpoint nilai dan nilai semasa. (Nilai setpoint adalah bacaan yang sesuai dengan penempatan "sempurna" sensor di atas garis. Dan Arus nilai adalah bacaan sekejap sensor. Contohnya: Jika anda menggunakan sensor array ini dan menggunakan 8 sensor, anda akan menerima bacaan kedudukan 3500 jika anda berada di tempat, sekitar 0 jika anda terlalu jauh dari garis dan sekitar 7000 jika anda terlalu tepat.). Matlamat kami adalah untuk menjadikan kesalahan itu sifar. Hanya dengan itu robot dapat mengikuti garis itu dengan lancar.

Kemudian datang bahagian pengiraan,.

1) hitung ralat.

Ralat = Nilai Setpoint - Nilai Semasa = 3500 - kedudukan

Sebagai im menggunakan 8 sensor. sensor memberikan bacaan kedudukan 3500 apabila robot diletakkan dengan sempurna. Setelah kita mengira kesilapan kita, margin di mana robot kita melintasi lintasan, inilah masanya untuk kita meneliti ralat dan menyesuaikan kelajuan motor dengan sewajarnya

2) tentukan kelajuan motor yang diselaraskan.

MotorSpeed = Kp * Ralat + Kd * (Ralat - Kesalahan Terakhir);

Kesalahan Terakhir = Ralat;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Secara logik, kesalahan 0 bermaksud robot kita berada di sebelah kiri, yang bermaksud bahawa robot kita perlu bergerak sedikit ke kanan, yang seterusnya bermaksud, motor kanan perlu perlahan dan motor kiri perlu mempercepat. INI PID!

Nilai MotorSpeed ditentukan dari persamaan itu sendiri. RightBaseSpeed dan LeftBaseSpeed adalah kelajuan (sebarang nilai PWM 0-255) di mana robot berjalan ketika ralat adalah sifar.

Kod yang telah saya lampirkan juga merangkumi cara memeriksa nilai kedudukan sensor, sehingga anda dapat membuka monitor bersiri dan memuat naik kod dan melihat sendiri dengan garis bagaimana motor berputar apabila kedudukannya berbeza-beza.

Sekiranya anda menghadapi masalah semasa melaksanakan robot anda, periksa sama ada dan lihat dengan menukar tanda persamaan !!!

Dan sekarang bahagian paling sukar MENCARI Kp DAN Kd, saya terpaksa menghabiskan lebih dari 1 jam untuk menyesuaikan robot saya dengan sempurna. Daripada meletakkan nilai rawak, saya dapati kaedah yang lebih mudah untuk menentukannya.

  1. Mulakan dengan kp dan Kd sama dengan 0, dan mulakan dengan Kp, pertama-tama cuba tetapkan Kp ke 1 dan perhatikan robot, tujuan kami adalah mengikuti garis walaupun goyah, jika robot melambung dan kehilangan garis mengurangkan nilai kp. Jika robot tidak dapat menavigasi giliran dan lambat meningkatkan nilai Kp.
  2. Sebaik sahaja robot nampaknya mengikut garis laras nilai Kd (nilai Kd> nilai Kp) bermula dari 1 dan tingkatkan nilainya sehingga anda melihat pemacu yang lancar dengan goyangan yang kurang.
  3. Setelah robot mula mengikuti garis, tingkatkan kelajuan dan lihat apakah ia mampu mengekalkan dan mengikuti garis itu.

Perlu diingat bahawa kelajuan mempunyai kesan langsung pada penalaan PID dan anda kadang-kadang perlu menyambung semula agar sesuai dengan kelajuan robot anda.

Sekarang kita dapat membina robot kita.

Langkah 2: Binaan

Binaan
Binaan
Binaan
Binaan
Binaan
Binaan

Arduino atmega 2560 dengan kabel USB –ini adalah mikrokontroler utama yang digunakan.

Casis - untuk casis robot saya telah menggunakan 2 plat akrilik bulat yang digunakan untuk projek lain yang sesuai untuk ini. Dengan menggunakan mur dan skru, saya telah membina casis 2 tingkat, supaya saya dapat memasang modul lain ke plat atas. Atau anda boleh menggunakan casis siap pakai.

www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…

Motor gear mikro - robot memerlukan motor berputar pantas untuk mengatasi rutin PID, kerana itu saya telah menggunakan motor yang diberi nilai pada 6V 400rpm dan roda yang sesuai.

www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…

www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…

Susunan sensor QTR 8Rc –ini dapat digunakan untuk penjejakan garis, seperti yang telah disebutkan sebelumnya, saya rasa anda sekarang telah mendapat pemahaman yang jelas tentang cara mengoperasikan array sensor dengan PID. Kodnya sangat mudah dan menggunakan perpustakaan arduino yang ada, anda akan dapat untuk membina pengikut talian pantas.

www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…

Pemandu Motor TB6612FNG-Saya ingin menggunakan pemandu motor yang dapat menangani putaran dan menukar arah dalam sekelip mata, yang mampu mematikan motor dengan berkesan apabila isyarat PWM rendah.

www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…

Baterai lipo - Baterai lipo 11.1V digunakan untuk memberi kuasa kepada robot. Walaupun saya telah menggunakan bateri lipo 11.1 V, kapasiti ini lebih daripada apa yang diperlukan untuk arduino dan motor. Jika anda dapat mencari 7.4V berwajaran ringan bateri lipo atau pek bateri Ni-MH 6V akan sempurna. Oleh kerana ini, saya perlu menggunakan penukar buck untuk menukar voltan menjadi 6V.

11.1V-

7.4 V-

Modul penukar Buck-

Sebagai tambahan, anda memerlukan wayar jumper, mur dan bolt, pemutar skru dan pita elektrik dan juga tali zip untuk memastikan semuanya berada di tempatnya.

Langkah 3: Berkumpul

Berkumpul
Berkumpul
Berkumpul
Berkumpul
Berkumpul
Berkumpul
Berkumpul
Berkumpul

pasangkan motor dan roda kastor kecil ke dalam pinggan menggunakan mur dan skru dan kemudian pasangkan sensor QTR, pemandu motor, papan arduino dan akhirnya bateri ke casis.

Berikut adalah rajah sempurna yang saya dapati di internet, yang memberitahu anda bagaimana sambungan harus dibuat.

Langkah 4: Reka Jalan Anda

Reka Jalan Anda
Reka Jalan Anda

Kini projek anda nampaknya hampir selesai. Seperti peringkat terakhir, anda perlu mempunyai arena kecil untuk menguji robot anda. Saya telah menggunakan garis acak selebar 3cm garis putih pada latar belakang hitam. Pastikan anda menampal semuanya dengan baik. Dan buat masa ini terdapat sudut bersilang dan rentas sudut 90 degees, kerana ini adalah kes yang rumit dalam pengekodan.

Langkah 5: Program Kod Anda

1. Muat turun dan Pasang Arduino

IDE Desktop

· Tingkap -

· Mac OS X -

· Linux -

2. Muat turun dan tampal fail array sensor QTR 8 RC ke folder perpustakaan Arduino.

·

· Tampal fail ke jalan - C: / Arduino / perpustakaan

3. Muat turun dan bukaLINEFOLLOWING.ino

4. Muat naik kod ke papan arduino melalui kabel USB

Langkah 6: SELESAI

Image
Image

sekarang anda mempunyai robot berikut yang dibuat sendiri.

Semoga tutorial ini bermanfaat. Jangan ragu untuk menghubungi saya melalui [email protected] jika anda mempunyai masalah.

jumpa lagi dengan projek baru yang lain.

Selamat membina !!

Disyorkan: