Kazalo:
- Korak: Zberite zaloge
- 2. korak: Ožičenje
- 3. korak: Preizkusite zaslon
- 4. korak: Koda magnetometra
- 5. korak: Prihodnje delo
Video: Arduino magnetometer: 5 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Kaj gradimo?
Človek ne more zaznati magnetnih polj, vendar uporabljamo naprave, ki se ves čas opirajo na magnete. Motorji, kompasi, senzorji vrtenja in vetrne turbine na primer za delovanje potrebujejo magnete. Ta vadnica opisuje, kako zgraditi magnetometer na osnovi Arduina, ki zaznava magnetno polje s tremi senzorji Hall učinka. Vektor magnetnega polja na določeni lokaciji je prikazan na majhnem zaslonu z uporabo izometrične projekcije.
Kaj je Arduino?
Arduino je majhen odprtokodni uporabniku prijazen mikrokrmilnik. Ima digitalne vhodne in izhodne zatiče. Ima tudi analogne vhodne zatiče, ki so uporabni za branje vhodov s senzorjev. Na voljo so različni modeli Arduino. Ta vadnica opisuje, kako uporabljati Arduino Uno ali Arduino MKR1010. Lahko pa uporabite tudi druge modele.
Preden začnete s to vadnico, prenesite razvojno okolje Arduino in vse knjižnice, potrebne za vaš model. Razvojno okolje je na voljo na naslovu https://www.arduino.cc/en/main/software, navodila za namestitev pa na naslovu
Kaj je magnetno polje?
Trajni magneti delujejo na druge trajne magnete. Tokovne žice delujejo na druge žice, ki vodijo tok. Trajni magneti in žice za prenos toka delujejo tudi drug na drugega. Ta sila na enoto preskusnega toka je magnetno polje.
Če merimo prostornino predmeta, dobimo eno skalarno število. Magnetizem pa opisuje vektorsko polje, bolj zapletena količina. Prvič, spreminja se glede na položaj v celotnem prostoru. Na primer, magnetno polje en centimeter od stalnega magneta bo verjetno večje od magnetnega polja deset centimetrov stran.
Nato je magnetno polje na vsaki točki vesolja predstavljeno z vektorjem. Velikost vektorja predstavlja jakost magnetnega polja. Smer je pravokotna tako na smer sile kot na smer preskusnega toka.
Magnetno polje na enem mestu si lahko predstavljamo kot puščico. Magnetno polje v vesolju lahko slikamo s puščico na različnih lokacijah, po možnosti različnih velikosti in usmerjenih v različne smeri. Lepa vizualizacija je na voljo na https://www.falstad.com/vector3dm/. Magnetometer, ki ga gradimo, prikazuje magnetno polje na mestu senzorjev kot puščico na zaslonu.
Kaj je Hall -ov senzor in kako deluje?
Hall -ov senzor je majhna, poceni naprava, ki meri jakost magnetnega polja vzdolž določene smeri. Narejen je iz kosa polprevodnika, dopiranega z odvečnimi naboji. Izhod nekaterih senzorjev Hall učinka je analogna napetost. Drugi Hallovi senzorji imajo vgrajen primerjalnik in proizvajajo digitalni izhod. Drugi senzorji Hall učinka so vgrajeni v večje instrumente, ki merijo pretok, hitrost vrtenja ali druge količine.
Fizika za Hallovim učinkom je povzeta z enačbo Lorentzove sile. Ta enačba opisuje silo na premikajoči se naboj zaradi zunanjega električnega in magnetnega polja.
Spodnja slika prikazuje Hallov učinek. Recimo, da želimo izmeriti jakost magnetnega polja v smeri modre puščice. Kot je prikazano na levem delu slike, skozi kos polprevodnika pravokotno na smer polja, ki ga merimo, dovajamo tok. Tok je tok nabojev, zato se naboj v polprevodniku premika z določeno hitrostjo. Ta naboj bo čutil silo zaradi zunanjega polja, kot je prikazano v srednjem delu slike. Naboji se zaradi sile premikajo in nabirajo na robovih polprevodnika. Naboji se kopičijo, dokler sila zaradi nakopičenih nabojev ne uravnoteži sile zaradi zunanjega magnetnega polja. Napetost na polprevodniku lahko izmerimo, kot je prikazano na desnem delu slike. Izmerjena napetost je sorazmerna z jakostjo magnetnega polja in je v smeri, pravokotni na tok in smer magnetnega polja.
Kaj je izometrična projekcija?
Na vsaki točki vesolja je magnetno polje opisano s tridimenzionalnim vektorjem. Vendar je naš zaslon dvodimenzionalen. Tridimenzionalni vektor lahko projiciramo v dvodimenzionalno ravnino, tako da ga lahko narišemo na zaslon. To lahko storite na več načinov, na primer izometrično, ortografsko ali poševno projekcijo.
V izometrični projekciji so osi x, y in z 120 stopinj narazen in izgledajo enako skrajšane. Dodatne informacije o izometrični projekciji in potrebne formule najdete na strani Wikipedije na to temo.
Korak: Zberite zaloge
Arduino in kabel
Arduino so možgani magnetometra. Ta navodila opisujejo, kako uporabljati Arduino Uno ali Arduino MKR1010. V vsakem primeru je za povezavo z računalnikom potreben kabel.
Možnost 1: Arduino Uno in USB AB kabel
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
Možnost 2: Arduino MKR1010 in kabel 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
TFT zaslon
TFT pomeni Thin Film Transistor. Ta 1,44 -palčni zaslon vsebuje 128 x 128 slikovnih pik. Majhen je, svetel in barvit. Priložen je na odklopno ploščo. Vendar pa se zatiči glave ločijo, zato ju morate spajkati. (Spajkalnik in spajkalnik sta potrebno.)
www.digikey.com/product-detail/en/adafruit-industries-llc/2088/1528-1345-ND/5356830
- Analogni senzorji Hallovih učinkov
Potrebni so trije senzorji Hall učinka. Spodnja povezava je za številko dela Allegro A1324LUA-T. Za ta senzor je pin 1 napajalna napetost, pin 2 je ozemljen, pin 3 pa izhod. Morali bi delovati tudi drugi Hallovi senzorji, vendar se prepričajte, da so analogni in ne digitalni. Če uporabljate drug senzor, preverite pinout in po potrebi prilagodite ožičenje. (Pravzaprav sem za namene testiranja uporabil drug senzor istega podjetja. Vendar pa je tisti, ki sem ga uporabil, zastarel in ta senzor je njegova zamenjava.)
www.digikey.com/product-detail/en/allegro-microsystems-llc/A1324LUA-T/620-1432-ND/2728144
Majhna plošča in žica
www.digikey.com/product-detail/en/adafruit-industries-llc/239/1528-2143-ND/7244929
Trajni magneti za testiranje
Magneti za hladilnik bodo dobro delovali.
2. korak: Ožičenje
Spojite glave na zaslonu.
Senzorje postavite na en konec mize, zaslon in Arduino pa na nasprotni konec. Tok v žicah v Arduinu in na zaslonu ustvarja magnetna polja, ki jih senzorji ne želijo prebrati. Poleg tega bi lahko senzorje postavili blizu trajnih magnetov, kar bi lahko negativno vplivalo na tok v žicah zaslona in senzorja. Iz teh razlogov želimo senzorje daleč od zaslona in Arduina. Tudi iz teh razlogov je treba ta magnetometer hraniti ločeno od zelo močnih magnetnih polj.
Senzorje postavite pravokotno drug na drugega, vendar čim bližje drug drugemu. Senzorje nežno upognite, da bodo pravokotni. Vsak zatič vsakega senzorja mora biti v ločeni vrstici mize, da ga je mogoče ločeno priključiti.
Ožičenje se med MKR1010 in Uno nekoliko razlikuje iz dveh razlogov. Prvič, Arduino in zaslon komunicirata s SPI. Različni modeli Arduino imajo različne namenske zatiče za določene linije SPI. Drugič, analogni vhodi Uno lahko sprejmejo do 5 V, medtem ko analogni vhodi MKR1010 lahko sprejmejo le do 3,3 V. Priporočena napajalna napetost za Hall -ove senzorje je 5 V. Izhodi senzorjev so priključeni na analogne vhode Arduino, te pa so lahko tako velike kot napajalne napetosti. Za Uno uporabite priporočeno napajanje 5 V za senzorje. Za MKR1010 uporabite 3,3 V, tako da analogni vhod Arduina nikoli ne vidi napetosti, ki je večja, kot jo lahko prenese.
Sledite spodnjim diagramom in navodilom za Arduino, ki ga uporabljate.
Ožičenje z Arduino Uno
Zaslon ima 11 zatičev. Povežite jih z Arduino Uno na naslednji način. (NC pomeni, da ni povezan.)
- Vin → 5V
- 3,3 → NC
- Gnd → GND
- SCK → 13
- SO → NC
- SI → 11
- TCS → 10
- RST → 9
- D/C → 8
- CCS → NC
- Lite → NC
Priključite Vin senzorjev na 5V Arduina. Ozemljitev senzorja priključite na ozemljitev Arduina. Izhod senzorjev priključite na analogne vhode A1, A2 in A3 Arduina.
Ožičenje z Arduino MKR1010
Zaslon ima 11 zatičev. Povežite jih z Arduinom na naslednji način. (NC pomeni, da ni povezan.)
- Vin → 5V
- 3,3 → NC
- Gnd → GND
- SCK → SCK 9
- SO → NC
- SI → MOSI 8
- TCS → 5
- RST → 4
- D/C → 3
- CCS → NC
- Lite → NC
Priključite Vin senzorjev na Vcc Arduina. Ta pin je pri 3.3V, ne 5V. Ozemljitev senzorja priključite na ozemljitev Arduina. Izhod senzorjev priključite na analogne vhode A1, A2 in A3 Arduina.
3. korak: Preizkusite zaslon
Začnimo delovati z zaslonom TFT. Na srečo ima Adafruit nekaj uporabnikom prijaznih knjižnic in odlično vadbo. Ta navodila natančno sledijo vadnici, Odprite razvojno okolje Arduino. Pojdite v Orodja → Upravljanje knjižnic. Namestite knjižnice Adafruit_GFX, Adafruit_ZeroDMA in Adafruit_ST7735. Znova zaženite razvojno okolje Android.
Primer grafičnega testa je vključen v knjižnice. Odpri. Datoteka → Primeri → Knjižnica Adafruit ST7735 in ST7789 → graphicstest. Če želite izbrati 1,44 -palčni zaslon za komentar, vrstico 95 in vrstico za komentarje 98.
Prvotna različica:
94 // Uporabite ta inicializator, če uporabljate 1,8 -palčni zaslon TFT:
95 tft.initR (INITR_BLACKTAB); // Init ST7735S čip, črni zavihek 96 97 // ALI uporabite ta inicializator (razkomentiraj), če uporabljate 1,44 TFT: 98 //tft.initR(INITR_144GREENTAB); // čip Init ST7735R, zeleni zavihek
Pravilna različica za 1,44 -palčni zaslon:
94 // Uporabite ta inicializator, če uporabljate 1,8 -palčni zaslon TFT:
95 //tft.initR(INIT_BLACKTAB); // čip Init ST7735S, črni zavihek 96 97 // ALI uporabite ta inicializator (razkomentiraj), če uporabljate 1,44 TFT: 98 tft.initR (INITR_144GREENTAB); // čip Init SST35R, zeleni zavihek
Zaslon komunicira s SPI, različni modeli Arduinos pa uporabljajo različne namenske zatiče za nekatere komunikacijske linije. Primer grafičnega testa je nastavljen za delo z zatiči Uno. Če uporabljate MKR1010, med vrstice 80 in 81 dodajte naslednje vrstice.
Popravki za 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_SCRK), TFT_SCLK; 81 plovec p = 3,1415926;
Shranite primer spremenjenega grafičnega testa. Arduino priključite v računalnik, če tega še niste storili. Pojdite v Orodja → Kartica in orodja → Vrata, da preverite, ali računalnik lahko najde Arduino. Pojdite na Skica → Naloži. Če primer deluje, se na zaslonu prikažejo črte, pravokotniki, besedilo in celotna predstavitev. Vadnica Adafruit ponuja več podrobnosti, če je potrebno odpravljanje težav.
4. korak: Koda magnetometra
Prenesite priloženo kodo in jo odprite v razvojnem okolju Arduino.
Ta program uporablja šest funkcij:
Setup () inicializira prikaz
Loop () vsebuje glavno zanko programa. Zatemni zaslon, nariše osi, prebere vnose in nariše puščico, ki predstavlja vektor magnetnega polja. Ima hitrost osveževanja ene sekunde, ki jo lahko spremenite s spremembo vrstice 127
DrawAxes3d () nariše in označi osi x, y in z
DrawArrow3d () sprejme vnos x, y in z v razponu od 0 do 1023. Iz teh vrednosti izračuna končne točke puščice v prostoru. Nato za izračun končnih točk na zaslonu uporabi funkciji isometricxx () in isometricyy (). Nazadnje nariše puščico in natisne napetosti na dnu zaslona
Isometricxx () najde koordinato x izometrične projekcije. Vzame koordinate x, y in z točke in vrne ustrezno mesto x slikovnih pik na zaslonu
Isometricyy () najde koordinato y izometrične projekcije. Vzame koordinate x, y in z točke in vrne ustrezno mesto slikovnih pik y na zaslonu
Pred zagonom kode moramo določiti, katere nožice uporabiti za komunikacijo SPI z zaslonom, določiti pa moramo tudi izvorno napetost senzorjev. Če uporabljate MKR1010, komentirajte vrstice 92-96 in vrstico 110. Nato razkomentirajte vrstice 85-89 in vrstico 108. Če uporabljate Uno, komentirajte vrstice 85-89 in 108.. Nato odkomentirajte vrstici 92-96 in 110.
Naložite kodo, Skica → Naloži.
Osi x, y in z bi morali videti rdeče. Zelena puščica z modrim krogom za konico predstavlja vektor magnetnega polja pri senzorjih. Odčitki napetosti so prikazani v spodnjem levem kotu. Ko približate magnet senzorjem, bi se morali odčitki napetosti spremeniti, velikost puščice pa bi morala naraščati.
5. korak: Prihodnje delo
Naslednji korak bi bil umerjanje naprave. Podatkovni list senzorja vsebuje informacije o tem, kako pretvoriti vrednosti surove napetosti senzorja v jakost magnetnega polja. Umerjanje je mogoče preveriti s primerjavo z natančnejšim magnetometrom.
Trajni magneti delujejo z žicami za prenos toka. Žice v bližini zaslona in v Arduinu ustvarjajo magnetna polja, ki lahko vplivajo na odčitke senzorjev. Poleg tega, če se ta naprava uporablja za merjenje v bližini močnega trajnega magneta, bo magnetno polje iz preskušane naprave medsebojno delovalo, vnašalo hrup in morda poškodovalo Arduino in zaslon. Zaščita bi lahko naredila ta magnetometer robustnejši. Arduino lahko prenese večja magnetna polja, če je zaščiten v kovinski škatli, manj hrupa pa bo nastalo, če oklopljeni kabli povežejo senzorje namesto golih žic.
Magnetno polje je funkcija položaja, zato se v vsaki točki prostora razlikuje. Ta naprava uporablja tri senzorje, enega za merjenje x, y in z komponente magnetnega polja na točki. Tipala so blizu drug drugemu, vendar ne na eni točki, kar omejuje ločljivost magnetometra. Odlično bi bilo shraniti odčitke magnetnega polja na različnih točkah in jih nato prikazati v obliki puščic na ustreznih mestih. Vendar je to projekt za drug dan.
Reference
Informacije o grafičnih knjižnicah Adafruit Arduino
https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/overview
Vizualizacija magnetnega polja
https://www.falstad.com/vector3dm/
Informacije o Hallovih učinkih in Hall -ovih senzorjih
- https://sensing.honeywell.com/index.php?ci_id=47847
- https://www.allegromicro.com/~/media/Files/Datasheets/A1324-5-6-Datasheet.ashx
Podatki o izometrični projekciji
- https://en.wikipedia.org/wiki/3D_projection
- https://en.wikipedia.org/wiki/Isometric_projection
Priporočena:
Kako: Namestitev Raspberry PI 4 Headless (VNC) z Rpi-sliko in slikami: 7 korakov (s slikami)
Kako: Namestitev Raspberry PI 4 Headless (VNC) z Rpi-imagerjem in slikami: Ta Rapberry PI nameravam uporabiti v kopici zabavnih projektov v svojem blogu. Vabljeni, da to preverite. Želel sem se vrniti v uporabo Raspberry PI, vendar na novi lokaciji nisem imel tipkovnice ali miške. Nekaj časa je minilo, odkar sem nastavil malino
Števec korakov - mikro: Bit: 12 korakov (s slikami)
Števec korakov - Micro: Bit: Ta projekt bo števec korakov. Za merjenje korakov bomo uporabili senzor pospeška, ki je vgrajen v Micro: Bit. Vsakič, ko se Micro: Bit trese, bomo štetju dodali 2 in ga prikazali na zaslonu
Prenosni magnetometer: 7 korakov (s slikami)
Prenosni magnetometer: Magnetometer, včasih imenovan tudi Gaussmeter, meri jakost magnetnega polja. To je bistveno orodje za preizkušanje trdnosti trajnih magnetov in elektromagnetov ter za razumevanje oblike polja netrivialnih konfiguracij magnetov
Kako razstaviti računalnik z enostavnimi koraki in slikami: 13 korakov (s slikami)
Kako z enostavnimi koraki in slikami razstaviti računalnik: To navodilo za razstavljanje računalnika. Večina osnovnih komponent je modularnih in jih je enostavno odstraniti. Vendar je pomembno, da ste glede tega organizirani. To vam bo pomagalo preprečiti izgubo delov in tudi pri ponovni montaži
Najcenejši Arduino -- Najmanjši Arduino -- Arduino Pro Mini -- Programiranje -- Arduino Neno: 6 korakov (s slikami)
Najcenejši Arduino || Najmanjši Arduino || Arduino Pro Mini || Programiranje || Arduino Neno: …………………………. PRIJAVITE SE na moj YouTube kanal za več videov ……. .Ta projekt govori o tem, kako povezati najmanjši in najcenejši arduino doslej. Najmanjši in najcenejši arduino je arduino pro mini. Podobno je arduinu