Mündəricat:
- Addım 1: Niyə İnertial Ölçmə Birimindən istifadə etməlisiniz?
- Addım 2: 2D Lokalizasiya üçün BNO055 -dən necə istifadə olunur?
- Addım 3: Hardware Point of Vue
- Addım 4: Necə işləyir?
- Addım 5: Memarlıq və Proqram
- Addım 6: Nə Öyrəndim?
Video: İnertial Ölçmə Birimindən İstifadə Bir Yol? 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Kontekst:
Əylənmək üçün bir evin içərisində müstəqil şəkildə hərəkət etmək istədiyim bir robot qururam.
Uzun bir işdir və addım -addım edirəm.
Artıq bu mövzuda 2 təlimat dərc etmişəm:
- təkər kodlayıcısı hazırlamaq haqqında
- wifi bağlantısı haqqında
Robotum ev təkər kodlayıcısının köməyi ilə 2 DC mühərriklə idarə olunur.
Hal -hazırda hərəkətli idarəetməni təkmilləşdirirəm və bir müddət giroskop, akselerometr və IMU ilə keçirdim. Bu təcrübəni bölüşməkdən məmnun olardım.
Yerləşdirmə haqqında daha çox bilmək istəyirsiniz? Robotu lokallaşdırmaq üçün süni intellekt və ultrasəsləri necə birləşdirə biləcəyiniz haqqında bir məqalə
Addım 1: Niyə İnertial Ölçmə Birimindən istifadə etməlisiniz?
Bəs niyə IMU -dan istifadə etdim?
Birinci səbəb, təkər kodlayıcısının düz hərəkəti idarə etmək üçün kifayət qədər dəqiq olmasıdır, hətta tüninqdən sonra da +- 5 dərəcədən aşağı fırlanma dəqiqliyi əldə edə bilməmişəm və bu kifayət deyil.
Buna görə 2 fərqli sensoru sınadım. Əvvəlcə bir maqnitometrdən (LSM303D) istifadə edirəm. Prinsip sadə idi: fırlanmadan əvvəl şimal istiqamətini əldə edin, hədəfi hesablayın və hədəfə çatana qədər hərəkəti tənzimləyin. Enkoderdən bir az daha yaxşı idi, amma çox dağınıq idi. Bundan sonra bir giroskop (L3GD20) istifadə etməyə çalışdım. Prinsip, fırlanmanı hesablamaq üçün sensor tərəfindən verilən fırlanma sürətini birləşdirmək idi. Və yaxşı işləyirdi. +- 1 dərəcə fırlanmanı idarə edə bildim.
Buna baxmayaraq, bəzi İİB -ləri sınamaq mənə maraqlı gəldi. BNO055 komponentini seçirəm. Bu İB -ni anlamaq və sınamaq üçün bir az vaxt sərf etdim. Sonda aşağıdakı səbəblərə görə bu sensoru seçməyə qərar verdim
- L3GD20 ilə fırlanmanı da idarə edə bilərəm
- Düz hərəkət edərkən bir az fırlanma hiss edə bilərəm
- Robot lokalizasiyası üçün şimal istiqamətini almalıyam və BNO055 -in pusula kalibrlənməsi çox sadədir
Addım 2: 2D Lokalizasiya üçün BNO055 -dən necə istifadə olunur?
BNO055 IMU, mütləq istiqamətləndirmə təmin edə bilən Bosch 9 oxlu ağıllı bir sensordur.
Məlumat cədvəli tam bir sənəd təqdim edir. Yüksək texnologiyalı bir komponentdir, olduqca mürəkkəb bir məhsuldur və necə işlədiyini öyrənmək və istifadə etməyin müxtəlif yollarını sınamaq üçün bir neçə saat sərf etdim.
Bu təcrübəni paylaşmağın faydalı ola biləcəyini düşünürəm.
Əvvəlcə sensoru kalibr etmək və kəşf etmək üçün yaxşı bir vasitə təmin edən Adafruit kitabxanasından istifadə etdim.
Sonda və bir çox sınaqlardan sonra qərar verdim
- yalnız kalibrləmə saxlamaq üçün Adafruit kitabxanasından istifadə edin
- BNO055 -in bütün mümkün rejimlərindən 3 -dən istifadə edin (NDOF, IMU, Compss)
- BNO055 mesurments əsasında lokalizasiyanı hesablamaq üçün bir Arduino Nano ayırın
Addım 3: Hardware Point of Vue
BNO055 I2C komponentidir. Beləliklə, ünsiyyət qurmaq üçün enerji təchizatı, SDA və SCL lazımdır.
Yalnız aldığınız məhsula görə Vdd gərginliyinə diqqət yetirin. Bosch çipi 2.4V - 3.6V aralığında işləyir və 3.3v və 5v komponentləri tapa bilərsiniz.
Nano ilə BNO055 -i birləşdirməkdə heç bir çətinlik yoxdur.
- BNO055 Nano ilə təchiz edilmişdir
- SDA & SCL, 2 x 2k çəkmə dirənçləri ilə bağlıdır.
- Diaqnoz üçün Nanoya qoşulmuş 3 LED (rezistorlu)
- Yükləndikdən sonra rejimi təyin etmək üçün 2 bağlayıcı istifadə olunur
- BNO -ya doğru 1 bağlayıcı (Gnd, Vdd, Sda, Scl, Int)
- Robot/Mega tərəf 1 bağlayıcı (+9V, Gnd, sda, Scl, Pin11, Pin12)
Bir az lehimləmə və budur!
Addım 4: Necə işləyir?
Vue ünsiyyət nöqtəsindən:
- Nano, I2C avtobus ustasıdır
- Robot/Mega və BNO055 I2C qullarıdır
- Nano, BNO055 qeydlərini daimi olaraq oxuyur
- Robot/Mega, Nanodan söz istəmək üçün rəqəmsal bir siqnal qaldırır
Vue hesablama nöqtəsindən: BNO055 ilə birlikdə Nano verir
- Pusula başlığı (lokalizasiya üçün istifadə olunur)
- Nisbi bir başlıq (rotasiyanı idarə etmək üçün istifadə olunur)
- Mütləq başlıq və mövqe (hərəkətləri idarə etmək üçün istifadə olunur)
Fəaliyyət baxımından: Nano:
- BNO055 kalibrini idarə edir
- BNO055 parametrlərini və əmrlərini idarə edir
Nano və BNO055 alt sistemi:
- hər bir robot təkəri üçün mütləq başlıq və lokalizasiyanı hesablayın (miqyas faktoru ilə)
- robotun fırlanması zamanı nisbi başlığı hesablayın
Addım 5: Memarlıq və Proqram
Əsas proqram Arduino Nano üzərində işləyir
- Memarlıq I2C ünsiyyətinə əsaslanır.
- Robotu işlədən Atmega -nın kifayət qədər yüklənmiş olması və bu arxitekturanın başqa yerdə təkrar istifadəni asanlaşdırması səbəbindən bir Nano həsr etməyi seçdim.
- Nano, BNO055 qeydlərini oxuyur, başlıq və lokalizasiyanı öz qeydlərində hesablayır və saxlayır.
- Robot kodunu işlədən, təkərlərin kodlayıcı məlumatlarını Nanoya göndərən Arduino Atmega, Nano qeydlərindəki başlıqları və lokalizasiyanı oxuyur.
Alt sistem (Nano) kodu burada GitHub -da mövcuddur
GitHub -da Adafruit kalibrləmə vasitəsi (kalibrləmə eeproomda saxlanılacaq)
Addım 6: Nə Öyrəndim?
I2C ilə əlaqədar
Əvvəlcə eyni avtobusda 2 usta (Arduino) və 1 qul (sensor) olmağa çalışdım, amma sonunda yalnız Nanonu master olaraq təyin etmək və 2 Arduino arasındakı GPIO bağlantısından istifadə edərək "nişan tələb etmək" mümkün və ən asandır..
2D oriyentasiya üçün BNO055 ilə əlaqədar
3 fərqli iş rejiminə konsentrasiya ola bilərəm: robot boşdaykən NDOF (giroskop, akselerometr və Kompaları birləşdir), robot hərəkət edərkən IMU (giroskopu, akselerometri birləşdir) və lokalizasiya mərhələsində Kompas. Bu rejimlər arasında keçid asan və sürətlidir.
Kodun ölçüsünü azaltmaq və toqquşma aşkar etmək üçün BNO055 kəsilməsini istifadə etmək ehtimalını saxlamaq üçün Adafruit kitabxanasından istifadə etməməyi və özüm etməyi üstün tuturam.
Tövsiyə:
Arduino, OBD2 və CAN Avtobusundan istifadə edərək takometr/skan ölçmə cihazı: 8 addım
Arduino, OBD2 və CAN Avtobusundan istifadə edərək takometr/skan ölçmə cihazı: Hər hansı bir Toyota Prius (və ya digər hibrid/xüsusi nəqliyyat vasitəsi) sahibləri tablosunda bir neçə yığım çatışmadığını biləcəklər! Mənim priusumda nə mühərrik dövriyyəsi, nə də temperatur göstəricisi var. Bir ifaçı olsanız, əvvəlcədən vaxt təyin etmək kimi şeyləri bilmək istəyə bilərsiniz
Dar Bant IoT: Ağıllı İşıqlandırma və Ölçmə daha yaxşı və daha sağlam bir ekosistemə yol açır: 3 addım
Dar Bant IoT: Ağıllı İşıqlandırma və Ölçmə daha yaxşı və daha sağlam bir ekosistemə yol açır: Avtomatika demək olar ki, hər sektorda öz yerini tapmışdır. İstehsaldan başlayaraq səhiyyəyə, nəqliyyata və təchizat zəncirinə qədər avtomatlaşdırma günün işığını gördü. Şübhəsiz ki, bunların hamısı cazibədardır, amma görünən biri var
HYT939 və Partikül Fotonundan istifadə edərək Nəm Ölçmə: 4 addım
HYT939 və Partikül Fotonundan istifadə edərək Nəm Ölçmə: HYT939, I2C rabitə protokolu üzərində işləyən rəqəmsal rütubət sensorudur. Nəmlik, tibbi sistemlərə və laboratoriyalara gəldikdə əsas bir parametrdir, buna görə də bu məqsədlərə çatmaq üçün HYT939 -u moruq pi ilə birləşdirməyə çalışdıq. Mən
HIH6130 və Arduino Nano istifadə edərək Nəmlik və Temperatur Ölçmə: 4 addım
HIH6130 və Arduino Nano istifadə edərək Rütubət və Temperatur Ölçmə: HIH6130 rəqəmsal çıxışı olan rütubət və temperatur sensorudur. Bu sensorlar ± 4% RH dəqiqlik səviyyəsi təmin edir. Sektorun aparıcı uzunmüddətli sabitliyi, əsl temperaturla kompensasiya edilmiş rəqəmsal I2C, Sənayenin qabaqcıl etibarlılığı, Enerji səmərəliliyi
LM3914 istifadə edərək ikili kanallı bir Vu Ölçmə cihazı necə etmək olar: 3 addım
LM3914 istifadə edərək ikili kanallı Vu sayğacını necə etmək olar: Bu yazıda LM3914 IC istifadə edərək ikili kanallı Vu sayğacının necə hazırlanacağını paylaşacam. Tam tikinti üçün postla birlikdə əlavə edilmiş videoya baxa bilərsiniz & layihəni işləyin və ya yazını oxumağa davam edin