Talaan ng mga Nilalaman:

Labis na Pangunahing, Hindi naka-calibrate na Servo Compass: 7 Mga Hakbang
Labis na Pangunahing, Hindi naka-calibrate na Servo Compass: 7 Mga Hakbang

Video: Labis na Pangunahing, Hindi naka-calibrate na Servo Compass: 7 Mga Hakbang

Video: Labis na Pangunahing, Hindi naka-calibrate na Servo Compass: 7 Mga Hakbang
Video: Pwede ba pang miss universe #MissIgado 2024, Hulyo
Anonim
Labis na Pangunahin, Hindi naka-calibreng Servo Compass
Labis na Pangunahin, Hindi naka-calibreng Servo Compass

Ito ay pangunahing kaalaman lamang para sa isang proyekto na pinagtatrabahuhan ko. Ito ay hindi naka-calibrate at napakahalagang prototype na ginawa para sa klase. Sa isang maagang nagtuturo, ipapakita ko kung paano ito i-calibrate.

Hindi ko aasahan ang higit na kadakilaan mula rito kung ako ay ikaw, mas idodokumento ang proseso.

Mga gamit

  • Micro servo (Ginamit ko ang HXT900 Micro Servo mula sa Hobby King)
  • Arduino (ginamit ko ang Uno)
  • Ang LSM303DLHC ay ang sensor
  • Mga cable, solder, atbp
  • Breadboard

Hakbang 1: Magtipon ng Lahat

Magtipon ng Lahat
Magtipon ng Lahat
Magtipon ng Lahat
Magtipon ng Lahat

Siguraduhin na ang iyong mga header ay na-solder sa iyong sensor nang maayos at mayroon ka ng iyong mga wire at breadboard.

Hakbang 2: Mga Library ng Code

Mga Library ng Code
Mga Library ng Code
Mga Library ng Code
Mga Library ng Code

Gusto mong tiyaking mayroon kang mga nai-download na ito.

Ang iba pang mga aklatan na iyong gagamitin, wire.h at servo.h, ay dapat na mai-install bilang default.

Hakbang 3: Code

Buksan ang sketch library na 'Compass' mula sa na-download mo lamang. Upang magamit ang servo, nais mong ilagay ang servo code sa code na ito. Pinagsama ko ito sa code ni Hanie Kiana mula rito. Ang orihinal ay ni Hanie Kiani, hindi ako. Dapat ganito ang hitsura.

# isama

#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 ("Magnetometer Test"); Serial.println (""); kung (! mag.begin ()) {Serial.println ("Ooops, walang nakitang LSM303 … Suriin ang iyong mga kable!"); habang (1); }} void loop (void) {/ * Kumuha ng bagong kaganapan ng sensor * / kaganapan ng sensors_event_t; mag.getEvent (& kaganapan); float Pi = 3.14159; // Kalkulahin ang anggulo ng vector y, x float heading = (atan2 (event.magnetic.y, event.magnetic.x) * 180) / Pi; // Normalize to 0-360 if (heading <0) {heading = 360 + heading; } Serial.print ("Heading ng Compass:"); Serial.println (heading); Servo1.write (180-heading); antala (10); }

Hakbang 4: Wire It Together

Wire It Together
Wire It Together

Gusto mo ng kaliwang pin- SCL- na konektado sa input ng data ng A5

Ang isa sa tabi nito- SDA- konektado sa A4 port.

Ang lupa ay pumupunta sa Ground.

Ang VIN ay pumupunta sa 5v port.

Hakbang 5: Magdagdag ng Servo sa Mga Kable

Idagdag ang Servo sa Mga Kable
Idagdag ang Servo sa Mga Kable

Ang lupa at boltahe ay nagsasalita para sa kanilang sarili, ngunit nais mong ang data pin ay ~ 3.

Hakbang 6: Subukan ang Code

Subukan ang Code
Subukan ang Code

Kung ilipat mo nang dahan-dahan ang magnetometer, dapat gumalaw ang servo kasama nito. Malamang na hindi ito naiiba nang wasto, ngunit hindi bababa sa gumagana sa code, kaya't kumpleto ang bahagi ng isa. Hindi pa naka-calibrate ito, ngunit gumagana ito.

Inirerekumendang: