Talaan ng mga Nilalaman:
Video: Self Balancing Robot - Algorithm ng Control ng PID: 3 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Ang proyektong ito ay naisip dahil interesado akong matuto nang higit pa tungkol sa Mga Control Algorithm at kung paano mabisang ipatupad ang mga functional PID loop. Ang proyekto ay nasa yugto pa rin ng pag-unlad dahil ang isang module ng Bluetooth ay hindi pa maidaragdag na magpapahintulot sa kontrol sa robot mula sa isang smartphone na pinagana ng Bluetooth.
Ang N20 DC na mga motor na ginamit ay medyo mura, at samakatuwid ay mayroong isang malaking halaga ng pag-play sa kanila. Ito ay humahantong sa isang maliit na halaga ng haltak habang ang mga motor ay nagtagumpay sa 'slack' dahil naglalapat ito ng metalikang kuwintas sa mga gulong. Samakatuwid, ito ay susunod sa imposible upang makamit ang perpektong makinis na paggalaw. Ang code na isinulat ko ay makatuwirang simple ngunit mabisang ipinapakita ang mga kakayahan ng PID algorithm.
Buod ng proyekto:
Ang chassis ng robot ay naka-print sa 3D gamit ang isang Ender 3 na printer at idinisenyo upang magkakasama sa pagpindot.
Ang robot ay kinokontrol ng isang Arduino Uno na kumukuha ng data ng sensor mula sa MPU6050 at kinokontrol ang mga DC motor sa pamamagitan ng isang panlabas na driver ng motor. Nagpapatakbo ito ng isang 7.4V, 1500mAh na baterya. Ang motor driver ay kinokontrol ito sa 5V upang mapatakbo ang Arduino at maghahatid ng 7.4V sa mga motor.
Ang software ay isinulat mula sa simula sa tulong ng 'Arduino-KalmanFilter-master' at 'Arduino-MPU6050-master' na mga aklatan mula sa gitHub.
Mga Pantustos:
- Mga Naka-print na Bahaging 3D
- Arduino UNO
- MPU6050 6-Axis Sensor
- D. C Motor Driver
- N20 D. C Motors (x2)
- 9V Baterya
Hakbang 1: Bumuo ng Robot
I-print at Assembly
Ang buong build ay dapat na press-fit ngunit gumamit ako ng superglue upang ma-secure ang mga sangkap upang matiyak na ang robot ay ganap na matigas kapag nagbabalanse.
Dinisenyo ko ang mga bahagi sa Fusion 360 at na-optimize ang bawat bahagi upang mai-print nang walang mga suporta upang payagan ang mas mahigpit na pagpapaubaya at isang mas malinis na tapusin sa ibabaw.
Ang mga setting na ginamit sa Ender 3 Printer ay: 0.16mm Layer Heights @ 40% infill para sa lahat ng mga bahagi.
Hakbang 2: 3D Print Robot
Chassis (x1)
Kaliwang Gulong (x2)
Kaliwang Pabahay ng Motor (x2)
Kaso ng Arduino (x1)
Hakbang 3: Algorithm ng PID Control
Nagsulat ako ng isang PID Control Algorithm mula sa simula gamit ang 'Arduino-KalmanFilter-master' at 'Arduino-MPU6050-master' na mga aklatan mula sa gitHub.
Ang saligan ng Algorithm ay ang mga sumusunod:
- Basahin ang hilaw na data mula sa MPU6050
- Gumamit ng Kalman Filter upang pag-aralan ang data mula sa parehong Gyroscope at Accelerometer upang kanselahin ang mga pagkakamali sa mga pagbasa ng gyroscope dahil sa pagbilis ng sensor. Ibinabalik nito ang isang medyo smoothed na halaga para sa pitch ng sensor sa degree hanggang dalawang decimal na lugar.
- Kalkulahin ang E rror sa anggulo, ibig sabihin: Ang anggulo sa pagitan ng sensor at ng setpoint.
- Kalkulahin ang proportional error bilang (Constant of Proportionality x error).
- Kalkulahin ang Integral Error bilang tumatakbo na kabuuan ng (Constant of Integration x error).
- Kalkulahin ang Derivative Error bilang Patuloy bilang [(Constantity ng Pagkakaiba) x (Pagbabago sa error / Pagbabago sa Oras)]
- Ibigay ang lahat ng mga error upang maibigay ang bilis ng output upang maipadala sa mga motor.
- Kalkulahin kung aling direksyon ang magpapasara ng mga motor batay sa pag-sign ng anggulo ng error.
- Tumatakbo ang loop nang walang katiyakan at bumuo sa output habang nag-iiba ang input. Ito ay isang loop ng feedback, gamit ang mga halaga ng output bilang bagong mga halaga ng pag-input para sa susunod na pag-ulit.
Ang pangwakas na Hakbang ay upang Tune ang mga parameter ng PID loop Kp, Ki & Kd.
- Ang isang mahusay na panimulang punto ay dahan-dahang taasan ang Kp hanggang sa ang robot ay mag-oscillate sa paligid ng punto ng balanse at mahuli ang isang pagkahulog.
- Susunod, simulan ang Kd sa humigit-kumulang na 1% ang halaga ng Kp at dagdagan nang dahan-dahan hanggang sa mawala ang mga oscillation at ang robot ay dumulas ng maayos kapag tinulak.
- Panghuli, magsimula sa Ki sa paligid ng 20% ng Kp at mag-iba hanggang sa "overshoots" ng robot ang setpoint upang aktibong mahuli ang isang pagkahulog at bumalik sa patayo.
Inirerekumendang:
Dalawang Wheel ng Self-Balancing Robot: 7 Mga Hakbang
Two Wheel Self-Balancing Robot: Ang itinuturo na ito ay dadaan sa proseso ng disenyo at pagbuo para sa isang self-balancing robot. Bilang isang tala, nais ko lamang sabihin na ang mga robot sa sariling pagbabalanse ay hindi isang bagong konsepto at ang mga ito ay binuo at naitala ng iba. Gusto kong gamitin ang opportuni na ito
Paano Lumikha ng isang Malayuang Kinokontrol na 3D Printed Self-Balancing Robot: 9 Mga Hakbang (na may Mga Larawan)
Paano Lumikha ng isang Malayuang Kinokontrol na 3D Printed Self-Balancing Robot: Ito ay isang ebolusyon ng nakaraang bersyon ng B-robot. 100% OPEN SOURCE / Arduino robot. Ang CODE, 3D na mga bahagi at electronics ay bukas kaya huwag mag-atubiling baguhin ito o lumikha ng isang malaking bersyon ng robot. Kung mayroon kang mga pagdududa, ideya o kailangan ng tulong na gumawa
2 Wheeled Self Balancing Robot: 4 Mga Hakbang
2 Wheeled Self Balancing Robot: Sa aking mapagpakumbabang opinyon hindi ka isang tunay na Tagagawa, maliban kung hindi mo binuo ang iyong sariling 2 wheeled self balacing robot.:-) Kaya, narito ito … at, pinakamahalagang bagay, gumagana ito !!! Ang proyekto na ito ay mukhang napaka-simple. Sa halip, nangangailangan ito ng isang mahusay na antas ng kaalaman o
Lumilikha ng isang Malayuang Kinokontrol na Arduino Self Balancing Robot: B-robot EVO: 8 Hakbang
Lumilikha ng isang Malayuang Kinokontrol na Arduino Self Balancing Robot: B-robot EVO: ------------------------------------ ------------ UPDATE: mayroong isang bago at pinahusay na bersyon ng robot na ito dito: Ang B-robot EVO, na may mga bagong tampok! ------------ ------------------------------------ Paano ito gumagana? Ang B-ROBOT EVO ay isang malayo kontrolin
Self-balancing Robot: 6 Mga Hakbang (na may Mga Larawan)
Self-balancing Robot: Sa Instructable na ito ipapakita namin sa iyo kung paano bumuo ng self-balancing robot na ginawa namin bilang isang proyekto sa paaralan. Ito ay batay sa ilang iba pang mga robot, tulad ng nBot at isa pang maituturo. Ang robot ay maaaring makontrol mula sa isang Android smartphone vi