- Potrebni materiali
- Kaj je magnetnik in kako deluje?
- Kako deluje senzorski modul HMC5883L
- Shema vezja
- Izdelava tiskanih plošč za digitalni kompas
- Sestavljanje PCB
- Programiranje Arduina
Človeški možgani so zgrajeni iz kompleksne plasti struktur, ki nam pomagajo biti prevladujoča vrsta na zemlji. Na primer, možganska skorja v možganih vam lahko daje smer, ki vam pomaga, da se lažje premikate po krajih, ki jih ne poznate. Toda za razliko od nas roboti in brezpilotna vozila Ariel potrebujejo nekaj, da dobijo ta občutek za smer, da bi lahko samostojno manevrirali na novih terenih in pokrajinah. Za dosego tega različni roboti uporabljajo različne tipe senzorjev, najpogosteje uporabljen pa je magnetometer, ki lahko robotu sporoči, v katero geografsko smer je trenutno obrnjen. To ne bo le pomagalo robotu, da zazna smer, temveč tudi, da se bo izmenjeval v vnaprej določeni smeri in angelu.
Ker bi senzor lahko kazal geografsko grafiko Sever, Jug, Vzhod in Zahod, bi ga ljudje lahko uporabili tudi včasih, kadar je to potrebno. V tem članku torej poskusimo razumeti, kako deluje senzor magnetometra in kako ga povezati z mikrokrmilnikom, kot je Arduino. Tu bomo zgradili kul digitalni kompas, ki nam bo pomagal pri iskanju navodil tako, da zasveti LED, ki kaže proti severu. Ta digitalni kompas je lepo izdelan na PCB pri PCBGOGO, tako da ga lahko naslednjič prenesem, ko grem v divjino in si želim, da bi se izgubil samo zato, da bi to stvar uporabil za pot domov. Začnimo.
Potrebni materiali
- Arduino Pro mini
- HMC5883L Senzor magnetometra
- LED luči - 8Št
- 470Ohm upor - 8 št
- Sodček Jack
- Zanesljiv proizvajalec PCB, kot je PCBgogo
- FTDI programer za mini
- PC / prenosni računalnik
Kaj je magnetnik in kako deluje?
Preden se potopimo v vezje, se še malo naučimo o magnetometru in kako delujejo. Kot že ime pove, se izraz Magneto ne nanaša na tistega norega mutanta v čudežu, ki bi lahko nadzoroval kovine tako, da bi samo igral klavir v zraku. Ohh! Všeč pa mi je tisti fant, ki je kul.
Magnetometer je pravzaprav del opreme, ki bi lahko zaznal magnetne polove zemlje in usmeril smer v skladu s tem. Vsi vemo, da je Zemlja ogromen del sferičnega magneta s severnim in južnim polom. In zaradi tega obstaja magnetno polje. Magnetometer zazna to magnetno polje in na podlagi smeri magnetnega polja lahko zazna smer, v katero smo obrnjeni.
Kako deluje senzorski modul HMC5883L
HMC5883L čemer senzor magnetometer počne isto stvar. Na njem je IC HMC5883L, ki prihaja iz podjetja Honeywell. Ta IC ima v sebi 3 magnetoodporne materiale, ki so razporejeni v oseh x, y in z. Količina toka, ki teče skozi te materiale, je občutljiva na zemeljsko magnetno polje. Torej z merjenjem spremembe toka, ki teče skozi te materiale, lahko zaznamo spremembo magnetnega polja Zemlje. Ko je sprememba magnetnega polja absorbirana, lahko vrednosti prek protokola I2C pošljejo kateremu koli vdelanemu krmilniku, kot je mikrokrmilnik ali procesor.
Ker senzor deluje tako, da zaznava magnetno polje, bodo izhodne vrednosti močno prizadete, če bo v bližini postavljena kovina. To vedenje je mogoče izkoristiti za uporabo teh senzorjev tudi kot detektorjev kovin. Paziti je treba, da se magneti ne približujejo temu senzorju, saj lahko močno magnetno polje magneta sproži napačne vrednosti na senzorju.
Razlika med HMC5883L in QMC5883L
Številni začetniki imajo okoli teh senzorjev običajno zmedo. To je zato, ker nekateri prodajalci (dejansko večina) prodajajo senzorje QMC5883L namesto prvotnega HMC5883L podjetja Honeywell. Večinoma zato, ker je QMC5883L precej cenejši od modula HMC5883L. Žalosten del je, da se delovanje teh dveh senzorjev nekoliko razlikuje in iste kode ni mogoče uporabiti za oba. To je zato, ker naslov I2C obeh senzorjev ni enak. Koda, podana v tej vadnici, bo delovala samo za QMC5883L, ki je običajno na voljo senzorski modul.
Če želite vedeti, kateri model senzorja imate, morate samo natančno pogledati sam IC, da preberete, kaj je napisano na njem. Če je napisano nekaj takega kot L883, je to HMC58836L in če je zapisano nekaj takega kot DA5883, je to IC QMC5883L. Oba modula sta prikazana na spodnji sliki za lažje podcenjevanje.
Shema vezja
Vezje tega digitalnega kompasa, ki temelji na Arduinu, je precej preprosto, preprosto moramo povezati senzor HMC5883L z Arduinom in na LED zatiče GPIO na Arduino Pro mini priključiti 8 LED. Celoten diagram vezja je prikazan spodaj
Modul senzorja ima 5 nožic, od katerih DRDY (Data Ready) v našem projektu ni uporabljen, ker senzor upravljamo v neprekinjenem načinu. Vcc in ozemljitveni zatič se uporablja za napajanje modula s 5V z plošče Arduino. SCL in SDA sta komunikacijski vodili I2C, ki sta povezani z zatiči A4 in A5 I2C na Arduino Pro mini. Ker ima sam modul upor na progah, ga ni treba dodajati navzven.
Za označitev smeri smo uporabili 8 LED, ki so vse povezane z GPIO nožicami Arduina prek trenutnega omejevalnega upora 470 Ohmov. Celotno vezje napaja 9V baterija skozi cevni priključek. Ta 9V je dobavljen neposredno na Vin pin Arduino, kjer je reguliran na 5V z vgrajenim regulatorjem na Arduinu. Ta 5V se nato uporablja za napajanje senzorja in Arduina.
Izdelava tiskanih plošč za digitalni kompas
Ideja vezja je, da 8 LED diod krožno postavi tako, da vsak Led usmerja vseh 8 smeri, in sicer sever, severovzhod, vzhod, jugovzhod, jug, jugozahod, zahod in severozahod. Tako jih ni lahko lepo urediti na plošči ali celo na deski. Z razvojem tiskanega vezja za to vezje bo videti bolj urejeno in enostavno za uporabo. Tako sem odprl programsko opremo za oblikovanje tiskanih vezij in postavil LED in upor v čeden krožen vzorec ter povezal skladbe in tako ustvaril povezave. Moj dizajn je bil po zaključku videti nekako takole spodaj. Datoteko Gerber lahko prenesete tudi s spodnje povezave.
- Prenesite datoteko Gerber za tiskano vezje Digital Compass
Zasnoval sem ga kot dvojno stransko ploščo, saj želim, da je Arduino na spodnji strani PCB-ja, tako da ne bo pokvaril videza na vrhu PCB-ja. Če vas skrbi, da boste morali plačati visoko za dvostransko tiskano vezje, počakajte, prišel sem dober nov.
Zdaj, ko je naš dizajn pripravljen, je čas, da jih izdelamo. Dokončanje tiskanega vezja je zelo enostavno, preprosto sledite spodnjim korakom
1. korak: Pojdite na www.pcbgogo.com in se prijavite, če ste prvič. Nato na zavihku Prototip PCB vnesite dimenzije PCB, število slojev in število PCB, ki ga potrebujete. Moj PCB je 80 cm × 80 cm, zato je zavihek videti spodaj
2. korak: Nadaljujte s klikom na gumb Citiraj zdaj . Preusmerjeni boste na stran, kjer boste po potrebi nastavili nekaj dodatnih parametrov, kot je uporabljeni razmik skladbe itd. Toda večinoma bodo privzete vrednosti dobro delovale. Edino, kar moramo tu upoštevati, sta cena in čas. Kot lahko vidite, je čas izdelave le 2-3 dni in za naš PSB stane le 5 USD. Nato lahko izberete želeni način pošiljanja glede na vaše potrebe.
3. korak: Zadnji korak je nalaganje datoteke Gerber in nadaljevanje plačila. Preden nadaljuje s plačilom, PCBGOGO preveri, ali je vaša datoteka Gerber veljavna, da se prepriča, da je postopek nemoten. Tako se lahko prepričate, da je vaš PCB prijazen do izdelave in vas bo sprejel kot predan.
Sestavljanje PCB
Po naročilu plošče je čez nekaj dni prišel do mene, čeprav je kurir v lepo označeni dobro zapakirani škatli in kot vedno bila kakovost PCB-ja izjemna. Delim nekaj slik spodnjih desk, da boste lahko presodili.
Vklopil sem spajkalno palico in začel sestavljati ploščo. Ker so Footprints, blazinice, steklenice in sitotisk popolnoma pravilne oblike in velikosti, nisem imel težav pri sestavljanju deske. Plošča je bila pripravljena v samo 10 minutah od razpakiranja škatle.
Spodaj je prikazanih nekaj slik plošče po spajkanju.
Programiranje Arduina
Zdaj, ko je naša strojna oprema pripravljena, si oglejmo program, ki ga je treba naložiti na našo ploščo Arduino. Namen kode je prebrati podatke iz senzorja magnetometra QMC5883L in jih pretvoriti v stopinje (0 do 360). Ko poznamo stopnjo, moramo vklopiti LED, ki kaže v določeno smer. Smer, ki sem jo uporabil v tem programu, je sever. Torej, ne glede na to, kje ste, bo na vaši plošči svetila samo ena LED, smer LED pa bo kazala smer NORTH. Ko bi lahko kasneje izračunali drugo smer, je ena smer znana.
Popolno kodo za ta projekt Digital Compass najdete na koncu te strani. Po vključitvi knjižnice ga lahko neposredno naložite na tablo in že ste pripravljeni. Ampak, če želite vedeti