Turinys:

Itin paprastas, nekalibruotas servo kompasas: 7 žingsniai
Itin paprastas, nekalibruotas servo kompasas: 7 žingsniai

Video: Itin paprastas, nekalibruotas servo kompasas: 7 žingsniai

Video: Itin paprastas, nekalibruotas servo kompasas: 7 žingsniai
Video: 6 оппозитных цилиндров! Что нас поразило в моторе Subaru 3.0 (EZ30R) ? 2024, Lapkritis
Anonim
Itin paprastas, nekalibruotas servo kompasas
Itin paprastas, nekalibruotas servo kompasas

Tai tik pagrindinis nurodymas projektui, prie kurio dirbu. Tai nekalibruotas ir yra labai paprastas klasės prototipas. Vėlesnėje instrukcijoje parodysiu, kaip ją kalibruoti.

Aš nesitikėčiau iš to daug didybės, jei būčiau tu, tai labiau dokumentuoja procesą.

Prekės

  • Mikro servo (aš naudoju „HXT900 Micro Servo“iš „Hobby King“)
  • „Arduino“(naudojau „Uno“)
  • LSM303DLHC yra jutiklis
  • Kabeliai, lydmetalis ir kt
  • Bandomoji Lenta

1 žingsnis: surinkite viską

Surinkite viską
Surinkite viską
Surinkite viską
Surinkite viską

Įsitikinkite, kad antraštės yra tinkamai prilituotos prie jutiklio ir ar turite laidus bei duonos lentą.

2 žingsnis: kodų bibliotekos

Kodų bibliotekos
Kodų bibliotekos
Kodų bibliotekos
Kodų bibliotekos

Norite įsitikinti, kad juos atsisiuntėte.

Kitos bibliotekos, kurias naudosite, wire.h ir servo.h, pagal numatytuosius nustatymus jau turėtų būti įdiegtos.

3 žingsnis: kodas

Atidarykite eskizų biblioteką „Kompasas“iš to, ką ką tik atsisiuntėte. Norėdami naudoti servo, į šį kodą norite įdėti servo kodą. Aš jį sujungiau su Hanie Kiana kodu iš čia. Originalas yra Hanie Kiani, o ne aš. Tai turėtų atrodyti taip.

#įtraukti

#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 („Magnetometro testas“); Serial.println (""); if (! mag.begin ()) {Serial.println ("Oi, LSM303 neaptiktas … Patikrinkite laidus!"); tuo tarpu (1); }} void loop (void) { / * Gaukite naują jutiklio įvykį * / sensors_event_t event; mag.getEvent (& event); plūdė Pi = 3,14159; // Apskaičiuokite vektoriaus y kampą, x plūdės kryptis = (atan2 (įvykis.magnetinis.y, įvykis.magnetinis.x) * 180) / Pi; // Normalizuokite iki 0-360, jei (antraštė <0) {antraštė = 360 + antraštė; } Serial.print ("Kompaso antraštė:"); Serial.println (antraštė); Servo1.write (180-antraštė); vėlavimas (10); }

4 žingsnis: sujungite laidą

Sujunkite jį kartu
Sujunkite jį kartu

Norite, kad kairysis kaištis SCL būtų prijungtas prie A5 duomenų įvesties

Šalia esantis SDA prijungtas prie A4 prievado.

Žemė eina į žemę.

VIN eina į 5v prievadą.

5 veiksmas: pridėkite „Servo“prie laidų

Pridėkite „Servo“prie laidų
Pridėkite „Servo“prie laidų

Žemė ir įtampa kalba patys už save, tačiau norite, kad duomenų kaištis būtų ~ 3.

6 veiksmas: išbandykite kodą

Išbandykite kodą
Išbandykite kodą

Jei lėtai judinate magnetometrą, servo sistema turėtų judėti kartu. Tikėtina, kad jis nėra tikslus, tačiau jis bent jau dirba su kodu, todėl pirmoji dalis baigta. Jis vis dar nekalibruotas, bet veikia.

Rekomenduojamas: