Sisällysluettelo:

Arduino -magnetometri: 5 vaihetta (kuvilla)
Arduino -magnetometri: 5 vaihetta (kuvilla)

Video: Arduino -magnetometri: 5 vaihetta (kuvilla)

Video: Arduino -magnetometri: 5 vaihetta (kuvilla)
Video: НЕ ВЫБРОСИЛА СТАРЫЙ ТЮЛЬ И ХОРОШО СЭКОНОМИЛА СЕМЕЙНЫЙ БЮДЖЕТ! 4 КРУТЫЕ ИДЕИ ИЗ ТЮЛЯ! 2024, Marraskuu
Anonim
Arduinon magnetometri
Arduinon magnetometri

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ä.

Kuva
Kuva

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.

Kuva
Kuva

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

    Kuva
    Kuva
  • 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

Johdotus
Johdotus

Juotos otsikot näytöllä.

Kuva
Kuva

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.

Kuva
Kuva

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

Kuva
Kuva

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.

Kuva
Kuva

Johdotus Arduino MKR1010: llä

Kuva
Kuva

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.

Kuva
Kuva

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.

Kuva
Kuva

Vaihe 5: Tulevaisuuden työ

Tuleva työ
Tuleva 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: