Sisukord:

Arduino magnetomeeter: 5 sammu (piltidega)
Arduino magnetomeeter: 5 sammu (piltidega)

Video: Arduino magnetomeeter: 5 sammu (piltidega)

Video: Arduino magnetomeeter: 5 sammu (piltidega)
Video: GY-271. Цифровой магнитометр и Ардуино. Делаем компас 2024, September
Anonim
Arduino magnetomeeter
Arduino magnetomeeter

Mida me ehitame?

Inimesed ei suuda magnetvälju tuvastada, kuid me kasutame seadmeid, mis toetuvad kogu aeg magnetitele. Näiteks mootorid, kompassid, pöörlemisandurid ja tuuleturbiinid vajavad töötamiseks magneteid. See õpetus kirjeldab, kuidas ehitada Arduino -põhine magnetomeeter, mis tuvastab kolme Halli efekti anduri abil magnetvälja. Asukoha magnetvälja vektor kuvatakse isomeetrilise projektsiooni abil väikesel ekraanil.

Mis on Arduino?

Arduino on väike avatud lähtekoodiga kasutajasõbralik mikrokontroller. Sellel on digitaalsed sisend- ja väljundpoldid. Sellel on ka analoogsisendi tihvtid, mis on kasulikud andurite sisendi lugemiseks. Saadaval on erinevad Arduino mudelid. See õpetus kirjeldab, kuidas kasutada kas Arduino Unot või Arduino MKR1010. Siiski saab kasutada ka teisi mudeleid.

Enne selle õpetuse alustamist laadige alla Arduino arenduskeskkond ja kõik teie konkreetse mudeli jaoks vajalikud teegid. Arenduskeskkond on saadaval aadressil https://www.arduino.cc/en/main/software ja installijuhised on saadaval aadressil

Mis on magnetväli?

Püsimagnetid avaldavad jõudu teistele püsimagnetitele. Voolujuhtmed avaldavad jõudu teistele voolu kandvatele juhtmetele. Püsimagnetid ja voolu kandvad juhtmed avaldavad jõudu ka üksteisele. See jõud testimisvoolu ühiku kohta on magnetväli.

Kui me mõõdame objekti mahtu, saame ühe skalaarse numbri. Kuid magnetismi kirjeldab vektorväli, keerulisem suurus. Esiteks varieerub see olenevalt asukohast kogu ruumis. Näiteks püsimagnetist ühe sentimeetri kaugusel asuv magnetväli on tõenäoliselt suurem kui kümne sentimeetri kaugusel asuv magnetväli.

Järgmisena on magnetvälja igas ruumi punktis kujutatud vektoriga. Vektori suurus näitab magnetvälja tugevust. Suund on risti nii jõu suuna kui ka katsevoolu suunaga.

Me võime kujutada magnetvälja ühes kohas noolena. Me võime kujutada magnetvälja kogu ruumis noolega erinevates kohtades, võib -olla erineva suurusega ja eri suundades. Kena visualiseering on saadaval aadressil https://www.falstad.com/vector3dm/. Meie ehitatav magnetomeeter kuvab magnetvälja andurite asukohas ekraanil noolena.

Mis on Halli efekti andur ja kuidas see toimib?

Halli efekti andur on väike ja odav seade, mis mõõdab magnetvälja tugevust kindlas suunas. See on valmistatud pooljuhtidest, millele on lisatud liigseid laenguid. Mõne Halli efekti anduri väljund on analoogpinge. Teistel Halli efekti anduritel on integreeritud võrdlus ja need toodavad digitaalset väljundit. Teised Hall -efekti andurid on integreeritud suurematesse instrumentidesse, mis mõõdavad voolukiirust, pöörlemiskiirust või muid koguseid.

Halli efekti taga oleva füüsika võtab kokku Lorentzi jõu võrrand. See võrrand kirjeldab liikuva laengu jõudu välise elektri- ja magnetvälja mõjul.

Pilt
Pilt

Allolev joonis illustreerib Halli efekti. Oletame, et tahame mõõta magnetvälja tugevust sinise noole suunas. Nagu on näidatud joonise vasakus osas, rakendame voolu läbi pooljuhatüki, mis on risti mõõdetava välja suunaga. Vool on laengute voog, seega liigub pooljuhtlaeng teatud kiirusega. See laeng tunneb välisvälja mõjul jõudu, nagu on näidatud joonise keskosas. Laengud liiguvad jõu mõjul ja kogunevad pooljuhi servadele. Laengud kogunevad seni, kuni kogunenud laengutest tulenev jõud tasakaalustab välisest magnetväljast tuleneva jõu. Saame mõõta pooljuhi pinget, nagu on näidatud joonise parempoolses osas. Mõõdetud pinge on võrdeline magnetvälja tugevusega ning see on vooluga risti ja magnetvälja suunaga.

Pilt
Pilt

Mis on isomeetriline projektsioon?

Igas ruumi punktis kirjeldab magnetvälja kolmemõõtmeline vektor. Kuid meie ekraan on kahemõõtmeline. Võime projitseerida kolmemõõtmelise vektori kahemõõtmeliseks tasapinnaks, et saaksime selle ekraanile joonistada. Selle saavutamiseks on mitu võimalust, näiteks isomeetriline projektsioon, ortograafiline projektsioon või kaldus projektsioon.

Isomeetrilises projektsioonis on x-, y- ja z -teljed üksteisest 120 -kraadised ning need on võrdselt lühenenud. Lisateavet isomeetrilise projektsiooni kohta ja vajalikke valemeid leiate Vikipeedia teemakohaselt lehelt.

Samm: koguge tarvikuid

Arduino ja kaabel

Arduino on magnetomeetri aju. Need juhised kirjeldavad Arduino Uno või Arduino MKR1010 kasutamist. Mõlemal juhul on arvutiga ühendamiseks vaja kaablit.

Valik 1: Arduino Uno ja USB AB kaabel

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

Valik 2: Arduino MKR1010 ja microUSB -kaabel

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

TFT ekraan

TFT tähistab Thin Film Transistor. See 1,44 -tolline ekraan sisaldab 128 x 128 pikslit. See on väike, särav ja värvikas. See on kinnitatud purunemisplaadi külge. Siiski on päise tihvtid eraldi, nii et peate need jootma. (Jootetoru ja jootekolb on vaja.)

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

    Pilt
    Pilt
  • Analooghalli efekti andurid

Vaja on kolme Halli efekti andurit. Alloleval lingil on Allegro osa number A1324LUA-T. Selle anduri puhul on tihvt 1 toitepinge, tihvt 2 on maandatud ja tihvt 3 on väljund. Ka teised Halli andurid peaksid töötama, kuid veenduge, et need oleksid analoogsed, mitte digitaalsed. Kui kasutate teist andurit, kontrollige pistikut ja vajadusel reguleerige juhtmestikku. (Ma kasutasin testimiseks tegelikult sama ettevõtte erinevat andurit. Kuid see, mida ma kasutasin, on vananenud ja see andur on selle asendaja.)

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

Väike leivalaud ja traat

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

Püsimagnetid testimiseks

Külmiku magnetid töötavad hästi.

2. samm: juhtmestik

Juhtmestik
Juhtmestik

Jootke päised ekraanil.

Pilt
Pilt

Asetage andurid leivalaua ühte otsa ning asetage ekraan ja Arduino teise otsa. Arduino ja ekraani juhtmete vool tekitab magnetvälju, mida me ei taha, et andurid loeksid. Lisaks võime panna andurid püsimagnetite lähedale, mis võib negatiivselt mõjutada ekraani ja anduri juhtmete voolu. Nendel põhjustel soovime, et andurid ei oleks kuvarist ja Arduinost kaugel. Ka nendel põhjustel tuleks seda magnetomeetrit hoida väga tugevatest magnetväljadest eemal.

Asetage andurid üksteise suhtes risti, kuid üksteisele võimalikult lähedale. Painutage andureid õrnalt, et need oleksid risti. Iga anduri iga tihvt peab olema leivalaua eraldi reas, nii et seda saab eraldi ühendada.

Pilt
Pilt

Juhtmed on MKR1010 ja Uno vahel pisut erinevad kahel põhjusel. Esiteks suhtlevad Arduino ja ekraan SPI kaudu. Erinevatel Arduino mudelitel on teatud SPI liinide jaoks erinevad spetsiaalsed tihvtid. Teiseks võivad Uno analoogsisendid vastu võtta kuni 5 V, MKR1010 analoogsisendid aga kuni 3,3 V. Hall -efekti andurite soovitatav toitepinge on 5 V. Anduri väljundid on ühendatud Arduino analoogsisenditega, ja need võivad olla sama suured kui toitepinged. Uno jaoks kasutage andurite jaoks soovitatud 5 V toiteallikat. MKR1010 jaoks kasutage 3,3 V, nii et Arduino analoogsisend ei näe kunagi pinget, mis on suurem kui see suudab taluda.

Järgige allolevaid skeeme ja juhiseid kasutatava Arduino kohta.

Juhtmestik Arduino Unoga

Pilt
Pilt

Ekraanil on 11 kontakti. Ühendage need Arduino Unoga järgmiselt. (NC tähendab, et pole ühendatud.)

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

Ühendage andurite Vin Arduino 5V -ga. Ühendage anduri maandus Arduino maandusega. Ühendage andurite väljund Arduino analoogsisenditega A1, A2 ja A3.

Pilt
Pilt

Juhtmestik Arduino MKR1010 -ga

Pilt
Pilt

Ekraanil on 11 kontakti. Ühendage need Arduinoga järgmiselt. (NC tähendab, et pole ühendatud.)

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

Ühendage andurite Vin Arduino Vcc -ga. See pin on 3.3V, mitte 5V. Ühendage anduri maandus Arduino maandusega. Ühendage andurite väljund Arduino analoogsisenditega A1, A2 ja A3.

Pilt
Pilt

Samm: proovige ekraani

Paneme TFT -ekraani tööle. Õnneks on Adafruitil mõned kasutajasõbralikud raamatukogud ja suurepärane õpetus nendega kaasas käimiseks. Need juhised järgivad täpselt õpetust

Avage Arduino arenduskeskkond. Avage Tööriistad → Raamatukogude haldamine. Installige teegid Adafruit_GFX, Adafruit_ZeroDMA ja Adafruit_ST7735. Taaskäivitage Androidi arenduskeskkond.

Graafilise testi näide on raamatukogudega kaasas. Ava see. Fail → Näited → Adafruit ST7735 ja ST7789 raamatukogu → graphicstest. 1,44 -tollise ekraani kommentaarirea 95 ja tühistamisrea 98 valimiseks.

Algne versioon:

94 // Kasutage seda initsialiseerijat, kui kasutate 1,8 -tollist TFT -ekraani:

95 tft.initR (INITR_BLACKTAB); // Init ST7735S kiip, must sakk 96 97 // VÕI kasutage seda initsialiseerijat (märkusteta), kui kasutate 1,44 TFT: 98 //tft.initR (INITR_144GREENTAB); // Init ST7735R kiip, roheline sakk

1,44 -tollise ekraani õige versioon:

94 // Kasutage seda initsialiseerijat, kui kasutate 1,8 -tollist TFT -ekraani:

95 //tft.initR (INIT_BLACKTAB); // Init ST7735S kiip, must sakk 96 97 // VÕI kasutage seda initsialiseerijat (märkusteta), kui kasutate 1,44 -tollist TFT -d: 98 tft.initR (INITR_144GREENTAB); // Init SST35R kiip, roheline sakk

Ekraan suhtleb SPI abil ja erinevad mudelid Arduinos kasutavad teatud kommunikatsiooniliinide jaoks erinevaid spetsiaalseid kontakte. Graafilise testi näide on loodud töötama Uno tihvtidega. Kui kasutate MKR1010, lisage ridade 80 ja 81 vahele järgmised read.

Parandused MKR1010 jaoks:

80

#define TFT_CS 5 #define TFT_RST 4 #define TFT_DC 3 #define TFT_MOSI 8 #define TFT_SCLK 9 Adafruit_ST7735 tft = Adafruit_ST7735 (TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST); 81 ujuk p = 3,1415926;

Salvestage muudetud graafilise testi näide. Ühendage Arduino arvutiga, kui te pole seda veel teinud. Avage Tööriistad → Tahvel ja Tööriistad → Port, et veenduda, kas arvuti leiab Arduino. Avage Visand → Laadi üles. Kui näide töötab, kuvatakse ekraanil read, ristkülikud, tekst ja täielik demo. Adafruit'i õpetus annab rohkem teavet, kui tõrkeotsingut on vaja.

Samm: magnetomeetri kood

Laadige alla lisatud kood ja avage see Arduino arenduskeskkonnas.

See programm kasutab kuut funktsiooni:

Seadistus () lähtestab ekraani

Loop () sisaldab programmi peamist tsüklit. See pimendab ekraani, joonistab teljed, loeb sisendid ja tõmbab magnetvälja vektorit tähistava noole. Selle värskendussagedus on üks sekund, mida saab muuta, muutes rida 127

DrawAxes3d () joonistab ja sildistab teljed x, y ja z

DrawArrow3d () võtab x, y ja z sisendi vahemikus 0 kuni 1023. Nendest väärtustest arvutab see ruumis oleva noole lõpp -punktid. Järgmisena kasutab ta ekraani lõpp -punktide arvutamiseks funktsioone isometricxx () ja isometricyy (). Lõpuks joonistab see noole ja prindib pinged ekraani põhja

Isometricxx () leiab isomeetrilise projektsiooni x -koordinaadi. See võtab punkti x, y ja z koordinaadid ning tagastab vastava x piksli asukoha ekraanil

Isometricyy () leiab isomeetrilise projektsiooni y -koordinaadi. See võtab punkti x, y ja z koordinaadid ning tagastab vastava y piksli asukoha ekraanil

Enne koodi käivitamist peame täpsustama, milliseid tihvte kasutada ekraaniga SPI -sideks, ja andurite jaoks tuleb määrata toiteallika pinge. Kui kasutate MKR1010, kommenteerige nii ridu 92–96 kui ka rida 110. Seejärel tühistage kommentaaride read 85–89 ja rida 108. Kui kasutate Unot, kommenteerige nii ridu 85–89 kui ka rida 108. Seejärel tühistage read 92–96 ja rida 110.

Laadige kood üles, visandage → Laadi üles.

Te peaksite nägema x-, y- ja z -telge punaselt. Roheline nool, mille ots on sinise ringiga, tähistab andurite juures magnetvälja vektorit. Pinge näidud kuvatakse vasakus alanurgas. Kui tuua magnet magnetitele lähemale, peaksid pingenäidud muutuma ja noole suurus suurenema.

Pilt
Pilt

Samm: tulevane töö

Tuleviku töö
Tuleviku töö

Järgmine samm oleks seadme kalibreerimine. Anduri andmeleht annab teavet selle kohta, kuidas toorpinge väärtused teisendada magnetvälja tugevuseks. Kalibreerimist saab kontrollida, kui võrrelda seda täpsema magnetomeetriga.

Püsimagnetid suhtlevad voolu kandvate juhtmetega. Juhtmed ekraani lähedal ja Arduinos tekitavad magnetvälju, mis võivad mõjutada anduri näitu. Lisaks, kui seda seadet kasutatakse tugeva püsimagneti läheduses mõõtmiseks, hakkab testitava seadme magnetväli suhtlema, tekitama müra ja võib kahjustada Arduino ja ekraani. Varjestus võib muuta selle magnetomeetri tugevamaks. Arduino talub suuremaid magnetvälju, kui see on metallkarbis varjestatud, ja vähem müra tekib, kui varjestatud kaablid ühendavad andurid paljaste juhtmete asemel.

Magnetväli on positsiooni funktsioon, seega on see igas ruumi punktis erinev. See seade kasutab kolme andurit, millest üks mõõdab magnetvälja x, y ja z komponenti ühes punktis. Andurid on üksteise lähedal, kuid mitte ühes kohas ja see piirab magnetomeetri eraldusvõimet. Oleks lahe salvestada magnetvälja näidud erinevatesse kohtadesse ja kuvada need vastavate kohtade nooltena. See on aga teise päeva projekt.

Viited

Teave Adafruit Arduino graafikateekide kohta

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

Magnetvälja visualiseerimine

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

Teave Halli efekti ja Halli efekti andurite kohta

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

Teave isomeetrilise projektsiooni kohta

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

Soovitan: