İçindekiler:
- Adım 1: Neye İhtiyacımız Olacak:
- Adım 2: Bina…
- 3. Adım: Devam Etmeden Önce Bazı Ek Bilgiler
- Adım 4: Kod:
- Adım 5: Test Etme ve Sonuç
Video: Gyro, İvmeölçer ve Arduino Kullanarak Açı Ölçümü: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:22
Cihaz, sonunda kendi kendini dengeleyen bir robot olacak şeyin kaba bir prototipidir, bu, delik olayının ikinci kısmıdır (ivmeölçeri okuyun ve bir motoru kendi kendini dengelemek için kontrol edin). Sadece jiroskop içeren ilk kısım burada bulunabilir. Bu talimatta, hem jiroskop hem de ivmeölçer kullanarak açıyı ölçeceğiz ve düzgün bir sinyal elde etmek için her iki sensörü birleştirmek için bir teknik kullanacağız. Tekniğe "tamamlayıcı filtre" denir.önceki
Adım 1: Neye İhtiyacımız Olacak:
Bazı parçalar değiştirilebilir ve kodda bazı değişiklikler donanımınıza uyacak şekilde yapılmalıdır. Bu projede kullanacağımız: - Breadboard - Mikrodenetleyici, Arduinoboard kullandım - Tel - Jumper Telleri - Jiroskop XV-8100 - Nunchuck Wii (ivmeölçer için) - Arduino için Nunchuck Wii adaptörü
Adım 2: Bina…
Devre, arduino'nuzdaki 0 bağlantı noktasına doğrudan bağlı bir jiroskoptan ve I2C bağlantı noktasına bağlanan bir nunchuck wii'den oluşur. Gyronun montajı:1. - jiroskopu breadboard2'ye takın. - her şey için kablo: - Gyro'dan arduino'daki analog port0'a bağlı Vo pini (Açık turuncu kablo) - Gyro'dan toprağa bağlı G pini (Beyaz kablo) - Vdd'ye bağlı Gyro'dan V+ pini (3.3V) (Turuncu kablo) Montaj ivmeölçer:1. - adaptörü nunchuck2'ye takın. - adaptörü3 kullanarak nunchuck'ı arduino'ya takın. - hızlanma sensörünü yukarıdaki fotoğraftaki gibi yerleştirin
3. Adım: Devam Etmeden Önce Bazı Ek Bilgiler
Her iki sensörden de açıyı ölçebiliriz ancak iki farklı teknik kullanarak açıyı gyro kullanarak ölçmek için sinyali entegre etmeliyiz. Peki bunu neden yapmalıyız? Cayro bize açısal hızı verdiğinden, açıyı bulmanın basit bir yolu açısal hızı zamanla çarpmaktır [açı = açı + w * dt]Açıyı bir ivmeölçer kullanarak ölçmek için her birinde yerçekimini algılamamız gerekir. ivmeölçerin ekseni, ne anlama geldiği, yerçekimi ivmesinin sensörün her yönüne yansıması bize açı hakkında fikir verir. [angle_accel = arctg(Ay / sqrt(Ax^2 + Az^2))]Öyleyse neden bir sensör yerine iki sensör kullanacağız? Her iki sensör özelliğinden de yararlanmak için. Grafiğe bakarsanız gyro verilerinin sürekli artışına sürüklenme denir ve ivmeölçer verileri küçük bir zamanda çok değişir. Ve her iki sinyali nasıl birleştiririz? Tamamlayıcı filtre adı verilen bir teknik kullanacağız. Bunun arkasındaki kesin teoriyi bilmiyorum, ama iyi çalışıyor. İnternette bazı bilgiler var, daha fazla bilgiye ihtiyacınız varsa google'a bakmanız yeterli. Bu linkte çok fazla bilgi var ve faydalı olabilir.filtered_angle = HPF*(filtered_angle + w* dt) + LPF*(angle_accel); burada HPF + LPF = 1HPF ve LPF değerleri bu bağlantıda, filter.pdf dosyasında bulunabilir. "The DIY Segway" den size teşekkürler. Sadece test amacıyla bu değerleri şu şekilde ayarlayacağız, HPF = 0.98 ve LPF = 0.02.
Adım 4: Kod:
Kod, başka bir projede kullandığım bir kodun uyarlamasıdır. Muhtemelen kullanılmayan bazı değişkenler vardır. https://todbot.com/blog/ adresinden nunchuck verilerini okumak için bir kitaplık kullandım. Teşekkürler Tod E. Kurt. Kodla ilgili yorumlar portekizce, boş bir vaktim olur olmaz çevireceğim. Kod çıktısı seri hattından şu kalıpla bazı numaralar:dt:w:teta:pitch: filter_teta $time:angular_velocity:gyro_angle:accel_angle:filtered_angle$Böylece bu değerleri bir seri terminalde kaydedebilir ve bir grafik çizebilir veya açıyı başka şeyler için kullanabilirsiniz. Kod hakkında herhangi bir açıklamaya ihtiyacınız olursa sormaktan çekinmeyin. Kod fermuarlı. Sadece açın, açın ve arduino'nuza yükleyin.
Adım 5: Test Etme ve Sonuç
Sistemi test etmek için verileri Termite adlı bir program kullanarak kaydettim, ardından bu verileri excel'e aktardım ve filtremin ne kadar iyi olduğunu görmek için grafiği çizdim. Sonuçlar harika. Tabii ki sinyali motor sürmek veya başka şeyler için kullanabilirsiniz. Herhangi bir yorum, herhangi bir şüphe, herhangi bir bilgi eksik, bana söyleyin ve düzelteyim. Lütfen beğendiyseniz, değerlendirin. Hepinize teşekkür ederim.
Önerilen:
MPU 6050 Gyro, Arduino ile İvmeölçer İletişimi (Atmega328p): 5 Adım
MPU 6050 Gyro,Arduino ile İvmeölçer İletişimi (Atmega328p): MPU6050 IMU, tek bir çip üzerinde entegre edilmiş 3 Eksenli ivmeölçer ve 3 Eksenli jiroskopa sahiptir. X, Y ve Z ekseni. Jiroskopun çıkışları
Raspberry Pi ve LIS3DHTR ile Hareket Kontrolü, 3 Eksenli İvmeölçer, Python Kullanarak: 6 Adım
Raspberry Pi ve LIS3DHTR ile Hareket Kontrolü, 3 Eksenli İvmeölçer, Python Kullanarak: Güzellik etrafımızı sarar, ancak genellikle bunu bilmek için bir bahçede yürüyor olmamız gerekir. - Rumi Göründüğümüz gibi eğitimli bir grup olarak, enerjimizin büyük çoğunluğunu bilgisayarlarımızdan ve cep telefonlarımızdan önce çalışarak harcıyoruz. Bu nedenle, sık sık sağlığımıza izin veririz
Arduino İvmeölçer Eğitimi: Servo Motor Kullanarak Bir Gemi Köprüsünü Kontrol Edin: 5 Adım
Arduino İvmeölçer Eğitimi: Bir Servo Motor Kullanarak Bir Gemi Köprüsünü Kontrol Edin: İvmeölçer sensörleri, artık akıllı telefonlarımızın çoğunda, sorumlu olanın ivmeölçer olduğunu bile bilmeden, onlara günlük olarak kullandığımız çok çeşitli kullanım ve yetenekler vermek için bulunmaktadır. Bu yeteneklerden biri de kontrol edilebilir
Xbox 360 Denetleyici İvmeölçer/gyro Direksiyon Modu: 7 Adım
Xbox 360 Kumanda İvmeölçer/gyro Direksiyon Modu: Xbox 360 kumandamla Assetto Corsa oynuyorum. Ne yazık ki, analog çubukla yönlendirme çok hantal ve tekerlek kurulumu için yerim yok. Daha iyi bir direksiyon mekanizmasını daha iyi hale getirmenin yollarını düşünmeye çalıştım
İvmeölçer ve Gyro Eğitimi: 3 Adım
İvmeölçer ve Gyro Eğitimi: Giriş Bu kılavuz, elektronik projelerinde İvmeölçerler ve Jiroskopların yanı sıra kombinasyon IMU cihazları (Atalet Ölçüm Birimi) kullanmakla ilgilenen herkese yöneliktir.