Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Ten dokument nauczy Cię, jak używać STM32 MCU + MPU6050 akcelerometr, żyroskopowy czujnik + STONE STVC070WT wyświetlacz portu szeregowego do DEMO.
STVC070WT to wyświetlacz szeregowy naszej firmy, jego rozwój jest prosty, łatwy w użyciu, możesz przejść do strony internetowej naszej firmy dla wszystkich różnic wyświetlania:
Krok 1: NARZĘDZIE DO KAMIENIA
Warto zauważyć, że nasz ekran obsługuje komunikację przez port szeregowy. Niektóre modele obsługują TTL/RS232/RS485, ale niektóre obsługują tylko RS232. Jeśli port szeregowy twojego MCU jest poziomem logicznym TTL, musisz dodać MAX3232 do konwersji poziomów. Jeśli chcesz wiedzieć, który ekran obsługuje TTL, a który obsługuje zarówno TTL, jak i RS232, możesz to sprawdzić na naszej stronie internetowej:
www.stoneitech.com/product/industrial-type
Widzimy, że ekrany „typu przemysłowego” i „typu zaawansowanego” ogólnie obsługują tylko RS232 lub RS485, a tylko ekrany „typu cywilnego” mogą obsługiwać TTL/RS232/RS485. Jeśli wybierzesz „typ zaawansowany” lub „typ przemysłowy”, ale twój SCM obsługuje tylko TTL, musisz wykonać następującą konwersję:
Inne istotne informacje można wyświetlić lub pobrać na oficjalnej stronie internetowej:
Trzy etapy rozwoju ekranu wyświetlacza STONE:
Zaprojektuj logikę wyświetlacza i logikę przycisków za pomocą oprogramowania STONE TOOL i pobierz plik projektu do modułu wyświetlacza. MCU komunikuje się z modułem wyświetlacza STONE przez port szeregowy.
Na podstawie danych uzyskanych w kroku 2 MCU wykonuje inne czynności.
Krok 2: Wprowadzenie do projektu
Wprowadzenie do projektu
To, co dziś wam pokażę, to Demo grawitacji, żyroskopu, kąta Eulera, funkcje są następujące:
- Trzy pola tekstowe wyświetlają wartości przyspieszenia
- Trzy pola tekstowe wyświetlają wartości żyroskopu
- Trzy pola tekstowe wyświetlają wartości kąta Eulera
- Pole tekstowe wyświetla aktualny czas odświeżania
- Dwa przyciski dostosowują czas odświeżania
Najpierw musimy użyć Photoshopa do zaprojektowania dwóch interfejsów UI, a wyniki projektu są następujące:
Pierwszy obraz to obraz ekranu głównego, a drugi obraz to efekt przycisku. Następnie otwieramy „TOOL2019” i projektujemy efekty w NARZĘDZIE:
Stosowane są dwa główne komponenty:
Wyświetlacz numeryczny
Przycisk przyrostowy
Po zaprojektowaniu efekt operacji symulacji można zobaczyć w interfejsie symulacji:
Krok 3: MPU-6050
MPu-6050 to pierwszy na świecie zintegrowany 6-osiowy układ przetwarzania ruchu. W porównaniu z rozwiązaniem wielokomponentowym eliminuje problem różnicy między kombinowanym żyroskopem a osią czasu akceleratora i zmniejsza dużo miejsca na pakowanie. Po podłączeniu do trójosiowego magnetometru taktowania, mpu-6050 zapewnia pełną 9-osiową fuzję ruchu do portów I2C lub SPI (SPI jest dostępne tylko w mpu-6000).
Zakres wykrywania
Zakres wykrywania prędkości kątowej mpu-6050 wynosi ±250, ±500, ±1000 i ±2000°/SEC (DPS), co umożliwia dokładne śledzenie szybkich i wolnych działań. Ponadto użytkownicy mogą zaprogramować i kontrolować zakres wykrywania akceleratorów w zakresie ±2g, ±4g±8g i ±16g. Dane produktu mogą być przesyłane przez IIC do 400kHz lub SPI do 20MHz (SPI jest dostępne tylko w mpu-6000). MPu-6050 może pracować przy różnych napięciach, napięcie zasilania VDD wynosi 2,5V ±5%, 3,0v ± 5% lub 3,3 v ± 5%, a zasilanie interfejsu logicznego VDDIO wynosi 1,8 v ± 5% (VDD jest używane tylko dla MPU6000). Rozmiar opakowania mpu-6050 4x4x0,9 mm (QFN) jest rewolucyjny w branży. Inne funkcje obejmują wbudowane czujniki temperatury i oscylatory, które zmieniają się tylko o ±1% w środowisku pracy. Podanie
Mobilne gry z czujnikami rzeczywistości rozszerzonej, EIS: elektroniczna stabilizacja obrazu (OIS: optyczna stabilizacja obrazu) interfejs użytkownika nawigatora pieszego z gestem „zero-touch”. Smartfon, tablet, przenośny produkt do gier, konsola do gier, pilot 3D, przenośne urządzenie nawigacyjne, UAV, samochód balansowy.
Charakterystyka
Wyjście cyfrowe 6- lub 9-osiowej matrycy obrotu, kwaternion, dane rachunku fuzji kątowej Eulera. 3-osiowy czujnik prędkości kątowej (żyroskop) z czułością 131 LSBs/°/SEC i pełnym zakresem wykrywania siatki ±250, ±500, ±1000 i ±2000°/sek. Może być kontrolowany przez program, a zakres kontroli programu wynosi ±2g, ±4g, ±8g i ±16g. Usuń czułość między akceleratorem a osią żyroskopu i zmniejsz wpływ ustawień i dryftu czujnika. Silnik DMP (Digital Motion Processing) zmniejsza obciążenie złożonych algorytmów fuzji, synchronizacji czujników, wykrywania postawy itp. Baza danych przetwarzania ruchu obsługuje odchylenie czasu pracy i algorytmy korekcji czujnika magnetycznego wbudowane w systemy Android, Linux i Windows. Czujnik temperatury z wyjściem cyfrowym i wejściem cyfrowym Pin synchronizacji obsługuje technologię elektronicznej stabilizacji fazy cienia wideo i programowalną kontrolę GPS obsługuje rozpoznawanie gestów, wstrząsy, powiększanie i pomniejszanie obrazu, toczenie, przerywanie szybkiego opadania, przerwanie wysokiego g, wykrywanie zerowego ruchu, wykrywanie dotyku, wykrywanie wstrząsów. napięcie zasilania VDD wynosi 2,5 v ± 5%, 3,0 v ± 5% i 3,3 v ± 5%. prąd roboczy VDDIO wynosi 1,8 v ± 5%: 5mA; Prąd czuwania żyroskopu: 5uA; Prąd roboczy akceleratora: 350uA, prąd w trybie oszczędzania energii akceleratora: 20uA@10Hz I2C w trybie szybkim do 400kHz lub interfejs szeregowy hosta SPI do 20MHz wbudowany generator częstotliwości przy pełnym zakresie temperatur tylko ±1% wahań częstotliwości. Minimalne i najcieńsze opakowanie (4x4x0,9 mm QFN) dostosowane do produktów przenośnych zostało przetestowane pod kątem zgodności z RoHS i normami środowiskowymi. O szpilce
SCL i SDA łączą się z interfejsem IIC MCU, przez który MCU steruje MPU6050. Istnieje również interfejs IIC, AXCL i XDA, który można wykorzystać do podłączenia zewnętrznych urządzeń podrzędnych, takich jak czujniki magnetyczne, w celu utworzenia czujnika dziewięcioosiowego. VLOGIC to napięcie portu IO, a najniższy pin może osiągnąć 1,8v. Ogólnie rzecz biorąc, możemy bezpośrednio użyć VDD. AD0 to pin kontroli adresu z interfejsu IIC (podłączonego do MCU), który kontroluje najniższą kolejność adresu IIC. Jeśli GND jest podłączony, to adres IIC MPU6050 to 0X68 i 0X69, jeśli podłączony jest VDD. Uwaga: adres tutaj nie zawiera najniższej kolejności przesyłania danych (najniższa kolejność służy do odczytu i zapisu). Poniżej moduł mpu-6050, którego użyłem:
Krok 4: Mikrokontroler STM32
MCU STM32F103RCT6 ma rozbudowane funkcje. Oto podstawowe parametry MCU:
Seria: STM32F10X
Jądro: ARM - COTEX32
Prędkość: 72 MHz
Interfejs komunikacyjny: CAN, I2C, IrDA, LIN, SPI, UART/USART, USB
Urządzenia peryferyjne: DMA, sterowanie silnikiem PWM, PDR, POR, PVD, PWM, czujnik temperatury, WDT
Pojemność pamięci programu: 256 KB
Typ pamięci programu: FLASH
Pojemność pamięci RAM: 48K
Napięcie - zasilanie (Vcc/Vdd): 2 V ~ 3,6 V
Oscylator: wewnętrzny
Temperatura pracy:-40 ° C ~ 85 ° C
Opakowanie/obudowa: 64-lqfp
W tym projekcie będę wykorzystywał UART, GPIO, Watch Dog i Timer STM32F103RCT6. Poniżej znajduje się rekord rozwoju kodu dla projektu. STM32 WYKORZYSTUJE oprogramowanie Keil MDK, o którym musisz być zaznajomiony, więc nie będę przedstawiał metody instalacji tego oprogramowania. STM32 można symulować online za pomocą j-link lub st-link i innych narzędzi symulacyjnych. Poniższe zdjęcie przedstawia płytę rozwojową STM32, której użyłem:
Dodaj sterownik szeregowySTM32F103RCT6 ma kilka portów szeregowych. W tym projekcie wykorzystałem kanał portu szeregowego PA9/PA10, a szybkość transmisji portu szeregowego została ustawiona na 115200.
Skontaktuj się z nami, jeśli potrzebujesz pełnego kodu:
www.stoneitech.com/contact Odpowiemy Ci w ciągu 12 godzin.
Krok 5: Sterownik MPU-6050
Ten kod UŻYWA trybu komunikacji IIC do odczytu danych MPU6050, a komunikacja IIC UŻYWA symulacji oprogramowania IIC. Istnieje wiele powiązanych kodów, więc nie będę ich tutaj wklejać.
Jeśli potrzebujesz kompletnego kodu, skontaktuj się z nami: https://www.stoneitech.com/contact Odpowiemy w ciągu 12 godzin.
Zobacz poniższy obrazek dla efektu operacji:
Aby dowiedzieć się więcej o projekcie kliknij tutaj