Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Dies ist nur ein grundlegendes instructable für ein Projekt, an dem ich arbeite. Dies ist nicht kalibriert und ist ein sehr einfacher Prototyp für den Unterricht. In einem späteren anweisbaren werde ich zeigen, wie man es kalibriert.
An deiner Stelle würde ich davon nicht viel Großartiges erwarten, es dokumentiert eher den Prozess.
Lieferungen
- Micro Servo (ich habe das HXT900 Micro Servo von Hobby King verwendet)
- Arduino (ich habe Uno verwendet)
- LSM303DLHC ist der Sensor
- Kabel, Lötzinn usw.
- Steckbrett
Schritt 1: Alles zusammenbauen
Stellen Sie sicher, dass Ihre Header richtig auf Ihren Sensor gelötet sind und Sie Ihre Drähte und das Steckbrett haben.
Schritt 2: Codebibliotheken
Sie sollten sicherstellen, dass Sie diese heruntergeladen haben.
Die anderen Bibliotheken, die Sie verwenden werden, wire.h und servo.h sollten standardmäßig bereits installiert sein.
Schritt 3: Code
Öffnen Sie die Skizzenbibliothek 'Kompass' von dem, was Sie gerade heruntergeladen haben. Um das Servo zu verwenden, möchten Sie den Servocode in diesen Code einfügen. Ich habe es mit Hanie Kianas Code von hier kombiniert. Das Original stammt von Hanie Kiani, nicht von mir. Es sollte so aussehen.
#enthalten
#include #include #include #include Adafruit_LSM303DLH_Mag_Unified mag = Adafruit_LSM303DLH_Mag_Unified(12345); int servoPin = 3; Servo-Servo1; Void setup (void) {Serial.begin (9600); Wire.begin(); Servo1.attach (servoPin); Serial.println ("Magnetometertest"); Serial.println(""); if (!mag.begin()) { Serial.println("Ooops, kein LSM303 erkannt … Überprüfen Sie Ihre Verkabelung!"); während (1); aufrechtzuerhalten. aufrechtzuerhalten. Void loop (void) {/* Holen Sie sich ein neues Sensorereignis */ sensor_event_t event; mag.getEvent(&event); Schwimmer Pi = 3,14159; // Berechne den Winkel des Vektors y, x float Kurs = (atan2(event.magnetic.y, event.magnetic.x) * 180) / Pi; // Auf 0-360 normalisieren if (Überschrift < 0) { Überschrift = 360 + Überschrift; } Serial.print ("Kompassüberschrift: "); Serial.println (Überschrift); Servo1.write (180-Überschrift); Verzögerung(10); }
Schritt 4: Verdrahten Sie es zusammen
Sie möchten, dass der ganz linke Pin - SCL - mit dem A5-Dateneingang verbunden ist
Der daneben - SDA - an den A4-Port angeschlossen.
Masse geht zu Masse.
VIN geht an den 5V-Port.
Schritt 5: Servo zur Verkabelung hinzufügen
Masse und Spannung sprechen für sich, aber Sie möchten, dass der Daten-Pin ~3 beträgt.
Schritt 6: Testen Sie den Code
Wenn Sie das Magnetometer langsam bewegen, sollte sich das Servo mitbewegen. Es ist wahrscheinlich nicht ganz genau, aber es funktioniert zumindest mit dem Code, sodass Teil eins abgeschlossen ist. Es ist noch nicht kalibriert, aber es funktioniert.