- Mga Materyal na Kinakailangan
- Ano ang isang Magnetometer at Paano ito Gumagana?
- Paano gumagana ang HMC5883L Sensor Module
- Diagram ng Circuit
- Pag-Fabricate ng mga PCB para sa Digital Compass
- Pag-iipon ng PCB
- Programming ang Arduino
Ang utak ng tao ay binuo ng kumplikadong layer ng mga istraktura na makakatulong sa amin na maging isang nangingibabaw na species sa mundo. Halimbawa ang entorhinal cortex sa iyong utak ay maaaring magbigay sa iyo ng direksyon ng direksyon na tumutulong sa iyo na madaling mag-navigate sa mga lugar na hindi mo pamilyar. Ngunit hindi katulad sa amin, ang mga Robot at hindi pinamamahalaan na mga Ariel na sasakyan ay nangangailangan ng isang bagay upang makuha ang kahulugan ng direksyon na ito upang maaari silang maneuver na autonomous sa mga bagong terrain at landscapes. Ang iba't ibang mga robot ay gumagamit ng iba't ibang uri ng mga sensor upang magawa ito, ngunit ang karaniwang ginagamit ay isang magnetometer, na maaaring ipaalam sa robot kung saan direktang nakaharap ang geo-graphic na direksyon. Hindi lamang nito matutulungan ang robot na maunawaan ang direksyon ngunit din upang makapagpalit sa isang paunang natukoy na direksyon at anghel.
Dahil maaaring ipahiwatig ng sensor ang geo-graphic North, South, East at West, tayong mga tao ay maaari ding gamitin ito sa mga oras na kinakailangan. Kaya sa artikulong ito subukan nating maunawaan kung paano gumagana ang sensor ng Magnetometer at kung paano ito mai-interface sa isang microcontroller tulad ng Arduino. Dito magtatayo kami ng isang cool na Digital Compass na makakatulong sa amin sa paghahanap ng mga direksyon sa pamamagitan ng pag-iilaw ng isang LED na tumuturo sa Hilagang Direksyon. Ang Digital Compass na ito ay maayos na gawa-gawa sa PCB mula sa PCBGOGO, nang sa gayon ay madala ko ito sa susunod na paglabas ko sa ligaw at hinahangad na mawala ako para magamit ko lang ang bagay na ito sa pag-uwi. Magsimula na tayo.
Mga Materyal na Kinakailangan
- Arduino Pro mini
- HMC5883L Magnetometer sensor
- Mga ilaw ng LED - 8Hindi
- 470Ohm Resistor - 8No
- Barrel Jack
- Isang maaasahang tagagawa ng PCB tulad ng PCBgogo
- FTDI Programmer para sa mini
- PC / Laptop
Ano ang isang Magnetometer at Paano ito Gumagana?
Bago tayo sumisid sa circuit, alamin muna natin ng kaunti ang tungkol sa magnetometer at kung paano ito gumagana. Tulad ng ipinahihiwatig ng pangalan na ang term na Magneto ay hindi tumutukoy sa nakatutuwang mutant na iyon sa paghanga na makokontrol ang mga metal sa pamamagitan lamang ng pagtugtog ng piano sa hangin. Ohh! Ngunit gusto ko ang lalaking iyon ay cool siya.
Ang Magnetometer ay talagang isang piraso ng kagamitan na maaaring maunawaan ang mga magnetikong poste ng lupa at ituro ang direksyon ayon dito. Alam nating lahat na ang Daigdig ay isang malaking piraso ng spherical magnet na may North Pole at South Pole. At mayroong magnetic field dahil dito. Nararamdaman ng isang Magnetometer ang magnetic field na ito at batay sa direksyon ng magnetic field maaari nitong makita ang direksyong kinakaharap natin.
Paano gumagana ang HMC5883L Sensor Module
Ang HMC5883L na isang magnetometer sensor ay gumagawa ng parehong bagay. Mayroon itong HMC5883L IC dito na mula sa Honeywell. Ang IC na ito ay may 3 mga materyales na lumalaban sa magneto sa loob na nakaayos sa mga palakol x, y at z. Ang dami ng kasalukuyang dumadaloy sa mga materyal na ito ay sensitibo sa magnetic field ng lupa. Kaya sa pamamagitan ng pagsukat ng pagbabago sa kasalukuyang dumadaloy sa mga materyal na ito maaari nating makita ang pagbabago sa magnetic field ng Earth. Kapag ang pagbabago ay magnetic field ay nasisipsip ang mga halaga ay maaaring maipadala sa anumang naka-embed na controller tulad ng isang microcontroller o processor sa pamamagitan ng I2C protocol.
Dahil ang sensor ay gumagana sa pamamagitan ng sensing ang magnetic field, ang mga halaga ng output ay lubos na maaapektuhan kung ang isang metal ay inilalagay sa malapit. Ang pag-uugali na ito ay maaaring mapakinabangan upang magamit ang mga sensor na ito bilang mga metal detector din. Dapat mag-ingat na hindi magdala ng mga magnet malapit sa sensor na ito dahil ang malakas na magnetic field mula sa isang magnet ay maaaring magpalitaw ng mga maling halaga sa sensor.
Pagkakaiba sa pagitan ng HMC5883L at QMC5883L
Mayroong isang pangkaraniwang pagkalito na umiikot sa mga sensor na ito para sa maraming mga nagsisimula. Ito ay dahil ang ilang mga vendor (talagang karamihan) ay nagbebenta ng mga sensor ng QMC5883L sa halip na ang orihinal na HMC5883L mula sa Honeywell. Karamihan ito ay dahil ang QMC5883L ay mas mura kaysa sa HMC5883L module. Ang nakalulungkot na bahagi ay ang pagtatrabaho ng dalawang sensor na ito ay bahagyang naiiba at ang parehong code ay hindi maaaring gamitin para sa pareho. Ito ay dahil ang I2C address ng parehong mga sensor ay hindi pareho. Ang code na bigyan sa tutorial na ito ay gagana lamang para sa QMC5883L ang karaniwang magagamit na module ng sensor.
Upang malaman kung aling modelo ng sensor ang mayroon ka, kailangan mo lamang tingnan nang mabuti sa IC mismo upang mabasa kung ano ang nakasulat sa tuktok nito. Kung nakasulat ito ng isang bagay tulad ng L883 kung gayon ito ang HMC58836L at kung nakasulat ito tulad ng DA5883 kung gayon ito ay ang QMC5883L IC. Ang parehong mga module ay ipinapakita sa larawan sa ibaba para sa madaling understating.
Diagram ng Circuit
Ang circuit para sa Digital Compass na nakabatay sa Arduino ay medyo simple, kailangan lang naming i-interface ang HMC5883L sensor gamit ang Arduino at ikonekta ang 8 LEDs sa mga GPIO pin ng Arduino Pro mini. Ang kumpletong diagram ng circuit ay ipinapakita sa ibaba
Ang module ng Sensor ay may 5 mga pin kung saan ang DRDY (Data Ready) ay hindi ginamit sa aming proyekto dahil pinapatakbo namin ang sensor sa tuluy-tuloy na mode. Ang Vcc at ground pin ay ginagamit upang paandarin ang Module na may 5V mula sa Arduino board. Ang SCL at SDA ay ang mga linya ng bus ng komunikasyon ng I2C na konektado sa mga A4 at A5 I2C na pin ng Arduino Pro mini ayon sa pagkakabanggit. Dahil ang module mismo ay may isang pull mataas na risistor sa mga linya, hindi na kailangang idagdag ang mga ito sa labas.
Upang ipahiwatig ang direksyon na ginamit namin 8 LEDs na ang lahat ay konektado sa mga GPIO pin ng Arduino sa pamamagitan ng isang kasalukuyang nililimitahan na risistor ng 470 Ohms. Ang Kumpletong circuit ay pinalakas ng isang 9V na baterya sa pamamagitan ng tong Jack. Ang 9V na ito ay ibinibigay nang direkta sa Vin pin ng Arduino kung saan ito ay kinokontrol sa 5V gamit ang on-board regulator sa Arduino. Ginagamit ang 5V na ito upang mapagana ang sensor at ang Arduino din.
Pag-Fabricate ng mga PCB para sa Digital Compass
Ang ideya ng circuit ay ilagay ang 8 LEDs sa isang pabilog na paraan upang ang bawat Led ay tumuturo sa lahat ng 8 mga direksyon kabilang ang North, North-East, East, South-East, South, South-West, West at North West ayon sa pagkakabanggit. Kaya't hindi madaling ayusin ang mga ito nang maayos sa isang breadboard o kahit sa isang perf board para sa bagay na iyon. Ang pagbuo ng isang PCB para sa circuit na ito ay gagawing mas maayos at madaling gamitin. Kaya binuksan ko ang aking software ng pagdisenyo ng PCB at inilagay ang mga LED at risistor sa isang maayos na pattern ng pabilog at ikinonekta ang mga track upang mabuo ang mga koneksyon. Ang Aking Disenyo ay nagmukhang ganito sa ibaba kapag nakumpleto. Maaari mo ring i-download ang Gerber file mula sa link na ibinigay sa ibaba.
- Mag-download ng Gerber file para sa Digital Compass PCB
Dinisenyo ko ito upang maging isang dobleng board board dahil nais kong ang Arduino ay nasa ilalim na bahagi ng aking PCB upang hindi nito masira ang hitsura sa tuktok ng aking PCB. Kung nag-aalala ka na kailangan mong magbayad ng mataas para sa isang dobleng panig ng PCB pagkatapos ay hawakan Nakakuha ako ng magandang bagong darating.
Ngayon, na handa na ang aming Disenyo ay oras na upang sila ay gawa-gawa. Upang magawa ang PCB ay medyo madali, sundin lamang ang mga hakbang sa ibaba
Hakbang 1: Pumasok sa www.pcbgogo.com, mag-sign up kung ito ang iyong unang pagkakataon. Pagkatapos, sa tab na PCB Prototype ipasok ang mga sukat ng iyong PCB, ang bilang ng mga layer at ang bilang ng PCB na kailangan mo. Ang aking PCB ay 80cm × 80cm kaya ganito ang nakikita sa tab
Hakbang 2: Magpatuloy sa pamamagitan ng pag-click sa pindutan ng Quote Now . Dadalhin ka sa isang pahina kung saan magtatakda ng ilang karagdagang mga parameter kung kinakailangan tulad ng materyal na ginamit na spacing ng track atbp. Ngunit karamihan sa mga default na halaga ay gagana nang maayos. Ang tanging bagay lamang na dapat nating isaalang-alang dito ay ang presyo at oras. Tulad ng nakikita mo na ang Build Time ay 2-3 araw lamang at nagkakahalaga lamang ito ng $ 5 para sa aming PSB. Maaari mo ring piliin ang isang ginustong paraan ng pagpapadala batay sa iyong kinakailangan.
Hakbang 3: Ang pangwakas na hakbang ay i-upload ang Gerber file at magpatuloy sa pagbabayad. Upang matiyak na ang proseso ay maayos Ang pag-verify ng PCBGOGO kung ang iyong Gerber file ay wasto bago magpatuloy sa pagbabayad. Sa ganitong paraan makasisiguro ka na ang iyong PCB ay katha na gawa at maaabot ka bilang nakatuon.
Pag-iipon ng PCB
Matapos ang order ng board, naabot ito sa akin makalipas ang ilang araw kahit na ang courier sa isang maayos na may label na maayos na naka-pack na kahon at tulad ng lagi ang kalidad ng PCB ay kahanga-hanga. Nagbabahagi ako ng ilang mga larawan ng mga board sa ibaba upang husgahan mo.
Binuksan ko ang aking soldering rod at nagsimulang tipunin ang Lupon. Dahil ang mga Footprints, pad, vias at silkscreen ay perpekto ng tamang hugis at laki wala akong problema sa pag-assemble ng board. Ang board ay handa na sa 10 minuto lamang mula sa oras ng pag-unpack ng kahon.
Ilang mga larawan ng pisara pagkatapos ng paghihinang ay ipinapakita sa ibaba.
Programming ang Arduino
Ngayon na handa na ang aming hardware, tingnan natin ang programa na kailangang mai-upload sa aming lupon ng Arduino. Ang layunin ng code ay basahin ang data mula sa sensor ng magnetometer ng QMC5883L at i-convert ito sa degree (0 hanggang 360). Kapag alam na natin ang degree, kailangan nating buksan ang isang LED na tumuturo sa isang tukoy na direksyon. Ang direksyon na ginamit ko sa program na ito ay sa hilaga. Kaya't hindi alintana kung nasaan ka doon ay magkakaroon lamang ng isang LED na kumikinang sa iyong board at ang direksyon ng LED ay magpapahiwatig ng direksyon ng HILAGA. Sa sandaling makalkula sa ibang pagkakataon ang ibang direksyon ay nalalaman ang isang direksyon.
Ang kumpletong code para sa Digital Compass Project na ito ay matatagpuan sa dulo ng pahinang ito. Maaari mong direktang i-upload ito sa iyong board pagkatapos isama ang library at handa ka nang pumunta. Ngunit, kung nais mong malaman