Innholdsfortegnelse:

Ekstremt grunnleggende, ukalibrert servokompass: 7 trinn
Ekstremt grunnleggende, ukalibrert servokompass: 7 trinn

Video: Ekstremt grunnleggende, ukalibrert servokompass: 7 trinn

Video: Ekstremt grunnleggende, ukalibrert servokompass: 7 trinn
Video: Крис Ланган и Бернардо Каструп о сознании 2024, November
Anonim
Ekstremt grunnleggende, ukalibrert servokompass
Ekstremt grunnleggende, ukalibrert servokompass

Dette er bare en grunnleggende instruks for et prosjekt jeg jobber med. Dette er ukalibrert og er en veldig grunnleggende prototype laget for klassen. I en senere instruks vil jeg vise hvordan jeg kalibrerer den.

Jeg ville ikke forvente mye storhet av dette hvis jeg var deg, det er mer å dokumentere prosessen.

Rekvisita

  • Micro servo (jeg brukte HXT900 Micro Servo fra Hobby King)
  • Arduino (jeg brukte Uno)
  • LSM303DLHC er sensoren
  • Kabler, lodding osv
  • Brødbrett

Trinn 1: Sett sammen alt

Sett sammen alt
Sett sammen alt
Sett sammen alt
Sett sammen alt

Sørg for at hodene dine er loddet på sensoren din ordentlig og at du har ledninger og brødbrett.

Trinn 2: Kodebiblioteker

Code Libraries
Code Libraries
Code Libraries
Code Libraries

Du vil sørge for at du har disse lastet ned.

De andre bibliotekene du bruker, wire.h og servo.h, bør allerede være installert som standard.

Trinn 3: Kode

Åpne skissebiblioteket 'Kompass' fra det du nettopp lastet ned. For å bruke servoen, vil du sette servokoden inn i denne koden. Jeg kombinerte den med Hanie Kianas kode herfra. Originalen er av Hanie Kiani, ikke meg. Det skal se slik ut.

#inkludere

#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, ingen LSM303 oppdaget … Sjekk ledningene!"); mens (1); }} void loop (void) { / * Få en ny sensorhendelse * / sensors_event_t event; mag.getEvent (& event); flyte Pi = 3.14159; // Beregn vinkelen på vektoren y, x flyteoverskrift = (atan2 (event.magnetic.y, event.magnetic.x) * 180) / Pi; // Normaliser til 0-360 hvis (overskrift <0) {heading = 360 + heading; } Serial.print ("Kompassoverskrift:"); Serial.println (overskrift); Servo1.write (180-overskrift); forsinkelse (10); }

Trinn 4: Koble det sammen

Koble det sammen
Koble det sammen

Du vil at den nederste pin-SCL- er koblet til A5-datainngangen

Den ved siden av- SDA- koblet til A4-porten.

Bakken går til bakken.

VIN går til 5v -porten.

Trinn 5: Legg servo til ledninger

Legg Servo til ledninger
Legg Servo til ledninger

Jord og spenning taler for seg selv, men du vil at datapinnen skal være ~ 3.

Trinn 6: Test koden

Test koden
Test koden

Hvis du beveger magnetometeret sakte, bør servoen bevege seg med det. Det varierer sannsynligvis ikke nøyaktig, men det fungerer i det minste med koden, så del en er fullført. Det er fortsatt ukalibrert, men det fungerer.

Anbefalt: