Cuprins:

Servo-busolă extrem de de bază, necalibrată: 7 pași
Servo-busolă extrem de de bază, necalibrată: 7 pași

Video: Servo-busolă extrem de de bază, necalibrată: 7 pași

Video: Servo-busolă extrem de de bază, necalibrată: 7 pași
Video: ✨A Will Eternal EP 01 - 106 Full Version [MULTI SUB] 2024, Iulie
Anonim
Servo-busolă extrem de de bază, necalibrată
Servo-busolă extrem de de bază, necalibrată

Acesta este doar un element instructiv de bază pentru un proiect la care lucrez. Acesta este necalibrat și este un prototip de bază realizat pentru clasă. Într-o instrucțiune ulterioară, voi arăta cum să-l calibrez.

Nu m-aș aștepta la multă măreție de la asta dacă aș fi tu, documentează mai mult procesul.

Provizii

  • Micro servo (am folosit micro servo HXT900 de la Hobby King)
  • Arduino (am folosit Uno)
  • LSM303DLHC este senzorul
  • Cabluri, lipire etc.
  • Pană de pâine

Pasul 1: Asamblați totul

Asamblați totul
Asamblați totul
Asamblați totul
Asamblați totul

Asigurați-vă că anteturile sunt lipite în mod corespunzător pe senzor și că aveți firele și panoul de măsurare.

Pasul 2: Biblioteci de coduri

Biblioteci de coduri
Biblioteci de coduri
Biblioteci de coduri
Biblioteci de coduri

Veți dori să vă asigurați că le-ați descărcat.

Celelalte biblioteci pe care le veți folosi, wire.h și servo.h, ar trebui să fie deja instalate implicit.

Pasul 3: Cod

Deschideți biblioteca de schițe „Busolă” din ceea ce tocmai ați descărcat. Pentru a utiliza servo, doriți să introduceți codul servo în acest cod. L-am combinat cu codul lui Hanie Kiana de aici. Originalul este de Hanie Kiani, nu de mine. Ar trebui să arate așa.

#include

#include #include #include #include Adafruit_LSM303DLH_Mag_Unified mag = Adafruit_LSM303DLH_Mag_Unified (12345); int servoPin = 3; Servo Servo1; configurare nulă (nulă) {Serial.begin (9600); Wire.begin (); Servo1.attach (servoPin); Serial.println ("Test magnetometru"); Serial.println (""); if (! mag.begin ()) {Serial.println ("Ooops, nu a fost detectat LSM303 … Verificați cablajul!"); în timp ce (1); }} void loop (void) {/ * Obțineți un nou eveniment senzor * / sensors_event_t event; mag.getEvent (& event); plutitor Pi = 3,14159; // Calculați unghiul vectorului y, x float heading = (atan2 (event.magnetic.y, event.magnetic.x) * 180) / Pi; // Normalizați la 0-360 dacă (antet <0) {antet = 360 + antet; } Serial.print ("Antetul busolei:"); Serial.println (antet); Servo1.write (180 de titluri); întârziere (10); }

Pasul 4: conectați-l împreună

Cablează-l împreună
Cablează-l împreună

Doriți ca pinul din stânga - SCL - să fie conectat la intrarea de date A5

Cel de lângă el - SDA- conectat la portul A4.

Pământul merge la Pământ.

VIN merge la portul 5v.

Pasul 5: Adăugați Servo la cablare

Adăugați Servo la cablare
Adăugați Servo la cablare

Masa și tensiunea vorbesc de la sine, dar doriți ca pinul de date să fie ~ 3.

Pasul 6: Testați codul

Testați codul
Testați codul

Dacă mutați magnetometrul încet, servo-ul ar trebui să se deplaseze odată cu acesta. Probabil nu variază exact, dar funcționează cel puțin cu codul, deci prima parte este completă. Este încă necalibrat, dar funcționează.

Recomandat: