![Interfejs 3-osiowego czujnika żyroskopowego BMG160 z Arduino Nano: 5 kroków Interfejs 3-osiowego czujnika żyroskopowego BMG160 z Arduino Nano: 5 kroków](https://i.howwhatproduce.com/images/004/image-10110-j.webp)
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:02
![Image Image](https://i.howwhatproduce.com/images/004/image-10110-2-j.webp)
![](https://i.ytimg.com/vi/5wnjj-K07xs/hqdefault.jpg)
W dzisiejszym świecie ponad połowa młodzieży i dzieci lubi gry, a wszyscy ci, którzy je lubią, zafascynowani technicznymi aspektami gier, wiedzą, jak ważne jest wykrywanie ruchu w tej dziedzinie. Byliśmy również zdumieni tym samym i żeby wprowadzić to na tablice, pomyśleliśmy o pracy nad czujnikiem żyroskopowym, który może mierzyć prędkość kątową dowolnego obiektu. Tak więc sensor, którym się podjęliśmy, to BMG160. BMG160 to 16-bitowy, cyfrowy, trójosiowy czujnik żyroskopowy, który może mierzyć prędkość kątową w trzech prostopadłych wymiarach pomieszczenia.
W tym samouczku zademonstrujemy działanie BMG160 z Arduino Nano.
Sprzęt, którego będziesz potrzebować do tego celu, to:
1. BMG160
2. Arduino Nano
3. Kabel I2C
4. Tarcza I2C dla Arduino Nano
Krok 1: Przegląd BMG160:
![Czego potrzebujesz..!! Czego potrzebujesz..!!](https://i.howwhatproduce.com/images/004/image-10110-3-j.webp)
Przede wszystkim chcielibyśmy zapoznać Państwa z podstawowymi cechami modułu czujnika jakim jest BMG160 oraz protokołem komunikacyjnym na którym pracuje.
BMG160 to w zasadzie 16-bitowy, cyfrowy, trójosiowy czujnik żyroskopowy, który może mierzyć prędkości kątowe. Jest w stanie obliczać prędkości kątowe w trzech prostopadłych wymiarach pomieszczenia, osi x, y i z oraz dostarczać odpowiednie sygnały wyjściowe. Może komunikować się z płytą raspberry pi za pomocą protokołu komunikacyjnego I2C. Ten konkretny moduł został zaprojektowany w celu spełnienia wymagań aplikacji konsumenckich, jak również zastosowań przemysłowych.
Protokół komunikacyjny na którym pracuje czujnik to I2C. I2C oznacza układ scalony. Jest to protokół komunikacyjny, w którym komunikacja odbywa się za pośrednictwem linii SDA (dane szeregowe) i SCL (zegar szeregowy). Umożliwia podłączenie wielu urządzeń jednocześnie. Jest to jeden z najprostszych i najbardziej wydajnych protokołów komunikacyjnych.
Krok 2: Czego potrzebujesz…
![Czego potrzebujesz..!! Czego potrzebujesz..!!](https://i.howwhatproduce.com/images/004/image-10110-4-j.webp)
![Czego potrzebujesz..!! Czego potrzebujesz..!!](https://i.howwhatproduce.com/images/004/image-10110-5-j.webp)
![Czego potrzebujesz..!! Czego potrzebujesz..!!](https://i.howwhatproduce.com/images/004/image-10110-6-j.webp)
Materiały, których potrzebujemy do realizacji naszego celu, obejmują następujące komponenty sprzętowe:
1. BMG160
2. Arduino Nano
3. Kabel I2C
4. I2C Shield dla Arduino Nano
Krok 3: Podłączenie sprzętu:
![Podłączenie sprzętu Podłączenie sprzętu](https://i.howwhatproduce.com/images/004/image-10110-7-j.webp)
![Podłączenie sprzętu Podłączenie sprzętu](https://i.howwhatproduce.com/images/004/image-10110-8-j.webp)
Sekcja podłączenia sprzętu zasadniczo wyjaśnia połączenia okablowania wymagane między czujnikiem a Arduino. Zapewnienie prawidłowych połączeń jest podstawową koniecznością podczas pracy na dowolnym systemie o pożądanej mocy. Tak więc wymagane połączenia są następujące:
BMG160 będzie pracował przez I2C. Oto przykładowy schemat okablowania, pokazujący, jak okablować każdy interfejs czujnika.
Po wyjęciu z pudełka, płyta jest skonfigurowana do interfejsu I2C, dlatego zalecamy korzystanie z tego podłączenia, jeśli jesteś agnostykiem.
Wszystko czego potrzebujesz to cztery przewody! Wymagane są tylko cztery połączenia Vcc, Gnd, SCL i SDA, które są połączone za pomocą kabla I2C.
Połączenia te są pokazane na powyższych zdjęciach.
Krok 4: 3-osiowy pomiar żyroskopu Kod Arduino:
![3-osiowy pomiar żyroskopu Kod Arduino 3-osiowy pomiar żyroskopu Kod Arduino](https://i.howwhatproduce.com/images/004/image-10110-9-j.webp)
![3-osiowy pomiar żyroskopu Kod Arduino 3-osiowy pomiar żyroskopu Kod Arduino](https://i.howwhatproduce.com/images/004/image-10110-10-j.webp)
Zacznijmy teraz od kodu arduino.
Korzystając z modułu czujnika z arduino, dołączamy bibliotekę Wire.h. Biblioteka "Wire" zawiera funkcje ułatwiające komunikację i2c pomiędzy czujnikiem a płytką arduino.
Cały kod arduino podano poniżej dla wygody użytkownika:
#include// BMG160 I2C adres to 0x68(104)
#define Addr 0x68
pusta konfiguracja()
{
// Zainicjuj komunikację I2C jako MASTER
Wire.początek();
// Zainicjuj komunikację szeregową, ustaw szybkość transmisji = 9600
Serial.początek(9600);
// Rozpocznij transmisję I2C
Wire.beginTransmisja(Addr);
// Wybierz rejestr zakresu
Wire.write(0x0F);
// Skonfiguruj pełny zakres skali 2000 dps
Wire.write(0x80);
// Zatrzymaj transmisję I2C
Wire.endTransmission();
// Rozpocznij transmisję I2C
Wire.beginTransmisja(Addr);
// Wybierz rejestr przepustowości
Wire.write(0x10);
// Ustaw przepustowość = 200 Hz
Wire.write(0x04);
// Zatrzymaj transmisję I2C
Wire.endTransmission();
opóźnienie(300);
}
pusta pętla()
{
dane int bez znaku[6];
// Rozpocznij transmisję I2C
Wire.beginTransmisja(Addr);
// Wybierz rejestr danych żyrometru
Wire.write(0x02);
// Zatrzymaj transmisję I2C
Wire.endTransmission();
// Żądaj 6 bajtów danych
Wire.requestFrom(Addr, 6);
// Odczytaj 6 bajtów danych
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
if(Przewód.dostępny() == 6)
{
dane[0] = Przewód.odczyt();
dane[1] = Drut.odczyt();
dane[2] = Przewód.odczyt();
dane[3] = Przewód.odczyt();
dane[4] = Przewód.odczyt();
dane[5] = Wire.read();
}
opóźnienie(300);
// Konwertuj dane
int xGyro = ((dane[1] * 256) + dane[0]);
int yro = ((dane[3] * 256) + dane[2]);
int zGyro = ((dane[5] * 256) + dane[4]);
// Dane wyjściowe do monitora szeregowego
Serial.print("Oś obrotu X: ");
Serial.println(xGyro); Serial.print("Oś obrotu Y: ");
Serial.println(yGyro); Serial.print("Oś obrotu Z: ");
Serial.println(zGyro);
opóźnienie (500);
}
Krok 5: Aplikacje:
![Aplikacje Aplikacje](https://i.howwhatproduce.com/images/004/image-10110-11-j.webp)
BMG160 ma zróżnicowaną liczbę zastosowań w urządzeniach takich jak telefony komórkowe, urządzenia interfejsu człowiek-maszyna. Ten moduł czujnika został zaprojektowany, aby spełnić wymagania zastosowań konsumenckich, takich jak stabilizacja obrazu (DSC i aparat-telefon), urządzenia do gier i urządzenia wskazujące. Stosowany jest również w systemach wymagających rozpoznawania gestów oraz systemach stosowanych w nawigacji wewnętrznej.
Zalecana:
Interfejs czujnika temperatury DS18B20 z Arduino i ESP8266: 8 kroków
![Interfejs czujnika temperatury DS18B20 z Arduino i ESP8266: 8 kroków Interfejs czujnika temperatury DS18B20 z Arduino i ESP8266: 8 kroków](https://i.howwhatproduce.com/images/002/image-5131-11-j.webp)
Łączenie czujnika temperatury DS18B20 z Arduino i ESP8266: Hej, co słychać, chłopaki! Akarsh tutaj z CETech.Dzisiaj zamierzamy dodać nowy czujnik do naszego arsenału znany jako czujnik temperatury DS18B20. Jest to czujnik temperatury podobny do DHT11, ale ma inny zestaw zastosowań. Porównamy to z
Pierwsze kroki z interfejsem czujnika I2C? - Interfejs MMA8451 za pomocą ESP32: 8 kroków
![Pierwsze kroki z interfejsem czujnika I2C? - Interfejs MMA8451 za pomocą ESP32: 8 kroków Pierwsze kroki z interfejsem czujnika I2C? - Interfejs MMA8451 za pomocą ESP32: 8 kroków](https://i.howwhatproduce.com/images/002/image-5194-16-j.webp)
Pierwsze kroki z interfejsem czujnika I2C? - Interfejs MMA8451 za pomocą ESP32: W tym samouczku dowiesz się wszystkiego o tym, jak uruchomić, podłączyć i uzyskać urządzenie I2C (akcelerometr) współpracujące z kontrolerem (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Jak korzystać z czujnika żyroskopowego MPU6050 z „skiiiD”: 9 kroków
![Jak korzystać z czujnika żyroskopowego MPU6050 z „skiiiD”: 9 kroków Jak korzystać z czujnika żyroskopowego MPU6050 z „skiiiD”: 9 kroków](https://i.howwhatproduce.com/images/002/image-3130-26-j.webp)
Jak korzystać z czujnika żyroskopowego MPU6050 z „skiiiD”: Samouczek korzystania z modułu czujnika żyroskopowego MPU6050 z „skiiiD” Przed rozpoczęciem dostępny jest podstawowy samouczek dotyczący korzystania ze skiiiDhttps://www.instructables.com/id/Getting-Started -W
Interfejs czujnika kropli deszczu do NodeMcu- dla początkujących: 5 kroków
![Interfejs czujnika kropli deszczu do NodeMcu- dla początkujących: 5 kroków Interfejs czujnika kropli deszczu do NodeMcu- dla początkujących: 5 kroków](https://i.howwhatproduce.com/images/002/image-5956-47-j.webp)
Interfejs czujnika kropli deszczu do NodeMcu| dla początkujących: w tym samouczku wiesz, jak połączyć czujnik deszczu z NodeMcu
Kto jest w Moich Drzwiach? Projekt czujnika ruchu PIR/czujnika zasięgu: 5 kroków
![Kto jest w Moich Drzwiach? Projekt czujnika ruchu PIR/czujnika zasięgu: 5 kroków Kto jest w Moich Drzwiach? Projekt czujnika ruchu PIR/czujnika zasięgu: 5 kroków](https://i.howwhatproduce.com/preview/how-to-implement/10496150-whos-at-my-door-pir-motion-sensorrange-sensor-project-5-steps-0.webp)
Kto jest w Moich Drzwiach? Projekt czujnika ruchu PIR/czujnika zasięgu: Nasz projekt ma na celu wykrywanie ruchu za pomocą czujników PIR i czujników odległości. Kod Arduino wyśle sygnał wizualny i dźwiękowy, aby poinformować użytkownika, że ktoś jest w pobliżu. Kod MATLAB wyśle sygnał e-mail, aby powiadomić użytkownika, że ktoś jest w pobliżu.To urządzenie