Obsah:

Ako používať modul GY511 s Arduino [Make a Digital Compass]: 11 krokov
Ako používať modul GY511 s Arduino [Make a Digital Compass]: 11 krokov

Video: Ako používať modul GY511 s Arduino [Make a Digital Compass]: 11 krokov

Video: Ako používať modul GY511 s Arduino [Make a Digital Compass]: 11 krokov
Video: Online Kurz Python - Modul math v Pythone - Ako Používať Matematické Funkcie? 🐍 2024, November
Anonim
Ako používať modul GY511 s Arduino [Make a Digital Compass]
Ako používať modul GY511 s Arduino [Make a Digital Compass]

Prehľad

Pri niektorých projektoch elektroniky musíme každú chvíľu poznať geografickú polohu a podľa toho vykonať konkrétnu operáciu. V tomto tutoriále sa naučíte používať kompasový modul LSM303DLHC GY-511 s Arduino na výrobu digitálneho kompasu. Najprv sa dozviete o tomto module a o tom, ako funguje, a potom uvidíte, ako prepojiť modul LSM303DLHC GY-511 s Arduino.

Čo sa naučíte

  • Čo je to modul kompasu?
  • Modul kompasu a rozhranie Arduino.
  • Vytvorte digitálny kompas s modulom GY-511 a Arduino.

Krok 1: Všeobecné informácie o module Compass

Všeobecné informácie o module Compass
Všeobecné informácie o module Compass

Modul GY-511 obsahuje 3-osový akcelerometer a 3-osový magnetometer. Tento senzor môže merať lineárne zrýchlenie v plných mierkach ± 2 g / ± 4 g / ± 8 g / ± 16 g a magnetické polia v plných mierkach ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Gaussa.

Keď je tento modul umiestnený do magnetického poľa, podľa Lorentzovho zákona v jeho mikroskopickej cievke indukuje budiaci prúd. Modul kompasu prevádza tento prúd na diferenciálne napätie pre každý smer súradnice. Pomocou týchto napätí môžete vypočítať magnetické pole v každom smere a získať geografickú polohu.

Tip

QMC5883L je ďalší bežne používaný modul kompasu. Tento modul, ktorý má podobnú štruktúru a aplikáciu ako modul LMS303, sa výkonovo mierne líši. Ak teda robíte projekty, dávajte si pozor na typ svojho modulu. Ak je vašim modulom QMC5882L, použite príslušnú knižnicu a kódy, ktoré sú tiež zahrnuté v návode.

Krok 2: Požadované súčasti

Požadované komponenty
Požadované komponenty

Hardvérové komponenty

Arduino UNO R3 *1

Trojosový akcelerometer GY-511 + magnetometer *1

Servomotor TowerPro SG-90 *1

Modul LCD 1602 *1

Svetre *1

Softvérové aplikácie

Arduino IDE

Krok 3: Prepojenie kompasového modulu GY-511 s Arduino

Prepojenie kompasového modulu GY-511 s Arduino
Prepojenie kompasového modulu GY-511 s Arduino
Prepojenie kompasového modulu GY-511 s Arduino
Prepojenie kompasového modulu GY-511 s Arduino

Kompasový modul GY-511 má 8 pinov, ale na prepojenie s Arduinom ich potrebujete iba 4. Tento modul komunikuje s Arduinom pomocou protokolu I2C, preto prepojte piny modulu SDA (výstup I2C) a SCK (hodinový vstup I2C) s kolíkmi I2C na doske Arduino.

Poznámka Ako vidíte, v tomto projekte sme použili modul GY-511. Tento návod však môžete použiť na nastavenie ďalších modulov kompasu LMS303.

Krok 4: Kalibrácia kompasového modulu GY-511

Na navigáciu je potrebné najskôr kalibrovať modul, to znamená nastaviť rozsah merania od 0 do 360 stupňov. Za týmto účelom pripojte modul k Arduinu podľa nižšie uvedeného obrázku a nahrajte na svoju dosku nasledujúci kód. Po vykonaní kódu môžete v okne sériového monitora vidieť minimálne a maximálne hodnoty meracieho rozsahu pre os X, Y a Z. Tieto čísla budete potrebovať v ďalšej časti, preto si ich zapíšte.

Krok 5: Okruh

Obvod
Obvod

Krok 6: Kód

V tomto kóde potrebujete knižnicu Wire.h na komunikáciu I2C a knižnicu LMS303.h na modul kompasu. Tieto knižnice si môžete stiahnuť z nasledujúcich odkazov.

Knižnica LMS303.h

Knižnica Wire.h

Poznámka Ak používate QMC5883, budete potrebovať nasledujúcu knižnicu:

MechaQMC5883L.h

Tu vysvetľujeme kód pre LMS303, ale môžete si stiahnuť aj kódy pre modul QMC.

Pozrime sa na niektoré z nových funkcií:

compass.enableDefault ();

Inicializácia modulu

compass.read ();

Čítanie výstupných hodnôt modulu kompasu

running_min.z = min (running_min.z, compass.m.z); running_max.x = max (running_max.x, compass.m.x);

Stanovenie minimálnych a maximálnych hodnôt rozsahu merania porovnaním nameraných hodnôt.

Krok 7: Vytvorenie digitálneho kompasu

Po kalibrácii modulu ideme zostaviť kompas pripojením servomotora k modulu. Servo indikátor nám teda vždy ukazuje severný smer, ako napríklad červená šípka na kompase. Za týmto účelom najskôr modul kompasu vypočíta geografický smer a odošle ho do Arduina a potom pomocou vhodného koeficientu vypočítate uhol, ku ktorému by sa mal servomotor otáčať, aby jeho indikátor smeroval k magnetickému severu. Nakoniec tento uhol použijeme na servomotor.

Krok 8: Okruh

Obvod
Obvod

Krok 9: Kód

Kód
Kód

Pre túto časť potrebujete aj knižnicu Servo.h, ktorá je predvolene nainštalovaná vo vašom softvéri Arduino.

Pozrime sa na niektoré z nových funkcií:

Servo Servo1;

Inicializácia modulu

compass.read ();

Predstavujeme objekt servomotora

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

Inicializácia modulu kompasu a servomotora

Argument Servo1.attach () je číslo kolíka pripojeného k servomotoru.

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

Pomocou týchto riadkov definujete minimálne a maximálne hodnoty na meranie rozsahu získaného v predchádzajúcej časti.

plávajúci nadpis = compass.heading ((LSM303:: vector) {0, 0, 1});

Funkcia nadpis () vracia uhol medzi súradnicovou osou a pevnou osou. Pevnú os môžete definovať vektorom v argumente funkcie. Napríklad tu, definovaním (vektora LSM303:: vektora) {0, 0, 1}, je os Z považovaná za konštantnú os.

Servo1.pis (nadpis);

Funkcia Servo1.write () aplikuje načítanú hodnotu modulu kompasu na servomotor.

Poznámka: Servomotor môže mať magnetické pole, preto je lepšie umiestniť servomotor vo vhodnej vzdialenosti od modulu kompasu, aby nedošlo k vychýleniu modulu kompasu.

Odporúča: