![Jak používat modul GY511 s Arduino [Vytvořit digitální kompas]: 11 kroků Jak používat modul GY511 s Arduino [Vytvořit digitální kompas]: 11 kroků](https://i.howwhatproduce.com/images/002/image-5459-37-j.webp)
Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38
![Jak používat modul GY511 s Arduino [Vytvořit digitální kompas] Jak používat modul GY511 s Arduino [Vytvořit digitální kompas]](https://i.howwhatproduce.com/images/002/image-5459-38-j.webp)
Přehled
U některých projektů v oblasti elektroniky musíme každou chvíli znát geografickou polohu a podle toho provést konkrétní operaci. V tomto tutoriálu se naučíte používat kompasový modul LSM303DLHC GY-511 s Arduino k výrobě digitálního kompasu. Nejprve se dozvíte o tomto modulu a o tom, jak funguje, a poté uvidíte, jak propojit modul LSM303DLHC GY-511 s Arduino.
Co se naučíte
- Co je to modul kompasu?
- Modul kompasu a rozhraní Arduino.
- Vytvořte digitální kompas s modulem GY-511 a Arduino.
Krok 1: Obecné informace o modulu Compass

Modul GY-511 obsahuje 3osý akcelerometr a 3osý magnetometr. Tento senzor může měřit lineární zrychlení v plných stupnicích ± 2 g / ± 4 g / ± 8 g / ± 16 ga magnetická pole v plných stupnicích ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Gauss.
Když je tento modul umístěn do magnetického pole, podle Lorentzova zákona indukuje v jeho mikroskopické cívce budicí proud. Modul kompasu převádí tento proud na rozdílové napětí pro každý směr souřadnic. Pomocí těchto napětí můžete vypočítat magnetické pole v každém směru a získat geografickou polohu.
Spropitné
QMC5883L je další běžně používaný modul kompasu. Tento modul, který má podobnou strukturu a aplikaci jako modul LMS303, se výkonově mírně liší. Pokud tedy provádíte projekty, dávejte si pozor na typ modulu. Pokud je váš modul QMC5882L, použijte příslušnou knihovnu a kódy, které jsou také součástí výukového programu.
Krok 2: Požadované součásti

Hardwarové komponenty
Arduino UNO R3 *1
3osý akcelerometr GY-511 + magnetometr *1
Servomotor TowerPro SG-90 *1
Modul LCD 1602 *1
Svetry *1
Softwarové aplikace
Arduino IDE
Krok 3: Propojení kompasového modulu GY-511 s Arduino


Modul kompasu GY-511 má 8 pinů, ale k propojení s Arduinem potřebujete pouze 4 z nich. Tento modul komunikuje s Arduino pomocí protokolu I2C, takže připojte piny modulu SDA (výstup I2C) a SCK (vstup hodin I2C) k pinům I2C na desce Arduino.
Poznámka Jak vidíte, v tomto projektu jsme použili modul GY-511. Tuto instrukci však můžete použít k nastavení dalších modulů kompasu LMS303.
Krok 4: Kalibrace kompasového modulu GY-511
Abyste mohli navigovat, musíte nejprve kalibrovat modul, což znamená nastavit rozsah měření od 0 do 360 stupňů. Chcete -li to provést, připojte modul k Arduinu, jak je znázorněno níže, a nahrajte na svou desku následující kód. Po spuštění kódu vidíte v okně sériového monitoru minimální a maximální hodnoty měřicího rozsahu pro osy X, Y a Z. Tato čísla budete potřebovat v další části, proto si je zapište.
Krok 5: Okruh

Krok 6: Kód
V tomto kódu potřebujete knihovnu Wire.h pro komunikaci I2C a knihovnu LMS303.h pro modul kompasu. Tyto knihovny si můžete stáhnout z následujících odkazů.
Knihovna LMS303.h
Knihovna Wire.h
Poznámka Pokud používáte QMC5883, budete potřebovat následující knihovnu:
MechaQMC5883L.h
Zde vysvětlujeme kód pro LMS303, ale můžete si také stáhnout kódy pro modul QMC.
Podívejme se na některé z nových funkcí:
compass.enableDefault ();
Inicializace modulu
compass.read ();
Čtení výstupních hodnot modulu kompasu
running_min.z = min (running_min.z, compass.m.z); running_max.x = max (running_max.x, compass.m.x);
Stanovení minimálních a maximálních hodnot rozsahu měření porovnáním naměřených hodnot.
Krok 7: Vytvoření digitálního kompasu
Po kalibraci modulu se chystáme sestavit kompas připojením servomotoru k modulu. Servo indikátor nám tedy vždy ukazuje severní směr, jako červená šipka na kompasu. Za tímto účelem nejprve modul kompasu vypočítá geografický směr a odešle jej do Arduina a poté pomocí příslušného koeficientu vypočítáte úhel, který by měl servomotor otáčet, aby jeho indikátor směřoval k magnetickému severu. Nakonec tento úhel aplikujeme na servomotor.
Krok 8: Okruh

Krok 9: Kód

Pro tuto část potřebujete také knihovnu Servo.h, která je ve výchozím nastavení nainstalována ve vašem softwaru Arduino.
Podívejme se na některé z nových funkcí:
Servo Servo1;
Inicializace modulu
compass.read ();
Představujeme objekt servomotoru
Servo1.attach (servoPin); compass.init (); compass.enableDefault ();
Inicializace modulu kompasu a servomotoru
Argument Servo1.attach () je číslo kolíku připojeného k servomotoru.
kompas.m_min = (LSM303:: vektor) { -32767, -32767, -32767}; kompas.m_max = (LSM303:: vektor) { +32767, +32767, +32767};
Pomocí těchto řádků definujete minimální a maximální hodnoty pro měření rozsahu získaného v předchozí části.
plovoucí nadpis = compass.heading ((LSM303:: vector) {0, 0, 1});
Funkce nadpis () vrací úhel mezi souřadnicovou osou a pevnou osou. Pevnou osu můžete definovat vektorem v argumentu funkce. Například zde definováním (LSM303:: vektor) {0, 0, 1} je osa Z považována za konstantní osu.
Servo1.write (nadpis);
Funkce Servo1.write () aplikuje načtenou hodnotu kompasovým modulem na servomotor.
Poznámka: Servomotor může mít magnetické pole, proto je lepší umístit servomotor ve vhodné vzdálenosti od modulu kompasu, aby nedošlo k vychýlení modulu kompasu.
Doporučuje:
Jak vytvořit zaváděcí jednotku Linux (a jak ji používat): 10 kroků

Jak vytvořit zaváděcí jednotku Linux (a jak ji používat): Toto je jednoduchý úvod, jak začít s Linuxem, konkrétně Ubuntu
Jak strhnout digitální posuvné měřítko a jak funguje digitální posuvné měřítko: 4 kroky

Jak strhnout digitální posuvné měřítko a jak funguje digitální posuvné měřítko: Mnoho lidí ví, jak používat třmeny k měření. Tento tutoriál vás naučí strhávat digitální posuvné měřítko a vysvětlí, jak digitální posuvné měřítko funguje
Jak používat terminál Mac a jak používat klíčové funkce: 4 kroky

Jak používat terminál Mac a jak používat klíčové funkce: Ukážeme vám, jak otevřít terminál MAC. V Terminálu vám také ukážeme několik funkcí, jako je ifconfig, změna adresářů, přístup k souborům a arp. Ifconfig vám umožní zkontrolovat vaši IP adresu a vaši MAC adresu
Jak vytvořit EKG a digitální monitor srdečního tepu: 6 kroků

Jak vytvořit EKG a digitální monitor srdečního tepu: Elektrokardiogram (EKG) měří elektrickou aktivitu srdečního tepu a ukazuje, jak rychle srdce bije, a také jeho rytmus. Existuje elektrický impuls, známý také jako vlna, který prochází srdcem, aby se srdeční sval
Jak vytvořit autonomního robota hrajícího basketbal pomocí IRobota Vytvořit jako základ: 7 kroků (s obrázky)

Jak vytvořit autonomního robota hrajícího basketbal pomocí IRobota Vytvořit jako základ: Toto je můj příspěvek k výzvě iRobot Create. Nejtěžší na celém tomto procesu pro mě bylo rozhodnout, co bude robot dělat. Chtěl jsem předvést skvělé funkce Create a zároveň přidat trochu robo vkusu. Všechny moje