Blog  /  MPU6050 Pinout: Mikro-elektro-mechaniczny system do śledzenia ruchu 6D

MPU6050 Pinout: Mikro-elektro-mechaniczny system do śledzenia ruchu 6D

O MPU6050 Pinout, Zaawansowane systemy nawigacyjne opierały się na czujnikach, ale wszystko się zmieniło, gdy inżynierowie mikroobróbują je, aby zmieściły się w małych chipach.

Przy tak małych rozmiarach, niskich kosztach i niskim zużyciu energii czujnik trafił do prawie każdego urządzenia elektrycznego do rzeczywistości rozszerzonej, gier, monitorowania kondycji itp.

Ale co, jeśli połączysz żyroskop i czujnik akcelerometru w jednej płytce drukowanej? Rezultatem jest układ MPU6050, który daje niezwykle dokładne dane o orientacji obiektu. Oto zbliżenie na moduł i jak możesz połączyć go z MCU Arduino dla swojego projektu.  

Treść

Co to jest MPU6050 Pinout?

Konfiguracja wyjścia MPU6050

MPU6050 Pinout--MPU6050 Funkcje

MPU6050 Pinout - moduł czujnika MPU6050: Żyroskop + Akcelerometr

Alternatywa dla MPU6050

MPU6050 vs MPU6000

Łączenie MPU6050 z Arduino

Aplikacje MPU6050

Streszczenie

Co to jest MPU6050 Pinout?

Moduł MPU6050 to mikro-elektromechaniczny system (MEMS), który mierzy prędkość, przemieszczenie, przyspieszenie dynamiczne / statyczne, orientację, moment pędu i inne parametry związane z ruchem.

Jego sercem jest niedrogi, energooszczędny, 6-osiowy układ śledzenia ruchu z trzema częściami. Pierwszy to 3-osiowy akcelerometr, drugi to 3-osiowy żyroskop, a trzeci to cyfrowy procesor ruchu (DMP).

MPU6050 Pinout

Moduł MPU6050

Źródło: Wikimedia Commons

Te trzy mieszczą się w maleńkim opakowaniu 4mm x 4mm zamontowanym na płytce drukowanej z regulatorem 3.3V.  

Konfiguracja wyjścia MPU6050

Moduł MPU6050 posiada następujące osiem głównych wyprowadzenia.

MPU6050 Pinout--MPU6050 Funkcje

3-osiowy akcelerometr MEMS i 3-osiowe wartości żyroskopu łącznie

Zasilacz: 3-5V

Protokół komunikacyjny I2C

Wbudowany 16-bitowy przetwornik ADC zapewnia wysoką dokładność

Wbudowany DMP zapewnia dużą moc obliczeniową

Konfigurowalny adres I2C

Wbudowany czujnik temperatury

Może współpracować z magnetometrami i innymi urządzeniami I2C

MPU6050 Pinout - moduł czujnika MPU6050: Żyroskop + Akcelerometr

Jak wyjaśniono wcześniej, moduł MPU6050 składa się z trzech części, ale żyroskop i akcelerometr są odpowiedzialne za wykonywanie pomiarów. Oto jak działają.

3-osiowy żyroskop

Żyroskop mierzy rotację kątową za pomocą efektu Coriolisa. Gdy żyroskop obraca się wokół osi X, Y lub Z, efekt Coriolisa tworzy wibracje, które wykrywa MEMS.

MPU6050 Pinout

Siła Coriolisa

Źródło: Wikimedia Commons

Jednak żyroskop MEMS różni się znacznie od tradycyjnej konstrukcji, ponieważ zawiera masę próbną z czterema częściami. Części te są zawsze w ciągłym ruchu oscylacyjnym, poruszając się jednocześnie do wewnątrz i na zewnątrz w płaszczyźnie poziomej. W ten sposób reagują na efekt Coriolisa, który wykrywa MEMS.

Moduł następnie wzmacnia, demoduluje i filtruje wykryty sygnał, aby wytworzyć napięcie proporcjonalne do prędkości kątowej.

16-bitowy przetwornik ADC skanuje każdą oś, a następnie digitalizuje sygnały napięciowe, aby uzyskać prędkość kątową w stopniach na sekundę.

3-osiowy akcelerometr

Z drugiej strony akcelerometr mierzy prawidłowe przyspieszenie, które odnosi się do szybkości zmiany prędkości ciała w jego ramie spoczynkowej. Akcelerometr MEMS składa się z mikroobrobionej konstrukcji z zawieszoną masą i stałymi płytami zawieszonymi na silikonowych sprężynach, które znajdują się na płytce krzemowej.

Struktura akcelerometru

Źródło: Wikimedia Commons

Sprężyny umożliwiają swobodne poruszanie się konstrukcji i odchylanie się, gdy przyspieszenie występuje na jednej osi. Ruch ten powoduje nierównowagę w kondensatorze różnicowym, co powoduje zmianę pojemności proporcjonalną do przyspieszenia. Pojemność tworzy wyjście czujnika, które 16-bitowy przetwornik ADC digitalizuje w jednostkę g (grawitacja).

Moduł stale mierzy 1 g na osi Z na płaskiej powierzchni z powodu grawitacji, ale osie X i Y mierzą 0 g.

Alternatywa dla MPU6050

Alternatywy, których można użyć zamiast MPU6050, obejmują:

ADXL335 (akcelerometr 3-osiowy)

ADXL345 (akcelerometr 3-osiowy)

MPU9250 (9-osiowy IMU)

MPU6050 vs MPU6000

Mimo że oba są identyczne, mają pewne różnice, takie jak obsługiwane interfejsy szeregowe i piny referencyjne VLOGIC. Poniższa tabela podsumowuje wszystkie te różnice.

Łączenie MPU6050 z Arduino

Jak wspomniano wcześniej, moduł MPU6050 jest wyposażony w regulator 3.3V zamontowany na tej samej płycie i można go używać z mikrokontrolerem logicznym 5V Arduino. Okablowanie go za pomocą Arduino jest dość proste i powinieneś zacząć od podłączenia wyjścia 5V Arduino do pinu Vcc, podczas gdy pin uziemiający przechodzi do GND.

Mikrokontroler Arduino UNO. Zwróć uwagę na piny łączące.

Po połączeniu tych dwóch, pozostała część to połączenie I2C, a płytki Arduino mają różne piny I2C. Jednak płyty z układem R3 mają SCL (linia zegara lub A5) i SDA (linia danych lub A4) w pobliżu pinu AREF.

Poniższa tabela poprowadzi Cię w połączeniu I2C podczas korzystania z różnych płytek Arduino.

Możesz połączyć je bezpośrednio lub za pomocą płytki stykowej.  

Instalacja biblioteki

Następnie musisz utworzyć interfejs I2C między dwoma za pośrednictwem Arduino IDE za pomocą biblioteki, aby umożliwić im komunikację. Mimo że przechwytywanie surowych danych z modułu jest łatwe, przetłumaczenie ich na znaczące informacje jest trudne. Biblioteki upraszczają ten proces i można użyć sterownika Adafruit Unified Sensor Driver oraz biblioteki IO magistrali Adafruit.

MPU6050 Pinout

Jak zainstalować bibliotekę w Arduino IDE

Źródło: Wikimedia Commons

Alternatywnie możesz użyć biblioteki Arduino Jeffa Rowberga, która ma dwa przykładowe programy. Pierwszy podaje surowe wartości, podczas gdy drugi optymalizuje je za pomocą DMP.

Przejdź do > Dołącz bibliotekę > Zarządzaj bibliotekami, aby zainstalować biblioteki, a następnie zezwól menedżerowi bibliotek na ich pobranie i zaktualizowanie listy zainstalowanych bibliotek.

Następnie przefiltruj wyszukiwanie w oknie Library Manager, wpisując "MPU6050". Poszukaj konkretnej biblioteki, a następnie zainstaluj ją.

Odczyt danych

Gdy wszystko jest gotowe, musisz ustawić monitor szeregowy na szybkość transmisji 115200. Moduł wysyła dużo danych, więc ta wysoka szybkość jest niezbędna do wyświetlenia danych na ekranie.

Kod Arduino daje jasne zrozumienie, jak odczytać przyspieszenie kątowe, przyspieszenie liniowe i temperaturę z modułu. Gdy otrzymasz dane o tych trzech parametrach, spróbuj przenieść moduł, aby zobaczyć, jak zmieniają się odczyty.

Kod Arduino

Gdy zrozumiesz, co się dzieje, da ci to podstawę do eksperymentowania z innymi, bardziej praktycznymi projektami.

Oprócz odczytu danych należy rozważyć ich wykreślenie, aby lepiej wizualizować wyjścia czujnika modułu podczas jego przenoszenia.

Wykresy ułatwiają zrozumienie, a Arduino oferuje narzędzie Ploter szeregowy, które pomaga wizualizować dane podczas rozwiązywania problemów z kodem. Aby jednak ploter działał poprawnie, należy pamiętać o ustawieniu jego szybkości transmisji na 115200.

Arduino rejestruje odczyty co dziesięć milisekund, a następnie kreśli ciągły wykres liniowy 2D.

Aplikacje MPU6050

Moduł MPU6050 można wykorzystać w następujących aplikacjach:

Pomiar IMU

Drony / Quadcoptery do sterowania kierunkiem

Samobalansujące się roboty i sterowanie ramieniem robota

Roboty humanoidalne

Humanoidalny robot (Sophia)

Czujnik przechyłu

Telefony i przenośne urządzenia do gier

Kontrolery gier oparte na ruchu

MPU6050 Pinout

Kontrolery gier Wii Remote Plus i Wii Remote

Źródło: Wikimedia Commons

Detektory obrotu lub orientacji

Piloty zdalnego sterowania 3D do dekoderów i urządzeń DTV podłączonych do Internetu

Myszy 3D

Streszczenie

Podsumowując, MPU6050 Pinout to niezbędny sprzęt z licznymi zastosowaniami we współczesnych urządzeniach elektronicznych. Jednak jako programista najlepszym sposobem na przetestowanie i użycie urządzenia jest połączenie go z mikrokontrolerem Arduino. Powyższe kroki powinny pomóc Ci skonfigurować wszystko i od razu zabrać się do pracy.

Jeśli potrzebujesz modułu do swojego projektu lub masz jakiekolwiek pytania dotyczące interfejsu z Arduino, skontaktuj się z nami, a my odpowiemy na Twoje pytania.