INHOUDSOPGAWE:

Uiters basiese, ongekalibreerde servokompas: 7 stappe
Uiters basiese, ongekalibreerde servokompas: 7 stappe

Video: Uiters basiese, ongekalibreerde servokompas: 7 stappe

Video: Uiters basiese, ongekalibreerde servokompas: 7 stappe
Video: ComfyUI Tutorial - How to Install ComfyUI on Windows, RunPod & Google Colab | Stable Diffusion SDXL 2024, November
Anonim
Uiters basiese, ongekalibreerde servokompas
Uiters basiese, ongekalibreerde servokompas

Dit is slegs 'n basiese instruksie vir 'n projek waaraan ek werk. Dit is ongekalibreer en is 'n baie basiese prototipe wat vir die klas gemaak is. In 'n latere instruksie sal ek wys hoe u dit kan kalibreer.

Ek sou nie veel grootsheid hiervan verwag as ek u was nie; dit is meer die proses wat dit dokumenteer.

Voorrade

  • Mikroservo (ek het die HXT900 Micro Servo van Hobby King gebruik)
  • Arduino (ek het Uno gebruik)
  • LSM303DLHC is die sensor
  • Kabels, soldeersel, ens
  • Broodbord

Stap 1: Monteer alles

Versamel alles
Versamel alles
Versamel alles
Versamel alles

Maak seker dat u kopstukke behoorlik aan u sensor gesoldeer is en dat u drade en broodbord het.

Stap 2: Kodebiblioteke

Kodebiblioteke
Kodebiblioteke
Kodebiblioteke
Kodebiblioteke

U wil seker maak dat u dit afgelaai het.

Die ander biblioteke wat u gebruik, wire.h en servo.h, moet standaard reeds geïnstalleer wees.

Stap 3: Kodeer

Maak die sketsbiblioteek 'Kompas' oop van wat u pas afgelaai het. Om die servo te gebruik, wil u die servokode in hierdie kode plaas. Ek het dit van hier af gekombineer met die kode van Hanie Kiana. Die oorspronklike is deur Hanie Kiani, nie ek nie. Dit moet so lyk.

#insluit

#include #include #include #include Adafruit_LSM303DLH_Mag_Unified mag = Adafruit_LSM303DLH_Mag_Unified (12345); int servoPin = 3; Servo Servo1; leemte opstel (leeg) {Serial.begin (9600); Wire.begin (); Servo1.aanheg (servoPin); Serial.println ("Magnetometer toets"); Serial.println (""); if (! mag.begin ()) {Serial.println ("Oeps, geen LSM303 bespeur nie … Kontroleer u bedrading!"); terwyl (1); }} leemte lus (leeg) { / * Kry 'n nuwe sensorgebeurtenis * / sensors_event_t gebeurtenis; mag.getEvent (& gebeurtenis); float Pi = 3.14159; // Bereken die hoek van die vektor y, x float -opskrif = (atan2 (event.magnetic.y, event.magnetic.x) * 180) / Pi; // Normaliseer na 0-360 as (opskrif <0) {heading = 360 + heading; } Serial.print ("Kompasopskrif:"); Serial.println (opskrif); Servo1.skryf (180-opskrif); vertraging (10); }

Stap 4: Verbind dit saam

Dra dit saam
Dra dit saam

U wil hê dat die pin-SCL-punt aan die linkerkant gekoppel is aan die A5-data-invoer

Die een daarby- SDA- gekoppel aan die A4-poort.

Grond gaan na grond.

VIN gaan na die 5v -poort.

Stap 5: Voeg servo by bedrading

Voeg servo by bedrading
Voeg servo by bedrading

Die grond en spanning spreek vanself, maar u wil hê dat die data -pen ~ 3 moet wees.

Stap 6: Toets die kode

Toets die kode
Toets die kode

As u die magnetometer stadig beweeg, moet die servo daarmee beweeg. Dit wissel waarskynlik nie akkuraat nie, maar dit werk ten minste met die kode, dus deel een is voltooi. Dit is nog steeds nie gekalibreer nie, maar dit werk.

Aanbeveel: