Spisu treści:
- Krok 1: Przegląd BMG160:
- Krok 2: Czego potrzebujesz…
- Krok 3: Podłączenie sprzętu:
- Krok 4: 3-osiowy kod cząstek do pomiaru żyroskopu:
- Krok 5: Aplikacje:
Wideo: Interfejs 3-osiowego czujnika żyroskopowego BMG160 z cząstkami: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
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 Particle Photon.
Sprzęt, którego będziesz potrzebować do tego celu, to:
1. BMG160
2. Foton cząstek
3. Kabel I2C
4. Osłona I2C dla fotonu cząsteczkowego
Krok 1: Przegląd BMG160:
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…
Materiały, których potrzebujemy do realizacji naszego celu, obejmują następujące komponenty sprzętowe:
1. BMG160
2. Cząsteczkowy foton
3. Kabel I2C
4. Osłona I2C dla fotonu cząsteczkowego
Krok 3: Podłączenie sprzętu:
Sekcja podłączania sprzętu zasadniczo wyjaśnia połączenia przewodów wymagane między czujnikiem a cząsteczką. 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 kod cząstek do pomiaru żyroskopu:
Zacznijmy teraz od kodu cząstek.
Korzystając z modułu czujnika z arduino, dołączamy bibliotekę application.h oraz spark_wiring_i2c.h. Biblioteka "application.h" oraz spark_wiring_i2c.h zawiera funkcje ułatwiające komunikację i2c pomiędzy czujnikiem a cząsteczką.
Cały kod cząstek podano poniżej dla wygody użytkownika:
#włączać
#włączać
// adres BMG160 I2C to 0x68(104)
#define Addr 0x68
int xżyr = 0, yżyr = 0, zżyr = 0;
pusta konfiguracja()
{
// Ustaw zmienną
Particle.variable("i2cdevice", "BMG160");
Particle.variable("xGyro", xGyro);
Particle.variable("yGyro", yGyro);
Particle.variable("zGyro", zGyro);
// Zainicjuj komunikację I2C jako MASTER
Wire.początek();
// Zainicjuj komunikację szeregową
Serial.początek(9600);
// Rozpocznij transmisję I2C
Wire.beginTransmisja(Addr);
// Wybierz rejestr zakresu
Wire.write(0x0F);
// Skonfiguruj pełną skalę 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
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
xGyro = ((dane[1] * 256) + dane[0]);
jeśli (xGyro > 32767)
{
xŻyroskop -= 65536;
}
yGyro = ((dane[3] * 256) + dane[2]);
jeśli (yGyro > 32767)
{
yGyro -= 65536;
}
zGyro = ((dane[5] * 256) + dane[4]);
jeśli (zGyro > 32767)
{
zGyro -= 65536;
}
// Dane wyjściowe do pulpitu nawigacyjnego
Particle.publish("Oś obrotu X:", String(xGyro));
Particle.publish("Oś obrotu Y:", String(yGyro));
Particle.publish("Oś obrotu Z:", String(zGyro));
opóźnienie (1000);
}
Krok 5: Aplikacje:
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
Łą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: 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”: 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
Monitor jakości powietrza zasilany cząstkami: 7 kroków
Monitor jakości powietrza zasilany cząstkami: Jakość powietrza. Prawdopodobnie myślisz o tym bardziej teraz, gdy nasze czyste powietrze zamieniło się w stałą mgłę na niebie. Fuj. Jedną z rzeczy, nad którą masz kontrolę, jest jakość powietrza w Twoim domu. W tym samouczku pokażę, jak zbudować powietrze
Zbuduj detektor zanieczyszczenia cząstkami LoRa: 8 kroków
Zbuduj detektor cząstek stałych LoRa: Zbudujemy detektor cząstek stałych przy użyciu czujnika jakości powietrza PM2,5, modułu ESP32, UNO i LoRa. Zanieczyszczenie cząsteczkowe, znane również jako materia cząsteczkowa, to mieszanina ciał stałych i cieczy o różnych rozmiarach znajdujących się w powietrzu. Niektóre z tych p