Mündəricat:

GY511 Modulunu Arduino ilə necə istifadə etmək olar [Rəqəmsal kompas düzəldin]: 11 addım
GY511 Modulunu Arduino ilə necə istifadə etmək olar [Rəqəmsal kompas düzəldin]: 11 addım

Video: GY511 Modulunu Arduino ilə necə istifadə etmək olar [Rəqəmsal kompas düzəldin]: 11 addım

Video: GY511 Modulunu Arduino ilə necə istifadə etmək olar [Rəqəmsal kompas düzəldin]: 11 addım
Video: Как использовать гироскоп, акселерометр, магнитометр MPU-9250 для Arduino 2024, Noyabr
Anonim
GY511 Modulunu Arduino ilə necə istifadə etmək olar [Rəqəmsal Kompas Edin]
GY511 Modulunu Arduino ilə necə istifadə etmək olar [Rəqəmsal Kompas Edin]

Baxış

Bəzi elektronika layihələrində hər an coğrafi yeri bilməli və buna uyğun olaraq xüsusi bir əməliyyat etməliyik. Bu təlimatda, rəqəmsal bir pusula etmək üçün Arduino ilə LSM303DLHC GY-511 kompas modulundan necə istifadə edəcəyinizi öyrənəcəksiniz. Əvvəlcə bu modul və necə işlədiyini öyrənəcəksiniz, sonra LSM303DLHC GY-511 modulunu Arduino ilə necə birləşdirəcəyinizi görəcəksiniz.

Öyrənəcəkləriniz

  • Kompas modulu nədir?
  • Kompas modulu və Arduino interfeysi.
  • GY-511 modulu və Arduino ilə rəqəmsal kompas yaradın.

Addım 1: Pusula Modulu haqqında Ümumi Məlumat

Kompas modulu haqqında ümumi məlumat
Kompas modulu haqqında ümumi məlumat

GY-511 moduluna 3 oxlu akselerometr və 3 oxlu maqnitometr daxildir. Bu sensor xətti sürətlənməni ± 2 g / ± 4 g / ± 8 g / ± 16 g və maqnit sahələrini ± 1.3 / ± 1.9 / ± 2.5 / ± 4.0 / ± 4.7 / ± 5.6 tam miqyasda ölçə bilər. / ± 8.1 Gauss.

Bu modul bir maqnit sahəsinə yerləşdirildikdə, Lorentz qanununa görə mikroskopik bobində bir həyəcan cərəyanı yaradır. Pusula modulu bu cərəyanı hər bir koordinat istiqaməti üçün diferensial gərginliyə çevirir. Bu gərginliklərdən istifadə edərək hər istiqamətdə maqnit sahəsini hesablaya və coğrafi mövqeyi əldə edə bilərsiniz.

İpucu

QMC5883L, başqa bir çox istifadə olunan kompas moduludur. LMS303 modulu kimi oxşar quruluşa və tətbiqə malik olan bu modul performans baxımından bir qədər fərqlidir. Buna görə də layihələr edirsinizsə, modul növünüzə diqqət yetirin. Modulunuz QMC5882L -dirsə, dərsliyə daxil olan uyğun kitabxana və kodları istifadə edin.

Addım 2: Tələb olunan komponentlər

Tələb olunan komponentlər
Tələb olunan komponentlər

Avadanlıq Komponentləri

Arduino UNO R3 *1

GY-511 3 Eksenli Akselerometr + Maqnitometr *1

TowerPro Servo Motor SG-90 *1

1602 LCD Modulu *1

Tullananlar *1

Proqram Tətbiqləri

Arduino IDE

Addım 3: Arduino ilə GY-511 Kompas Modulunu Araşdırmaq

Arduino ilə GY-511 Kompas Modulu Arasında
Arduino ilə GY-511 Kompas Modulu Arasında
Arduino ilə GY-511 Kompas Modulu Arasında
Arduino ilə GY-511 Kompas Modulu Arasında

GY-511 kompas modulunda 8 sancaq var, ancaq Arduino ilə əlaqə qurmaq üçün onlardan yalnız 4-nə ehtiyacınız var. Bu modul I2C protokolu ilə Arduino ilə əlaqə qurur, buna görə modulun SDA (I2C çıxışı) və SCK (I2C saat girişi) pinlərini Arduino lövhəsindəki I2C pinlərinə qoşun.

Qeyd Gördüyünüz kimi, bu layihədə GY-511 modulundan istifadə etdik. Ancaq digər LMS303 kompas modullarını qurmaq üçün bu təlimatdan istifadə edə bilərsiniz.

Addım 4: GY-511 Pusula Modulunun Kalibrlənməsi

Naviqasiya etmək üçün əvvəlcə modulu kalibr etməlisiniz, yəni ölçü aralığını 0 ilə 360 dərəcə arasında təyin edin. Bunu etmək üçün modulu aşağıda göstərildiyi kimi Arduino -ya bağlayın və aşağıdakı kodu lövhənizə yükləyin. Kodu icra etdikdən sonra serial monitor pəncərəsində X, Y və Z oxları üçün ölçü aralığının minimum və maksimum dəyərlərini görə bilərsiniz. Növbəti hissədə bu nömrələrə ehtiyacınız olacaq, bunları yazın.

Addım 5: Dövrə

Dövrə
Dövrə

Addım 6: Kod

Bu kodda, I2C ünsiyyəti üçün Wire.h kitabxanasına və kompas modulu üçün LMS303.h kitabxanasına ehtiyacınız var. Bu kitabxanaları aşağıdakı linklərdən yükləyə bilərsiniz.

LMS303.h Kitabxanası

Wire.h Kitabxanası

Qeyd QMC5883 istifadə edirsinizsə, aşağıdakı kitabxanaya ehtiyacınız olacaq:

MechaQMC5883L.h

Burada LMS303 kodunu izah edirik, ancaq QMC modulunun kodlarını da yükləyə bilərsiniz.

Yeni funksiyalardan bəzilərinə baxaq:

compass.enableDefault ();

Modulun işə salınması

compass.read ();

Pusula modulunun çıxış dəyərlərinin oxunması

çalışan_min.z = dəq (çalışan_min.z, pusula.mz); çalışan_max.x = maksimum (çalışan_max.x, kompas.mx);

Ölçülən dəyərləri müqayisə edərək ölçmə aralığının minimum və maksimum dəyərlərinin təyin edilməsi.

Addım 7: Rəqəmsal Pusula Hazırlayın

Modulu kalibr etdikdən sonra modula servo motor bağlayaraq kompas quracağıq. Belə ki, servo göstəricisi həmişə pusuladakı qırmızı ox kimi bizə şimal istiqamətini göstərir. Bunu etmək üçün əvvəlcə kompas modulu əvvəlcə coğrafi istiqaməti hesablayır və Arduinoya göndərir və sonra uyğun bir əmsal tətbiq edərək servo motorun göstəricisi maqnit şimala işarə etməsi üçün dönməli olduğu bucağı hesablayacaqsınız. Nəhayət, bu bucağı servo motora tətbiq edirik.

Addım 8: Dövrə

Dövrə
Dövrə

Addım 9: Kod

Kod
Kod

Bu hissə üçün Arduino proqramınızda standart olaraq quraşdırılmış Servo.h kitabxanasına da ehtiyacınız var.

Yeni funksiyalardan bəzilərinə baxaq:

Servo Servo1;

Modulun işə salınması

compass.read ();

Servo motor obyekti ilə tanışlıq

Servo1.tach (servoPin); compass.init (); compass.enableDefault ();

Pusula modulunun və servo motorun işə salınması

Servo1.attach () arqumenti, servo mühərrikə qoşulan pimin sayıdır.

pusula.m_min = (LSM303:: vektor) { -32767, -32767, -32767}; pusula.m_max = (LSM303:: vektor) { +32767, +32767, +32767};

Bu sətirləri istifadə edərək əvvəlki hissədə əldə edilən aralığı ölçmək üçün minimum və maksimum dəyərləri təyin edirsiniz.

float başlığı = compass.heading ((LSM303:: vektor) {0, 0, 1});

Başlıq () funksiyası koordinat oxu ilə sabit ox arasındakı bucağı qaytarır. Sabit oxu funksiya arqumentində bir vektorla təyin edə bilərsiniz. Məsələn, burada (LSM303:: vektor) {0, 0, 1} təyin edərək, Z oxu sabit bir ox hesab olunur.

Servo1.write (başlıq);

Servo1.write () funksiyası, kompas modulu tərəfindən oxunan dəyəri servo motora tətbiq edir.

Qeyd edək ki, servo mühərrikin maqnit sahəsi ola bilər, buna görə də servo motoru kompas modulundan kənara çıxarmaması üçün onu kompas modulundan uyğun bir məsafədə yerləşdirmək daha yaxşıdır.

Tövsiyə: