- Nepieciešamie materiāli
- Kas ir magnetometrs un kā tas darbojas?
- Kā darbojas HMC5883L sensora modulis
- Ķēdes shēma
- Digitālā kompasa PCB izgatavošana
- PCB montāža
- Arduino programmēšana
Cilvēka smadzenes ir veidotas no sarežģīta struktūru slāņa, kas palīdz mums būt dominējošām sugām uz zemes. Piemēram, entorhinal garoza jūsu smadzenēs var dot jums virziena izjūtu, palīdzot jums viegli pārvietoties pa vietām, kuras jums nav pazīstamas. Bet atšķirībā no mums robotiem un bezpilota Ariel transportlīdzekļiem kaut kas vajadzīgs, lai iegūtu šo virziena izjūtu, lai viņi varētu autonomi manevrēt jaunos apvidos un ainavās. Lai to paveiktu, dažādi roboti izmanto dažāda veida sensorus, taču parasti tiek izmantots magnetometrs, kas varētu informēt robotu par to, kādā ģeogrāfiskajā virzienā tas pašlaik ir vērsts. Tas ne tikai palīdzēs robotam nojaust virzienu, bet arī pagriezties pa iepriekš noteiktu virzienu un eņģeli.
Tā kā sensors varētu norādīt uz ģeogrāfisko grafiku ziemeļos, dienvidos, austrumos un rietumos, mēs, cilvēki, vajadzības gadījumā to arī varētu izmantot. Tāpēc šajā rakstā mēģināsim saprast, kā darbojas magnetometra sensors un kā to sasaistīt ar tādu mikrokontrolleru kā Arduino. Šeit mēs izveidosim foršu digitālo kompasu, kas mums palīdzēs atrast virzienus, mirdzot LED, kas norāda uz ziemeļu virzienu. Šis digitālais kompass ir glīti izgatavots uz PCB no PCBGOGO, lai es to varētu nēsāt nākamreiz, kad došos ārā un vēlos, lai es pazustu, lai tikai izmantotu šo lietu, lai atrastu ceļu atpakaļ mājās. Sāksim.
Nepieciešamie materiāli
- Arduino Pro mini
- HMC5883L magnetometra sensors
- LED gaismas - 8Nos
- 470Ohm rezistors - 8Nos
- Muca Džeks
- Uzticams PCB ražotājs, piemēram, PCBgogo
- FTDI programmētājs mini
- Dators / klēpjdators
Kas ir magnetometrs un kā tas darbojas?
Pirms ienirt ķēdē, nedaudz sapratīsim par magnetometru un to darbību. Kā norāda nosaukums, Magneto termins neattiecas uz to trako mutantu brīnumā, kurš varētu kontrolēt metālus, vienkārši spēlējot klavieres gaisā. Ohh! Bet man patīk tas puisis, viņš ir foršs.
Magnetometrs faktiski ir iekārta, kas varētu uztvert zemes magnētiskos polus un atbilstoši tam norādīt virzienu. Mēs visi zinām, ka Zeme ir milzīgs sfēriska magnēta gabals ar Ziemeļpolu un Dienvidpolu. Un tā dēļ ir magnētiskais lauks. Magnetometrs uztver šo magnētisko lauku un, pamatojoties uz magnētiskā lauka virzienu, var noteikt virzienu, ar kuru mēs saskaramies.
Kā darbojas HMC5883L sensora modulis
HMC5883L būdams magnetometrs sensors dara to pašu. Uz tā ir HMC5883L IC, kas ir no Honeywell. Šim IC ir 3 magnētiski izturīgi materiāli, kas izvietoti asīs x, y un z. Caur šiem materiāliem plūstošās strāvas daudzums ir jutīgs pret zemes magnētisko lauku. Tātad, mērot strāvas izmaiņas, kas plūst caur šiem materiāliem, mēs varam noteikt Zemes magnētiskā lauka izmaiņas. Kad magnētiskā lauka izmaiņas ir absorbētas, vērtības var nosūtīt uz jebkuru iegulto kontrolieri, piemēram, mikrokontrolleru vai procesoru, izmantojot I2C protokolu.
Tā kā sensors darbojas, uztverot magnētisko lauku, izejas vērtības tiks lielā mērā ietekmētas, ja tuvumā atrodas metāls. Šo rīcību var izmantot, lai arī šos sensorus izmantotu kā metāla detektorus. Jāuzmanās, lai magnēti netuvotos šim sensoram, jo magnēta spēcīgais magnētiskais lauks var izraisīt sensora kļūdainas vērtības.
Atšķirība starp HMC5883L un QMC5883L
Daudziem iesācējiem ap šiem sensoriem ir izplatīta neskaidrība. Tas ir tāpēc, ka daži pārdevēji (faktiski lielākā daļa) pārdod QMC5883L sensorus, nevis Honeywell oriģinālos HMC5883L. Tas galvenokārt notiek tāpēc, ka QMC5883L ir daudz lētāks nekā HMC5883L modulis. Skumji ir tas, ka šo divu sensoru darbība ir nedaudz atšķirīga un to pašu kodu nevar izmantot abiem. Tas ir tāpēc, ka abu sensoru I2C adrese nav vienāda. Šajā apmācībā dotais kods darbosies tikai ar QMC5883L parasti pieejamo sensoru moduli.
Lai uzzinātu, kurš sensora modelis jums ir, jums vienkārši cieši jāuzmeklē pati IC, lai izlasītu to, kas uzrakstīts virs tā. Ja tas ir uzrakstīts kaut kas līdzīgs L883, tad tas ir HMC58836L un, ja tas ir uzrakstīts kaut kas līdzīgs DA5883, tad tas ir QMC5883L IC. Abi moduļi ir parādīti zemāk redzamajā attēlā.
Ķēdes shēma
Šī Arduino bāzes digitālā kompasa shēma ir diezgan vienkārša, mums vienkārši ir jāsaskaras ar HMC5883L sensoru ar Arduino un jāpievieno 8 gaismas diodes Arduino Pro mini GPIO tapām. Pilna shēma ir parādīta zemāk
Sensora modulis ir 5 adatas ārā no kuriem DRDY (Datu Ready) netiek izmantotas mūsu projektu, jo mēs esam darbojas sensoru nepārtrauktā režīmā. Vcc un zemējuma tapu izmanto, lai moduli darbinātu ar 5V no Arduino dēļa. SCL un SDA ir I2C sakaru kopnes līnijas, kas ir savienotas ar Arduino Pro mini attiecīgi A4 un A5 I2C tapām. Tā kā pašam modulim uz līnijām ir liels pretestības spēks, nav nepieciešams tos pievienot ārēji.
Lai norādītu virzienu, mēs izmantojām 8 gaismas diodes, kuras visas ir savienotas ar Arduino GPIO tapām caur strāvas ierobežojošo rezistoru 470 omi. Pilnīgu ķēdi darbina 9 V akumulators caur mucas ligzdu. Šis 9V tiek piegādāts tieši Arduino Vin tapai, kur to regulē līdz 5V, izmantojot Arduino borta regulatoru. Pēc tam šo 5V izmanto, lai darbinātu sensoru un arī Arduino.
Digitālā kompasa PCB izgatavošana
Kontūras ideja ir novietot 8 gaismas diodes apļveida veidā tā, lai katra Led norādītu visus 8 virzienus, proti, attiecīgi ziemeļus, ziemeļaustrumus, austrumus, dienvidaustrumus, dienvidus, dienvidrietumus, rietumus un ziemeļrietumus. Tāpēc nav viegli tos kārtīgi sakārtot uz maizes dēļa vai pat uz tāfeles. Izstrādājot šai shēmai PCB, tas izskatīsies veiklāk un ērti lietojams. Tāpēc es atvēru savu PCB projektēšanas programmatūru un ievietoju gaismas diodes un rezistoru glītā apļveida zīmējumā un savienoju sliedes, lai izveidotu savienojumus. Pēc pabeigšanas Mans dizains izskatījās apmēram šādi. Jūs varat arī lejupielādēt Gerber failu no tālāk norādītās saites.
- Lejupielādējiet Gerber failu digitālā kompasa PCB
Es to esmu veidojis kā dubultu sānu dēli, jo es vēlos, lai Arduino būtu mana PCB apakšējā pusē, lai tas nesabojātu manu PCB izskatu. Ja jūs uztraucat, ka par dubultās puses PCB ir jāmaksā dārgi, tad turieties, es saņēmu labu jaunu atnākšanu.
Kad mūsu dizains ir gatavs, ir pienācis laiks tos izgatavot. Lai paveiktu PCB, ir diezgan viegli, vienkārši veiciet tālāk norādītās darbības
1. darbība: iekļūstiet vietnē www.pcbgogo.com, reģistrējieties, ja tā ir jūsu pirmā reize. Pēc tam cilnē PCB Prototype ievadiet sava PCB izmērus, slāņu skaitu un nepieciešamo PCB skaitu. Mana PCB ir 80 cm × 80 cm, tāpēc cilne izskatās šādi
2. solis: turpiniet, noklikšķinot uz pogas Citēt tūlīt . Jūs tiksiet novirzīts uz lapu, kur, ja nepieciešams, iestatīsit dažus papildu parametrus, piemēram, izmantoto materiālu sliežu atstarpi utt. Bet galvenokārt noklusējuma vērtības darbosies labi. Vienīgais, kas mums šeit jāņem vērā, ir cena un laiks. Kā redzat, būvēšanas laiks ir tikai 2-3 dienas, un tas mūsu PSB maksā tikai 5 USD. Pēc tam jūs varat izvēlēties vēlamo nosūtīšanas metodi, pamatojoties uz jūsu prasībām.
3. solis: pēdējais solis ir Gerber faila augšupielāde un maksājuma veikšana. Lai pārliecinātos, ka process ir vienmērīgs, pirms maksājuma turpināšanas PCBGOGO pārbauda, vai jūsu Gerber fails ir derīgs. Tādā veidā jūs varat pārliecināties, ka jūsu PCB ir izgatavošanai draudzīgs un ar jums sazināsies kā apņēmies.
PCB montāža
Pēc tam, kad dēlis tika pasūtīts, tas mani sasniedza pēc dažām dienām, kaut arī kurjers glīti etiķetētā, labi iesaiņotā kastē, un tāpat kā vienmēr PCB kvalitāte bija lieliska. Es kopīgoju dažus zemāk redzamo dēļu attēlus, lai jūs varētu tos vērtēt.
Es ieslēdzu savu lodēšanas stieni un sāku montēt dēli. Tā kā pēdas, spilventiņi, flakoni un sietspiede ir ideāli piemērotas formas un izmēra, man nebija problēmu montēt dēli. Dēlis bija gatavs tikai 10 minūtēs no kastes izpakošanas brīža.
Zemāk ir parādīti daži dēļa attēli pēc lodēšanas.
Arduino programmēšana
Tagad, kad mūsu aparatūra ir gatava, apskatīsim programmu, kas jāaugšupielādē mūsu Arduino dēlī. Koda mērķis ir nolasīt datus no QMC5883L magnetometra sensora un pārvērst tos grādos (no 0 līdz 360). Kad mēs zinām pakāpi, mums ir jāieslēdz LED, kas norāda noteiktu virzienu. Virziens, kuru esmu izmantojis šajā programmā, ir uz ziemeļiem. Tātad neatkarīgi no tā, kur atrodaties, uz jūsu dēļa mirgos tikai viena gaismas diode, un gaismas diodes virziens norāda ZIEMEĻA virzienu. Kad vēlāk varēja aprēķināt otru virzienu, ir zināms viens virziens.
Pilns šī Digitālā kompasa projekta kods ir atrodams šīs lapas beigās. Pēc bibliotēkas iekļaušanas to var tieši augšupielādēt uz tāfeles, un esat gatavs doties. Bet, ja vēlaties uzzināt