Satura rādītājs:
- 1. darbība: apkopojiet materiālus
- 2. solis: elektroinstalācija
- 3. darbība: pārbaudiet displeju
- 4. solis: magnetometra kods
- 5. solis. Nākotnes darbs
Video: Arduino magnetometrs: 5 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:55
Ko mēs būvējam?
Cilvēki nevar noteikt magnētiskos laukus, bet mēs izmantojam ierīces, kas visu laiku paļaujas uz magnētiem. Piemēram, motoru, kompasu, rotācijas sensoru un vēja turbīnu darbībai nepieciešami magnēti. Šajā apmācībā ir aprakstīts, kā izveidot uz Arduino balstītu magnetometru, kas uztver magnētisko lauku, izmantojot trīs Hall efekta sensorus. Magnētiskā lauka vektors noteiktā vietā tiek parādīts nelielā ekrānā, izmantojot izometrisko projekciju.
Kas ir Arduino?
Arduino ir mazs atvērtā pirmkoda lietotājam draudzīgs mikrokontrolleris. Tam ir digitālās ieejas un izejas tapas. Tam ir arī analogās ieejas tapas, kas noder sensoru ievades nolasīšanai. Ir pieejami dažādi Arduino modeļi. Šajā apmācībā ir aprakstīts, kā lietot Arduino Uno vai Arduino MKR1010. Tomēr var izmantot arī citus modeļus.
Pirms sākat šo apmācību, lejupielādējiet Arduino izstrādes vidi, kā arī visas jūsu konkrētajam modelim nepieciešamās bibliotēkas. Izstrādes vide ir pieejama vietnē https://www.arduino.cc/en/main/software, un instalēšanas instrukcijas ir pieejamas vietnē
Kas ir magnētiskais lauks?
Pastāvīgie magnēti iedarbojas uz citiem pastāvīgajiem magnētiem. Strāvas vadi iedarbina spēkus uz citiem strāvas vadiem. Pastāvīgie magnēti un strāvas vadi iedarbojas arī viens pret otru. Šis spēks uz testa strāvas vienību ir magnētiskais lauks.
Ja mēs izmērām objekta tilpumu, mēs iegūstam vienu skalāru skaitli. Tomēr magnētismu raksturo vektoru lauks, sarežģītāks daudzums. Pirmkārt, tas mainās atkarībā no atrašanās vietas visā telpā. Piemēram, magnētiskais lauks vienu centimetru no pastāvīgā magnēta, visticamāk, būs lielāks nekā magnētiskais lauks desmit centimetru attālumā.
Tālāk magnētisko lauku katrā telpas punktā attēlo vektors. Vektora lielums atspoguļo magnētiskā lauka stiprumu. Virziens ir perpendikulārs gan spēka virzienam, gan testa strāvas virzienam.
Mēs varam attēlot magnētisko lauku vienā vietā kā bultiņu. Mēs varam attēlot magnētisko lauku visā telpā ar bultu masīvu dažādās vietās, iespējams, dažāda lieluma un vērstus dažādos virzienos. Jauka vizualizācija ir pieejama vietnē https://www.falstad.com/vector3dm/. Mūsu veidotais magnetometrs parāda magnētisko lauku sensoru vietā kā bultiņa displejā.
Kas ir Halles efekta sensors un kā tas darbojas?
Halles efekta sensors ir maza, lēta ierīce, kas mēra magnētiskā lauka stiprumu noteiktā virzienā. Tas ir izgatavots no pusvadītāju gabala, kas leģēts ar pārmērīgiem lādiņiem. Dažu Hall efekta sensoru izeja ir analogs spriegums. Citiem Hall efekta sensoriem ir integrēts salīdzinātājs, un tie rada digitālu izeju. Citi Hall efekta sensori ir integrēti lielākos instrumentos, kas mēra plūsmas ātrumu, rotācijas ātrumu vai citus daudzumus.
Halles efekta fiziku apkopo Lorenca spēka vienādojums. Šis vienādojums apraksta kustīgā lādiņa spēku ārējā elektriskā un magnētiskā lauka ietekmē.
Zemāk redzamais attēls ilustrē Halles efektu. Pieņemsim, ka vēlamies izmērīt magnētiskā lauka stiprumu zilās bultiņas virzienā. Kā parādīts attēla kreisajā daļā, mēs pielietojam strāvu caur pusvadītāja gabalu, kas ir perpendikulārs mērāmā lauka virzienam. Strāva ir lādiņu plūsma, tāpēc lādiņš pusvadītājā pārvietojas ar zināmu ātrumu. Šis lādiņš jutīs spēku ārējā lauka ietekmē, kā parādīts attēla vidusdaļā. Spēka ietekmē lādiņi pārvietosies un uzkrāsies pusvadītāja malās. Lādiņi uzkrājas, līdz uzkrāto lādiņu radītais spēks līdzsvaro ārējā magnētiskā lauka radīto spēku. Mēs varam izmērīt spriegumu pusvadītājā, kā parādīts attēla labajā daļā. Izmērītais spriegums ir proporcionāls magnētiskā lauka stiprumam, un tas ir virzienā, kas ir perpendikulārs strāvai un magnētiskā lauka virzienam.
Kas ir izometriskā projekcija?
Katrā telpas punktā magnētisko lauku raksturo trīsdimensiju vektors. Tomēr mūsu displejs ir divdimensiju. Mēs varam projicēt trīsdimensiju vektoru divdimensiju plaknē, lai mēs varētu to uzzīmēt uz ekrāna. Ir vairāki veidi, kā to izdarīt, piemēram, izometriska projekcija, ortogrāfiska projekcija vai slīpa projekcija.
Izometriskajā projekcijā x, y un z asis atrodas 120 grādu attālumā viena no otras, un tās izskatās vienādi saīsinātas. Papildu informāciju par izometrisko projekciju, kā arī nepieciešamās formulas var atrast Vikipēdijas lapā par šo tēmu.
1. darbība: apkopojiet materiālus
Arduino un kabelis
Arduino ir magnetometra smadzenes. Šajos norādījumos ir aprakstīts, kā lietot Arduino Uno vai Arduino MKR1010. Jebkurā gadījumā, lai to savienotu ar datoru, ir nepieciešams kabelis.
1. iespēja: Arduino Uno un USB AB kabelis
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
2. iespēja: Arduino MKR1010 un microUSB kabelis
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 displejs
TFT nozīmē plānas plēves tranzistors. Šis 1,44 collu displejs satur 128 x 128 pikseļus. Tas ir mazs, spilgts un krāsains. Tas ir piestiprināts pie sadalīšanas paneļa. Tomēr galvenes tapas ir atsevišķi, tāpēc jums tās ir jālodē. (Lodēt un lodāmurs ir nepieciešams.)
www.digikey.com/product-detail/en/adafruit-industries-llc/2088/1528-1345-ND/5356830
- Analogie zāles efekta sensori
Nepieciešami trīs Halles efekta sensori. Zemāk esošā saite attiecas uz Allegro daļas numuru A1324LUA-T. Šim sensoram 1. tapa ir barošanas spriegums, 2. tapa ir iezemēta, un 3. tapa ir izeja. Arī citiem Hall sensoriem vajadzētu darboties, taču pārliecinieties, vai tie ir analogie, nevis digitālie. Ja izmantojat citu sensoru, pārbaudiet kontaktu un, ja nepieciešams, noregulējiet vadu. (Es faktiski testēšanai izmantoju citu sensoru no tā paša uzņēmuma. Tomēr tas, ko izmantoju, ir novecojis, un šis sensors ir tā nomaiņa.)
www.digikey.com/product-detail/en/allegro-microsystems-llc/A1324LUA-T/620-1432-ND/2728144
Mazs maizes dēlis un stieple
www.digikey.com/product-detail/en/adafruit-industries-llc/239/1528-2143-ND/7244929
Pastāvīgie magnēti testēšanai
Ledusskapja magnēti darbosies labi.
2. solis: elektroinstalācija
Lodējiet galvenes displejā.
Novietojiet sensorus maizes dēļa vienā galā un displeju un Arduino pretējā galā. Strāva vados Arduino un displejā rada magnētiskos laukus, kurus mēs nevēlamies, lai sensori nolasītu. Turklāt, iespējams, vēlēsimies novietot sensorus pastāvīgo magnētu tuvumā, kas var nelabvēlīgi ietekmēt strāvu displeja un sensora vados. Šo iemeslu dēļ mēs vēlamies, lai sensori būtu tālu no displeja un Arduino. Arī šo iemeslu dēļ šis magnetometrs jāglabā prom no ļoti spēcīgiem magnētiskajiem laukiem.
Novietojiet sensorus perpendikulāri viens otram, bet pēc iespējas tuvāk viens otram. Viegli salieciet sensorus, lai tie būtu perpendikulāri. Katram sensora tapam jābūt atsevišķā maizes dēļa rindā, lai to varētu atsevišķi savienot.
Elektroinstalācija nedaudz atšķiras starp MKR1010 un Uno divu iemeslu dēļ. Pirmkārt, Arduino un displejs sazinās, izmantojot SPI. Dažādiem Arduino modeļiem ir atšķirīgas tapas noteiktām SPI līnijām. Otrkārt, Uno analogās ieejas var pieņemt līdz 5 V, savukārt MKR1010 analogās ieejas var pieņemt tikai līdz 3,3 V. Ieteicamais Hall efekta sensoru barošanas spriegums ir 5 V. Sensora izejas ir savienotas ar Arduino analogo ieeju, un tie var būt tik lieli kā barošanas spriegumi. Uno ierīcēm izmantojiet ieteicamo 5 V barošanu sensoriem. Lai izmantotu MKR1010, izmantojiet 3,3 V, lai Arduino analogā ieeja nekad neredzētu spriegumu, kas ir lielāks nekā tas spēj izturēt.
Izpildiet tālāk norādītās diagrammas un norādījumus par jūsu izmantoto Arduino.
Elektroinstalācija ar Arduino Uno
Displejam ir 11 tapas. Savienojiet tos ar Arduino Uno šādi. (NC nozīmē, ka nav pievienots.)
- Vin → 5V
- 3.3 → NC
- Gnd → GND
- SCK → 13
- SO → NC
- SI → 11
- TKS → 10
- RST → 9
- D/C → 8
- CCS → NC
- Vienkāršs → NC
Savienojiet sensoru Vin ar Arduino 5V. Savienojiet sensora zemi ar Arduino zemi. Savienojiet sensoru izeju ar Arduino analogo ieeju A1, A2 un A3.
Elektroinstalācija ar Arduino MKR1010
Displejam ir 11 tapas. Savienojiet tos ar Arduino šādi. (NC nozīmē, ka nav pievienots.)
- Vin → 5V
- 3.3 → NC
- Gnd → GND
- SCK → SCK 9
- SO → NC
- SI → MOSI 8
- TKS → 5
- RST → 4
- D/C → 3
- CCS → NC
- Vienkāršs → NC
Savienojiet sensoru Vinu ar Arduino Vcc. Šī tapa ir pie 3.3V, nevis 5V. Savienojiet sensora zemi ar Arduino zemi. Savienojiet sensoru izeju ar Arduino analogo ieeju A1, A2 un A3.
3. darbība: pārbaudiet displeju
Ļaujiet TFT displejam darboties. Par laimi, Adafruit ir dažas lietotājam draudzīgas bibliotēkas un lieliska apmācība. Šie norādījumi rūpīgi seko apmācībai, Atveriet Arduino izstrādes vidi. Atveriet Rīki → Pārvaldīt bibliotēkas. Instalējiet bibliotēkas Adafruit_GFX, Adafruit_ZeroDMA un Adafruit_ST7735. Restartējiet Android izstrādes vidi.
Grafiskā testa piemērs ir iekļauts bibliotēkās. Atver to. Fails → Piemēri → Adafruit ST7735 un ST7789 bibliotēka → graphicstest. Lai izvēlētos 1,44 collu displeja komentāru 95. rindu un 98.
Oriģinālā versija:
94 // Izmantojiet šo inicializētāju, ja izmantojat 1,8 collu TFT ekrānu:
95 tft.initR (INITR_BLACKTAB); // Init ST7735S mikroshēma, melna cilne 96 97 // VAI izmantojiet šo inicializatoru (komentārs), ja izmantojat 1,44 collu TFT: 98 //tft.initR (INITR_144GREENTAB); // Init ST7735R mikroshēma, zaļa cilne
Pareiza versija 1,44 collu displejam:
94 // Izmantojiet šo inicializētāju, ja izmantojat 1,8 collu TFT ekrānu:
95 //tft.initR (INIT_BLACKTAB); // Init ST7735S mikroshēma, melna cilne 96 97 // VAI izmantojiet šo inicializētāju (bez komentāriem), ja izmantojat 1,44 collu TFT: 98 tft.initR (INITR_144GREENTAB); // Init SST35R mikroshēma, zaļa cilne
Displejs sazinās, izmantojot SPI, un dažādi Arduinos modeļi dažām sakaru līnijām izmanto dažādas speciālas tapas. Grafiskā testa piemērs ir iestatīts darbam ar Uno tapām. Ja izmantojat MKR1010, pievienojiet šādas rindiņas starp 80. un 81. rindu.
Labojumi 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 pludiņš p = 3,1415926;
Saglabājiet modificētā grafiskā testa piemēru. Pievienojiet Arduino datoram, ja vēl neesat to izdarījis. Atveriet Rīki → Padome un Rīki → Port, lai pārbaudītu, vai dators var atrast Arduino. Dodieties uz Skice → Augšupielādēt. Ja piemērs darbojas, displejā būs redzamas līnijas, taisnstūri, teksts un visa demonstrācija. Adafruit apmācība sniedz sīkāku informāciju, ja ir nepieciešama problēmu novēršana.
4. solis: magnetometra kods
Lejupielādējiet pievienoto kodu un atveriet to Arduino izstrādes vidē.
Šī programma izmanto sešas funkcijas:
Iestatīšana () inicializē displeju
Loop () satur programmas galveno cilpu. Tas aptumšo ekrānu, uzzīmē asis, nolasa ievades datus un uzzīmē bultiņu, kas attēlo magnētiskā lauka vektoru. Tā atsvaidzes intensitāte ir viena sekunde, ko var mainīt, mainot 127. rindu
DrawAxes3d () zīmē un apzīmē x, y un z asis
DrawArrow3d () ievada x, y un z ievadi diapazonā no 0 līdz 1023. No šīm vērtībām tā aprēķina bultiņas beigu punktus telpā. Tālāk tā izmanto funkcijas isometricxx () un isometricyy (), lai aprēķinātu ekrāna beigu punktus. Visbeidzot, tas uzzīmē bultiņu un izdrukā spriegumus ekrāna apakšā
Isometricxx () atrod izometriskās projekcijas x koordinātu. Tas ņem punkta x, y un z koordinātas un atgriež atbilstošo x pikseļa atrašanās vietu ekrānā
Isometricyy () atrod izometriskās projekcijas y koordinātu. Tas ņem punkta x, y un z koordinātas un atgriež atbilstošo y pikseļa atrašanās vietu ekrānā
Pirms koda palaišanas mums jānorāda, kuras tapas izmantot SPI komunikācijai ar displeju, un jānorāda sensoru avota spriegums. Ja izmantojat MKR1010, komentējiet 92.-96. Rindu, kā arī 110. rindiņu. Pēc tam atceliet 85.-89. Rindu, kā arī 108. rindiņu. Ja izmantojat Uno, komentējiet 85.-89. Rindu, kā arī 108. rindiņu.. Pēc tam atceliet 92. – 96. Rindu, kā arī 110. rindu.
Augšupielādējiet kodu, Skice → Augšupielādēt.
Jums vajadzētu redzēt x, y un z asis sarkanā krāsā. Zaļa bultiņa ar zilu apli uzgalim attēlo magnētiskā lauka vektoru pie sensoriem. Sprieguma rādījumi tiek parādīti apakšējā kreisajā stūrī. Pievēršot magnētu tuvāk sensoriem, vajadzētu mainīties sprieguma rādījumiem un palielināties bultiņas izmēram.
5. solis. Nākotnes darbs
Nākamais solis būtu ierīces kalibrēšana. Sensora datu lapa sniedz informāciju par to, kā pārveidot sensora sprieguma vērtības magnētiskā lauka stiprumā. Kalibrēšanu var pārbaudīt, salīdzinot ar precīzāku magnetometru.
Pastāvīgie magnēti mijiedarbojas ar strāvas vadiem. Vadi displeja tuvumā un Arduino rada magnētiskos laukus, kas var ietekmēt sensora rādījumus. Turklāt, ja šo ierīci izmanto mērīšanai spēcīga pastāvīgā magnēta tuvumā, pārbaudāmās ierīces magnētiskais lauks mijiedarbosies ar Arduino un displeju, radīs troksni un, iespējams, sabojās. Aizsardzība varētu padarīt šo magnetometru izturīgāku. Arduino var izturēt lielākus magnētiskos laukus, ja tas ir ekranēts metāla kastē, un mazāk trokšņa tiks radīts, ja ekranēti kabeļi savienos sensorus, nevis tukšus vadus.
Magnētiskais lauks ir stāvokļa funkcija, tāpēc katrā telpas punktā tas ir atšķirīgs. Šī ierīce izmanto trīs sensorus, vienu, lai izmērītu magnētiskā lauka x, y un z komponentu kādā punktā. Sensori atrodas tuvu viens otram, bet ne vienā punktā, un tas ierobežo magnetometra izšķirtspēju. Būtu forši saglabāt magnētiskā lauka rādījumus dažādos punktos, pēc tam parādīt tos kā bultu masīvu attiecīgajās vietās. Tomēr tas ir projekts citai dienai.
Atsauces
Informācija par Adafruit Arduino grafikas bibliotēkām
https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/overview
Magnētiskā lauka vizualizācija
https://www.falstad.com/vector3dm/
Informācija par Halles efektu un Halles efekta sensoriem
- https://sensing.honeywell.com/index.php?ci_id=47847
- https://www.allegromicro.com/~/media/Files/Datasheets/A1324-5-6-Datasheet.ashx
Informācija par izometrisko projekciju
- https://en.wikipedia.org/wiki/3D_projection
- https://en.wikipedia.org/wiki/Isometric_projection
Ieteicams:
Kā: Raspberry PI 4 bez galvas (VNC) instalēšana ar RPI attēlu un attēliem: 7 soļi (ar attēliem)
Kā: Raspberry PI 4 bez galvas (VNC) instalēšana ar Rpi-imager un Pictures: Es plānoju izmantot šo Rapsberry PI daudzos jautros projektos savā emuārā. Jūtieties brīvi to pārbaudīt. Es gribēju atkal izmantot savu aveņu PI, bet manā jaunajā vietā nebija tastatūras vai peles. Pagāja laiks, kopš es izveidoju aveņu
Arduino Halloween Edition - zombiju uznirstošais ekrāns (soļi ar attēliem): 6 soļi
Arduino Helovīna izdevums - zombiju uznirstošais ekrāns (soļi ar attēliem): Vai vēlaties Helovīnā nobiedēt savus draugus un radīt kliedzošu troksni? Vai arī vienkārši gribi uztaisīt labu palaidnību? Šis zombiju uznirstošais ekrāns to var izdarīt! Šajā pamācībā es iemācīšu jums, kā viegli izveidot izlecošus zombijus, izmantojot Arduino. HC-SR0
Pārnēsājams magnetometrs: 7 soļi (ar attēliem)
Pārnēsājams magnetometrs: magnetometrs, dažreiz saukts arī par Gaussmetru, mēra magnētiskā lauka stiprumu. Tas ir būtisks instruments, lai pārbaudītu pastāvīgo magnētu un elektromagnētu izturību un izprastu netriviālo magnētu konfigurāciju lauka formu
Lētākais Arduino -- Mazākais Arduino -- Arduino Pro Mini -- Programmēšana -- Arduino Neno: 6 soļi (ar attēliem)
Lētākais Arduino || Mazākais Arduino || Arduino Pro Mini || Programmēšana || Arduino Neno: …………………………. Lūdzu, abonējiet manu YouTube kanālu, lai iegūtu vairāk videoklipu ……. Šis projekts ir par to, kā sasaistīt mazāko un lētāko arduino. Mazākais un lētākais arduino ir arduino pro mini. Tas ir līdzīgs arduino
Kamera atvieglotiem laika intervāla attēliem: 22 soļi (ar attēliem)
Kamera atvieglotiem laika intervāla attēliem: es pārbaudīju vienu no citām instrukcijām par laika nobīdes filmu veidošanu. Viņš diezgan labi aptvēra filmas daļu. Viņš pastāstīja par bezmaksas programmatūru, kuru varat lejupielādēt, lai izveidotu filmas. Es sev teicu: domāju, ka redzēšu, vai varu