Cov txheej txheem:

Yuav Ua Li Cas Siv GY511 Module Nrog Arduino [Ua Tus Digital Compass]: 11 Kauj Ruam
Yuav Ua Li Cas Siv GY511 Module Nrog Arduino [Ua Tus Digital Compass]: 11 Kauj Ruam

Video: Yuav Ua Li Cas Siv GY511 Module Nrog Arduino [Ua Tus Digital Compass]: 11 Kauj Ruam

Video: Yuav Ua Li Cas Siv GY511 Module Nrog Arduino [Ua Tus Digital Compass]: 11 Kauj Ruam
Video: Computer Vision with Python! Resizing Images 2024, Hlis ntuj nqeg
Anonim
Yuav Ua Li Cas Siv GY511 Module Nrog Arduino [Ua Tus Digital Compass]
Yuav Ua Li Cas Siv GY511 Module Nrog Arduino [Ua Tus Digital Compass]

Txheej txheem cej luam

Hauv qee qhov haujlwm hluav taws xob, peb yuav tsum paub thaj chaw nyob ntawm ib lub sijhawm twg thiab ua haujlwm tshwj xeeb raws li qhov tsim nyog. Hauv qhov kev qhia no, koj yuav kawm paub siv LSM303DLHC GY-511 cov qauv ntsuas hluav taws xob nrog Arduino los ua tus lej digital. Ua ntej, koj yuav kawm paub txog tus qauv no thiab nws ua haujlwm li cas, thiab tom qab ntawd koj yuav pom yuav ua li cas cuam tshuam nrog LSM303DLHC GY-511 module nrog Arduino.

Yam Koj Yuav Kawm

  • Dab tsi yog compass module?
  • Compass module thiab Arduino interface.
  • Ua tus lej digital nrog GY-511 tus qauv thiab Arduino.

Kauj Ruam 1: Cov Lus Qhia Txog Txog Compass Module

Cov Lus Qhia Txog Txog Compass Module
Cov Lus Qhia Txog Txog Compass Module

GY-511 module suav nrog 3-axis accelerometer thiab 3-axis magnetometer. Qhov ntsuas no tuaj yeem ntsuas qhov nrawm nrawm ntawm tag nrho cov nplai ntawm g 2 g / ± 4 g / ± 8 g / ± 16 g thiab thaj chaw sib nqus ntawm qhov ntsuas ntawm ± 1.3 / ± 1.9 / ± 2.5 / ± 4.0 / ± 4.7 / ± 5.6 ± 8.1 Gauss.

Thaum qhov ntsuas no tau muab tso rau hauv qhov chaw sib nqus, raws li txoj cai Lorentz qhov kev xav tam sim no ua rau nws lub tshuab tsom me me. Tus qauv ntsuas hluav taws xob hloov pauv qhov tam sim no mus rau qhov sib txawv qhov hluav taws xob rau txhua qhov kev coj ua haujlwm. Siv cov ntsuas hluav taws xob no, koj tuaj yeem suav qhov sib nqus hauv txhua qhov kev taw qhia thiab tau txais txoj haujlwm thaj chaw.

Tswv yim

QMC5883L yog lwm qhov qauv siv ntau zaus. Cov qauv no, uas muaj cov qauv zoo sib xws thiab thov raws li LMS303 module, yog qhov txawv me ntsis hauv kev ua haujlwm. Yog li yog tias koj tab tom ua cov phiaj xwm, ua tib zoo saib xyuas koj tus qauv. Yog tias koj tus qauv yog QMC5882L, siv lub tsev qiv ntawv tsim nyog thiab cov lej uas tseem suav nrog hauv kev qhia.

Kauj Ruam 2: Cov Cheeb Tsam Xav Tau

Yuav tsum tau Cheebtsam
Yuav tsum tau Cheebtsam

Kho vajtse Cheebtsam

Arduino UNO R3 *1

GY-511 3-Axis Accelerometer + Magnetometer *1

TowerPro Servo Tsav SG-90 *1

1602 LCD Module *1

Cov neeg dhia *1

Software Apps

Arduino IDE Cov

Kauj Ruam 3: Sib cuam tshuam GY-511 Compass Module Nrog Arduino

Interfacing GY-511 Compass Module Nrog Arduino
Interfacing GY-511 Compass Module Nrog Arduino
Interfacing GY-511 Compass Module Nrog Arduino
Interfacing GY-511 Compass Module Nrog Arduino

GY-511 compass module muaj 8 tus pin, tab sis koj xav tau tsuas yog 4 ntawm lawv los cuam tshuam nrog Arduino. Cov qauv no sib txuas lus nrog Arduino siv I2C raws tu qauv, yog li txuas SDA (I2C cov zis) thiab SCK (I2C moos cov tswv yim) pins ntawm tus qauv rau I2C pins ntawm Arduino board.

Nco tseg Raws li koj tuaj yeem pom, peb tau siv GY-511 tus qauv hauv txoj haujlwm no. Tab sis koj tuaj yeem siv cov lus qhia no teeb tsa lwm yam LMS303 cov qauv ntsuas hluav taws xob.

Kauj Ruam 4: GY-511 Compass Module Calibration

Txhawm rau taug kev, koj yuav tsum xub ntsuas tus qauv, uas txhais tau tias teeb tsa qhov ntsuas los ntawm 0 txog 360 degrees. Txhawm rau ua qhov no, txuas tus qauv rau Arduino raws li qhia hauv qab no thiab xa cov cai hauv qab no ntawm koj lub rooj tsavxwm. Tom qab ua tiav txoj cai, koj tuaj yeem pom qhov tsawg kawg nkaus thiab qhov siab tshaj plaws ntawm qhov ntsuas ntau rau X, Y thiab Z axis hauv lub qhov rooj saib xyuas txuas. Koj yuav xav tau cov lej no hauv ntu tom ntej, yog li sau lawv.

Kauj ruam 5: Circuit Court

Circuit Court
Circuit Court

Kauj ruam 6: Code

Hauv txoj cai no, koj xav tau Wire.h lub tsev qiv ntawv rau I2C kev sib txuas lus, thiab LMS303.h lub tsev qiv ntawv rau tus qauv ntsuas. Koj tuaj yeem rub tawm cov tsev qiv ntawv no los ntawm cov kab ntawv txuas hauv qab no.

LMS303.h Lub Tsev Qiv Ntawv

Lub tsev qiv ntawv Wire.h

Nco tseg Yog tias koj siv QMC5883, koj yuav xav tau cov tsev qiv ntawv hauv qab no:

MechaQMC5883L.h

Ntawm no, peb piav qhia txoj cai rau LMS303, tab sis koj tuaj yeem rub cov lej rau QMC module ib yam.

Cia peb pom qee qhov haujlwm tshiab:

compass.enableDefault ();

Kev pib ua qauv

compass.read (); cov.

Nyeem cov txiaj ntsig tso tawm ntawm cov qauv ntsuas

running_min.z = min (running_min.z, compass.m.z); running_max.x = max (running_max.x, compass.mx);

Txiav txim siab qhov tsawg kawg thiab qhov siab tshaj plaws ntawm kev ntsuas ntau los ntawm kev sib piv cov ntsuas ntsuas.

Kauj Ruam 7: Ua Tus Digital Compass

Tom qab ntsuas qhov ntsuas, peb tab tom tsim lub ntsuas hluav taws xob los ntawm kev txuas lub tshuab servo mus rau qhov qauv. Yog li qhov ntsuas qhov ntsuas, ib txwm qhia peb sab qaum teb, zoo li tus xub liab ntawm lub koob. Txhawm rau ua qhov no, ua ntej ntsuas lub ntsuas hluav taws xob ntsuas qhov ntsuas ntawm thaj chaw ua ntej thiab xa nws mus rau Arduino thiab Tom qab ntawd, los ntawm kev siv qhov sib piv tsim nyog, koj yuav xam lub kaum sab xis uas lub tshuab servo yuav tsum tig kom nws qhov taw qhia taw tes rau sab qaum teb sib nqus. Thaum kawg, peb thov lub kaum ntse ntse rau lub cav servo.

Kauj ruam 8: Circuit Court

Circuit Court
Circuit Court

Kauj ruam 9: Code

Code
Code

Rau ntu no koj kuj xav tau lub tsev qiv ntawv Servo.h, uas tau teeb tsa ntawm koj li Arduino software los ntawm lub neej ntawd.

Cia peb pom qee qhov haujlwm tshiab:

Servo Tsav 1;

Kev pib ua qauv

compass.read (); cov.

Qhia cov khoom siv servo motor

Servo1.attach (servoPin); compass.init (); compass.enableDefault ();

Kev pib ua tus qauv ntsuas thiab servo motor

Qhov Servo1.attach () sib cav yog tus lej ntawm tus pin txuas nrog rau servo motor.

compass.m_min = (LSM303:: vector) { -32767, -32767, -32767}; compass.m_max = (LSM303:: vector) { +32767, +32767, +32767};

Siv cov kab no koj txiav txim siab yam tsawg kawg nkaus thiab qhov siab tshaj plaws rau kev ntsuas qhov ntau tau hauv ntu dhau los.

ntab nqe lus = compass.heading ((LSM303:: vector) {0, 0, 1});

Lub luag haujlwm () ua haujlwm rov qab lub kaum sab xis ntawm txoj haujlwm sib koom ua ke thiab lub axis ruaj khov. Koj tuaj yeem txhais lub axis ruaj nrog lub vector hauv qhov kev sib cav muaj nuj nqi. Piv txwv li, ntawm no, los ntawm kev txhais (LSM303:: vector) {0, 0, 1}, Z axis raug txiav txim siab tias yog lub axis tas mus li.

Servo1.write (nqe lus);

Qhov Servo1.write () ua haujlwm siv tus nqi nyeem los ntawm cov qauv ntsuas hluav taws xob rau servo motor.

Nco tseg Nco tseg tias lub cav servo tuaj yeem muaj qhov sib nqus, yog li nws zoo dua tso lub cav servo ntawm qhov tsim nyog nyob deb ntawm qhov ntsuas hluav taws xob, uas nws tsis ua rau lub ntsuas hluav taws xob hloov pauv.

Pom zoo: