Indholdsfortegnelse:

Ekstremt grundlæggende, ukalibreret servokompas: 7 trin
Ekstremt grundlæggende, ukalibreret servokompas: 7 trin

Video: Ekstremt grundlæggende, ukalibreret servokompas: 7 trin

Video: Ekstremt grundlæggende, ukalibreret servokompas: 7 trin
Video: ComfyUI Tutorial - How to Install ComfyUI on Windows, RunPod & Google Colab | Stable Diffusion SDXL 2024, Juli
Anonim
Ekstremt grundlæggende, ukalibreret servokompas
Ekstremt grundlæggende, ukalibreret servokompas

Dette er bare en grundlæggende instruerbar til et projekt, jeg arbejder på. Dette er ukalibreret og er en meget grundlæggende prototype lavet til klassen. I en senere instruktion vil jeg vise, hvordan jeg kalibrerer det.

Jeg ville ikke forvente megen storhed af dette, hvis jeg var dig, det dokumenterer mere processen.

Forbrugsvarer

  • Micro servo (jeg brugte HXT900 Micro Servo fra Hobby King)
  • Arduino (jeg brugte Uno)
  • LSM303DLHC er sensoren
  • Kabler, lodning osv
  • Brødbræt

Trin 1: Saml alt

Saml alt
Saml alt
Saml alt
Saml alt

Sørg for, at dine overskrifter er loddet korrekt på din sensor, og at du har dine ledninger og brødbræt.

Trin 2: Kodebiblioteker

Kodebiblioteker
Kodebiblioteker
Kodebiblioteker
Kodebiblioteker

Du vil sikre dig, at du har downloadet disse.

De andre biblioteker, du vil bruge, wire.h og servo.h, bør allerede være installeret som standard.

Trin 3: Kode

Åbn skitsebiblioteket 'Kompas' fra det, du lige har downloadet. For at bruge servoen vil du sætte servokoden i denne kode. Jeg kombinerede det med Hanie Kianas kode herfra. Originalen er af Hanie Kiani, ikke mig. Det skal se sådan ud.

#omfatte

#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 (""); hvis (! mag.begin ()) {Serial.println ("Ups, ingen LSM303 registreret … Kontroller dine ledninger!"); mens (1); }} void loop (void) { / * Få en ny sensorhændelse * / sensors_event_t event; mag.getEvent (& event); float Pi = 3.14159; // Beregn vinklen på vektoren y, x float -overskrift = (atan2 (event.magnetic.y, event.magnetic.x) * 180) / Pi; // Normaliser til 0-360 hvis (overskrift <0) {heading = 360 + heading; } Serial.print ("Kompasoverskrift:"); Serial.println (overskrift); Servo1.write (180-overskrift); forsinkelse (10); }

Trin 4: Kør det sammen

Kør det sammen
Kør det sammen

Du vil have den nederste pin-SCL- tilsluttet til A5-dataindgangen

Den ved siden af- SDA- forbundet til A4-porten.

Jord går til jorden.

VIN går til 5v -porten.

Trin 5: Tilføj servo til ledninger

Tilføj servo til ledninger
Tilføj servo til ledninger

Jord og spænding taler for sig selv, men du vil have datapinden til at være ~ 3.

Trin 6: Test koden

Test koden
Test koden

Hvis du bevæger magnetometeret langsomt, skal servoen bevæge sig med det. Det varierer sandsynligvis ikke præcist, men det arbejder i det mindste med koden, så del et er fuldført. Det er stadig ukalibreret, men det virker.

Anbefalede: