Isi kandungan:
- Bekalan
- Langkah 1: Pembinaan
- Langkah 2: Pendawaian
- Langkah 3: Teori Kawalan
- Langkah 4: Menggunakan MPU 6050
- Langkah 5: Pengekodan
- Langkah 6: Prosedur Penalaan PID
- Langkah 7: Keselesaan
Video: Robot Pengimbang Diri Dua Roda: 7 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Instruksional ini akan melalui proses reka bentuk dan pembinaan untuk robot pengimbangan diri. Sebagai makluman, saya hanya ingin mengatakan bahawa robot pengimbangan diri bukanlah konsep baru dan ia telah dibina dan didokumentasikan oleh orang lain. Saya ingin menggunakan peluang ini untuk berkongsi dengan saya tafsiran saya mengenai robot ini.
Apa itu robot pengimbang diri?
Robot pengimbang diri adalah sistem yang menggunakan data pengukuran inersia, yang dikumpulkan dari sensor onboard, untuk terus menyesuaikan kedudukannya agar tetap tegak.
Bagaimanakah ia berfungsi?
Analogi sederhana yang perlu dipertimbangkan adalah pendulum terbalik. Di mana pusat jisim berada di atas titik pangsi. Walau bagaimanapun, dalam kes kami, kami membatasi bandul hingga 1 darjah kebebasan dengan memiliki satu paksi putaran, dalam kes kami paksi putaran kedua roda. Oleh kerana sebarang gangguan akan menyebabkan robot jatuh, kita memerlukan kaedah untuk menjaga robot secara seimbang. Di sinilah algoritma gelung tertutup (pengawal PID) dimainkan, dengan mengetahui arah robot mana yang jatuh, kita dapat menyesuaikan arah putaran motor kita agar sistem tetap seimbang.
Bagaimana algoritma gelung tertutup berfungsi?
Prinsip asas dalam menjaga keseimbangan robot adalah, jika robot jatuh ke depan, ia akan mengimbangi dengan menggerakkan bahagian bawah robot ke depan untuk menangkapnya dan oleh itu tetap menegak. Begitu juga, jika robot jatuh ke belakang, ia akan mengimbangi dengan menggerakkan bahagian bawah robot ke belakang untuk menangkapnya sendiri.
Oleh itu, kita perlu melakukan dua perkara di sini, pertama, kita perlu mengira sudut kecenderungan (Roll) yang dialami robot dan sebagai hasilnya, kita perlu mengawal arah putaran motor.
Bagaimana kita mengukur sudut kecenderungan?
Untuk mengukur sudut kecenderungan kita akan menggunakan Unit Pengukuran Inersia. Modul ini menggabungkan akselerometer dan giroskop.
- Accelerometer adalah alat elektromagnetik yang mengukur pecutan yang tepat, ini adalah pecutan badan dalam bingkai rehat seketika.
- Giroskop adalah alat elektromekanik yang mengukur halaju sudut dan digunakan untuk menentukan orientasi peranti.
Namun, masalah penggunaan sensor seperti itu adalah:
- Accelerometer sangat bising tetapi konsisten dari masa ke masa, sudut berbeza dengan pergerakan mendatar secara tiba-tiba
- Nilai giroskop, sebaliknya, akan berubah dari masa ke masa, tetapi pada mulanya, ia cukup tepat
Untuk arahan ini, saya tidak akan menggunakan penapis sebaliknya menggunakan Digital Motion Processing (DMP) onboard. Yang lain telah menggunakan penapis pelengkap untuk mendapatkan isyarat yang lancar, anda boleh memilih kaedah mana yang anda suka. kerana robot mengimbangkan dengan kedua-dua pelaksanaan.
Bekalan
Bahagian:
- Arduino Pro Mini 3.3V 8 dengan 8 MHz ATMEGA328
- FT232RL 3.3V 5.5V FTDI USB ke TTL modul penyesuai bersiri
- Modul GY-521 dengan MPU-6050
- Sepasang motor gear mikro N20 6V - 300rpm
- Pemandu motor L298N
- Penukar LM2596S DC ke DC
- Bateri (pek bateri Li-ion 9.7V yang boleh dicas semula)
- Tali bateri
- Dua papan litar PCB prototaip
- Wayar jumper pin header lelaki dan wanita
Alat:
- Pateri dan pateri
- Penutupan spacer hex nilon
- Set pemutar skru tepat
- Pencetak 3D
Langkah 1: Pembinaan
Oleh kerana saya mempunyai akses ke pencetak 3D, saya memutuskan untuk mencetak casis 3D dan menggunakan penyekat untuk menghubungkan semuanya.
Robot terdiri daripada 4 lapisan
- Lapisan bawah menghubungkan motor dan mempunyai titik pemasangan untuk modul pemandu motor L298N
- Lapisan seterusnya menempatkan papan prototaip dengan Arduino pro mini dan header terpateri padanya
- Lapisan ketiga memasang IMU
- Lapisan teratas, yang saya sebut "lapisan bumper" melekatkan bateri, penukar wang, dan suis wang
Prinsip rekaan utama saya adalah untuk memastikan semuanya tetap modular. Sebabnya adalah jika ada yang salah dengan salah satu komponen saya dapat menggantinya dengan mudah atau jika saya memerlukan komponen untuk projek lain saya boleh mengambilnya dengan mudah tanpa perlu bimbang tidak dapat menggunakan sistem ini lagi.
Langkah 2: Pendawaian
Saya menyolokkan beberapa pin header wanita ke papan perfusi untuk dipadankan dengan pin header mini Arduino pro. Berikutan ini, saya menyisipkan header lelaki pin di papan untuk membenarkan akses ke I / O. Selebihnya komponen dipasang ke bingkai dicetak 3D dan disambungkan menggunakan kabel jumper.
Langkah 3: Teori Kawalan
Sekarang kita beralih ke teras projek. Untuk memastikan robot seimbang, kita perlu menghasilkan isyarat kawalan yang sesuai untuk menggerakkan motor ke arah yang betul dan pada kelajuan yang betul untuk memastikan robot seimbang dan stabil. Untuk melakukan ini, kami akan menggunakan algoritma gelung kawalan yang dikenali sebagai pengawal PID. Seperti singkatan menunjukkan terdapat tiga istilah untuk pengawal ini, ini adalah istilah berkadar, tidak terpadu, dan terbitan. Masing-masing disertakan dengan pekali yang menentukan pengaruhnya terhadap sistem. Selalunya bahagian yang paling memakan masa dalam pelaksanaan pengawal adalah penalaan keuntungan bagi setiap sistem unik untuk mendapatkan respons yang paling optimum.
- Istilah berkadar terus menggandakan kesalahan untuk memberikan output, jadi semakin besar ralat semakin besar responsnya
- Istilah integral menghasilkan tindak balas berdasarkan pengumpulan ralat untuk mengurangkan ralat keadaan mantap. Semakin lama sistem ini tidak seimbang, motor akan bertindak balas
- Istilah derivatif adalah terbitan ralat yang digunakan untuk meramalkan tindak balas masa depan dan dengan berbuat demikian ia mengurangkan ayunan kerana mengatasi keadaan stabil.
Prinsip asas algoritma ini adalah untuk terus mengira sudut kecenderungan yang merupakan perbezaan antara kedudukan yang diinginkan dan kedudukan semasa, ini dikenali sebagai kesalahan. Ia kemudian menggunakan nilai ralat ini dan menghitung jumlah tindak balas berkadar, integral, dan derivatif untuk mendapatkan output, yang merupakan isyarat kawalan yang dihantar ke motor. Akibatnya, jika kesalahan besar, isyarat kawalan yang dihantar ke motor akan memutar motor pada kelajuan tinggi untuk sampai ke keadaan seimbang. Begitu juga, jika kesalahan kecil, isyarat kawalan akan memutar motor dengan kelajuan rendah untuk memastikan robot seimbang.
Langkah 4: Menggunakan MPU 6050
Perpustakaan MPU6050
github.com/jrowberg/i2cdevlib/tree/master/…
Mengkalibrasi offset Tidak semua sensor adalah replika yang tepat antara satu sama lain. Hasilnya, jika anda menguji dua MPU 6050, anda mungkin mendapat nilai yang berbeza untuk pecutan dan giroskop ketika diletakkan di permukaan yang sama. Untuk mengatasi offset sudut berterusan ini, kita perlu meraikan setiap sensor yang kita gunakan. Menjalankan skrip ini:
www.i2cdevlib.com/forums/topic/96-arduino-…
ditulis oleh Luis Rodenas, kita akan mendapat ofset. Kesalahan ofset dapat dihilangkan dengan menentukan nilai offset dalam setup () rutin.
Menggunakan Pemproses Gerakan Digital
MPU6050 mengandungi DMP (Digital Motion Processor).
Apa itu DMP? Anda boleh menganggap DMP sebagai mikrokontroler onboard yang memproses gerakan kompleks dari giroskop 3 paksi dan akselerometer 3 paksi di atas mpu6050, menggunakan algoritma perpaduan gerakan sendiri. Memunggah pemprosesan yang sebaliknya akan dilakukan oleh Arduino
Bagaimana untuk menggunakannya? Untuk mengetahui cara menggunakan DMP, lihat contoh sketsa MPU6050_DMP6 yang disertakan dengan perpustakaan MPU6050 (di Arduino IDE: File-> Contoh-> MPU6050-> MPU6050_DMP6). Ini juga merupakan peluang yang baik untuk memeriksa bahawa sensor anda betul-betul berfungsi dan pendawaiannya betul
Langkah 5: Pengekodan
Saya menggunakan Arduino IDE dan antara muka FTDI untuk memprogram Arduino pro mini.
Menggunakan contoh lakaran (MPU6050_DMP6) yang disertakan dengan perpustakaan MPU6050 sebagai kod asas saya, saya menambah fungsi PID () dan MotorDriver ().
Tambahkan perpustakaan
- MPU6050: Untuk menggunakan sensor MPU6050, kita perlu memuat turun perpustakaan pengembang I2C dari Jeff Rowberg dan menambahkannya ke folder "perpustakaan" Arduino yang terdapat dalam fail program di komputer anda.
- Kawat: Kami juga memerlukan perpustakaan Wire untuk membolehkan kami berkomunikasi dengan peranti I2C.
Kod Pseudo
Sertakan Perpustakaan:
- Wire.h
- MPU6050
- I2Cdev.h
Memulakan pemboleh ubah, pemalar, dan objek
Persediaan ()
- Tetapkan mod pin untuk mengawal motor
- Tetapkan mod pin untuk LED status
- Permulaan MPU6050 dan tetapkan nilai offset
PID ()
Hitungkan nilai PID
MotorDriver (tindak balas PID)
Gunakan nilai PID untuk mengawal kelajuan dan arah motor
Gelung ()
- Dapatkan data dari DMP
- Panggil PID () fungsi MotorDriver ()
Langkah 6: Prosedur Penalaan PID
Ini adalah bahagian yang paling membosankan dalam projek ini dan memerlukan sedikit kesabaran kecuali anda bernasib baik. Berikut adalah langkah-langkahnya:
- Tetapkan istilah I dan D ke 0
- Dengan memegang robot, sesuaikan P supaya robot mula berayun mengenai kedudukan keseimbangan
- Dengan set P, tingkatkan I supaya robot memecut lebih cepat apabila tidak seimbang. Dengan P dan saya disetel dengan betul, robot harus dapat mengimbangkan diri sekurang-kurangnya selama beberapa saat, dengan sedikit ayunan
- Akhirnya, tingkatkan D mengurangkan ayunan
Sekiranya percubaan pertama tidak memberikan hasil yang memuaskan, ulangi langkah dengan nilai P. yang berbeza. Perlu diketahui juga bahawa anda boleh menyesuaikan nilai PID selepas itu, untuk meningkatkan lagi prestasi. Nilai di sini bergantung pada perkakasan, jangan terkejut jika anda mendapat nilai PID yang sangat besar atau sangat kecil.
Langkah 7: Keselesaan
Motor gear mikro yang digunakan lambat untuk bertindak balas terhadap gangguan besar dan memandangkan sistemnya terlalu ringan, tidak ada inersia yang cukup untuk mendapatkan kesan pendulum yang diinginkan, jadi jika robot bersandar ke depan, ia hanya akan bersandar pada sudut dan berlari ke depan. Akhirnya, roda dicetak 3D adalah pilihan yang buruk kerana mereka terus tergelincir.
Cadangan penambahbaikan:
- Motor lebih cepat dengan tork yang lebih tinggi, iaitu untuk motor DC semakin tinggi penilaian voltan semakin tinggi torknya
- dapatkan bateri yang lebih berat atau gerakkan jisimnya sedikit lebih tinggi
- Gantikan roda dicetak 3D dengan roda getah untuk mendapatkan daya tarikan yang lebih banyak
Disyorkan:
Proyecto Laboratorio De Mecatrónica (Robot Imbangan Dua Roda): 6 Langkah
Proyecto Laboratorio De Mecatrónica (Robot Imbangan Dua Roda): En este proyecto se mostrara, el funcionamiento y el como hacer para elaborar un " Robot keseimbangan dua roda " paso a paso y con explicación y concejos. Este es un sistema que terdiri daripada robot tidak ada yang lebih baik, se de de de mantener en el
Menimbang Robot / Robot 3 Roda / Robot STEM: 8 Langkah
Balancing Robot / 3 Wheel Robot / STEM Robot: Kami telah membina robot balancing gabungan dan roda 3 untuk penggunaan pendidikan di sekolah dan program pendidikan selepas sekolah. Robot itu berdasarkan Arduino Uno, perisai khusus (semua butiran pembinaan disediakan), pek bateri Li Ion (semua konstruksi
Cara Mengubah Roda Panas Standard ke Roda Panas R / C: D: 6 Langkah (dengan Gambar)
Cara Mengubah Roda Panas Standard ke Roda Panas R / C: D: Sejak saya kecil, saya suka Kereta Roda Panas. Ini memberi saya inspirasi untuk reka bentuk kenderaan fantasi. Kali ini mereka mengalahkan diri dengan Star War Hot Wheels, C-3PO. Namun, saya mahukan lebih daripada sekadar mendorong atau mengejar trek, saya memutuskan, “L
Membuat Robot Pengimbang Diri Arduino yang Dikawal Jauh: B-robot EVO: 8 Langkah
Membuat Robot Pengimbang Diri Arduino yang Dikawal Jauh: B-robot EVO: ------------------------------------ -------------- KEMASKINI: ada versi baru dan lebih baik dari robot ini di sini: B-robot EVO, dengan ciri baru! ------------ -------------------------------------- Bagaimana ia berfungsi? B-ROBOT EVO adalah jarak jauh kawalan
Skrol Roda Roda: 5 Langkah (dengan Gambar)
Skrol-Roda Hack: Cara yang sangat tidak selesa untuk menatal melalui web dengan jari-jari berderap pada butang kain. (Senyum) Roda tatal di dalam tetikus saya adalah mekanisme yang sangat mudah tetapi cemerlang yang pada dasarnya menekan dua butang berturut-turut setiap kali saya menatalnya