Sisällysluettelo:
- Vaihe 1: Kerää tarvikkeita
- Vaihe 2: Johdotus
- Vaihe 3: Testaa näyttö
- Vaihe 4: Magnetometrin koodi
- Vaihe 5: Tulevaisuuden työ
Video: Arduino -magnetometri: 5 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Mitä rakennamme?
Ihmiset eivät pysty havaitsemaan magneettikenttiä, mutta käytämme laitteita, jotka luottavat jatkuvasti magneetteihin. Esimerkiksi moottorit, kompassit, pyörimisanturit ja tuuliturbiinit tarvitsevat magneetteja toimiakseen. Tässä opetusohjelmassa kuvataan, miten rakennetaan Arduino -pohjainen magnetometri, joka tunnistaa magneettikentän käyttämällä kolmea Hall -tehosteanturia. Paikan magneettikenttävektori näytetään pienellä näytöllä isometristä projisointia käyttäen.
Mikä on Arduino?
Arduino on pieni avoimen lähdekoodin käyttäjäystävällinen mikro-ohjain. Siinä on digitaaliset tulo- ja lähtönastat. Siinä on myös analogiset tulonastat, jotka ovat hyödyllisiä antureiden tulojen lukemiseen. Saatavilla on erilaisia Arduino -malleja. Tässä opetusohjelmassa kuvataan joko Arduino Unon tai Arduino MKR1010: n käyttö. Muitakin malleja voidaan kuitenkin käyttää.
Ennen kuin aloitat tämän opetusohjelman, lataa Arduino -kehitysympäristö sekä tietylle mallillesi tarvittavat kirjastot. Kehitysympäristö on saatavilla osoitteessa https://www.arduino.cc/en/main/software ja asennusohjeet ovat saatavilla osoitteessa
Mikä on magneettikenttä?
Kestomagneetit kohdistavat voimia muihin kestomagneetteihin. Virtajohtimet kohdistavat voimaa muihin virtaa johtaviin johtoihin. Kestomagneetit ja virtaa johtavat johdot kohdistavat voimia myös toisiinsa. Tämä voima yksikköä kohden testivirta on magneettikenttä.
Jos mitataan kohteen tilavuus, saadaan yksi skalaariluku. Magneettisuutta kuvaa kuitenkin vektorikenttä, monimutkaisempi määrä. Ensinnäkin se vaihtelee sijainnin mukaan koko tilassa. Esimerkiksi yhden senttimetrin päässä kestomagneetista oleva magneettikenttä on todennäköisesti suurempi kuin kymmenen senttimetrin päässä oleva magneettikenttä.
Seuraavaksi magneettikenttää kussakin avaruuden pisteessä edustaa vektori. Vektorin suuruus edustaa magneettikentän voimakkuutta. Suunta on kohtisuorassa sekä voiman suuntaan että testivirran suuntaan.
Voimme kuvata magneettikentän yhdessä paikassa nuolella. Voimme kuvata magneettikentän koko avaruudessa nuolella eri paikoissa, mahdollisesti erikokoisina ja eri suuntiin. Mukava visualisointi on saatavilla osoitteessa https://www.falstad.com/vector3dm/. Rakentamamme magnetometri näyttää magneettikentän anturien sijainnissa nuolella näytöllä.
Mikä on Hall -efektianturi ja miten se toimii?
Hall -tehosteanturi on pieni, edullinen laite, joka mittaa magneettikentän voimakkuutta tiettyä suuntaa pitkin. Se on valmistettu puolijohteesta, joka on seostettu ylimääräisillä varauksilla. Joidenkin Hall -efektianturien lähtö on analoginen jännite. Muissa Hall -tehosteantureissa on integroitu vertailija ja ne tuottavat digitaalisen lähdön. Muut Hall -tehosteanturit on integroitu suurempiin laitteisiin, jotka mittaavat virtausnopeutta, pyörimisnopeutta tai muita määriä.
Hall -efektin takana oleva fysiikka on tiivistetty Lorentzin voimayhtälöllä. Tämä yhtälö kuvaa liikkuvan varauksen voimaa, joka johtuu ulkoisesta sähkö- ja magneettikentästä.
Alla oleva kuva havainnollistaa Hall -efektiä. Oletetaan, että haluamme mitata magneettikentän voimakkuuden sinisen nuolen suuntaan. Kuten kuvan vasemmassa osassa on esitetty, käytämme virtaa puolijohdekappaleen läpi, joka on kohtisuorassa mitattavan kentän suuntaan. Virta on varausten virta, joten puolijohteessa oleva varaus liikkuu jollakin nopeudella. Tämä varaus tuntee voiman ulkoisen kentän vuoksi, kuten on esitetty kuvan keskiosassa. Varaukset liikkuvat voiman vaikutuksesta ja kerääntyvät puolijohteen reunoille. Varauksia kertyy, kunnes kertyneiden varausten aiheuttama voima tasapainottaa ulkoisen magneettikentän aiheuttaman voiman. Voimme mitata puolijohteen jännitteen kuvan oikeassa osassa esitetyllä tavalla. Mitattu jännite on verrannollinen magneettikentän voimakkuuteen ja se on kohtisuorassa virtaan nähden ja magneettikentän suuntaan.
Mikä on isometrinen projektio?
Jokaisessa avaruuden kohdassa magneettikenttä kuvataan kolmiulotteisella vektorilla. Näyttö on kuitenkin kaksiulotteinen. Voimme projisoida kolmiulotteisen vektorin kaksiulotteiseen tasoon, jotta voimme piirtää sen näytölle. On olemassa useita tapoja saavuttaa tämä, kuten isometrinen projektio, ortografinen projektio tai vino projektio.
Isometrisessä projektiossa x-, y- ja z -akselit ovat 120 asteen päässä toisistaan, ja ne näyttävät yhtä lyhennetyiltä. Lisätietoja isometrisestä projektiosta sekä tarvittavat kaavat löytyvät Wikipedian aiheesta.
Vaihe 1: Kerää tarvikkeita
Arduino ja kaapeli
Arduino on magnetometrin aivot. Nämä ohjeet kuvaavat Arduino Unon tai Arduino MKR1010: n käyttöä. Kummassakin tapauksessa kaapeli tarvitaan sen kytkemiseksi tietokoneeseen.
Vaihtoehto 1: Arduino Uno ja USB AB -kaapeli
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
Vaihtoehto 2: Arduino MKR1010 ja microUSB -kaapeli
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 -näyttö
TFT tarkoittaa ohutta kalvotransistoria. Tämä 1,44 tuuman näyttö sisältää 128 x 128 pikseliä. Se on pieni, kirkas ja värikäs. Se on kiinnitetty katkaisukorttiin. Kuitenkin otsikkotapit tulevat erillään, joten sinun on juotettava ne. (Juotos ja juotin ovat tarvittu.)
www.digikey.com/product-detail/en/adafruit-industries-llc/2088/1528-1345-ND/5356830
- Analogiset Hall Effect -anturit
Tarvitaan kolme Hall -tehosteanturia. Alla oleva linkki on Allegro-osanumerolle A1324LUA-T. Tämän anturin nasta 1 on syöttöjännite, nasta 2 on maadoitettu ja nasta 3 on lähtö. Myös muiden Hall -anturien pitäisi toimia, mutta varmista, että ne ovat analogisia, eivät digitaalisia. Jos käytät toista anturia, tarkista pistoke ja säädä johdot tarvittaessa. (Käytin tosiasiallisesti toisen yrityksen anturia testaustarkoituksiin. Käyttämäni anturi on kuitenkin vanhentunut, ja tämä anturi on sen korvaaja.)
www.digikey.com/product-detail/en/allegro-microsystems-llc/A1324LUA-T/620-1432-ND/2728144
Pieni leipälauta ja lanka
www.digikey.com/product-detail/en/adafruit-industries-llc/239/1528-2143-ND/7244929
Kestomagneetit testausta varten
Jääkaapin magneetit toimivat hyvin.
Vaihe 2: Johdotus
Juotos otsikot näytöllä.
Aseta anturit leipälaudan toiseen päähän ja aseta näyttö ja Arduino vastakkaiseen päähän. Arduinon ja näytön johtojen virta muodostaa magneettikenttiä, joita emme halua, että anturit lukevat. Lisäksi saatamme haluta sijoittaa anturit kestomagneettien lähelle, mikä voi vaikuttaa haitallisesti näytön ja anturin johtojen virtaan. Näistä syistä haluamme anturit kaukana näytöstä ja Arduinosta. Myös näistä syistä tämä magnetometri on pidettävä poissa erittäin voimakkaista magneettikentistä.
Aseta anturit kohtisuoraan toisiinsa nähden, mutta mahdollisimman lähelle toisiaan. Taivuta antureita varovasti saadaksesi ne kohtisuoraan. Jokaisen anturin jokaisen nastan on oltava erillisellä leipälevyn rivillä, jotta se voidaan liittää erikseen.
Johdotus on hieman erilainen MKR1010: n ja Unon välillä kahdesta syystä. Ensinnäkin Arduino ja näyttö kommunikoivat SPI: n kautta. Eri Arduino -malleissa on eri nastat tietyille SPI -linjoille. Toiseksi Unon analogitulot voivat ottaa vastaan jopa 5 V, kun taas MKR1010: n analogiset tulot voivat vastaanottaa vain enintään 3,3 V. Suositeltu syöttöjännite Hall -efekti -antureille on 5 V. Anturilähdöt on kytketty Arduino -analogituloihin, ja ne voivat olla yhtä suuria kuin syöttöjännitteet. Käytä Uno -laitteessa antureille suositeltavaa 5 V: n syöttöä. Käytä MKR1010: lle 3,3 V: tä, jotta Arduinon analoginen tulo ei koskaan näe jännitettä, joka on suurempi kuin se pystyy käsittelemään.
Noudata alla olevia kaavioita ja ohjeita käyttämällesi Arduinolle.
Johdotus Arduino Unon kanssa
Näytössä on 11 nastaa. Yhdistä ne Arduino Unoon seuraavasti. (NC tarkoittaa, ettei ole kytketty.)
- Vin → 5V
- 3.3 → NC
- Gnd → GND
- SCK → 13
- SO → NC
- SI → 11
- TCS → 10
- RST → 9
- D/C → 8
- CCS → NC
- Yksinkertainen → NC
Liitä anturien Vin Arduinon 5 V: n jännitteeseen. Liitä anturin maa Arduinon maahan. Liitä antureiden lähtö Arduinon analogisiin tuloihin A1, A2 ja A3.
Johdotus Arduino MKR1010: llä
Näytössä on 11 nastaa. Yhdistä ne Arduinoon seuraavasti. (NC tarkoittaa, että ei ole kytketty.)
- Vin → 5V
- 3.3 → NC
- Gnd → GND
- SCK → SCK 9
- SO → NC
- SI → MOSI 8
- TCS → 5
- RST → 4
- D/C → 3
- CCS → NC
- Yksinkertainen → NC
Liitä anturien Vin Arduinon Vcc -laitteeseen. Tämä nasta on 3.3V, ei 5V. Liitä anturin maa Arduinon maahan. Liitä antureiden lähtö Arduinon analogisiin tuloihin A1, A2 ja A3.
Vaihe 3: Testaa näyttö
Laitetaan TFT -näyttö toimimaan. Onneksi Adafruitilla on joitain käyttäjäystävällisiä kirjastoja ja erinomainen opetusohjelma heidän kanssaan. Nämä ohjeet noudattavat tarkasti opetusohjelmaa, Avaa Arduinon kehitysympäristö. Valitse Työkalut → Kirjastojen hallinta. Asenna kirjasto Adafruit_GFX, Adafruit_ZeroDMA ja Adafruit_ST7735. Käynnistä Android -kehitysympäristö uudelleen.
Graafisin testi esimerkki sisältyy kirjastoihin. Avaa se. Tiedosto → Esimerkit → Adafruit ST7735 ja ST7789 Library → graphicstest. Valitse 1,44 tuuman näyttökommenttirivi 95 ja kommenttirivi 98.
Alkuperäinen versio:
94 // Käytä tätä alustusohjelmaa, jos käytät 1,8 tuuman TFT -näyttöä:
95 tft.initR (INITR_BLACKTAB); // Init ST7735S -siru, musta välilehti 96 97 // TAI käytä tätä alustusohjelmaa (huomautus), jos käytät 1,44 TFT: 98 //tft.initR (INITR_144GREENTAB); // Init ST7735R -piiri, vihreä välilehti
Oikea versio 1,44 tuuman näytölle:
94 // Käytä tätä alustusohjelmaa, jos käytät 1,8 tuuman TFT -näyttöä:
95 //tft.initR (INIT_BLACKTAB); // Init ST7735S -siru, musta välilehti 96 97 // TAI käytä tätä alustusohjelmaa (huomautus), jos käytät 1,44 TFT: 98 tft.initR (INITR_144GREENTAB); // Init SST35R -piiri, vihreä välilehti
Näyttö kommunikoi SPI: n avulla, ja eri mallit Arduinos käyttävät erilaisia omistettuja nastoja joillekin tietoliikenneyhteyksille. Graafisin testiesimerkki on asetettu toimimaan Uno -nastojen kanssa. Jos käytät MKR1010 -laitetta, lisää seuraavat rivit rivien 80 ja 81 väliin.
Korjaukset MKR1010:
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 kelluva p = 3,1415926;
Tallenna muokattu esimerkki graafisesta testistä. Liitä Arduino tietokoneeseen, jos et ole vielä tehnyt niin. Valitse Työkalut → Hallitus ja Työkalut → Portti ja tarkista, että tietokone löytää Arduinon. Valitse Luonnos → Lataa. Jos esimerkki toimii, näytössä näkyy viivoja, suorakulmioita, tekstiä ja koko esittely. Adafruit -opetusohjelma antaa lisätietoja, jos vianmääritys on tarpeen.
Vaihe 4: Magnetometrin koodi
Lataa liitteenä oleva koodi ja avaa se Arduinon kehitysympäristössä.
Tämä ohjelma käyttää kuutta toimintoa:
Asetukset () alustaa näytön
Loop () sisältää ohjelman pääsilmukan. Se pimittää näytön, piirtää akselit, lukee syötteet ja piirtää nuolen, joka edustaa magneettikenttävektoria. Sen virkistystaajuus on yksi sekunti, ja sitä voidaan muuttaa muuttamalla riviä 127
DrawAxes3d () piirtää ja merkitsee x-, y- ja z -akselit
DrawArrow3d () ottaa syötteen x, y ja z välillä 0 - 1023. Näistä arvoista se laskee nuolen päätepisteet avaruudessa. Seuraavaksi se käyttää isometricxx () - ja isometricyy () -funktioita näytön päätepisteiden laskemiseen. Lopuksi se piirtää nuolen ja tulostaa jännitteet näytön alareunaan
Isometricxx () löytää isometrisen projektion x -koordinaatin. Se ottaa pisteen x-, y- ja z -koordinaatit ja palauttaa vastaavan x -pikselin sijainnin näytöllä
Isometricyy () löytää isometrisen projektion y -koordinaatin. Se ottaa pisteen x-, y- ja z -koordinaatit ja palauttaa vastaavan y -pikselin sijainnin näytöllä
Ennen koodin suorittamista meidän on määritettävä, mitä nastoja käytetään SPI -viestintään näytön kanssa, ja meidän on määritettävä lähdejännite antureille. Jos käytät MKR1010-laitetta, kommentoi rivit 92-96 ja rivi 110. Poista sitten kommentit 85-89 ja rivi 108. Jos käytät Unoa, kommentoi rivit 85-89 ja rivi 108. Poista sitten kommentit 92-96 ja rivi 110.
Lataa koodi, Luonnos → Lataa.
Sinun pitäisi nähdä x-, y- ja z -akselit punaisina. Vihreä nuoli, jonka kärjessä on sininen ympyrä, edustaa magneettikenttävektoria antureissa. Jännitteen lukemat näkyvät vasemmassa alakulmassa. Kun tuot magneetin lähemmäksi antureita, jännitteen lukemien pitäisi muuttua ja nuolen koon kasvaa.
Vaihe 5: Tulevaisuuden työ
Seuraava askel olisi laitteen kalibrointi. Kalibrointi voidaan varmistaa vertaamalla tarkempaan magnetometriin.
Kestomagneetit ovat vuorovaikutuksessa virtaa johtavien johtojen kanssa. Johdot näytön lähellä ja Arduinossa muodostavat magneettikenttiä, jotka voivat vaikuttaa anturin lukemiin. Lisäksi jos tätä laitetta käytetään mittaamiseen lähellä vahvaa kestomagneettia, testattavan laitteen magneettikenttä on vuorovaikutuksessa Arduinon kanssa ja mahdollisesti vahingoittaa sitä ja mahdollisesti vahingoittaa sitä. Suojaus voisi tehdä tästä magnetometristä kestävämmän. Arduino kestää suurempia magneettikenttiä, jos se on suojattu metallirasiassa, ja vähemmän kohinaa syntyy, jos suojatut kaapelit yhdistävät anturit paljaiden johtojen sijasta.
Magneettikenttä on sijainnin funktio, joten se on erilainen kaikissa avaruuden kohdissa. Tämä laite käyttää kolme anturia, joista toinen mittaa magneettikentän x-, y- ja z -komponentin pisteestä. Anturit ovat lähellä toisiaan, mutta eivät yhdessä kohdassa, mikä rajoittaa magnetometrin resoluutiota. Olisi siistiä tallentaa magneettikentän lukemat eri pisteisiin ja näyttää ne sitten nuoliryhmänä vastaavissa paikoissa. Se on kuitenkin toisen päivän projekti.
Viitteet
Tietoja Adafruit Arduino Graphics -kirjastoista
https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/overview
Magneettikentän visualisointi
https://www.falstad.com/vector3dm/
Tietoja Hall -tehosteista ja Hall -tehosteantureista
- https://sensing.honeywell.com/index.php?ci_id=47847
- https://www.allegromicro.com/~/media/Files/Datasheets/A1324-5-6-Datasheet.ashx
Tietoja isometrisestä projektiosta
- https://en.wikipedia.org/wiki/3D_projection
- https://en.wikipedia.org/wiki/Isometric_projection
Suositeltava:
Arduino Nano - Arduino Uno -sovitin: 6 vaihetta (kuvilla)
Arduino Nano - Arduino Uno -sovitin: Arduino Nano on mukava, pieni ja halpa Arduino -perheen jäsen. Se perustuu Atmega328 -siruun, mikä tekee siitä yhtä voimakkaan kuin hänen veljensä Arduino Uno, mutta sen voi saada pienemmällä rahalla. Ebayssa kiinalaiset versiot voivat nyt
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
Pitkä kantama, 1,8 km, Arduino-Arduino Langaton tiedonsiirto HC-12: n kanssa: 6 vaihetta (kuvilla)
Pitkä kantama, 1,8 km, Arduino-Arduino Langaton tiedonsiirto HC-12: n avulla: Tässä ohjeessa opit kommunikoimaan Arduinojen välillä pitkän matkan, jopa 1,8 km: n päässä ulkona. HC-12 on langaton sarjaportti viestintämoduuli, joka on erittäin hyödyllinen, erittäin tehokas ja helppokäyttöinen. Ensin otat
Halvin Arduino -- Pienin Arduino -- Arduino Pro Mini -- Ohjelmointi -- Arduino Neno: 6 vaihetta (kuvilla)
Halvin Arduino || Pienin Arduino || Arduino Pro Mini || Ohjelmointi || Arduino Neno: …………………………. Tilaa YouTube -kanavani saadaksesi lisää videoita ……. Tässä projektissa keskitytään kaikkien aikojen pienimpään ja halvinan arduinoon. Pienin ja halvin arduino on arduino pro mini. Se muistuttaa arduinoa
LED -matriisijoukon ohjaaminen Arduino Unolla (Arduino -käyttöinen robotti): 4 vaihetta (kuvilla)
LED -matriisiohjaimen ohjaaminen Arduino Unolla (Arduino -käyttöinen robottikasvo): Tämä ohje näyttää kuinka hallita 8x8 LED -matriisiryhmää Arduino Unolla. Tätä opasta voidaan käyttää luomaan yksinkertainen (ja suhteellisen halpa näyttö) omille projekteillesi. Tällä tavalla saatat näyttää kirjaimia, numeroita tai mukautettuja animaatioita