Orodha ya maudhui:

Arduino Magnetometer: Hatua 5 (na Picha)
Arduino Magnetometer: Hatua 5 (na Picha)

Video: Arduino Magnetometer: Hatua 5 (na Picha)

Video: Arduino Magnetometer: Hatua 5 (na Picha)
Video: Трехосевой цифровой компас HMC5883L и Arduino 2024, Septemba
Anonim
Arduino Magnetometer
Arduino Magnetometer

Tunajenga nini?

Wanadamu hawawezi kugundua uwanja wa sumaku, lakini tunatumia vifaa ambavyo hutegemea sumaku kila wakati. Motors, dira, sensorer za mzunguko, na mitambo ya upepo, kwa mfano, zote zinahitaji sumaku za kufanya kazi. Mafunzo haya yanaelezea jinsi ya kujenga sumaku ya msingi ya Arduino ambayo huhisi uwanja wa sumaku ukitumia sensorer tatu za athari ya Jumba. Vector ya uwanja wa sumaku kwenye eneo huonyeshwa kwenye skrini ndogo kwa kutumia makadirio ya isometriki.

Arduino ni nini?

Arduino ni mdhibiti mdogo anayeweza kutumia watumiaji. Ina pembejeo za pembejeo na pato za dijiti. Pia ina pini za pembejeo za analog, ambazo ni muhimu kwa kusoma pembejeo kutoka kwa sensorer. Aina tofauti za Arduino zinapatikana. Mafunzo haya yanaelezea jinsi ya kutumia Arduino Uno au Arduino MKR1010. Walakini, mifano mingine inaweza kutumika pia.

Kabla ya kuanza mafunzo haya, pakua mazingira ya maendeleo ya Arduino na maktaba zozote zinazohitajika kwa mtindo wako. Mazingira ya maendeleo yanapatikana kwa https://www.arduino.cc/en/main/software, na maagizo ya usanikishaji yanapatikana kwa

Uga wa sumaku ni nini?

Sumaku za kudumu hufanya nguvu kwenye sumaku zingine za kudumu. Waya wa sasa wa kubeba hufanya nguvu kwa waya zingine za sasa za kubeba. Sumaku za kudumu na waya za sasa zinazobeba hufanya nguvu kwa kila mmoja pia. Nguvu hii kwa sasa ya jaribio la kitengo ni uwanja wa sumaku.

Ikiwa tunapima ujazo wa kitu, tunapata nambari moja ya scalar. Walakini, sumaku inaelezewa na uwanja wa vector, idadi ngumu zaidi. Kwanza, inatofautiana na msimamo katika nafasi zote. Kwa mfano, shamba la sumaku sentimita moja kutoka kwa sumaku ya kudumu linaweza kuwa kubwa kuliko shamba la sumaku umbali wa sentimita kumi.

Ifuatayo, uwanja wa sumaku katika kila hatua kwenye nafasi unawakilishwa na vector. Ukubwa wa vector inawakilisha nguvu ya uwanja wa sumaku. Mwelekeo ni sawa kwa mwelekeo wa nguvu na mwelekeo wa sasa wa jaribio.

Tunaweza kufikiria uwanja wa sumaku katika eneo moja kama mshale. Tunaweza kufikiria uwanja wa sumaku katika nafasi zote na safu ya mshale katika maeneo tofauti, labda ya saizi tofauti na kuelekeza mwelekeo tofauti. Taswira nzuri inapatikana katika https://www.falstad.com/vector3dm/. Magnetometer tunayojenga inaonyesha uwanja wa sumaku kwenye eneo la sensorer kama mshale kwenye onyesho.

Je! Sensor ya athari ya Jumba ni nini, na inafanyaje kazi?

Sensor ya athari ya ukumbi ni kifaa kidogo, cha bei rahisi ambacho hupima nguvu ya uwanja wa sumaku kando ya mwelekeo fulani. Imetengenezwa kutoka kwa kipande cha semiconductor iliyowekwa na malipo ya ziada. Pato la sensorer zingine za athari ya Jumba ni voltage ya analog. Sensorer zingine za athari ya Hall zina kulinganisha jumuishi na hutoa pato la dijiti. Sensorer nyingine za athari za Jumba zimejumuishwa katika vyombo vikubwa ambavyo hupima kiwango cha mtiririko, kasi ya kuzunguka, au idadi nyingine.

Fizikia nyuma ya athari ya Jumba ni muhtasari na mlingano wa nguvu ya Lorentz. Usawa huu unaelezea nguvu kwenye malipo ya kusonga kwa sababu ya uwanja wa nje wa umeme na sumaku.

Picha
Picha

Takwimu hapa chini inaonyesha athari ya Ukumbi. Tuseme tunataka kupima nguvu ya uwanja wa sumaku katika mwelekeo wa mshale wa bluu. Kama inavyoonyeshwa katika sehemu ya kushoto ya takwimu, tunatumia sasa kupitia kipande cha semiconductor perpendicular kwa mwelekeo wa uwanja utakaopimwa. Sasa ni mtiririko wa mashtaka, kwa hivyo malipo katika semiconductor huenda na kasi fulani. Malipo haya yatahisi nguvu kwa sababu ya uwanja wa nje, kama inavyoonyeshwa katika sehemu ya katikati ya takwimu. Malipo yatasonga kwa sababu ya nguvu na kujilimbikiza kando ya semiconductor. Malipo huongezeka hadi nguvu kwa sababu ya malipo ya kusanyiko husawazisha nguvu kwa sababu ya uwanja wa sumaku wa nje. Tunaweza kupima voltage kwenye semiconductor, kama inavyoonyeshwa katika sehemu sahihi ya takwimu. Voltage iliyopimwa ni sawia na nguvu ya uwanja wa sumaku, na iko katika mwelekeo unaofanana kwa sasa na mwelekeo wa uwanja wa sumaku.

Picha
Picha

Makadirio ya isometri ni nini?

Katika kila hatua katika nafasi, uwanja wa sumaku unaelezewa na vector ya pande tatu. Walakini, skrini yetu ya kuonyesha ni pande mbili. Tunaweza kutengenezea vector ya pande tatu katika ndege ya pande mbili ili tuweze kuichora kwenye skrini. Kuna njia nyingi za kukamilisha hii kama makadirio ya isometriki, makadirio ya maandishi, au makadirio ya oblique.

Katika makadirio ya isometriki, shoka za x, y, na z zina digrii 120 mbali, na zinaonekana sawa sawa. Maelezo ya ziada juu ya makadirio ya isometriki, pamoja na fomula zinazohitajika, zinaweza kupatikana kwenye ukurasa wa Wikipedia kwenye mada.

Hatua ya 1: Kusanya Vifaa

Arduino na Cable

Arduino ni akili za sumaku ya sumaku. Maagizo haya yanaelezea jinsi ya kutumia Arduino Uno au Arduino MKR1010. Kwa hali yoyote, kebo inahitajika kuiunganisha kwa kompyuta.

Chaguo 1: Arduino Uno na USB AB Cable

www.digikey.com/product-detail/en/arduino/A000066/1050-1024-ND/2784006

www.digikey.com/product-detail/en/stewart-connector/SC-2ABE003F/380-1424-ND/8544570

Chaguo 2: Arduino MKR1010 na kebo ya microUSB

www.digikey.com/product-detail/en/arduino/ABX00023/1050-1162-ND/9486713

www.digikey.com/product-detail/en/stewart-connector/SC-2AMK003F/380-1431-ND/8544577

Onyesho la TFT

TFT inasimama kwa Transistor Nyembamba ya Filamu. Onyesho hili la 1.44 lina saizi 128 na 128. Ni ndogo, angavu, na rangi. Inashikamana na ubao wa kuzuka. Walakini, pini za kichwa huja tofauti, kwa hivyo lazima uziwekeze. (Solder na chuma ya kutengeneza ni inahitajika.)

www.digikey.com/product-detail/en/adafruit-industries-llc/2088/1528-1345-ND/5356830

    Picha
    Picha
  • Sensorer za Athari za Jumba la Analog

Sensorer tatu za athari ya Jumba zinahitajika. Kiungo hapa chini ni cha sehemu ya Allegro nambari A1324LUA-T. Kwa sensor hii, pini 1 ni voltage ya usambazaji, pini 2 ni chini, na pini 3 ndio pato. Sensorer nyingine za Jumba zinapaswa kufanya kazi pia, lakini hakikisha ni sawa, sio dijiti. Ikiwa unatumia sensorer tofauti, angalia pinout na urekebishe wiring ikiwa inahitajika. (Kwa kweli nilitumia sensa tofauti kutoka kwa kampuni hiyo hiyo kwa madhumuni ya upimaji. Walakini, ile niliyotumia imepitwa na wakati, na sensa hii ndiyo inachukua nafasi yake.)

www.digikey.com/product-detail/en/allegro-microsystems-llc/A1324LUA-T/620-1432-ND/2728144

Bodi ndogo ya Mkate na Waya

www.digikey.com/product-detail/en/adafruit-industries-llc/239/1528-2143-ND/7244929

Sumaku za Kudumu za Upimaji

Sumaku za jokofu zitafanya kazi vizuri.

Hatua ya 2: Wiring

Wiring
Wiring

Solder vichwa kwenye onyesho.

Picha
Picha

Weka sensorer mwisho mmoja wa ubao wa mkate, na uweke onyesho na Arduino upande wa pili. Sasa katika waya katika Arduino na onyesho hutengeneza uwanja wa sumaku, ambao hatutaki sensorer zisome. Kwa kuongezea, tunaweza kutaka kuweka sensorer karibu na sumaku za kudumu, ambazo zinaweza kuathiri vibaya waya wa onyesho na sensa. Kwa sababu hizi, tunataka sensorer mbali na onyesho na Arduino. Pia kwa sababu hizi, sumaku hii inapaswa kuwekwa mbali na uwanja wenye nguvu sana wa sumaku.

Weka sensorer perpendicular kwa kila mmoja lakini kama karibu na kila mmoja iwezekanavyo. Upole sensorer kupata yao perpendicular. Kila pini ya kila sensorer lazima iwe katika safu tofauti ya ubao wa mkate ili iweze kuunganishwa kando.

Picha
Picha

Wiring ni tofauti kidogo kati ya MKR1010 na Uno kwa sababu mbili. Kwanza, Arduino na onyesho huwasiliana na SPI. Mifano tofauti za Arduino zina pini tofauti za kujitolea kwa mistari fulani ya SPI. Pili, pembejeo za Analog zinaweza kukubali hadi 5 V wakati pembejeo za Analog za MKR1010 zinaweza kukubali hadi 3.3 V. Voltage inayopendekezwa ya usambazaji wa sensorer ya athari ya Jumba ni 5 V. Matokeo ya sensorer yameunganishwa na pembejeo za Analog za Arduino, na hizi zinaweza kuwa kubwa kama voltages za usambazaji. Kwa Uno, tumia usambazaji uliopendekezwa wa 5 V kwa sensorer. Kwa MKR1010, tumia 3.3 V ili pembejeo ya Analog ya Arduino isione voltage kubwa kuliko inavyoweza kushughulikia.

Fuata michoro na maagizo hapa chini kwa Arduino unayotumia.

Wiring na Arduino Uno

Picha
Picha

Onyesho lina pini 11. Waunganishe na Arduino Uno kama ifuatavyo. (NC inamaanisha haijaunganishwa.)

  • Vin → 5V
  • 3.3 → NC
  • Gnd → GND
  • SCK → 13
  • HIVYO → NC
  • SI → 11
  • TCS → 10
  • RST → 9
  • D / C → 8
  • CCS → NC
  • Rahisi → NC

Unganisha Vin ya sensorer kwa 5V ya Arduino. Unganisha ardhi ya sensorer kwenye ardhi ya Arduino. Unganisha pato la sensorer kwa pembejeo za Analog A1, A2, na A3 ya Arduino.

Picha
Picha

Wiring na Arduino MKR1010

Picha
Picha

Onyesho lina pini 11. Waunganishe na Arduino kama ifuatavyo. (NC inamaanisha haijaunganishwa.)

  • Vin → 5V
  • 3.3 → NC
  • Gnd → GND
  • SCK → SCK 9
  • HIVYO → NC
  • SI → MOSI 8
  • TCS → 5
  • RST → 4
  • D / C → 3
  • CCS → NC
  • Rahisi → NC

Unganisha Vin ya sensorer kwa Vcc ya Arduino. Pini hii iko 3.3V, sio 5V. Unganisha ardhi ya sensorer kwenye ardhi ya Arduino. Unganisha pato la sensorer kwa pembejeo za Analog A1, A2, na A3 ya Arduino.

Picha
Picha

Hatua ya 3: Jaribu Uonyesho

Wacha tufanye kazi ya kuonyesha TFT. Kwa bahati nzuri, Adafruit ina maktaba rafiki na mafunzo bora ya kwenda nao. Maagizo haya hufuata mafunzo kwa karibu, Fungua mazingira ya maendeleo ya Arduino. Nenda kwenye Zana → Dhibiti Maktaba. Sakinisha Adafruit_GFX, Adafruit_ZeroDMA, na maktaba ya Adafruit_ST7735. Anzisha upya mazingira ya ukuzaji wa Android.

Mfano dhahiri zaidi umejumuishwa na maktaba. Fungua. Faili → Mifano → Adafruit ST7735 na ST7789 Library → graphicstest. Ili kuchagua maoni ya kuonyesha 1.44 nje ya mstari wa 95 na laini ya kukomesha 98.

Toleo la asili:

94 // Tumia kianzishi hiki ikiwa unatumia skrini ya 1.8 TFT:

95 tft.initR (INITR_BLACKTAB); // Chip ya Init ST7735S, kichupo cheusi 96 97 // AU tumia kianzishi hiki (uncomment) ikiwa unatumia 1.44 TFT: 98 //tft.initR (INITR_144GREENTAB); // Chip ya Init ST7735R, kichupo kijani.

Toleo sahihi la onyesho la 1.44 :

94 // Tumia kianzishi hiki ikiwa unatumia skrini ya 1.8 TFT:

95 //tft.initR(INIT_BLACKTAB); // Chip ya Init ST7735S, kichupo nyeusi 96 97 // AU tumia kianzishi hiki (uncomment) ikiwa unatumia 1.44 TFT: 98 tft.initR (INITR_144GREENTAB); // Chip ya Init SST35R, kichupo kijani.

Onyesho linawasiliana kwa kutumia SPI, na aina tofauti za Arduinos hutumia pini tofauti za kujitolea kwa laini kadhaa za mawasiliano. Mfano mzuri zaidi umewekwa ili kufanya kazi na pini za Uno. Ikiwa unatumia MKR1010, ongeza mistari ifuatayo kati ya mistari 80 na 81.

Marekebisho ya MKR1010:

80

#fafanua TFT_CS 5 #fafanua TFT_RST 4 #fafanua TFT_DC 3 #fafanua TFT_MOSI 8 #fafanua TFT_SCLK 9 Adafruit_ST7735 tft = Adafruit_ST7735 (TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST) Kuelea 81 p = 3.1415926;

Hifadhi mfano ulioonyeshwa wazi kabisa. Chomeka Arduino kwenye kompyuta ikiwa bado haujafanya hivyo. Nenda kwenye Zana → Bodi na Zana → Bandari ili uhakikishe kuwa kompyuta inaweza kupata Arduino. Nenda kwenye Mchoro → Pakia. Ikiwa mfano unafanya kazi, onyesho litaonyesha mistari, mstatili, maandishi, na onyesho kamili. Mafunzo ya Adafruit hutoa maelezo zaidi ikiwa utatuzi wa shida unahitajika.

Hatua ya 4: Nambari ya Magnetometer

Pakua nambari iliyoambatanishwa, na uifungue katika mazingira ya maendeleo ya Arduino.

Programu hii hutumia kazi sita:

Setup () inaanzisha onyesho

Kitanzi () kina kitanzi kuu cha programu. Inazima skrini, huchota shoka, inasoma pembejeo, na inachora mshale unaowakilisha vector ya uwanja wa sumaku. Inayo kiwango cha kuburudisha kwa sekunde moja ambayo inaweza kubadilishwa kwa kubadilisha laini ya 127

DrawAxes3d () huchora na kuipachika shoka x, y, na z

DrawArrow3d () inachukua x, y, na z pembejeo kutoka 0 hadi 1023. Kutoka kwa maadili haya, huhesabu alama za mwisho za mshale angani. Ifuatayo, hutumia kazi za isometricxx () na isometricyy () kuhesabu alama za mwisho kwenye skrini. Mwishowe, huchota mshale na kuchapa voltages chini ya skrini

Isometricxx () hupata uratibu x wa makadirio ya isometriki. Inachukua x, y, na z kuratibu za uhakika na kurudisha eneo linalofanana la pikseli kwenye skrini

Isometricyy () hupata uratibu wa makadirio ya isometriki. Inachukua x, y, na z kuratibu za uhakika na kurudisha eneo linalofanana la pixel kwenye skrini

Kabla ya kuendesha nambari, tunahitaji kutaja ni pini gani za kutumia kwa mawasiliano ya SPI na onyesho, na tunahitaji kutaja voltage ya chanzo kwa sensorer. Ikiwa unatumia MKR1010, toa maoni kwenye mistari 92-96 pamoja na laini ya 110. Halafu, mistari ya kukomesha 85-89 na laini ya 108. Ikiwa unatumia Uno, toa maoni kwenye mistari 85-89 na mstari wa 108 Halafu, mistari ya kukomesha 92-96 na laini 110.

Pakia nambari, Mchoro → Pakia.

Unapaswa kuona shoka za x, y, na z katika nyekundu. Mshale wa kijani na mduara wa bluu kwa ncha unawakilisha vector ya uwanja wa sumaku kwenye sensorer. Usomaji wa voltage huonyeshwa chini kushoto. Unapoleta sumaku karibu na sensorer, usomaji wa voltage unapaswa kubadilika, na saizi ya mshale inapaswa kukua.

Picha
Picha

Hatua ya 5: Kazi ya Baadaye

Kazi ya Baadaye
Kazi ya Baadaye

Hatua inayofuata itakuwa kusawazisha kifaa. Karatasi ya data ya sensorer hutoa habari juu ya jinsi ya kubadilisha maadili ya voltage ya sensoji mbichi kuwa nguvu ya uwanja wa sumaku. Ulinganishaji unaweza kuthibitishwa kwa kulinganisha na sumaku sahihi zaidi.

Sumaku za kudumu zinaingiliana na waya za sasa zinazobeba. Waya karibu na onyesho na katika Arduino hutengeneza uwanja wa sumaku ambao unaweza kuathiri usomaji wa sensorer. Kwa kuongezea, ikiwa kifaa hiki kinatumika kupima karibu na sumaku yenye nguvu ya kudumu, uwanja wa sumaku kutoka kwa kifaa kilichojaribiwa utaingiliana na, kuingiza kelele ndani, na ikiwezekana kuharibu Arduino na kuonyesha. Kulinda kunaweza kufanya kipima nguvu hiki kiwe nguvu zaidi. Arduino inaweza kuhimili uwanja mkubwa wa sumaku ikiwa imehifadhiwa kwenye sanduku la chuma, na kelele kidogo itatambulishwa ikiwa nyaya zenye ngao zinaunganisha sensorer badala ya waya wazi.

Uga wa sumaku ni kazi ya msimamo, kwa hivyo ni tofauti katika kila hatua katika nafasi. Kifaa hiki hutumia sensorer tatu, moja kupima x, y, na sehemu ya z ya uwanja wa sumaku kwa uhakika. Sensorer ziko karibu na kila mmoja lakini sio wakati mmoja, na hii inapunguza azimio la sumaku. Itakuwa nzuri kuokoa usomaji wa uwanja wa sumaku katika sehemu tofauti kisha uwaonyeshe kama safu ya mishale katika maeneo yanayofanana. Walakini, huo ni mradi wa siku nyingine.

Marejeo

Habari juu ya maktaba ya Adafruit Arduino Graphics

https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/overview

Uonyeshaji wa uwanja wa sumaku

https://www.falstad.com/vector3dm/

Habari juu ya athari ya Jumba na sensorer za athari ya Ukumbi

  • https://sensing.honeywell.com/index.php?ci_id=47847
  • https://www.allegromicro.com/~/media/Files/Datasheets/A1324-5-6-Datasheet.ashx

Habari juu ya makadirio ya isometriki

  • https://en.wikipedia.org/wiki/3D_projection
  • https://en.wikipedia.org/wiki/Isometric_projection

Ilipendekeza: