Spisu treści:

Niezwykle podstawowy, nieskalibrowany kompas serwo: 7 kroków
Niezwykle podstawowy, nieskalibrowany kompas serwo: 7 kroków

Wideo: Niezwykle podstawowy, nieskalibrowany kompas serwo: 7 kroków

Wideo: Niezwykle podstawowy, nieskalibrowany kompas serwo: 7 kroków
Wideo: Casio G-Shock GW-9500-1ER MUDMAN, czy rzeczywiście jest taki zły ?!?!? 2024, Listopad
Anonim
Niezwykle podstawowy, nieskalibrowany kompas serwo
Niezwykle podstawowy, nieskalibrowany kompas serwo

To tylko podstawowe instrukcje dotyczące projektu, nad którym pracuję. To jest nieskalibrowane i jest bardzo prostym prototypem stworzonym dla klasy. W dalszej instrukcji pokażę, jak to skalibrować.

Na twoim miejscu nie spodziewałbym się po tym wiele wspaniałości, jest to bardziej dokumentacja procesu.

Kieszonkowe dzieci

  • Micro servo (użyłem HXT900 Micro Servo firmy Hobby King)
  • Arduino (użyłem Uno)
  • LSM303DLHC to czujnik
  • Kable, lut, itp.
  • Deska do krojenia chleba

Krok 1: Złóż wszystko

Zbierz wszystko
Zbierz wszystko
Zbierz wszystko
Zbierz wszystko

Upewnij się, że nagłówki są prawidłowo przylutowane do czujnika oraz że masz przewody i płytkę stykową.

Krok 2: Biblioteki kodów

Biblioteki kodów
Biblioteki kodów
Biblioteki kodów
Biblioteki kodów

Upewnij się, że masz je pobrane.

Inne biblioteki, których będziesz używać, wire.h i servo.h, powinny być już domyślnie zainstalowane.

Krok 3: Kod

Otwórz bibliotekę szkiców „Kompas” z tego, co właśnie pobrałeś. Aby użyć serwomechanizmu, chcesz umieścić kod serwomechanizmu w tym kodzie. Połączyłem go z kodem Hanie Kiana stąd. Oryginał jest autorstwa Hanie Kiani, nie ja. To powinno wyglądać tak.

#włączać

#include #include #include #include Adafruit_LSM303DLH_Mag_Unified mag = Adafruit_LSM303DLH_Mag_Unified(12345); wew serwoPin = 3; Serwo Serwo1; void setup(void) { Serial.begin(9600); Wire.początek(); Servo1.attach(servoPin); Serial.println("Test magnetometru"); Serial.println(""); if (!mag.begin()) { Serial.println("Ups, nie wykryto LSM303… Sprawdź okablowanie!"); podczas gdy (1); } } void loop(void) { /* Pobranie nowego zdarzenia czujnika */ sensor_event_t event; mag.getEvent(&event); pływak Pi = 3,14159; // Oblicz kąt wektora y, x float nagłówek = (atan2(event.magnetic.y, event.magnetic.x) * 180) / Pi; // Normalizuj do 0-360 if (nagłówek < 0) { nagłówek = 360 + nagłówek; } Serial.print("Nagłówek kompasu: "); Serial.println(nagłówek); Servo1.write(180-nagłówek); opóźnienie(10); }

Krok 4: Połącz to razem

Połącz to razem
Połącz to razem

Chcesz, aby skrajny lewy pin - SCL - był podłączony do wejścia danych A5

Ten obok - SDA - podłączony do portu A4.

Ziemia idzie do Ziemi.

VIN idzie na port 5v.

Krok 5: Dodaj serwo do okablowania

Dodaj serwo do okablowania
Dodaj serwo do okablowania

Uziemienie i napięcie mówią same za siebie, ale chcesz, aby pin danych był ~3.

Krok 6: Przetestuj kod

Przetestuj kod
Przetestuj kod

Jeśli poruszasz magnetometrem powoli, serwo powinno poruszać się razem z nim. Prawdopodobnie nie jest dokładny, ale przynajmniej działa z kodem, więc część pierwsza jest kompletna. Nadal jest nieskalibrowany, ale działa.

Zalecana: