MPU9250-Śledzenie/odczuwanie ruchu jest kluczowe w nowoczesnej elektronice, ponieważ pomaga dostarczyć dodatkowe dane w czasie rzeczywistym dla lepszego sterowania. Jednym z urządzeń, które dostarcza tych danych jest MPU9250. Jest to czujnik IMU, który zawiera 9-osiowy system śledzenia ruchu w małym chipie oraz kilka innych komponentów na kompaktowej płytce.
Dlatego, jeśli potrzebujesz modułu śledzenia ruchu w 9 osiach do swojego projektu, oto wszystko, co musisz wiedzieć o MPU9250 i jak zintegrować go z Arduino.
Czym jest MPU9250?
MPU9250 to 9-osiowy moduł czujnika śledzącego ruch, który spełnia trzy funkcje w jednym. Oparte na architekturze Micro Electro Mechanical Systems (MEMS) urządzenie posiada następujące elementy: trójwymiarowy akcelerometr, żyroskop i magnetometr, co daje w sumie dziewięć osi.
Osadza te czujniki w kompaktowym układzie scalonym, który posiada przetworniki analogowo-cyfrowe o rozdzielczości 16 bitów.

Żyroskop
Oprócz tych trzech, urządzenie posiada czujnik temperatury oraz interfejs pomocniczy I2C do transmisji danych z czujnikami innymi niż inercyjne.
Komponenty MPU9250
Czujnik MPU-9250 zawiera pięć następujących komponentów.
Chip MPU9250: Ten chip integruje się z czujnikami żyroskopu, magnetometru i akcelerometru, a następnie wykonuje wszystkie funkcje przetwarzania.
Głowice I/O: Zapewniają łączność i transmisję danych w i z jednostki mikrokontrolera.
Rezystory pull-up: Rezystory te są źródłem prądu i ustanawiają stan domyślny dla magistrali I2C.
LDO: Regulator napięcia, który obniża napięcie do 3,3V w celu efektywnego funkcjonowania układu, jednocześnie poprawiając wydajność energetyczną.
Kondensatory odsprzęgające: Eliminują niepożądane szumy z sygnałów.
Konfiguracja pinoutu MPU9250
Czujnik MPU-9250 ma 10-pinową konfigurację z następującymi funkcjami.

Cechy MPU-9250 (9 Axis IMU)
MPU-9250 łączy trzy czujniki w jeden, a oto cechy każdego z nich.

Czujnik posiada również następujące cechy płytki.
Najmniejszy, najcieńszy pakiet QFN (3x3x1mm) dla urządzeń przenośnych
Pomocnicza magistrala główna I2C do odczytu danych z czujników zewnętrznych
400kHz Fast Mode I2C do komunikacji z rejestrami
Interfejs szeregowy 1MHz do komunikacji z rejestrami
Interfejs szeregowy 200MHz do odczytu rejestrów przerwań i czujników
Niewielka czułość poprzeczna pomiędzy trzema osiami (żyroskop, akcelerometr i magnetometr)
Cyfrowe wyjście czujnika temperatury
Bufor FIFO (512 bajtów). Umożliwia odczyt danych w seriach przez procesor aplikacji.
Tolerancja wstrząsów 10 000 g
Jak działa akcelerometr i żyroskop MPU9250?
Czujniki akcelerometru i żyroskopu mierzą odpowiednio przyspieszenie i zmiany obrotów. Akcelerometr układu wykorzystuje mikroskopijne kryształy, które podczas wibracji ulegają naprężeniom, generując napięcie wyjściowe. Z drugiej strony, żyroskop wykorzystuje efekt Coriolisa do określenia tempa zmian pozycji kątowej w czasie. Oba działają podobnie jak czujniki w MPU6050, czyli 6-osiowy czujnik MEMS.
MPU9250 Przewodnik po Arduino
Prawie każdy moduł Arduino obsługuje przynajmniej jeden port komunikacyjny I2C, więc użyj dowolnego. My jednak do tego projektu użyjemy UNO. Będziesz potrzebował następujących komponentów.
Czujnik IMU MPU9250
Arduino UNO
Zworki
kabel USB
Arduino IDE
Okablowanie
Wykonaj te połączenia za pomocą zworki.


Schemat połączeń MPU9250 z Arduino
Możesz podłączyć piny SDA i SCL do dowolnych pinów analogowych Arduino w celu szeregowej komunikacji danych, ponieważ każdy może to zrobić. Użyj również długich przewodów zworki, aby dać wystarczająco dużo miejsca, aby obrócić i obrócić moduł czujnika, aby obserwować wyniki.
Kod
Łatwiej jest użyć biblioteki napisanej dla tego modułu czujnika, więc najpierw pobierz bibliotekę MPU9250. Następnie otwórz Arduino IDE, a potem zaimportuj bibliotekę (Sketch > Include Library > Add . ZIP Library).
Jeden z przykładowych kodów znajdujących się w bibliotece jest następujący.



Objaśnienie
Zacznij od włączenia biblioteki do interfejsu modułu czujnika MEMS z Arduino. Moduł ma wbudowane kody do odczytu wyjść z czujników, więc włączenie biblioteki umożliwi temu kodowi odczytanie tych wyjść.
Następnie utwórz obiekt IMU z adresem magistrali I2C 0x68 jako parametrem. Następnie zwraca on odpowiednie pomiary do wykorzystania w sekcji setup.
Blok setup sprawdza dwa warunki. Po zainicjalizowaniu monitora szeregowego z szybkością transmisji 115,200, sprawdza czy monitor uruchamia się i wyświetla wartości. W przeciwnym razie kod się zatrzymuje. Następnie deklarowana jest zmienna "status" w celu sprawdzenia obiektu IMU.
Po tym drugi warunek sprawdza czy ten status jest mniejszy od zera (brak napięcia), następnie wyświetla "IMU initialization unsuccessful", "Check IMU wiring or try cycling power," a następnie wartość statusu w trzeciej linii.
Ponieważ status jest w stanie while(1), kod nie wyjdzie poza ten punkt, dopóki wartość statusu nie przekroczy zera.
Jeśli status przekroczy zero, kod przejdzie do sekcji pętli, która odczytuje wartości IMU za pomocą funkcji read sensor(). Pierwsza część odczytuje i drukuje wartości mG akcelerometru dla wszystkich trzech osi z dokładnością do sześciu miejsc po przecinku.
Druga część odczytuje i wyświetla pomiar kąta w radianach na sekundę, a trzecia wyprowadza natężenie pola magnetycznego w jednostkach Tesli.
Pamiętaj, że MPU9250 posiada również czujnik temperatury, a ostatnia sekcja odczytuje i wyprowadza tę wartość w °C.
Wyjście
Podłącz płytkę Arduino do komputera za pomocą kabla USB. Wgraj powyższy kod, a następnie obserwuj wyniki. Wyjście powinno być w takim formacie.

Obróć moduł MPU9250, aby zobaczyć, jak wartości zmieniają się w czasie rzeczywistym.
Zastosowania MPU9250 IMU
Znajdziesz ten czujnik w następujących obszarach.
Elektronika użytkowa
Systemy medyczne
Piloty 3D
GPS i systemy pozycjonowania satelitarnego
Systemy nawigacji inercyjnej
Gry VR
Robotyka
Czujniki do noszenia na ciele
Zastosowania technologii treningowych i sportowych
Kontrolery joysticków
Podsumowanie
Podsumowując, MPU9250 to doskonały czujnik ruchu, który łatwo łączy się z niemal wszystkimi typami mikrokontrolerów. Skontaktuj się z nami, aby uzyskać więcej szczegółów, jeśli napotkasz jakiekolwiek problemy podczas konfigurowania projektu z użyciem tego modułu.
