Spisu treści:

Jak korzystać z modułu GY511 z Arduino [Zrób cyfrowy kompas]: 11 kroków
Jak korzystać z modułu GY511 z Arduino [Zrób cyfrowy kompas]: 11 kroków

Wideo: Jak korzystać z modułu GY511 z Arduino [Zrób cyfrowy kompas]: 11 kroków

Wideo: Jak korzystać z modułu GY511 z Arduino [Zrób cyfrowy kompas]: 11 kroków
Wideo: Jak korzystać z modułu ‘Zestawienie upraw’? 2024, Listopad
Anonim
Jak korzystać z modułu GY511 z Arduino [Zrób cyfrowy kompas]
Jak korzystać z modułu GY511 z Arduino [Zrób cyfrowy kompas]

Przegląd

W niektórych projektach elektronicznych musimy w każdej chwili znać położenie geograficzne i odpowiednio wykonać określoną operację. W tym samouczku dowiesz się, jak używać modułu kompasu LSM303DLHC GY-511 z Arduino do tworzenia cyfrowego kompasu. Najpierw dowiesz się o tym module i jego działaniu, a następnie zobaczysz, jak połączyć moduł LSM303DLHC GY-511 z Arduino.

Czego się nauczysz

  • Czym jest moduł kompasu?
  • Moduł kompasu i interfejs Arduino.
  • Zrób kompas cyfrowy z modułem GY-511 i Arduino.

Krok 1: Ogólne informacje o module kompasu

Ogólne informacje o module kompasu
Ogólne informacje o module kompasu

Moduł GY-511 zawiera 3-osiowy akcelerometr i 3-osiowy magnetometr. Ten czujnik może mierzyć przyspieszenie liniowe w pełnej skali ± 2 g / ± 4 g / ± 8 g / ± 16 g oraz pola magnetyczne w pełnej skali ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Gaussa.

Gdy moduł ten jest umieszczony w polu magnetycznym, zgodnie z prawem Lorentza, w jego mikroskopijnej cewce indukuje się prąd wzbudzający. Moduł kompasu przekształca ten prąd na napięcie różnicowe dla każdego kierunku współrzędnych. Korzystając z tych napięć, można obliczyć pole magnetyczne w każdym kierunku i uzyskać położenie geograficzne.

Wskazówka

QMC5883L to kolejny powszechnie używany moduł kompasu. Ten moduł, który ma podobną budowę i zastosowanie jak moduł LMS303, ma nieco inną wydajność. Więc jeśli robisz projekty, uważaj na typ swojego modułu. Jeśli twój moduł to QMC5882L, użyj odpowiedniej biblioteki i kodów, które są również zawarte w samouczku.

Krok 2: Wymagane składniki

Wymagane składniki
Wymagane składniki

Komponenty sprzętowe

Arduino UNO R3 * 1

GY-511 3-osiowy akcelerometr + magnetometr *1

Silnik serwo TowerPro SG-90 * 1

Moduł LCD 1602 * 1

Zworki * 1

Aplikacje oprogramowania

IDE Arduino

Krok 3: Łączenie modułu kompasu GY-511 z Arduino

Interfejs modułu kompasu GY-511 z Arduino
Interfejs modułu kompasu GY-511 z Arduino
Interfejs modułu kompasu GY-511 z Arduino
Interfejs modułu kompasu GY-511 z Arduino

Moduł kompasu GY-511 ma 8 pinów, ale do połączenia z Arduino potrzebujesz tylko 4 z nich. Moduł ten komunikuje się z Arduino za pomocą protokołu I2C, dlatego należy podłączyć piny SDA (wyjście I2C) i SCK (wejście zegara I2C) modułu do pinów I2C na płytce Arduino.

Uwaga Jak widać, w tym projekcie użyliśmy modułu GY-511. Ale możesz użyć tej instrukcji do skonfigurowania innych modułów kompasu LMS303.

Krok 4: Kalibracja modułu kompasu GY-511

W celu nawigacji należy najpierw skalibrować moduł, czyli ustawić zakres pomiarowy od 0 do 360 stopni. Aby to zrobić, podłącz moduł do Arduino jak pokazano poniżej i wgraj poniższy kod na swoją płytkę. Po wykonaniu kodu w oknie monitora szeregowego widać minimalne i maksymalne wartości zakresu pomiarowego dla osi X, Y i Z. Liczby te będą potrzebne w następnej części, więc zapisz je.

Krok 5: Obwód

Okrążenie
Okrążenie

Krok 6: Kod

W tym kodzie potrzebujesz biblioteki Wire.h do komunikacji I2C oraz biblioteki LMS303.h do modułu kompasu. Biblioteki te można pobrać z poniższych linków.

Biblioteka LMS303.h

Biblioteka Wire.h

UwagaJeśli używasz QMC5883, będziesz potrzebować następującej biblioteki:

MechaQMC5883L.h

Tutaj wyjaśniamy kod dla LMS303, ale możesz również pobrać kody dla modułu QMC.

Zobaczmy kilka nowych funkcji:

kompas.enableDefault();

Inicjalizacja modułu

kompas.czytaj();

Odczytywanie wartości wyjściowych modułu kompasu

running_min.z = min(running_min.z, kompas.m.z); running_max.x = max(running_max.x, kompas.m.x);

Wyznaczanie minimalnych i maksymalnych wartości zakresu pomiarowego poprzez porównanie zmierzonych wartości.

Krok 7: Tworzenie cyfrowego kompasu

Po skalibrowaniu modułu zbudujemy kompas, podłączając do modułu serwomotor. Aby wskaźnik serwomechanizmu zawsze wskazywał nam kierunek północny, tak jak czerwona strzałka na kompasie. Aby to zrobić, najpierw moduł kompasu oblicza najpierw kierunek geograficzny i wysyła go do Arduino, a następnie, stosując odpowiedni współczynnik, obliczysz kąt, o jaki powinien obracać się serwomotor, aby jego wskaźnik wskazywał północ magnetyczną. Ostatecznie stosujemy ten kąt do serwomotoru.

Krok 8: Obwód

Okrążenie
Okrążenie

Krok 9: Kod

Kod
Kod

Do tej części potrzebna jest również biblioteka Servo.h, która jest domyślnie zainstalowana w oprogramowaniu Arduino.

Zobaczmy kilka nowych funkcji:

Serwo Serwo1;

Inicjalizacja modułu

kompas.czytaj();

Przedstawiamy obiekt silnika serwo

Servo1.attach(servoPin); kompas.init(); kompas.enableDefault();

Inicjalizacja modułu kompasu i serwomotoru

Argument Servo1.attach() to numer pinu podłączonego do serwomotoru.

kompas.m_min = (LSM303::wektor){-32767, -32767, -32767}; kompas.m_max = (LSM303::wektor){+32767, +32767, +32767};

Za pomocą tych linii definiujesz minimalne i maksymalne wartości pomiaru zakresu uzyskanego w poprzedniej części.

nagłówek pływający =compass.heading((LSM303::vector){0, 0, 1});

Funkcja header() zwraca kąt między osią współrzędnych a osią stałą. Możesz zdefiniować stałą oś za pomocą wektora w argumencie funkcji. Na przykład tutaj, definiując (LSM303:: wektor) {0, 0, 1}, oś Z jest uważana za oś stałą.

Servo1.write(nagłówek);

Funkcja Servo1.write() stosuje wartość odczytaną przez moduł kompasu do serwomotoru.

Uwaga Zwróć uwagę, że serwomotor może mieć pole magnetyczne, więc lepiej jest umieścić serwomotor w odpowiedniej odległości od modułu kompasu, aby nie powodowało to odchylenia modułu kompasu.

Zalecana: