Obsah:
- Krok 1: Prehľad BMG160:
- Krok 2: Čo potrebujete.. !
- Krok 3: Pripojenie hardvéru:
- Krok 4: Meranie 3-osového gyroskopu Arduino Kód:
- Krok 5: Aplikácie:
Video: Rozhranie 3-osového gyroskopického senzora BMG160 s Arduino Nano: 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
V dnešnom svete viac ako polovica mládeže a detí miluje hry a všetci, ktorí ju majú radi, fascinovaní technickými aspektmi hrania, poznajú dôležitosť snímania pohybu v tejto oblasti. Boli sme tiež ohromení rovnakou vecou a len aby sme to uviedli na dosky, napadlo nás pracovať na gyroskopickom senzore, ktorý dokáže merať uhlovú rýchlosť akéhokoľvek objektu. Senzor, ktorý sme použili pri riešení tejto úlohy, je BMG160. BMG160 je 16-bitový, digitálny, trojosový, gyroskopický senzor, ktorý dokáže merať uhlovú rýchlosť v troch kolmých rozmeroch miestnosti.
V tomto tutoriáli ukážeme, ako funguje BMG160 s Arduino Nano.
Hardvér, ktorý budete na tento účel potrebovať, je nasledujúci:
1. BMG160
2. Arduino Nano
3. Kábel I2C
4. I2C štít pre Arduino Nano
Krok 1: Prehľad BMG160:
V prvom rade by sme vás chceli zoznámiť so základnými funkciami senzorového modulu BMG160 a komunikačným protokolom, na ktorom funguje.
BMG160 je v zásade 16-bitový, digitálny, trojosový, gyroskopický snímač, ktorý dokáže merať uhlové rýchlosti. Je schopný vypočítať uhlové rýchlosti v troch kolmých rozmeroch miestnosti, osi x, y a z, a poskytovať zodpovedajúce výstupné signály. S komunikačnou doskou Raspberry Pi môže komunikovať pomocou komunikačného protokolu I2C. Tento konkrétny modul je navrhnutý tak, aby spĺňal požiadavky na spotrebiteľské aplikácie aj na priemyselné účely.
Komunikačný protokol, na ktorom senzor funguje, je I2C. I2C znamená interintegrovaný obvod. Ide o komunikačný protokol, v ktorom komunikácia prebieha prostredníctvom liniek SDA (sériové údaje) a SCL (sériové hodiny). Umožňuje pripojenie viacerých zariadení súčasne. Je to jeden z najjednoduchších a najefektívnejších komunikačných protokolov.
Krok 2: Čo potrebujete.. !
Materiály, ktoré potrebujeme na dosiahnutie nášho cieľa, obsahujú nasledujúce hardvérové komponenty:
1. BMG160
2. Arduino Nano
3. Kábel I2C
4. I2C štít pre Arduino Nano
Krok 3: Pripojenie hardvéru:
Časť zapojenia hardvéru v zásade vysvetľuje zapojenie potrebné medzi senzorom a Arduinom. Zabezpečenie správneho pripojenia je základnou potrebou pri práci na akomkoľvek systéme s požadovaným výstupom. Potrebné spojenia sú teda tieto:
BMG160 bude fungovať cez I2C. Tu je príklad schémy zapojenia, ktorá ukazuje, ako prepojiť každé rozhranie snímača.
Hneď po vybalení je doska nakonfigurovaná na rozhranie I2C, preto vám toto pripojenie odporúčame použiť, ak ste inak agnostik.
Všetko, čo potrebujete, sú štyri drôty! Vyžadujú sa iba štyri pripojenia Vcc, Gnd, SCL a SDA piny, ktoré sú prepojené pomocou kábla I2C.
Tieto spojenia sú znázornené na obrázkoch vyššie.
Krok 4: Meranie 3-osového gyroskopu Arduino Kód:
Začnime teraz arduino kódom.
Pri použití senzorového modulu s arduinom obsahuje knižnicu Wire.h. Knižnica "Wire" obsahuje funkcie, ktoré uľahčujú komunikáciu i2c medzi senzorom a doskou Arduino.
Celý arduino kód je pre pohodlie užívateľa uvedený nižšie:
#include // Adresa BMG160 I2C je 0x68 (104)
#define Addr 0x68
neplatné nastavenie ()
{
// Inicializujte komunikáciu I2C ako MASTER
Wire.begin ();
// Inicializujte sériovú komunikáciu, nastavte prenosovú rýchlosť = 9600
Serial.begin (9600);
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Vyberte Register rozsahu
Wire.write (0x0F);
// Konfigurácia plného rozsahu stupnice 2 000 dps
Wire.write (0x80);
// Zastavte prenos I2C
Wire.endTransmission ();
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Vyberte register šírky pásma
Wire.write (0x10);
// Nastaviť šírku pásma = 200 Hz
Wire.write (0x04);
// Zastavte prenos I2C
Wire.endTransmission ();
oneskorenie (300);
}
prázdna slučka ()
{
nepodpísané int údaje [6];
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Vyberte register údajov gyrometra
Wire.write (0x02);
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 6 bajtov údajov
Wire.requestFrom (Addr, 6);
// Prečítajte 6 bajtov údajov
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
ak (Wire.available () == 6)
{
data [0] = Wire.read ();
údaje [1] = Wire.read ();
údaje [2] = Wire.read ();
údaje [3] = Wire.read ();
údaje [4] = Wire.read ();
údaje [5] = Wire.read ();
}
oneskorenie (300);
// Previesť údaje
int xGyro = ((údaje [1] * 256) + údaje [0]);
int yGyro = ((údaje [3] * 256) + údaje [2]);
int zGyro = ((údaje [5] * 256) + údaje [4]);
// Výstup údajov na sériový monitor
Serial.print ("Os otáčania X:");
Serial.println (xGyro); Serial.print ("Os otáčania Y:");
Serial.println (yGyro); Serial.print ("Osa Z rotácie:");
Serial.println (zGyro);
oneskorenie (500);
}
Krok 5: Aplikácie:
BMG160 má rôzny počet aplikácií v zariadeniach, ako sú mobilné telefóny, zariadenia s rozhraním človek -stroj. Tento senzorový modul bol navrhnutý tak, aby spĺňal požiadavky na spotrebiteľské aplikácie, ako je stabilizácia obrazu (DSC a telefón s fotoaparátom), herné a ukazovacie zariadenia. Používa sa tiež v systémoch, ktoré vyžadujú rozpoznávanie gest a v systémoch používaných vo vnútornej navigácii.
Odporúča:
Rozhranie senzora plynu s Arduino: 4 kroky
Prepojenie plynového senzora s Arduino: Senzor dymu MQ-2 je citlivý na dym a nasledujúce horľavé plyny: LPG, bután, propán, metán, alkohol, vodík. Odpor snímača je rôzny v závislosti od druhu plynu. Dymový senzor má vstavaný potenciometer
Rozhranie teplotného senzora LM35 s Arduino: 4 kroky
Rozhranie Snímač teploty LM35 s Arduino: Teplomery sú užitočné prístroje, ktoré sa dlho používajú na meranie teploty. V tomto projekte sme vyrobili digitálny teplomer na báze Arduina, ktorý zobrazuje aktuálnu teplotu okolia a zmeny teploty na LCD displeji. Môže to byť vyčerpávajúce
UV indexový merač pomocou senzora ML8511 ULTRAVIOLET senzora Arduino: 6 krokov
UV indexový merač pomocou senzora ML8511 ULTRAVIOLET Arduino: V tomto návode sa naučíme, ako zmerať slnečný UV index pomocou senzora ML8511 ULTRAVIOLET. Sledujte video! https://www.youtube.com/watch?v=i32L4nxU7_M
Rozhranie teplotného senzora DS18B20 s Arduino a ESP8266: 8 krokov
Rozhranie Snímač teploty DS18B20 s Arduino a ESP8266: Hej, čo sa deje, chlapci! Akarsh tu od CETech. Dnes do nášho arzenálu pridáme nový snímač známy ako teplotný snímač DS18B20. Je to teplotný senzor podobný DHT11, ale má inú sadu aplikácií. Porovnáme to s
Rozhranie TMP-112 s Arduino Nano (I2C): 5 krokov
Rozhranie TMP-112 s Arduino Nano (I2C): Dobrý deň, dobrý pozdrav .. !! Ja (Somanshu Choudhary) v mene technologických spoločností Dcube, ktorí idú merať teplotu pomocou Arduino nano, je to jedna z aplikácií protokolu I2C na čítanie analógové údaje teplotného senzora TMP-112