Inhoudsopgave:

Extreem eenvoudig, niet-gekalibreerd servokompas - Ajarnpa
Extreem eenvoudig, niet-gekalibreerd servokompas - Ajarnpa

Video: Extreem eenvoudig, niet-gekalibreerd servokompas - Ajarnpa

Video: Extreem eenvoudig, niet-gekalibreerd servokompas - Ajarnpa
Video: Этот Генератор - теперь можно использовать везде 2024, November
Anonim
Extreem eenvoudig, niet-gekalibreerd servokompas
Extreem eenvoudig, niet-gekalibreerd servokompas

Dit is slechts een basisinstructie voor een project waaraan ik werk. Dit is niet gekalibreerd en is een zeer eenvoudig prototype gemaakt voor de klas. In een latere instructable zal ik laten zien hoe het te kalibreren.

Ik zou hier niet veel grootsheid van verwachten als ik jou was, het is meer het documenteren van het proces.

Benodigdheden

  • Micro servo (ik gebruikte de HXT900 Micro Servo van Hobby King)
  • Arduino (ik gebruikte Uno)
  • LSM303DLHC is de sensor
  • Kabels, soldeer, enz.
  • Breadboard

Stap 1: Monteer alles

Alles in elkaar zetten
Alles in elkaar zetten
Alles in elkaar zetten
Alles in elkaar zetten

Zorg ervoor dat je headers goed op je sensor zijn gesoldeerd en dat je je draden en breadboard hebt.

Stap 2: Codebibliotheken

Codebibliotheken
Codebibliotheken
Codebibliotheken
Codebibliotheken

Zorg ervoor dat je deze hebt gedownload.

De andere bibliotheken die u gaat gebruiken, wire.h en servo.h, zouden standaard al geïnstalleerd moeten zijn.

Stap 3: Coderen

Open de schetsbibliotheek 'Compass' van wat je zojuist hebt gedownload. Om de servo te gebruiken, wil je de servocode in deze code plaatsen. Ik heb het gecombineerd met Hanie Kiana's code van hier. Het origineel is van Hanie Kiani, niet van mij. Het zou er zo uit moeten zien.

#erbij betrekken

#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); Draad.begin(); Servo1.attach (servoPin); Serial.println ("Magnetometertest"); Serieel.println(""); if (!mag.begin()) { Serial.println("Oeps, geen LSM303 gedetecteerd… Controleer uw bedrading!"); terwijl (1); } } void loop (void) { /* Haal een nieuwe sensorgebeurtenis op */ sensors_event_t gebeurtenis; mag.getEvent(&event); vlotter Pi = 3.14159; // Bereken de hoek van de vector y, x zwevende kop = (atan2(event.magnetic.y, event.magnetic.x) * 180) / Pi; // Normaliseren naar 0-360 if (rubriek < 0) { rubriek = 360 + rubriek; } Serial.print("Kompaskop: "); Serial.println (kop); Servo1.write(180-kop); vertraging(10); }

Stap 4: bedraad het samen

Verbind het samen
Verbind het samen

U wilt dat de meest linkse pin-SCL- is aangesloten op de A5-gegevensingang

Degene ernaast - SDA - aangesloten op de A4-poort.

Grond gaat naar Grond.

VIN gaat naar de 5v-poort.

Stap 5: Servo toevoegen aan bedrading

Servo toevoegen aan bedrading
Servo toevoegen aan bedrading

De aarde en het voltage spreken voor zich, maar u wilt dat de datapin ~3 is.

Stap 6: Test de code

Test de code
Test de code

Als u de magnetometer langzaam beweegt, moet de servo meebewegen. Het is waarschijnlijk niet nauwkeurig, maar het werkt in ieder geval met de code, dus deel één is voltooid. Het is nog niet gekalibreerd, maar het werkt.

Aanbevolen: