Niezwykle podstawowy, nieskalibrowany kompas serwo: 7 kroków
Niezwykle podstawowy, nieskalibrowany kompas serwo: 7 kroków
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.