Სარჩევი:

კუთხის გაზომვა გიროსკოპის, ამაჩქარებლისა და არდუინოს გამოყენებით: 5 ნაბიჯი
კუთხის გაზომვა გიროსკოპის, ამაჩქარებლისა და არდუინოს გამოყენებით: 5 ნაბიჯი

ვიდეო: კუთხის გაზომვა გიროსკოპის, ამაჩქარებლისა და არდუინოს გამოყენებით: 5 ნაბიჯი

ვიდეო: კუთხის გაზომვა გიროსკოპის, ამაჩქარებლისა და არდუინოს გამოყენებით: 5 ნაბიჯი
ვიდეო: POCO X5 PRO - ყველაზე დეტალური მიმოხილვა და ტესტები 2024, ნოემბერი
Anonim
კუთხის გაზომვა გიროსკოპის, ამაჩქარებლისა და არდუინოს გამოყენებით
კუთხის გაზომვა გიროსკოპის, ამაჩქარებლისა და არდუინოს გამოყენებით

მოწყობილობა არის უხეში პროტოტიპი იმისა, რაც საბოლოოდ გახდება თვითბალანსებული რობოტი, ეს არის ხვრელის მეორე ნაწილი (წაიკითხეთ ამაჩქარებელი და გააკონტროლეთ ძრავა თვითბალანსირებისთვის). პირველი ნაწილი მხოლოდ გიროსკოპით არის ნაპოვნი აქ. ამ ინსტრუქციულად ჩვენ გავზომოთ კუთხე როგორც გიროს, ასევე ამაჩქარებლის გამოყენებით და ტექნიკის გამოყენებით შევაერთოთ ორივე სენსორი გლუვი სიგნალის მისაღებად. ტექნიკას ეწოდება "დამატებითი ფილტრი".წინასწარ

ნაბიჯი 1: რაც ჩვენ გვჭირდება:

რაც ჩვენ დაგვჭირდება
რაც ჩვენ დაგვჭირდება
რაც ჩვენ დაგვჭირდება
რაც ჩვენ დაგვჭირდება
რაც ჩვენ დაგვჭირდება
რაც ჩვენ დაგვჭირდება
რაც ჩვენ დაგვჭირდება
რაც ჩვენ დაგვჭირდება

ზოგიერთი ნაწილი შეიძლება შეიცვალოს, ხოლო კოდში გარკვეული ცვლილებები უნდა მოხდეს თქვენი ტექნიკის შესატყვისად. ამ პროექტში ჩვენ გამოვიყენებთ:- Breadboard- მიკროკონტროლი, მე გამოვიყენე Arduinoboard- Wire- Jumper Wires- გიროსკოპი XV-8100- Nunchuck Wii (ამაჩქარებლისთვის)- Nunchuck Wii ადაპტერი არდუინოსთვის

ნაბიჯი 2: აშენება…

Შენობა…
Შენობა…
Შენობა…
Შენობა…
Შენობა…
Შენობა…

წრე შედგება გიროსკოპისგან, რომელიც დაკავშირებულია უშუალოდ პორტში 0 თქვენს არდუინოში და nunchuck wii დაკავშირება I2C პორტთან. გიროს აწყობა: 1. - შეაერთეთ გირო პურის დაფაზე 2. - მავთულები ამაჩქარებელი: 1. - შეაერთეთ ადაპტერი nunchuck2– ზე. - შეაერთეთ nunchuck არდუინოსთან ადაპტერის გამოყენებით 3. - მოათავსეთ აკელის სენსორი, როგორც ზემოთ მოცემულ ფოტოში

ნაბიჯი 3: რამდენიმე დამატებითი ინფორმაცია სანამ გავაგრძელებთ

რამდენიმე დამატებითი ინფორმაცია სანამ გავაგრძელებთ
რამდენიმე დამატებითი ინფორმაცია სანამ გავაგრძელებთ
რამდენიმე დამატებითი ინფორმაცია სანამ გავაგრძელებთ
რამდენიმე დამატებითი ინფორმაცია სანამ გავაგრძელებთ
რამდენიმე დამატებითი ინფორმაცია სანამ გავაგრძელებთ
რამდენიმე დამატებითი ინფორმაცია სანამ გავაგრძელებთ

ორივე სენსორიდან ჩვენ შეგვიძლია გავზომოთ კუთხე, მაგრამ ორი განსხვავებული ტექნიკის გამოყენებით. გიროს გამოყენებით კუთხის გასაზომად ჩვენ უნდა გავაერთიანოთ სიგნალი. მაგრამ რატომ უნდა გავაკეთოთ ეს? იმის გამო, რომ გირო გვაძლევს კუთხოვან მაჩვენებელს, ამიტომ კუთხის მიღების მარტივი გზა არის კუთხის სიჩქარის გამრავლება დროზე [კუთხე = კუთხე + w * dt] აქსელერომეტრის გამოყენებით კუთხის გასაზომად ჩვენ უნდა ვიგრძნოთ სიმძიმე თითოეულში აქსელერომეტრის ღერძი, რას ნიშნავს ის, სიმძიმის აჩქარების პროექცია სენსორის თითოეული მიმართულებით გვაძლევს წარმოდგენას კუთხის შესახებ. [angle_accel = arctg (Ay / sqrt (Ax^2 + Az^2))] მაშ რატომ ვიყენებთ ორ სენსორს ერთის ნაცვლად? ორივე სენსორის თვისებების უპირატესობა. თუ გადახედავთ გრაფიკული მონაცემების მუდმივ ზრდას, ამას ეწოდება დრიფტი და აქსელერომეტრის მონაცემი იცვლება მცირე დროში. და როგორ გავაერთიანოთ ორივე სიგნალი? ჩვენ გამოვიყენებთ ტექნიკას, რომელსაც ეწოდება დამატებითი ფილტრი. მე არ ვიცი ზუსტი თეორია ამის უკან, მაგრამ ის მშვენივრად მუშაობს. ინტერნეტში არის გარკვეული ინფორმაცია, უბრალოდ გუგლში მოიძიეთ თუ გჭირდებათ მეტი ინფორმაცია. ამ ბმულს აქვს ბევრი ინფორმაცია და შეიძლება გამოსადეგი იყოს. გაფილტრული კუთხე = HPF*(გაფილტრული_კუთხედი + w*dt) + LPF*(angle_accel); სადაც HPF + LPF = 1 HPF და LPF ღირებულებები შეგიძლიათ იხილოთ ამ ბმულზე, filter.pdf ფაილზე. გმადლობთ ბიჭებო "DIY Segway" - დან. მხოლოდ სატესტო მიზნით ჩვენ დავადგენთ ამ მნიშვნელობებს ასე, HPF = 0.98 და LPF = 0.02.

ნაბიჯი 4: კოდი:

კოდი არის ადაპტაცია იმ კოდისგან, რომელიც მე გამოვიყენე სხვა პროექტზე. ალბათ არის რამდენიმე ცვლადი გამოუყენებელი. მე გამოვიყენე ბიბლიოთეკა, რომ წავიკითხე nunchuck მონაცემები https://todbot.com/blog/. გმადლობთ Tod E. Kurt. კომენტარები კოდის შესახებ პორტუგალიურ ენაზეა, როგორც კი თავისუფალი დრო მექნება, ვთარგმნი მას. კოდი, რომელიც გამოდის სერიული ხაზის მეშვეობით, ამ ნომრით რამდენიმე რიცხვს: dt: w: teta: pitch: filter_teta $ დრო: angular_velocity: gyro_angle: accel_angle: filtered_angle $ ასე რომ თქვენ შეგიძლიათ შეინახოთ ეს მნიშვნელობები სერიულ ტერმინალში და შეადგინოთ გრაფიკა ან გამოიყენოთ კუთხე სხვა რამეებისთვის. თუ რაიმე ახსნა გჭირდებათ კოდის შესახებ დაეცა უფასოდ. კოდი არის ziped. უბრალოდ გააწყვეტინე, გახსენი და ატვირთე ის შენს არდუინოში.

ნაბიჯი 5: ტესტირება და დასკვნა

ტესტირება და დასკვნა
ტესტირება და დასკვნა
ტესტირება და დასკვნა
ტესტირება და დასკვნა

სისტემის შესამოწმებლად მე შევინახე მონაცემები პროგრამის სახელწოდებით Termite, შემდეგ შემოვიტანე ეს მონაცემები Excel– ში და დავხატე გრაფიკი, რომ ნახოთ რამდენად კარგია ჩემი ფილტრი. შედეგები გასაოცარია. რა თქმა უნდა, შეგიძლიათ გამოიყენოთ სიგნალი ძრავის ან სხვა საგნების მართვისთვის. ნებისმიერი კომენტარი, ნებისმიერი ეჭვი, რაიმე ინფორმაცია აკლია, უბრალოდ მითხარით და მე შევასწორებ მას. გთხოვთ თუ მოგწონთ ეს, შეაფასეთ. მადლობა ყველას

გირჩევთ: