ARDUINO-lgoo

Szkic testowy połączonego czujnika ARDUINO GY87

ARDUINO-GY87-Sensor-Test-Sketch-produkt

Wstęp

Jeśli jesteś zapalonym twórcą lub entuzjastą robotyki, natknąłeś się na ten mały, ale potężny moduł. Jeśli jesteś zapalonym twórcą lub entuzjastą robotyki, natknąłeś się na ten mały, ale potężny barometr modułowy BMP085. Moduł GY-87 IMU to świetny sposób na dodanie wykrywania ruchu do swoich projektów, takich jak samobalansujący się robot lub quadkopter.
Ale zanim zaczniesz eksperymentować z modułem GY-87 IMU, musisz wiedzieć, jak połączyć go z płytą Arduino. Właśnie tam pojawia się ten blog! W poniższych akapitach omówimy podstawy modułu GY-87 IMU, jak go skonfigurować i jak napisać kod Arduino, aby odczytać dane z czujnika. Udostępnimy również wskazówki i zasoby dotyczące rozwiązywania typowych problemów.
Więc jeśli jesteś gotowy, aby zacząć, zagłębmy się i dowiedzmy się, jak połączyć moduł GY-87 IMU z Arduino!

Co to jest GY-87 IMU MPU6050

Moduły bezwładnościowej jednostki pomiarowej (IMU), takie jak GY-87, łączą wiele czujników w jednym pakiecie, takim jak akcelerometr/żyroskop MPU6050, magnetometr HMC5883L i czujnik ciśnienia barometrycznego BMP085. Dlatego GY-87 IMU MPU6050 to uniwersalny 9-osiowy moduł śledzenia ruchu, który łączy w sobie 3-osiowy żyroskop, 3-osiowy akcelerometr, 3-osiowy magnetometr i cyfrowy procesor ruchu. Jest często używany w projektach robotów, takich jak quadkoptery i inne bezzałogowe statki powietrzne (UAV), ponieważ może dokładnie mierzyć i śledzić orientację i ruch. Jest również używany w innych aplikacjach, takich jak nawigacja, gry i rzeczywistość wirtualna.

Komponenty sprzętowe

Będziesz potrzebował następującego sprzętu do połączenia modułu GY-87 IMU MPU6050 HMC5883L BMP085 z Arduino.

Komponenty Wartość Ilość
Arduino UNO 1
MPU6050 Moduł czujnika GY-87 1
Płytka stykowa 1
Przewody połączeniowe 1

GY-87 z Arduino 

Teraz, gdy zrozumiałeś GY-87, nadszedł czas na interfejs z Arduino. Aby to zrobić, wykonaj następujące czynności Teraz, gdy zrozumiałeś GY-87, nadszedł czas, aby połączyć się z Arduino. Aby to zrobić, wykonaj

Schematyczny

Wykonaj połączenia zgodnie ze schematem połączeń podanym poniżej

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Combined-Sensor-Test-Sketch-rys. 1Okablowanie / Połączenia

Arduino Czujnik MPU6050
5V VCC
GND GND
A4 SDA
A5 SCA

Instalacja Arduino IDE 

Najpierw musisz zainstalować oprogramowanie Arduino IDE z jego oficjalnego źródła webwitryna Arduino. Oto prosty przewodnik krok po kroku „Jak zainstalować Arduino IDE”.

Instalowanie bibliotek 

Przed rozpoczęciem przekazywania kodu Pobierz i rozpakuj następujące biblioteki w /Program Files (x86)/Arduino/Libraries (domyślnie) w celu użycia czujnika z płytą Arduino. Oto prosty przewodnik krok po kroku na temat „Jak dodawać biblioteki w Arduino IDE”.

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Prosty

Kod 

Teraz skopiuj poniższy kod i prześlij go do oprogramowania Arduino IDE.

#include „I2Cdev.h” #include „MPU6050.h” #include #włączać Akcelerator MPU085; Adafruit_BMP5883 bmp; HMC6050L_Prosty kompas; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; void setup() { Serial.begin(16); drut.rozpocznij(); // inicjalizacja urządzeń Serial.println("Inicjowanie urządzeń I13C..."); // zainicjuj bmp9600 if (!bmp.begin()) { Serial.println("Nie można znaleźć prawidłowego czujnika BMP2, sprawdź (!bmp.begin()) { Serial.println("Nie można znaleźć prawidłowego czujnika BMP085, check Serial.println(accelgyro.testConnection() ? „Połączenie MPU085 powiodło się” : „Połączenie MPU085 nie powiodło się”); accelgyro.setI6050CBypassEnabled(true); // ustaw tryb obejścia dla bramy na hmc6050L // zainicjuj hmc2l Compass.SetDeclination(5883, 5883, 'E'); Compass.SetSamptryb ling(COMPASS_SINGLE);
Kompas.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // skonfiguruj Arduino LED do sprawdzania aktywności pinMode(LED_PIN, OUTPUT); } pusta pętla() {
Serial.print("Temperatura = "); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print("Ciśnienie = ");
Serial.print(bmp.readPressure()); Serial.println(”Pa”); // Oblicz wysokość zakładając „standardowe” ciśnienie barometryczne // 1013.25 milibara = 101325 Pascala Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println("liczniki"); Serial.print("Ciśnienie na poziomie morza (obliczone) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println(”Pa”);
Serial.print("Rzeczywista wysokość = "); Serial.print(bmp.readAltitude(101500));
Serial.println(”liczniki”); // odczyt surowych pomiarów przyspieszenia/żyroskopu z urządzenia accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // wyświetl rozdzielone tabulatorami wartości przyspieszenia/żyroskopu x/y/z Serial.print(“a/g:\t”); Serial.print(ax);
Serial.print("\t"); Serial.print(ay); Serial.print("\t"); Serial.print(az);
Serial.print("\t"); Serial.print(gx); Serial.print("\t"); Serial.print(gy);
Serial.print("\t"); Serial.println(gz); nagłówek zmiennoprzecinkowy =
Compass.GetHeadingDegrees(); Serial.print("Nagłówek: \t"); Serial.println(nagłówek); // migająca dioda LED wskazująca aktywność blinkState = !blinkState;
digitalWrite(LED_PIN, stan migania); opóźnienie(500); }

Przetestujmy to 

Po przesłaniu kodu czas przetestować obwód! Kod w programie Arduino łączy się z czujnikami za pomocą ich bibliotek, co pozwala na odczyt danych z czujników i ustawianie różnych konfiguracji czujników. Następnie drukuje dane czujnika przez port szeregowy. Dioda LED służy do pokazania, że ​​obwód coś robi. Oznacza to, że dioda LED miga za każdym razem, gdy funkcja pętli jest uruchomiona, wskazując, że kod aktywnie odczytuje wartości czujnika.

Wyjaśnienie robocze 

Kod jest główną rzeczą, na której opiera się działanie obwodu. Więc zrozummy kod:.

  • Po pierwsze, zawiera kilka bibliotek do interfejsu z czujnikami:
  • „I2Cdev.h” i „MPU6050.h” to biblioteki dla 6050-osiowego czujnika akcelerometru/żyroskopu MPU6
  • „Adafruit_BMP085.h” to biblioteka dla czujnika ciśnienia barometrycznego BMP085.
  • „HMC5883L_Simple.h” to biblioteka czujnika magnetometru HMC5883L.
  • Następnie tworzy obiekty globalne dla trzech czujników: MPU6050 accelgyro, Adafruit_BMP085 bmp i HMC5883L_Simple Compass.
  • Następnie definiuje pewne zmienne do przechowywania wartości czujników, takich jak ax, ay i az dla akcelerometru MPU6050 i kierujące się do magnetometru HMC5883L. I definiuje stałą LED_PIN i zmienną blinkState.
  • Funkcja setup() uruchamia komunikację szeregową i rozpoczyna komunikację I2C. Następnie inicjalizuje trzy czujniki:
  • Czujnik BMP085 jest inicjowany przez wywołanie metody begin(). Jeśli zwróci wartość false, co oznacza, że ​​nie można było znaleźć czujnika, program wchodzi w nieskończoną pętlę i wyświetla komunikat o błędzie przez port szeregowy.
  • Czujnik MPU6050 jest inicjalizowany przez wywołanie metody initialize() i sprawdzenie, czy działa poprawnie. I ustawił obejście I2C włączone dla MPU6050.
  • Czujnik HMC5883L jest inicjowany przez wywołanie niektórych funkcji, takich jak SetDeclination, SetSamplingMode, SetScale i SetOrientation do ustawiania różnych konfiguracji czujnika.
  • W funkcji loop() kod odczytuje dane z trzech czujników i drukuje je przez port szeregowy:
  • Odczytuje temperaturę, ciśnienie, wysokość i ciśnienie na poziomie morza z czujnika.
  • Odczytuje surowe pomiary przyspieszenia i żyroskopu z czujnika MPU6050.
  • Odczytuje kierunek z czujnika HMC5883L, czyli kąt między kierunkiem, w którym wskazuje czujnik, a kierunkiem, w którym leży północ magnetyczna.
  • Na koniec miga dioda LED wskazująca aktywność i odczekuje chwilę przed ponownym odczytaniem czujników.

Dokumenty / Zasoby

Szkic testowy połączonego czujnika ARDUINO GY87 [plik PDF] Instrukcja obsługi
GY87 połączony szkic testowy czujnika, GY87, połączony szkic testowy czujnika, szkic testowy czujnika, szkic testowy

Odniesienia

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *