Სარჩევი:
ვიდეო: თვითბალანსირებული რობოტი - PID კონტროლის ალგორითმი: 3 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:15
ეს პროექტი შეიქმნა იმიტომ, რომ მე დაინტერესებული ვიყავი მეტი მესწავლა საკონტროლო ალგორითმების შესახებ და როგორ ეფექტურად განვახორციელო ფუნქციური PID მარყუჟები. პროექტი ჯერ კიდევ განვითარების ფაზაშია, რადგან Bluetooth მოდული ჯერ არ არის დამატებული, რაც საშუალებას მოგცემთ გააკონტროლოთ რობოტი Bluetooth ჩართული სმარტფონიდან.
N20 DC ძრავები შედარებით იაფი იყო და, შესაბამისად, მათში მნიშვნელოვანი თამაში აქვთ. ეს იწვევს მცირე რაოდენობის ხვრინვას, რადგან ძრავები გადალახავს "სუსტს", რადგან ის ბრუნავს ბორბლებზე. აქედან გამომდინარე, თითქმის შეუძლებელია სრულყოფილად გლუვი მოძრაობის მიღწევა. კოდი, რომელიც მე დავწერე, საკმაოდ მარტივია, მაგრამ ეფექტურად აჩვენებს PID ალგორითმის შესაძლებლობებს.
პროექტის შეჯამება:
რობოტის შასი არის 3D დაბეჭდილი Ender 3 პრინტერის გამოყენებით და შექმნილია ერთმანეთთან დაჭერით.
რობოტს აკონტროლებს Arduino Uno, რომელიც იღებს სენსორის მონაცემებს MPU6050– დან და აკონტროლებს DC ძრავებს გარე ძრავის დრაივერის საშუალებით. ის მუშაობს 7.4V, 1500mAh ბატარეაზე. ძრავის დრაივერი არეგულირებს არდუინოს 5 ვ -მდე და ძრავებს აწვდის 7.4 ვ.
პროგრამული უზრუნველყოფა დაიწერა ნულიდან „Arduino-KalmanFilter-master“და „Arduino-MPU6050-master“ბიბლიოთეკების დახმარებით gitHub– დან.
მასალები:
- 3D ნაბეჭდი ნაწილები
- Arduino UNO
- MPU6050 6 ღერძიანი სენსორი
- D. C საავტომობილო მძღოლი
- N20 DC Motors (x2)
- 9 ვ ბატარეა
ნაბიჯი 1: Robot Build
ბეჭდვა და შეკრება
მთელი ნაგებობა უნდა იყოს პრესისთვის მორგებული, მაგრამ მე გამოვიყენე სუპერწებო კომპონენტების გასამყარებლად, რომ რობოტი ბალანსირებისას სრულად ხისტი იყოს.
მე შემუშავებული მაქვს ნაწილები Fusion 360 – ში და თითოეული ნაწილი ოპტიმიზირებულია ბეჭდვის გარეშე, რათა გამკაცრდეს ტოლერანტობა და სუფთა ზედაპირი.
Ender 3 პრინტერზე გამოყენებული პარამეტრები იყო: 0.16 მმ ფენის სიმაღლე @ 40% შევსება ყველა ნაწილისთვის.
ნაბიჯი 2: 3D ბეჭდვის რობოტი
შასი (x1)
მარცხენა ბორბალი (x2)
მარცხენა საავტომობილო საცხოვრებელი (x2)
Arduino Case (x1)
ნაბიჯი 3: PID კონტროლის ალგორითმი
მე დავწერე PID კონტროლის ალგორითმი ნულიდან "Arduino-KalmanFilter-master" და "Arduino-MPU6050-master" ბიბლიოთეკების გამოყენებით gitHub– დან.
ალგორითმის საფუძველი შემდეგია:
- წაიკითხეთ ნედლეული მონაცემები MPU6050– დან
- გამოიყენეთ კალმანის ფილტრი გიროსკოპისა და აქსელერომეტრის მონაცემების გასაანალიზებლად სენსორის დაჩქარების გამო გიროსკოპის კითხვების უზუსტობების გასაუქმებლად. ეს აბრუნებს შედარებით გათლილ მნიშვნელობას სენსორის სიმაღლის ხარისხით ორ ათწილადში.
- გამოთვალეთ E rror კუთხეში, ანუ: კუთხე სენსორსა და მითითებულ წერტილს შორის.
- გამოთვალეთ პროპორციული შეცდომა როგორც (პროპორციულობის მუდმივი x შეცდომა).
- გამოითვალეთ ინტეგრალური შეცდომა (ინტეგრაციის მუდმივი x შეცდომა).
- გამოთვალეთ წარმოებული შეცდომა როგორც მუდმივი, როგორც [(დიფერენცირების მუდმივი] x (შეცდომის შეცვლა / დროის ცვლილება)]
- შეაჯამეთ ყველა შეცდომა, რომ მიიღოთ სიჩქარე, რომელიც უნდა გაიგზავნოს ძრავებზე.
- შეცვლის კუთხის ნიშნის მიხედვით გამოთვალეთ ძრავების რომელი მიმართულება.
- მარყუჟი იმუშავებს განუსაზღვრელი ვადით და დაეყრდნობა გამომავალს, რადგან შეყვანა იცვლება. ეს არის უკუკავშირის მარყუჟი, გამომავალი მნიშვნელობების გამოყენებით, როგორც ახალი შემავალი მნიშვნელობები მომდევნო გამეორებისთვის.
ბოლო ნაბიჯი არის PID მარყუჟის დაყენება Kp, Ki & Kd პარამეტრები.
- კარგი ამოსავალი წერტილი არის ნელ -ნელა გაზრდა Kp მანამ, სანამ რობოტი არ ბრუნავს ბალანსის წერტილის გარშემო და შეძლებს დაცემას.
- შემდეგი, დაიწყეთ Kd Kp– ს მნიშვნელობით დაახლოებით 1% –ით და ნელ -ნელა გაზარდეთ სანამ რხევები არ გაქრება და რობოტი შეუფერხებლად სრიალებს, როდესაც უბიძგებს მას.
- დაბოლოს, დაიწყეთ Ki– ით Kp– ს დაახლოებით 20% –ით და იცვლება მანამ, სანამ რობოტი არ გადააჭარბებს მითითებულ წერტილს, რათა აქტიურად დაიჭიროს დაცემა და დაუბრუნდეს ვერტიკალს.
გირჩევთ:
თვითბალანსირებული რობოტი Magicbit– დან: 6 ნაბიჯი
თვითბალანსირებული რობოტი Magicbit– დან: ეს გაკვეთილი გვიჩვენებს, თუ როგორ უნდა გავაკეთოთ თვითბალანსირებული რობოტი Magicbit dev დაფის გამოყენებით. ჩვენ ვიყენებთ magicbit– ს, როგორც განვითარების დაფას ამ პროექტში, რომელიც დაფუძნებულია ESP32– ზე. ამიტომ ნებისმიერი ESP32 განვითარების დაფა შეიძლება გამოყენებულ იქნას ამ პროექტში
ორი ბორბალი თვითბალანსირებული რობოტი: 7 ნაბიჯი
ორი ბორბალი თვითბალანსირებული რობოტი: ეს ინსტრუქცია გაივლის დიზაინისა და შექმნის პროცესს თვითბალანსირებული რობოტისთვის. როგორც შენიშვნა, მე უბრალოდ მინდა ვთქვა, რომ თვითდაბალანსებული რობოტები არ არის ახალი კონცეფცია და ისინი სხვების მიერ არის აგებული და დოკუმენტირებული. მინდა გამოვიყენო ეს შესაძლებლობა
როგორ შევქმნათ დისტანციურად კონტროლირებადი 3D დაბეჭდილი თვითბალანსირებული რობოტი: 9 ნაბიჯი (სურათებით)
როგორ შევქმნათ დისტანციურად კონტროლირებადი 3D დაბეჭდილი თვითბალანსირებული რობოტი: ეს არის B- რობოტის წინა ვერსიის ევოლუცია. 100% ღია წყარო / Arduino რობოტი. კოდი, 3D ნაწილები და ელექტრონიკა ღიაა, ასე რომ მოგერიდებათ მისი შეცვლა ან რობოტის უზარმაზარი ვერსიის შექმნა. თუ თქვენ გაქვთ ეჭვი, იდეები ან გჭირდებათ დახმარება, გააკეთეთ
2 ბორბლიანი თვითბალანსირებული რობოტი: 4 ნაბიჯი
2 ბორბლიანი თვითბალანსირებული რობოტი: ჩემი მოკრძალებული აზრით, თქვენ არ ხართ ნამდვილი შემქმნელი, თუ არ შექმნით თქვენს საკუთარ 2 ბორბლიან რობოტს. :-) ასე რომ, აქ არის … და, რაც მთავარია, ის მუშაობს !!! ეს პროექტი გამოიყურება ძალიან მარტივი. ამის ნაცვლად, ეს მოითხოვს ცოდნის კარგ დონეს
თვითბალანსირებული რობოტი: 6 ნაბიჯი (სურათებით)
თვითბალანსირებული რობოტი: ამ ინსტრუქციებით ჩვენ გაჩვენებთ თუ როგორ უნდა ავაშენოთ თვითბალანსირებული რობოტი, რომელიც ჩვენ გავაკეთეთ, როგორც სკოლის პროექტი. ის დაფუძნებულია სხვა რობოტებზე, როგორიცაა nBot და სხვა Instructable. რობოტის კონტროლი შესაძლებელია Android სმარტფონიდან