Mundarija:
Video: O'zini muvozanatlaydigan robot - PIDni boshqarish algoritmi: 3 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:22
Ushbu loyiha men nazorat algoritmlari va funktsional PID looplarini qanday samarali amalga oshirish haqida ko'proq bilishga qiziqqanim uchun ishlab chiqilgan. Loyiha hali ishlab chiqish bosqichida, chunki Bluetooth moduli qo'shilishi kerak, bu esa robotni Bluetooth bilan ishlaydigan smartfondan boshqarishga imkon beradi.
Ishlatilgan N20 DC dvigatellari nisbatan arzon edi, shuning uchun ular juda ko'p o'ynaydi. Bu g'ildiraklarga momentni qo'llagan holda, motorlar "bo'shashishni" yengib chiqqanda, ozgina silkinishga olib keladi. Shunday qilib, mukammal silliq harakatga erishish imkonsizdir. Men yozgan kod juda oddiy, lekin PID algoritmining imkoniyatlarini samarali namoyish etadi.
Loyihaning qisqacha mazmuni:
Robot shassisi Ender 3 printeri yordamida 3D-bosma bo'lib, bir-biriga bosish uchun mo'ljallangan.
Robot Arduino Uno tomonidan boshqariladi, u MPU6050 sensor ma'lumotlarini oladi va tashqi dvigatel drayveri orqali shahar motorlarini boshqaradi. U 7,4 V, 1500 mA / soat batareya bilan ishlaydi. Dvigatel haydovchisi Arduino -ni quvvatlantirish uchun 5V ga o'rnatadi va dvigatellarga 7,4 V quvvat beradi.
Dasturiy ta'minot gitHub-dan "Arduino-KalmanFilter-master" va "Arduino-MPU6050-master" kutubxonalari yordamida noldan yozilgan.
Ta'minot:
- 3D bosilgan qismlar
- Arduino UNO
- MPU6050 6 o'qli sensor
- DC motor haydovchi
- N20 DC motorlari (x2)
- 9V batareya
1 -qadam: Robot yaratish
Bosib chiqarish va yig'ish
Butun konstruktsiya matbuotga mos bo'lishi kerak, lekin men robotni muvozanatlashda to'liq qattiq bo'lishini ta'minlash uchun komponentlarni mahkamlash uchun superglue ishlatganman.
Men qismlarni Fusion 360 -da ishlab chiqdim va har bir qismini bardoshli bardoshlik va sirtni toza tozalash uchun ruxsatisiz chop etish uchun optimallashtirdim.
Ender 3 printerida ishlatiladigan sozlamalar quyidagilardir: 0,16 mm qatlam balandligi @ 40% barcha qismlar uchun.
2 -qadam: 3D bosma robot
Shassi (x1)
Chap g'ildirak (x2)
Chap motorli korpus (x2)
Arduino qutisi (x1)
3 -qadam: PIDni boshqarish algoritmi
Men gitHub-dan "Arduino-KalmanFilter-master" va "Arduino-MPU6050-master" kutubxonalari yordamida noldan PID nazorat qilish algoritmini yozdim.
Algoritmning asosi quyidagicha:
- MPU6050 dan olingan ma'lumotlarni o'qing
- Sensorning tezlashishi tufayli giroskop o'qishidagi noaniqliklarni bekor qilish uchun Gyroskop va Akselerometr ma'lumotlarini tahlil qilish uchun Kalman Filtridan foydalaning. Bu sensorlar pog'onasining gradusli ikkita o'nli kasrga nisbatan tekislangan qiymatini qaytaradi.
- E rrorni burchak bilan hisoblang, ya'ni: Sensor va belgilangan nuqta orasidagi burchak.
- Proportional xatoni hisoblang (mutanosiblik x xatosi).
- Integral xatoni ishga tushirish yig'indisi sifatida hisoblang (Integratsiya x xatosi).
- Derivativ xatoni [Differentsial Constant] x (Xatolik o'zgarishi / Vaqt o'zgarishi)] kabi doimiy deb hisoblang.
- Dvigatelga yuboriladigan tezlikni berish uchun barcha xatolarni yig'ing.
- Xato burchagi belgisiga asoslanib, dvigatellarni qaysi tomonga burish kerakligini hisoblang.
- Loop abadiy ishlaydi va kirishga qarab o'zgaradi. Bu chiquvchi qiymatlarni keyingi takrorlash uchun yangi kirish qiymatlari sifatida ishlatib, teskari aloqa.
Oxirgi qadam - PID loop Kp, Ki & Kd parametrlarini sozlash.
- Yaxshi boshlang'ich nuqtasi - robot muvozanat nuqtasi atrofida tebranmaguncha va yiqilishni ushlab turmaguncha Kp ni asta -sekin oshirish.
- Keyin, Kd qiymatini Kp qiymatining 1% atrofida boshlang va tebranishlar yo'qolguncha va itarib yuborilganda robot silliq siljimaguncha asta -sekin oshiring.
- Nihoyat, Ki -dan Kpning 20% atrofida boshlang va robot yiqilishni faol ushlab, vertikalga qaytish uchun belgilangan nuqtadan "oshib ketguncha" o'zgarib turing.
Tavsiya:
Magicbit -dan o'z -o'zini muvozanatlaydigan robot: 6 qadam
Magicbit -dan o'z -o'zini muvozanatlaydigan robot: Bu qo'llanmada Magicbit dev platasi yordamida o'z -o'zini balanslovchi robotni yasash ko'rsatiladi. Biz ESP32 -ga asoslangan ushbu loyihani ishlab chiqish paneli sifatida magicbit -dan foydalanmoqdamiz. Shuning uchun, ushbu loyihada har qanday ESP32 ishlab chiqish kartasidan foydalanish mumkin
Ikki g'ildirakli o'z-o'zini muvozanatlaydigan robot: 7 qadam
Ikkita g'ildirakli o'z-o'zini muvozanatlaydigan robot: Bu o'z-o'zini muvozanatlaydigan robot uchun dizayn va qurilish jarayonidan o'tadi. Eslatib o'tmoqchimanki, o'z-o'zini muvozanatlaydigan robotlar yangi tushuncha emas va ular boshqalar tomonidan qurilgan va hujjatlashtirilgan. Men bu imkoniyatdan foydalanmoqchiman
HeadBot-STEMni o'rganish va tarqatish uchun o'zini-o'zi muvozanatlaydigan robot: 7 qadam (rasmlar bilan)
HeadBot-STEM-ni o'rganish va tarqatish uchun o'zini-o'zi muvozanatlaydigan robot: Headbot-ikki futli, o'zini-o'zi muvozanatlaydigan robot-Janubiy Eugene Robotics Team (SERT, FRC 2521), BIRINChI o'rta maktab robototexnika jamoasi. Robototexnika musobaqasi, Eugene, Oregon shtati. Bu mashhur yordamchi robot qayta ishlab chiqaradi
PID algoritmi (STM MC) yordamida o'zini muvozanatlaydigan robot: 9 qadam
PID algoritmidan foydalangan holda o'z -o'zini balanslovchi robot (STM MC): So'nggi paytlarda ob'ektlarni o'z -o'zini muvozanatlash bo'yicha ko'p ishlar qilindi. O'z -o'zini muvozanatlash tushunchasi teskari mayatnikni muvozanatlashdan boshlandi. Bu kontseptsiya samolyotlar dizayniga ham taalluqli edi. Ushbu loyihada biz kichik tartibni ishlab chiqdik
O'z-o'zini muvozanatlaydigan robot: 6 qadam (rasmlar bilan)
O'z-o'zini muvozanatlaydigan robot: Bu ko'rsatmada biz sizga maktab loyihasi sifatida yaratgan o'z-o'zini muvozanatlaydigan robotni qanday yasashni ko'rsatamiz. Bu boshqa robotlarga asoslangan, masalan, nBot va boshqa Instructable. Robotni Android smartfonidan boshqarish mumkin