- Nødvendige materialer
- Hvad er et magnetometer og hvordan fungerer det?
- Sådan fungerer HMC5883L sensormodulet
- Kredsløbsdiagram
- Fabrikation af printkort til det digitale kompas
- Montering af printkortet
- Programmering af Arduino
Menneskets hjerne er bygget af komplekse lag af strukturer, som hjælper os med at være en dominerende art på jorden. For eksempel kan entorhinal cortex i din hjerne give dig en følelse af retning og hjælpe dig med at navigere let gennem steder, som du ikke er bekendt med. Men i modsætning til os har robotter og ubemandede Ariel-køretøjer brug for noget for at få denne retningsfølelse, så de kunne manøvrere autonomt i nye terræn og landskaber. Forskellige robotter bruger forskellige typer sensorer til at opnå dette, men den almindeligt anvendte er et magnetometer, som kan informere robotten i hvilken geografisk retning den i øjeblikket vender mod. Dette vil ikke kun hjælpe robotten til at mærke retning, men også til at skifte i en foruddefineret retning og engel.
Da sensoren kunne indikere det geo-grafiske Nord, Syd, Øst og Vest, kunne vi mennesker også bruge det til tider når det er nødvendigt. Så i denne artikel, lad os prøve at forstå, hvordan magnetometerføler fungerer, og hvordan man grænseflader til en mikrocontroller som Arduino. Her vil vi opbygge et køligt digitalt kompas, som hjælper os med at finde anvisningerne ved at lyse en LED, der peger mod nordretningen. Dette digitale kompas er pænt fremstillet på PCB fra PCBGOGO, så jeg kan bære det næste gang, når jeg går ud i naturen og ønsker, at jeg går vild, bare for at bruge denne ting til at finde vej hjem. Lad os komme igang.
Nødvendige materialer
- Arduino Pro mini
- HMC5883L Magnetometersensor
- LED-lys - 8Nr
- 470Ohm modstand - 8Nr
- Barrel Jack
- En pålidelig PCB-producent som PCBgogo
- FTDI Programmer til mini
- PC / bærbar computer
Hvad er et magnetometer og hvordan fungerer det?
Før vi dykker ind i kredsløbet, lad os forstå lidt om magnetometer og hvordan de fungerer. Som navnet antyder henviser udtrykket Magneto ikke til den skøre mutant i vidunder, der kunne kontrollere metaller ved bare at spille klaver i luften. Åh! Men jeg kan godt lide den fyr, han er sej.
Magnetometer er faktisk et udstyr, der kan fornemme jordens magnetiske poler og pege retningen i henhold til det. Vi ved alle, at Jorden er et stort stykke sfærisk magnet med Nordpolen og Sydpolen. Og der er magnetfelt på grund af det. Et magnetometer registrerer dette magnetfelt og baseret på retningen af magnetfeltet kan det registrere den retning, vi vender mod.
Sådan fungerer HMC5883L sensormodulet
Den HMC5883L være en magnetometer sensor gør det samme. Den har HMC5883L IC, som er fra Honeywell. Denne IC har 3 magnetoresistive materialer indeni, som er arrangeret i akserne x, y og z. Mængden af strøm, der strømmer gennem disse materialer, er følsom over for jordens magnetfelt. Så ved at måle ændringen i strømmen, der strømmer gennem disse materialer, kan vi registrere ændringen i Jordens magnetfelt. Når ændringen er magnetfeltet er absorberet, kan værdierne derefter sendes til en hvilken som helst integreret controller som en mikrocontroller eller processor gennem I2C-protokollen.
Da sensoren fungerer ved at registrere magnetfeltet, vil outputværdierne blive stærkt påvirket, hvis et metal placeres i nærheden. Denne adfærd kan udnyttes til også at bruge disse sensorer som metaldetektorer. Pas på ikke at bringe magneter nær denne sensor, da det stærke magnetfelt fra en magnet kan udløse falske værdier på sensoren.
Forskel mellem HMC5883L og QMC5883L
Der er en fælles forvirring, der drejer sig om disse sensorer for mange begyndere. Dette skyldes, at nogle leverandører (faktisk de fleste) sælger QMC5883L-sensorer i stedet for den originale HMC5883L fra Honeywell. Det skyldes for det meste, at QMC5883L er langt billigere end HMC5883L-modulet. Den triste del er, at disse to sensorer fungerer lidt anderledes, og den samme kode kan ikke bruges til begge. Dette skyldes, at I2C-adressen på begge sensorer ikke er den samme. Koden, der gives i denne vejledning , fungerer kun for QMC5883L det almindeligt tilgængelige sensormodul.
For at vide, hvilken sensormodel du har, skal du bare se tæt på selve IC'en for at læse, hvad der er skrevet oven på den. Hvis det er skrevet noget som L883, er det HMC58836L, og hvis det er skrevet noget som DA5883, er det QMC5883L IC. Begge moduler er vist på billedet nedenfor for nem undervurdering.
Kredsløbsdiagram
Kredsløbet til dette Arduino-baserede digitale kompas er ret simpelt, vi skal simpelthen interface HMC5883L-sensoren med Arduino og tilslutte 8 lysdioder til GPIO-stifterne på Arduino Pro mini. Det komplette kredsløbsdiagram er vist nedenfor
Den Sensor-modulet har 5 ben ud af hvilke DRDY (Data Ready) ikke anvendes i vores projekt, da vi opererer sensoren i kontinuerlig tilstand. Vcc og jordstift bruges til at forsyne modulet med 5V fra Arduino-kortet. SCL og SDA er I2C-kommunikationsbuslinjer, der er tilsluttet henholdsvis Arduino Pro mini A4 og A5 I2C-ben. Da selve modulet har en trækhøj modstand på linjerne, er det ikke nødvendigt at tilføje dem eksternt.
For at indikere retningen har vi brugt 8 lysdioder, som alle er forbundet til GPIO-stifterne på Arduino gennem en strømbegrænsende modstand på 470 ohm. Det komplette kredsløb drives af et 9V batteri gennem tønderstikket. Denne 9V leveres direkte til Vin-stiften på Arduino, hvor den reguleres til 5V ved hjælp af den indbyggede regulator på Arduino. Denne 5V bruges derefter til at drive sensoren og Arduino også.
Fabrikation af printkort til det digitale kompas
Idéen med kredsløbet er at placere de 8 lysdioder på en cirkulær måde, så hver Led peger på alle de 8 retninger, henholdsvis Nord-, Nordøst-, Øst-, Sydøst-, Syd-, Sydvest-, Vest- og Nordvest-. Så det er ikke let at arrangere dem pænt på et brødbræt eller endda på et perfbræt for den sags skyld. Udvikling af et printkort til dette kredsløb får det til at se mere pænt ud og let at bruge. Så jeg åbnede min PCB-designsoftware og placerede lysdioderne og modstanden i et pænt cirkulært mønster og forbandt sporene for at danne forbindelserne. Mit design så sådan ud nedenfor, når det blev afsluttet. Du kan også downloade Gerber-filen fra nedenstående link.
- Download Gerber-fil til Digital Compass PCB
Jeg har designet det til at være et dobbelt sidebræt, da jeg vil have Arduino til at være i bunden af min PCB, så den ikke ødelægger udseendet oven på min PCB. Hvis du er bekymret for, at du skal betale højt for en dobbelt side PCB, så hold fast, jeg fik godt nyt.
Nu, hvor vores design er klar, er det tid til at få dem fabrikeret. For at få printkortet gjort er ret nemt, skal du blot følge nedenstående trin
Trin 1: Gå ind på www.pcbgogo.com, tilmeld dig, hvis det er første gang. Indtast derefter dimensionerne på din PCB, antallet af lag og antallet af PCB, du har brug for, på fanen PCB Prototype. Min PCB er 80cm × 80cm, så fanen ser sådan ud nedenfor
Trin 2: Fortsæt ved at klikke på knappen Citér nu . Du vil blive ført til en side, hvor du kan indstille få yderligere parametre, hvis det kræves, som det anvendte materiale sporafstand osv. Men for det meste fungerer standardværdierne fint. Det eneste, vi skal overveje her, er pris og tid. Som du kan se, er byggetiden kun 2-3 dage, og det koster kun $ 5 for vores PSB. Du kan derefter vælge en foretrukken forsendelsesmetode baseret på dit krav.
Trin 3: Det sidste trin er at uploade Gerber-filen og fortsætte med betalingen. For at sikre, at processen er glat, verificerer PCBGOGO, om din Gerber-fil er gyldig, inden du fortsætter med betalingen. På denne måde kan du være sikker på, at dit print er fabrikationsvenligt og når dig som engageret.
Montering af printkortet
Efter at bestyrelsen blev bestilt, nåede den mig efter nogle dage, selvom kurér i en pænt mærket, godt pakket kasse, og som altid var printkvaliteten fantastisk. Jeg deler nogle få billeder af tavlerne nedenfor, som du kan bedømme.
Jeg tændte min loddestang og begyndte at samle tavlen. Da fodspor, pads, vias og silketryk er perfekt i den rigtige form og størrelse, havde jeg ikke noget problem at samle tavlen. Brættet var klar på kun 10 minutter fra udpakningskassen.
Få billeder af tavlen efter lodning er vist nedenfor.
Programmering af Arduino
Nu hvor vores hardware er klar, lad os se på det program, der skal uploades til vores Arduino-kort. Formålet med koden er at læse dataene fra QMC5883L magnetometersensoren og konvertere dem til grad (0 til 360). Når vi kender graden, skal vi tænde en LED, der peger i en bestemt retning. Den retning, jeg har brugt i dette program, er nord. Så uanset hvor du er, vil der kun være en LED, der lyser på dit bord, og retningen af LED'en vil indikere NORRET-retningen. En gang senere kunne beregne den anden retning er en retning er kendt.
Den komplette kode for dette Digital Compass-projekt kan findes i slutningen af denne side. Du kan uploade det direkte på dit tavle efter at have inkluderet biblioteket, og du er klar til at gå. Men hvis du vil vide det