İçindekiler:
- Adım 1: Neden Atalet Ölçüm Birimi Kullanılır?
- Adım 2: 2D Yerelleştirme için BNO055 Nasıl Kullanılır?
- Adım 3: Vue'nun Donanım Noktası
- Adım 4: Nasıl Çalışır?
- Adım 5: Mimari ve Yazılım
- Adım 6: Ne Öğrendim?
Video: Atalet Ölçüm Birimi Kullanmanın Bir Yolu ?: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Bağlam:
Bir evin içinde kendi kendine hareket etmek istediğim bir robotu eğlence için yapıyorum.
Uzun bir iş ve adım adım yapıyorum.
Bu konuda zaten 2 talimat yayınladım:
- bir tekerlek kodlayıcı yapmakla ilgili
- wifi bağlantısı hakkında
Robotum, ev yapımı tekerlek kodlayıcım yardımıyla 2 DC motor tarafından tahrik ediliyor.
Şu anda hareket kontrolünü geliştiriyorum ve jiroskop, ivmeölçer ve IMU ile biraz zaman geçirdim. Bu deneyimi paylaşmaktan memnuniyet duyarım.
Yerelleştirme hakkında daha fazla bilgi edinmek ister misiniz? Robotu lokalize etmek için yapay zeka ve ultrasonların nasıl birleştirileceğine dair bir makale
Adım 1: Neden Atalet Ölçüm Birimi Kullanılır?
Peki neden bir IMU kullandım?
İlk sebep, eğer tekerlek kodlayıcı düz hareketi kontrol edecek kadar hassassa, ayardan sonra bile dönüş için +- 5 dereceden daha az bir hassasiyet elde edemedim ve bu yeterli değil.
Bu yüzden 2 farklı sensör denedim. İlk önce bir manyetometre (LSM303D) kullanıyorum. İlke basitti: döndürmeden önce kuzey yönünü alın, hedefi hesaplayın ve hedefe ulaşılana kadar hareketi ayarlayın. Kodlayıcıdan biraz daha iyiydi, ancak çok fazla dağılma vardı. Ondan sonra bir jiroskop (L3GD20) kullanmaya çalıştım. İlke, dönüşü hesaplamak için sensör tarafından sağlanan dönüş hızını entegre etmekti. Ve iyi çalıştı. + - 1 derecede döndürmeyi kontrol edebildim.
Yine de biraz IMU denemeyi merak ediyordum. Bir BNO055 bileşeni seçiyorum. Bu IMU'yu anlamak ve test etmek için biraz zaman harcadım. Sonunda aşağıdaki nedenlerden dolayı bu sensörü seçmeye karar verdim.
- L3GD20 ile olduğu gibi dönüşü de kontrol edebilirim
- Düz hareket ederken hafif dönüşü algılayabilirim
- Robot lokalizasyonu için kuzey yönüne ihtiyacım var ve BNO055'in pusula kalibrasyonu çok basit
Adım 2: 2D Yerelleştirme için BNO055 Nasıl Kullanılır?
BNO055 IMU, mutlak yönlendirme sağlayabilen bir Bosch 9 eksenli akıllı sensördür.
Veri sayfası eksiksiz bir dokümantasyon sağlar. Yüksek teknoloji ürünü bir bileşen, oldukça karmaşık bir ürün ve nasıl çalıştığını öğrenmek ve onu kullanmanın farklı yollarını denemek için birkaç saat harcadım.
Bu deneyimi paylaşmanın faydalı olabileceğini düşünüyorum.
Öncelikle sensörü kalibre etmek ve keşfetmek için iyi bir araç sağlayan Adafruit kütüphanesini kullandım.
Sonunda ve birçok testten sonra karar verdim
- Adafruit kitaplığını yalnızca kalibrasyonu kaydetmek için kullanın
- BNO055'in tüm olası modlarından 3'ünü kullanın (NDOF, IMU, Compss)
- BNO055 ölçümlerine dayalı yerelleştirmeyi hesaplamak için bir Arduino Nano'yu adamak
Adım 3: Vue'nun Donanım Noktası
BNO055 bir I2C bileşenidir. Bu yüzden iletişim kurmak için güç kaynağına, SDA'ya ve SCL'ye ihtiyaç duyar.
Aldığınız ürüne göre Vdd voltajına dikkat edin. Bosch çipi şu aralıkta çalışır: 2.4V ila 3.6V ve 3.3v ve 5v bileşeni bulabilirsiniz.
Nano ve BNO055'i bağlamak için hiçbir zorluk yoktur.
- BNO055, Nano tarafından desteklenmektedir
- SDA ve SCL, 2 x 2k pull-up dirençleri ile bağlanır.
- Teşhis için Nano'ya bağlı 3 LED (dirençli)
- Önyüklemeden sonra modu tanımlamak için kullanılan 2 konektör
- BNO'ya doğru 1 konektör (Gnd, Vdd, Sda, Scl, Int)
- Robot/Mega'ya doğru 1 konektör (+9V, Gnd, sda, Scl, Pin11, Pin12)
Biraz lehimleme ve bu kadar!
Adım 4: Nasıl Çalışır?
vue iletişim noktasından:
- Nano, I2C veri yolu yöneticisidir
- Robot/Mega ve BNO055, I2C bağımlılarıdır
- Nano, BNO055 kayıtlarını kalıcı olarak okur
- Robot/Mega, kelimeyi Nano'dan istemek için sayısal bir sinyal verir.
vue hesaplama noktasından:BNO055 ile birleştirilmiş Nano şunları sunar:
- Pusula yönü (yerelleştirme için kullanılır)
- Göreceli bir başlık (dönüşleri kontrol etmek için kullanılır)
- Mutlak yön ve konum (hareketleri kontrol etmek için kullanılır)
İşlevsel açıdan bakıldığında: Nano:
- BNO055 kalibrasyonunu yönetir
- BNO055 parametrelerini ve komutlarını yönetir
Nano ve BNO055 alt sistemi:
- her robot tekerleği için mutlak yönü ve lokalizasyonu hesaplayın (bir ölçek faktörü ile)
- robotun dönüşü sırasında göreceli yönü hesaplayın
Adım 5: Mimari ve Yazılım
Ana yazılım bir Arduino Nano üzerinde çalışıyor
- Mimari, I2C iletişimine dayanmaktadır.
- Robotu çalıştıran Atmega'nın zaten yüklü olması ve bu mimarinin başka yerlerde yeniden kullanmayı en kolay hale getirmesi nedeniyle bir Nano ayırmayı seçtim.
- Nano, BNO055 kayıtlarını okur, kendi kayıtlarında başlık ve yerelleştirmeyi hesaplar ve saklar.
- Robot kodunu çalıştıran Arduino Atmega, tekerlek kodlayıcı bilgilerini Nano'ya gönderir ve Nano kayıtlarının içindeki başlıkları ve yerelleştirmeyi okur.
Alt sistem (Nano) kodu burada GitHub'da mevcuttur
Adafruit kalibrasyon aracı, burada GitHub'daysa (kalibrasyon eeproom'da saklanacaktır)
Adım 6: Ne Öğrendim?
I2C ile ilgili
İlk olarak aynı bus üzerinde 2 master (Arduino) ve 1 slave (sensör) bulundurmaya çalıştım ama sonunda sadece Nano'yu master olarak ayarlamak ve 2 Arduino arasında "token istemek" için GPIO bağlantısını kullanmak mümkün ve kolay..
2D yönlendirme için BNO055 ile ilgili
3 farklı çalışma moduna odaklanabiliyorum: Robot boştayken NDOF (jiroskop, ivmeölçer ve Pusula kombinasyonu), robot hareket halindeyken IMU (jiroskop, ivmeölçer kombine) ve konum belirleme aşamasında Pusula. Bu modlar arasında geçiş yapmak kolay ve hızlıdır.
Kod boyutunu küçültmek ve çarpışmayı tespit etmek için BNO055 kesmesini kullanma olasılığını korumak için Adafruit kütüphanesini kullanmamayı ve kendi başıma yapmayı tercih ediyorum.
Önerilen:
Dar Bant Nesnelerin İnterneti: Akıllı Aydınlatma ve Ölçüm Daha İyi ve Sağlıklı Bir Ekosistem İçin Yol Açıyor: 3 Adım
Dar Bant Nesnelerin İnterneti: Akıllı Aydınlatma ve Ölçüm Daha İyi ve Sağlıklı Bir Ekosistem İçin Yol Açıyor: Otomasyon hemen hemen her sektörde kendine yer buldu. Üretimden sağlık, ulaşım ve tedarik zincirine kadar otomasyon gün ışığını gördü. Eh, bunların hepsi şüphesiz çekici, ama görünen bir tane var
Makey Makey'i Teknik Desteyle Kullanmanın Kolay Yolu: 5 Adım
Teknik Desteyle Makey Makey'i Kullanmanın Kolay Yolu: Merhaba. Geçenlerde bu yarışmada gerçekten harika ama zor görünen bir teknoloji destesi makey programı gördüm, bu yüzden bir teknoloji destesiyle oyun oynamanın kolay bir yolunu yaptım. Eğitilebilirliğimi beğendiyseniz, lütfen makey makey yarışmasında oy verin
ARUPI - Ses Manzarası Ekolojistleri için Düşük Maliyetli Otomatik Kayıt Birimi/Otonom Kayıt Birimi (ARU): 8 Adım (Resimlerle)
ARUPI - Soundscape Ekolojistleri için Düşük Maliyetli Otomatik Kayıt Birimi/Otonom Kayıt Birimi (ARU): Bu talimat, Anthony Turner tarafından yazılmıştır. Proje, Kent Üniversitesi, Bilgisayar Okulundaki Shed'in çok sayıda yardımı ile geliştirildi (Bay Daniel Knox çok yardımcı oldu!)
Şirin Bir Tarih, Saat ve Sıcaklık Gösterge Birimi: 3 Adım
Şirin Bir Tarih, Saat ve Sıcaklık Gösterge Birimi: Merhaba arkadaşlar, Bu derste, Arduino pro mini, bir RTC ve sekiz haneli yedi segment ekran kullanarak bir tarih, saat ve mevcut sıcaklık görüntüleme ünitesi yapma prosedürünü açıklayacağım. kullanışlı bir cihaz olan çok kompakt bir ünitede
Eğitim Amaçlı Basit Bir Basınç Ölçüm Cihazı: 4 Adım
Eğitim Amaçlı Basit Bir Basınç Ölçüm Cihazı: Aşağıda, basınç ölçümleriyle oynamak için çok basit ve yapımı kolay bir cihazın yapım talimatlarını bulabilirsiniz. Gaz yasalarıyla ilgili okullar veya diğer STEM ile ilgili Projeler için kullanılabilir, ancak diğer cihazlara entegre edilmek üzere uyarlanabilir