Cov txheej txheem:
Video: Arduino Digital Compass Project: 3 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:29
Nyob zoo! Hauv cov lus qhia no koj yuav pom yuav ua li cas koj tuaj yeem ua Tus Digital Compass siv Arduino thiab Ua Tus IDE. Qhov no yooj yim heev tab sis nthuav thiab zoo saib Arduino Project.
Koj tuaj yeem saib qhov piv txwv ntawm qhov kev qhia hauv qhov vis dis aus saum toj no. Koj ib txwm tuaj yeem pom cov vis dis aus nthuav tawm zoo li qhov no ntawm kuv tus YouTube channel nrog rau pom ntau yam khoom siv hluav taws xob thiab qhia hauv kuv lub vev xaib, HowToMechatronics.com
Kauj Ruam 1: Qhov Yuav Tsum Tau
Rau txoj haujlwm no koj yuav xav tau tsuas yog Arduino Board thiab MEMS Magnetometer, txhawm rau ntsuas lub ntiaj teb sib nqus. Kuv yuav siv GY - 80 pawg thawj coj uas muaj MC5883L 3 - Axis Magnetometer.
Ua ntej peb txuas ntxiv nrog qhov chaws rau txoj haujlwm Yog tias koj xav tau cov ncauj lus qhia ntxaws li cas MEMS lub tshuab ntsuas hluav taws xob ua haujlwm nrog rau kev txuas thiab siv GY - 80 pawg thawj coj ntawm I2C Kev Sib Txuas Lus koj tuaj yeem tshawb xyuas kuv cov kev qhia tshwj xeeb rau qhov ntawd.
Kauj ruam 2: Arduino Source Code
Dab tsi peb yuav tsum tau ua ua ntej yog xa cov duab kos mus rau Arduino Board uas yuav nyeem cov ntaub ntawv los ntawm lub tshuab ntsuas hluav taws xob thiab nws yuav xa nws mus rau Tus Txheej Txheem IDE. Nov yog Arduino Source Code:
/ * Arduino Compass * * los ntawm Dejan Nedelkovski, * www. HowToMechatronics.com * */
#suav nrog // I2C Arduino Library
#define Magnetometer_mX0 0x03
#define Magnetometer_mX1 0x04 #define Magnetometer_mZ0 0x05 #define Magnetometer_mZ1 0x06 #define Magnetometer_mY0 0x07 #define Magnetometer_mY1 0x08
int mX0, mX1, mX_out;
int mY0, mY1, mY_out; int mZ0, mZ1, mZ_out;
ntab nqe lus, nqe lus nqe lus hais txog, nqe lus Filtered, kev poob qis;
ntab Xm, Ym, Zm;
#define Magnetometer 0x1E // I2C 7bit chaw nyob ntawm HMC5883
void teeb tsa () {
// Initialize Serial thiab I2C kev sib txuas lus Serial.begin (115200); Hlau.begin (); ncua (100); Wire.beginTransmission (Magnetometer); Hlau.write (0x02); // Xaiv hom sau npe Wire.write (0x00); // Kev ntsuas ntsuas tsis tu ncua Wire.endTransmission (); }
void voj () {
// ---- X-Axis Wire.beginTransmission (Magnetometer); // xa mus rau ntaus ntawv Wire.write (Magnetometer_mX1); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); yog (Wire.available () <= 1) {mX0 = Wire.read (); } Wire.beginTransmission (Magnetometer); // xa mus rau ntaus ntawv Wire.write (Magnetometer_mX0); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); yog (Wire.available () <= 1) {mX1 = Wire.read (); }
// ---- Y-Axis
Wire.beginTransmission (Magnetometer); // xa mus rau ntaus ntawv Wire.write (Magnetometer_mY1); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); yog (Wire.available () <= 1) {mY0 = Wire.read (); } Wire.beginTransmission (Magnetometer); // xa mus rau ntaus ntawv Wire.write (Magnetometer_mY0); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); yog (Wire.available () <= 1) {mY1 = Wire.read (); } // ---- Z-Axis Wire.beginTransmission (Magnetometer); // xa mus rau ntaus ntawv Wire.write (Magnetometer_mZ1); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); yog (Wire.available () <= 1) {mZ0 = Wire.read (); } Wire.beginTransmission (Magnetometer); // xa mus rau ntaus ntawv Wire.write (Magnetometer_mZ0); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); yog (Wire.available () <= 1) {mZ1 = Wire.read (); } // ---- X-axis mX1 = mX1 << 8; mX_out = mX0+mX1; // Cov ntaub ntawv nyoos // Los ntawm cov ntaub ntawv: 0.92 mG/digit Xm = mX_out*0.00092; // Gauss unit //* Lub ntiaj teb sib nqus thaj tsam ntawm 0.25 txog 0.65 Gauss, yog li cov no yog cov txiaj ntsig uas peb xav tau kom kwv yees.
// ---- Y-Axis
mY1 = mY1 << 8; mY_out = mY0+mY1; Ym = mY_out*0.00092;
// ---- Z-Axis
mZ1 = mZ1 <0.073 rad tsis kam = 0.073; nqe lus += kev poob; // Kho thaum cov paib raug hwm yog tias (nqe lus <0) nqe lus += 2*PI;
// Kho vim qhov ntxiv ntawm lub kaum kev tsis pom zoo
yog (nqe lus> 2*PI) nqe lus -= 2*PI;
HeadDegrees = nqe lus * 180/PI; // Nqe lus hauv Chav Qib
// Ua kom pom lub kaum ntse ntse / Tsawg dhau lim
headingFiltered = nqe lus Filtered*0.85 + nqe lus teev npe*0.15;
// Xa nqe tus nqi los ntawm Serial Port rau Ua IDE
Serial.println (nqe lus Filter);
ncua (50); }
Kauj Ruam 3: Ua IDE Source Code
Tom qab peb tau tshaj tawm cov duab kos Arduino yav dhau los peb yuav tsum tau txais cov ntaub ntawv mus rau hauv Processing IDE thiab kos Digital Compass. Qhov ntsuas hluav taws xob yog tsim los ntawm cov duab keeb kwm yav dhau, cov duab ruaj khov ntawm tus xub, thiab cov duab tig ntawm lub cev ntawm lub koob. Yog li qhov txiaj ntsig rau lub ntiaj teb daim teb sib nqus tau suav nrog Arduino tau siv los tig lub koob.
Nov yog qhov chaws ntawm Kev Ua IDE:
/ * Arduino Compass * * los ntawm Dejan Nedelkovski, * www. HowToMechatronics.com * */ import processing.serial. *; ntshuam java.awt.event. KeyEvent; ntshuam java.io. IOException;
Serial myPort;
PImage imgCompass; PImage imgCompassArrow; PImage keeb kwm yav dhau;
Txoj hlua cov ntaub ntawv = "";
ntab hau;
void teeb tsa () {
loj (1920, 1080, P3D); tus (); imgCompass = loadImage ("Compass.png"); imgCompassArrow = loadImage ("CompassArrow.png"); tom qab = loadImage ("Background.png"); myPort = Serial tshiab (qhov no, "COM4", 115200); // pib kev sib txuas lus hauv xov tooj myPort.bufferUntil ('\ n'); }
void kos () {
duab (keeb kwm yav dhau, 0, 0); // Thaub qab cov duab thaub qab pushMatrix (); txhais lus (dav/2, qhov siab/2, 0); // Txhais cov kab ke ua haujlwm rau hauv nruab nrab ntawm lub vijtsam, kom qhov kev sib hloov tshwm sim muaj cai nyob hauv nruab nrab tig Z (radians (-heading)); // Tig lub Compass ncig Z -Axis duab (imgCompass, -960, -540); // Thauj cov duab Compass thiab raws li kev sib koom tes tau hloov chaw peb xav tau teeb tsa cov duab ntawm -960x, -540y (ib nrab ntawm qhov screen loj) popMatrix (); // Ua kom muaj kev sib koom tes rov qab mus rau txoj haujlwm qub 0, 0, 0 duab (imgCompassArrow, 0, 0); // Nkag mus rau CompassArrow cov duab uas tsis cuam tshuam los ntawm kev ua haujlwm rotZ () vim yog popMatrix () muaj nuj nqi textSize (30); text ("Heading:" + nqe lus, 40, 40); // Luam tawm tus nqi ntawm nqe lus ntawm qhov screen
ncua (40);
}
// pib nyeem cov ntaub ntawv los ntawm Serial Port
void serialEvent (Serial myPort) {data = myPort.readStringUntil ('\ n'); // nyeem cov ntaub ntawv los ntawm Serial Port thiab muab tso rau hauv String variable "data". nqe lus = ntab (cov ntaub ntawv); // Hloov pauv txoj hlua tus nqi rau Float tus nqi}
Kuv vam tias koj yuav nyiam txoj haujlwm no. Yog tias yog li koj tseem tuaj yeem mus ntsib kuv lub vev xaib rau cov phiaj xwm txias dua.
Pom zoo:
Digital Compass thiab Header Finder: 6 Kauj Ruam
Digital Compass thiab Heading Finder: Tus Sau: Cullan Whelan Andrew Luft Blake Johnson Kev lees paub: California Maritime Academy Evan Chang-Siu Qhov no ua rau cov neeg siv ua raws cov kab lus hla kev deb deb
Tutorial to Interface HMC5883L Compass Sensor Nrog Arduino: 10 Kauj Ruam (nrog Duab)
Tutorial to Interface HMC5883L Compass Sensor Nrog Arduino: Nqe lus piav qhia HMC5883L yog 3-axis digital compass siv rau ob lub hom phiaj dav dav: txhawm rau ntsuas cov hlau nplaum ntawm cov khoom sib nqus zoo li ferromagnet, lossis ntsuas lub zog thiab, qee zaum, kev coj ua ntawm magnetic teb ntawm ib qho taw tes hauv s
Digital Compass Siv Arduino thiab HMC5883L Magnetometer: 6 Kauj Ruam
Digital Compass Siv Arduino thiab HMC5883L Magnetometer: Nyob zoo cov neeg, Lub ntsuas no tuaj yeem qhia txog thaj tsam sab qaum teb, Sab Qab Teb, Sab Hnub Tuaj, thiab Sab Hnub Poob, peb tib neeg kuj tseem tuaj yeem siv nws thaum lub sijhawm xav tau. Yog li Hauv kab lus no cia peb sim nkag siab li cas Magnetometer sensor ua haujlwm thiab yuav ua li cas cuam tshuam nrog microcontro
Yuav Ua Li Cas Siv GY511 Module Nrog Arduino [Ua Tus Digital Compass]: 11 Kauj Ruam
Yuav Ua Li Cas Siv GY511 Tus Qauv 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 txhua lub sijhawm thiab ua haujlwm tshwj xeeb raws li. Hauv qhov kev qhia no, koj yuav kawm paub siv LSM303DLHC GY-511 compass module nrog Arduino los ua digital compas
DIY Arduino Compass: 6 Kauj Ruam
DIY Arduino Compass: Peb txhua tus paub tias lub compass yog dab tsi thiab nws siv rau dab tsi. Lub ntsuas hluav taws xob qhia peb cov lus qhia xws li E-W-N-S. Cov koob tshuaj ib txwm ua haujlwm nrog rab koob sib nqus nyob hauv nruab nrab. Cov koob tus ncej sab qaum teb ib txwm taw tes rau lub ntiaj teb thaj chaw sab qaum teb tus ncej wi