Orodha ya maudhui:
- Hatua ya 1: Sehemu Zinazohitajika
- Hatua ya 2: Msimbo wa Chanzo wa Arduino
- Hatua ya 3: Inasindika Msimbo wa Chanzo wa IDE
Video: Mradi wa Dira ya Dijiti ya Arduino: Hatua 3
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:53
Halo! Katika hii inayoweza kufundishwa utaona jinsi unaweza kutengeneza Dira ya Dijiti ukitumia Arduino na IDE ya Usindikaji. Huu ni Mradi wa Arduino rahisi lakini wa kuvutia na mzuri.
Unaweza kutazama mfano wa onyesho la mafunzo haya kwenye video hapo juu. Unaweza kupata video za kupendeza zaidi kama hii kwenye kituo changu cha YouTube na pia kupata miradi na vifaa vya elektroniki kwenye wavuti yangu, HowToMechatronics.com
Hatua ya 1: Sehemu Zinazohitajika
Kwa mradi huu utahitaji tu Bodi ya Arduino na MEMS Magnetometer, kwa kupima uwanja wa sumaku wa dunia. Nitatumia bodi ya kuzuka ya GY - 80 ambayo ina MC5883L 3 - Axis Magnetometer.
Kabla ya kuendelea na nambari ya chanzo ya mradi Ikiwa unahitaji maelezo zaidi jinsi sumaku ya MEMS inavyofanya kazi na pia jinsi ya kuunganisha na kutumia bodi ya kuzuka ya GY - 80 kupitia Mawasiliano ya I2C unaweza kuangalia mafunzo yangu kwa hiyo.
Hatua ya 2: Msimbo wa Chanzo wa Arduino
Tunachohitaji kufanya kwanza ni kupakia mchoro kwenye Bodi ya Arduino ambayo itasoma data kutoka kwa sumaku ya sumaku na itaipeleka kwa IDE ya Usindikaji. Hapa kuna Nambari ya Chanzo ya Arduino:
/ * Arduino Compass * * na Dejan Nedelkovski, * www. HowToMechatronics.com * * /
# pamoja na // I2C Arduino Library
#fafanua Magnetometer_mX0 0x03
#fafanua Magnetometer_mX1 0x04 #fafanua Magnetometer_mZ0 0x05 #fafanua Magnetometer_mZ1 0x06 #fafanua Magnetometer_mY0 0x07 #fafanua Magnetometer_mY1 0x08
int mX0, mX1, mX_out;
int mY0, mY1, mY_out; int mZ0, mZ1, mZ_kutoka;
kichwa cha kuelea, kichwaDaraja, kichwa kilichochujwa, kukata;
kuelea Xm, Ym, Zm;
#fafanua Magnetometer 0x1E // Anwani ya I2C 7bit ya HMC5883
usanidi batili () {
// Anzisha Serial na mawasiliano ya I2C Serial.begin (115200); Wire.begin (); kuchelewesha (100); Uwasilishaji wa waya (Magnetometer); Andika waya (0x02); // Chagua rejista ya mode Wire.write (0x00); // Njia ya kipimo ya kuendelea Wire.endTransmission (); }
kitanzi batili () {
// ---- X-Axis Wire.anza Uwasilishaji (Magnetometer); // kusambaza kwa kifaa Wire.write (Magnetometer_mX1); Uwasilishaji wa waya (); Ombi la Wire. Toka (Magnetometer, 1); ikiwa (Waya haipatikani () <= 1) {mX0 = Wire.read (); } Waya.anza Usafirishaji (Magnetometer); // kusambaza kwa kifaa Wire.write (Magnetometer_mX0); Uwasilishaji wa waya (); Ombi la Wire. Toka (Magnetometer, 1); ikiwa (Waya haipatikani () <= 1) {mX1 = Wire.read (); }
// ---- Y-Mhimili
Uwasilishaji wa waya (Magnetometer); // kusambaza kwa kifaa Wire.write (Magnetometer_mY1); Uwasilishaji wa waya (); Ombi la Wire. Toka (Magnetometer, 1); ikiwa (Waya haipatikani () <= 1) {mY0 = Wire.read (); } Waya.anza Usafirishaji (Magnetometer); // kusambaza kwa kifaa Wire.write (Magnetometer_mY0); Uwasilishaji wa waya (); Ombi la Wire. Toka (Magnetometer, 1); ikiwa (Waya haipatikani () <= 1) {mY1 = Wire.read (); } // ---- Z-Axis Wire.anza Uwasilishaji (Magnetometer); // kusambaza kwa kifaa Wire.write (Magnetometer_mZ1); Uwasilishaji wa waya (); Ombi la Wire. Toka (Magnetometer, 1); ikiwa (Waya haipatikani () <= 1) {mZ0 = Wire.read (); } Waya.anza Usafirishaji (Magnetometer); // kusambaza kwa kifaa Wire.write (Magnetometer_mZ0); Uwasilishaji wa waya (); Ombi la Wire. Toka (Magnetometer, 1); ikiwa (Waya haipatikani () <= 1) {mZ1 = Wire.read (); } // ---- X-Axis mX1 = mX1 << 8; mX_out = mX0 + mX1; // Takwimu mbichi // Kutoka kwa data: 0.92 mG / tarakimu Xm = mX_out * 0.00092; // Kitengo cha Gauss // * Sehemu ya sumaku ya Dunia ni kati ya 0.25 hadi 0.65 Gauss, kwa hivyo hizi ndio maadili ambayo tunahitaji kupata takriban.
// ---- Y-Mhimili
mY1 = mY1 << 8; mY_out = mY0 + mY1; Ym = mY_out * 0.00092;
// ---- Z-Mhimili
mZ1 = mZ1 <0.073 kupungua kwa rad = 0.073; kichwa + = kukataa; // Kurekebisha wakati ishara zinaonyeshwa ikiwa (kichwa <0) kichwa + = 2 * PI;
// Kurekebisha kwa sababu ya kuongezwa kwa pembe ya kupungua
ikiwa (kichwa> 2 * PI) kichwa - = 2 * PI;
headingDegree = kichwa * 180 / PI; // Kichwa katika kitengo cha Digrii
// Lainisha pembe ya pato / Kichujio cha chini cha kupitisha
headingFiltered = headingFiltered * 0.85 + headingDegree * 0.15;
// Kutuma dhamana ya kichwa kupitia Bandari ya Siri kwa Usindikaji IDE
Serial.println (headingFiltered);
kuchelewesha (50); }
Hatua ya 3: Inasindika Msimbo wa Chanzo wa IDE
Baada ya kupakia mchoro uliopita wa Arduino tunahitaji kupokea data kwenye IDE ya Usindikaji na kuteka Dira ya Dijiti. Dira hiyo inaundwa na picha ya mandharinyuma, picha iliyowekwa ya mshale, na picha inayozunguka ya mwili wa dira. Kwa hivyo maadili ya uwanja wa sumaku wa eart uliohesabiwa na Arduino hutumiwa kuzunguka dira.
Hapa kuna nambari ya chanzo ya IDE ya Usindikaji:
/ * Arduino Compass * * na Dejan Nedelkovski, * www. HowToMechatronics.com * * / kuagiza usindikaji.serial. *; kuagiza java.awt.event. KeyEvent; kuagiza java.io. IOException;
Serial myPort;
Picha ya PImage imgCompass; Picha ya PImage imgCompassArrow; Historia ya PImage;
Data ya kamba = "";
kuelea kichwa;
usanidi batili () {
saizi (1920, 1080, P3D); Nyororo(); imgCompass = mzigoImage ("Compass.png"); imgCompassArrow = mzigoImage ("CompassArrow.png"); background = mzigoImage ("Background.png"); myPort = mpya Serial (hii, "COM4", 115200); // huanza mawasiliano ya serial myPort.bufferUntil ('\ n'); }
chora batili () {
picha (nyuma, 0, 0); // Inapakia picha ya Usuli pushMatrix (); kutafsiri (upana / 2, urefu / 2, 0); // Inatafsiri mfumo wa kuratibu katikati ya skrini, ili mzunguko utokee katikati kabisa Z (radians (-heading)); // Inazunguka Dira karibu na Z - Picha ya mhimili (imgCompass, -960, -540); // Inapakia picha ya Dira na mfumo wa kuratibu unahamishwa tunahitaji kuweka picha kwenye -960x, -540y (nusu ya ukubwa wa skrini) popMatrix (); // Huleta mfumo wa kuratibu umerudi kwenye nafasi ya asili 0, 0, picha ya 0 (imgCompassArrow, 0, 0); // Inapakia picha ya CompassArrow ambayo haiathiriwi na kazi ya kuzungukaZ () kwa sababu ya kazi ya popMatrix () textSize (30); maandishi ("Kichwa:" + kichwa, 40, 40); // Inachapisha thamani ya kichwa kwenye skrini
kuchelewesha (40);
}
// huanza kusoma data kutoka Port Serial
void serialEvent (Serial myPort) {data = myPort.readStringUntil ('\ n'); kichwa = kuelea (data); // Kubadilisha Thamani ya Kamba kuwa Thamani ya Kuelea}
Natumai utaupenda mradi huu. Ikiwa ni hivyo unaweza pia kutembelea wavuti yangu kwa miradi mizuri zaidi.
Ilipendekeza:
Saa ya Dijiti ya Doa Matrix ya Dijiti - Programu ya Android ya ESP Matrix: Hatua 14
Saa ya Dijiti ya Dotri ya Dijiti ya Dijiti - Programu ya Android ya ESP Matrix: Nakala hii inafadhiliwa na PCBWAY.PCBWAY hufanya PCB zenye ubora wa hali ya juu kwa watu ulimwenguni kote. Jaribu mwenyewe na upate PCB 10 kwa $ 5 tu kwa PCBWAY na ubora mzuri sana, Shukrani PCBWAY. Bodi ya Matiti ya ESP ninayoipenda
Dira ya Dijiti na Kitafuta Kichwa: Hatua 6
Dira ya Dijiti na Kitafuta Kichwa: Waandishi: Cullan Whelan Andrew Luft Blake Johnson Shukrani: California Maritime Academy Evan Chang-Siu Utangulizi: Msingi wa mradi huu ni dira ya dijiti na ufuatiliaji wa kichwa. Hii inamwezesha mtumiaji kufuata kichwa katika umbali mrefu
Dira ya Dira ya DIY: Hatua 14
Dira ya Dira ya DIY: Hi! Leo nitatengeneza Compass bot. Nilipata wazo hili kwa kufikiria juu ya jinsi ilivyo ngumu kuteka duara kamili bila sanduku la hesabu. Naam nimepata suluhisho lako? Kama unavyojua kuwa duara ni digrii 360, kwa hivyo bot hii inaweza kuchora sha
Dira ya Dijiti Kutumia Arduino na HMC5883L Magnetometer: 6 Hatua
Dira ya Dijiti Kutumia Arduino na HMC5883L Magnetometer: Halo jamani, sensa hii inaweza kuonyesha eneo la Kaskazini, Kusini, Mashariki, na Magharibi, sisi wanadamu tunaweza pia kuitumia wakati inahitajika. Kwa hivyo. Katika nakala hii wacha tujaribu kuelewa jinsi sensa ya Magnetometer inafanya kazi na jinsi ya kuiunganisha na microcontro
Jinsi ya kutumia Moduli ya GY511 na Arduino [Fanya Dira ya Dijiti]: Hatua 11
Jinsi ya kutumia Moduli ya GY511 na Arduino [Tengeneza Dira ya Dijiti]: Muhtasari Katika miradi mingine ya elektroniki, tunahitaji kujua eneo la kijiografia wakati wowote na kufanya operesheni maalum ipasavyo. Katika mafunzo haya, utajifunza jinsi ya kutumia moduli ya dira ya LSM303DLHC GY-511 na Arduino kutengeneza compa za dijiti