Kompasa moduļa pievienošana savam Arduino mikrokontrollerim paver daudzas iespējas projektiem. Lūk, kā to savienot un izmantot.

Mūsdienu DIY projektos diezgan bieži tiek atrasti uzlaboti sensori, piemēram, akselerometri un magnetometri, kas ir savienoti ar mikrokontrolleriem. Lai gan jūs, iespējams, esat izmantojis šos sensorus savā tālrunī, ir grūti iedomāties, kā šie moduļi darbojas, taču tas ir pārsteidzoši vienkārši.

GY-271 kompasa magnetometra sensors nodrošina orientācijas noteikšanu dažādiem lietojumiem. Šeit mēs izpētīsim GY-271 sensora savienošanas procesu ar Arduino mikrokontrolleri, kā to kalibrēt un aplūkosim problēmas, ar kurām jūs varat saskarties, to darot.

Kas ir GY-271 kompasa modulis?

Kompasa modulis GY-271 ir ļoti jutīgs magnetometrs, kas var izmērīt magnētiskos laukus trīs dimensijās. To izmanto, lai noteiktu Zemes magnētisko lauku un noteiktu ierīču virzienu vai orientāciju tādās lietojumprogrammās kā navigācijas sistēmas, robotika un drons. Padomājiet par to kā par ļoti precīzu digitālo kompasu. Šis sensors ir aprīkots ar kompaktu un izturīgu dizainu, kas atvieglo tā uzstādīšanu un lietošanu dažādos projektos.

instagram viewer

Kā darbojas GY-271 kompasa modulis?

Kompasa modulis GY-271 HCM5883L satur 3 asu magnetometra sensoru, kura pamatā ir anizotropā magnetorezistīvā (AMR) tehnoloģija. Sensors mēra Zemes magnētiskā lauka stiprumu un virzienu, nosakot tā iekšējo AMR elementu pretestības izmaiņas.

Kad sensors tiek pakļauts magnētiskajam laukam, AMR elementu pretestība mainās, radot spriegumu, kas ir proporcionāls magnētiskā lauka stiprumam un virzienam. Pēc tam sensora digitālais signāla procesors pārveido šo spriegumu digitālā signālā, ko var nolasīt mikrokontrolleris. Mērot spriegumu visās trīs asīs, sensors var nodrošināt ļoti precīzus magnētiskā lauka stipruma un virziena nolasījumus trīs dimensijās.

GY-271 savienošana ar Arduino Uno

Šī moduļa savienošana ar Arduino ir diezgan vienkārša. Mēs esam apskatījuši arī citus ērti lietojami Arduino moduļi kas var palīdzēt mērogot jūsu projektu nākotnē. GY-271 modulim kopā ir piecas tapas, ieskaitot VCC, GNDun trīs signāla tapas (SDA, SCL, un DRDY).

Jums būs nepieciešami šādi komponenti:

  • GY-271 HMC5883L kompasa modulis
  • Arduino Uno (vai cits modelis)
  • Džemperu vadi (no tēviņa pret vīrieti un no tēviņa pret sievieti)
  • Maizes dēlis (pēc izvēles)

Pirmkārt, savienojiet VCC un GND GY-271 moduļa tapas uz 5V un GND attiecīgi Arduino Uno tapas.

Tālāk pievienojiet SDA un SCL moduļa tapas uz A4 un A5 attiecīgi Arduino Uno analogās tapas.

Nepieciešamo bibliotēku instalēšana

Pirms sākat strādāt ar GY-271 kompasa moduli un Arduino, jums ir jāinstalē nepieciešamās bibliotēkas, lai sazinātos ar sensoru.

Pirmā bibliotēka, kas jāiekļauj savā skicē, ir Wire bibliotēka, kas tiek izmantota I2C saziņai starp Arduino un sensoru. Wire bibliotēka ir iepriekš instalēta kopā ar Arduino IDE, tāpēc jums tā nav jālejupielādē atsevišķi. Lai instalētu otro, HMC5883L bibliotēkā, jums būs jāveic šādas darbības:

Atveriet Arduino IDE un dodieties uz Skice > Iekļaut bibliotēku > Pārvaldīt bibliotēkas.

Bibliotēkas pārvaldniekā meklējiet HMC5883L meklēšanas joslā.

Izvēlieties HMC5883L bibliotēka īpaši no Adafruit. Kad bibliotēka ir instalēta, varat to iekļaut savā Arduino skicē, dodoties uz Skice > Iekļaut bibliotēku > HMC5883L.

Kodeksa izpratne

Jāuzraksta programma, kas inicializē sensoru, nolasa tā datus un aprēķina Zemes magnētiskā lauka stiprumu un virzienu. Pilnu kodu var lejupielādēt no mūsu oficiālās vietnes GitHub repozitorijs.

Koda sākumā ir jāiekļauj vajadzīgās bibliotēkas, kuras tikko lejupielādējāt.

#ietver
#ietver
#ietver

Neaizmirstiet sensoram piešķirt unikālu ID. Lai to izdarītu, izmantojiet šo rindu:

Adafruit_HMC5883_Unified mag = Adafruit_HMC5883_Unified(12345);

Iestatīšanas kodā iedarbiniet seriālo monitoru un pārbaudiet, vai sensors reaģē. Varat izdrukāt ziņojumus uz monitoru, lai atjauninātu sensora statusu:

nederīgsuzstādīt(nederīgs)
{
Seriāls.sākt(9600);
Seriāls.println("HMC5883 magnetometra pārbaude"); Seriāls.println("");

/* Inicializēt sensoru */
ja(!mag.sākt())
{
Seriāls.println("Hmm, HMC5883 nav atrasts... Pārbaudiet savu vadu!");
kamēr(1);
}
}

Vispirms iegūstiet jaunu sensora notikumu:

sensori_notikums_t pasākums;
mag.getEvent(&event);

Pēc tam parādiet sensora rādījumus seriālajā monitorā. Neaizmirstiet iestatīt datu pārraides ātrumu uz 9600​​​​.

Seriāls.drukāt("X:"); Seriāls.drukāt(event.magnetic.x); Seriāls.drukāt(" ");
Seriāls.drukāt("J:"); Seriāls.drukāt(event.magnetic.y); Seriāls.drukāt(" ");
Seriāls.drukāt("Z:"); Seriāls.drukāt(event.magnetic.z); Seriāls.drukāt(" ");Seriāls.println("uT");

Turiet moduli tā, lai Z norāda "uz augšu" un izmēra virsrakstu ar X un Y. To darot, jūs varat aprēķināt virzienu, kad magnetometrs ir vienā līmenī. Šī koda rinda palīdz ar to:

peldēt virsraksts = atan2(event.magnetic.y, event.magnetic.x);

Kad jums būs jūsu virsraksts, jums ir jāpievieno savs deklinācijaLeņķis, kas ir jūsu atrašanās vietas magnētiskā lauka kļūda.

peldēt deklinācijaLeņķis = 0.663;
 virsraksts += deklinācijaAngle;

Vietējā apgabala deklinācijas leņķi varat ērti atrast uz Magnētiskās deklinācijas vietne. Ja kāda iemesla dēļ nevarat atrast savu deklinācijas leņķi, komentējiet abas koda rindiņas.

Komentējot divas koda rindiņas, var rasties kļūdaini sensora rādījumi. Pirms lietošanas mēģiniet kalibrēt sensoru.

Visbeidzot izdrukājiet virsrakstu seriālajā monitorā un pievienojiet aizkavi, lai nogaidītu pussekundi, pirms atkal lasiet.

Seriāls.drukāt("Virziens (grādi):");
Seriāls.println(virsrakstsGrādi);
kavēšanās(500);

Šeit jūs varat pielāgot kodu, lai tas atbilstu jūsu projekta vajadzībām, un pievienot papildu funkcijas, piemēram, datu reģistrēšanu.

Ja vēlaties izmantot Adafruit bibliotēku, iesakām to iegūt no Adafruit GitHub repozitorijs.

Kompasa datu lasīšana un interpretēšana

Sensora dati, kas tiek parādīti seriālajā monitorā, parāda magnētiskā lauka vektora vērtības, kas izmērītas ar magnetometru mikroteslās (μT) attiecīgi X, Y un Z asīm. Šīs vērtības var izmantot, lai noteiktu magnētiskā lauka orientāciju un lielumu.

Svarīga ir arī virziena vērtība, kas tiek parādīta grādos, un tā atspoguļo magnētiskā ziemeļpola virzienu attiecībā pret sensora pozīciju. Šo rādījumu var izmantot projektos, kur ir jānosaka kustīga objekta virziens, piemēram, robotikā, navigācijā un ģeolokācijas sistēmās.

Sensora kalibrēšana

Ja modulim HMC5883L jau esat instalējis citu bibliotēku, tā būs jāatinstalē vai jāizdzēš. Pretējā gadījumā kalibrēšanas laikā var tikt parādītas kompilēšanas kļūdas vai seriālā monitora brīdinājumi. Mēs iesakām izmantot Jarzebska bibliotēkā pieejams vietnē GitHub, jo tajā ir visi šai sadaļai nepieciešamie kalibrēšanas resursi.

Vispirms lejupielādējiet zip failu no krātuves, noklikšķinot uz Kods > Lejupielādēt ZIP.

Pēc tam atveriet Arduino IDE un noklikšķiniet uz Skice > Iekļaut bibliotēku > Pievienot bibliotēku.

Izvēlieties Arduino-HMC5883 zip failu, kuru tikko lejupielādējāt, un Arduino IDE pēc tam automātiski instalēs bibliotēku jūsu vietā.

Palaidiet repozitorijā pieejamo kalibrēšanas skici, augšupielādējot sensoru uz līdzenas virsmas. Vērtības, kas iegūtas no seriālā monitora, ir jūsu sensora nobīdes vērtības, kuras varat izmantot, lai labotu rādījumus, izmantojot kompasu projektu laikā.

Problēmas, ar kurām jūs varat saskarties

Ir vairākas kļūdas, ar kurām kāds var saskarties, saskaroties ar kompasa moduli ar Arduino. Šeit ir daži piemēri un to risinājumi:

Kompilācijas kļūdas: tās var rasties, ja nav iekļautas nepieciešamās bibliotēkas vai kodā ir sintakses kļūdas. Lai to labotu, pārliecinieties, vai esat instalējis pareizās bibliotēkas, un pārbaudiet, vai kodā nav sintakses kļūdu. Kā mēs esam redzējuši daudzas reizes, iespējams, esat nejauši instalējis vairākas HCM5883L bibliotēkas.

Kompilācijas kļūda: "Adafruit_HMC5883_Unified" dara  nosauciet veidu

Komunikācijas kļūdas: Ja nevarat sazināties ar kompasa moduli, pārliecinieties, vai tas ir savienots ar pareizajām Arduino tapām un vai jūsu vadi ir pareizi. Jums, iespējams, būs jāpielāgo arī moduļa I2C adrese savā kodā, ja tā atšķiras no noklusējuma, kas ir 0x1E.

Kļūda izmantojot hmc5883l/testDevice (līniju246) Sazinoties ar HMC5883L sensoru, radās kļūda. Vērtība lasīt no ID_A, ID_B un ID_C reģistri darīt atbilst sagaidāmajām vērtībām.

Magnētiskie traucējumi: Ja kompasa rādījumi ir nestabili vai svārstās, tas var būt saistīts ar magnētiskiem traucējumiem no tuvumā esošiem objektiem. Pārvietojiet moduli prom no magnētiem vai citiem magnētisko traucējumu avotiem, lai iegūtu stabilākus rādījumus.

Uzlabojiet savus projektus, izmantojot GY-271 kompasa moduli

Iespēja izmantot kompasa moduli GY-271 HCM5883L paver iespējas veidot sarežģītākus DIY projektus, izmantojot Arduino, piemēram, GPS vadītus roverus un DIY dronus. Iespējas ir bezgalīgas, it īpaši, ja pievienojat citus sensorus.