Innehållsförteckning:

Extremt grundläggande, okalibrerad servokompass: 7 steg
Extremt grundläggande, okalibrerad servokompass: 7 steg

Video: Extremt grundläggande, okalibrerad servokompass: 7 steg

Video: Extremt grundläggande, okalibrerad servokompass: 7 steg
Video: Fast & Easy Miter Saw Calibration Test 2024, November
Anonim
Extremt grundläggande, okalibrerad servokompass
Extremt grundläggande, okalibrerad servokompass

Detta är bara en grundläggande instruerbar för ett projekt jag arbetar med. Detta är okalibrerat och är en mycket grundläggande prototyp gjord för klassen. I en senare instruktion kommer jag att visa hur jag kalibrerar det.

Jag skulle inte förvänta mig mycket storhet av detta om jag var du, det är mer att dokumentera processen.

Tillbehör

  • Micro servo (jag använde HXT900 Micro Servo från Hobby King)
  • Arduino (jag använde Uno)
  • LSM303DLHC är sensorn
  • Kablar, lödningar etc.
  • Bakbord

Steg 1: Montera allt

Montera allt
Montera allt
Montera allt
Montera allt

Se till att dina sidhuvuden är lödda på din sensor ordentligt och att du har dina trådar och brödbräda.

Steg 2: Kodbibliotek

Kodbibliotek
Kodbibliotek
Kodbibliotek
Kodbibliotek

Du vill se till att du har laddat ner dessa.

De andra biblioteken du använder, wire.h och servo.h, bör redan vara installerade som standard.

Steg 3: Kod

Öppna skissbiblioteket 'Kompass' från det du just hämtade. För att använda servon vill du lägga in servokoden i den här koden. Jag kombinerade den med Hanie Kianas kod härifrån. Originalet är av Hanie Kiani, inte jag. Det ska se ut så här.

#omfatta

#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 ("Oj, ingen LSM303 upptäcktes … Kontrollera din ledning!"); medan (1); }} void loop (void) { / * Skaffa en ny sensorhändelse * / sensors_event_t event; mag.getEvent (& event); flyta Pi = 3.14159; // Beräkna vinkeln på vektorn y, x float rubrik = (atan2 (event.magnetic.y, event.magnetic.x) * 180) / Pi; // Normalisera till 0-360 om (rubrik <0) {rubrik = 360 + rubrik; } Serial.print ("Kompassrubrik:"); Serial.println (rubrik); Servo1.write (180-rubrik); fördröjning (10); }

Steg 4: Koppla ihop det

Koppla ihop det
Koppla ihop det

Du vill att den längsta pin-SCL- är ansluten till A5-datainmatningen

Den bredvid- SDA- ansluten till A4-porten.

Marken går till marken.

VIN går till 5v -porten.

Steg 5: Lägg till servo i ledningar

Lägg till servo i ledningar
Lägg till servo i ledningar

Marken och spänningen talar för sig själva, men du vill att datapinnen ska vara ~ 3.

Steg 6: Testa koden

Testa koden
Testa koden

Om du flyttar magnetometern långsamt bör servon röra sig med den. Det varierar sannolikt inte exakt, men det fungerar åtminstone med koden, så del ett är klart. Det är fortfarande okalibrerat, men det fungerar.

Rekommenderad: