Obsah:
- Krok 1: Shromážděte zásoby
- Krok 2: Zapojení
- Krok 3: Otestujte displej
- Krok 4: Kód magnetometru
- Krok 5: Budoucí práce
Video: Magnetometr Arduino: 5 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Co stavíme?
Lidé nemohou detekovat magnetická pole, ale my používáme zařízení, která se na magnety neustále spoléhají. Například motory, kompasy, rotační senzory a větrné turbíny vyžadují k provozu magnety. Tento tutoriál popisuje, jak vytvořit magnetometr na bázi Arduina, který snímá magnetické pole pomocí tří senzorů s Hallovým efektem. Vektor magnetického pole v místě je zobrazen na malé obrazovce pomocí izometrické projekce.
Co je to Arduino?
Arduino je malý uživatelsky přívětivý mikrokontrolér s otevřeným zdrojovým kódem. Má digitální vstupní a výstupní piny. Má také analogové vstupní kolíky, které jsou užitečné pro čtení vstupu ze senzorů. K dispozici jsou různé modely Arduino. Tento tutoriál popisuje, jak používat Arduino Uno nebo Arduino MKR1010. Lze však použít i jiné modely.
Než začnete s tímto výukovým programem, stáhněte si vývojové prostředí Arduino a také všechny knihovny potřebné pro váš konkrétní model. Vývojové prostředí je k dispozici na adrese https://www.arduino.cc/en/main/software a pokyny k instalaci jsou k dispozici na
Co je to magnetické pole?
Permanentní magnety vyvíjejí síly na jiné permanentní magnety. Proudové vodiče vyvíjejí síly na jiné proudové vodiče. Permanentní magnety a vodiče přenášející proud působí na sebe také silou. Tato síla na jednotku testovacího proudu je magnetické pole.
Pokud změříme objem objektu, dostaneme jedno skalární číslo. Magnetismus je však popsán vektorovým polem, komplikovanější veličinou. Za prvé se mění s polohou v celém prostoru. Například magnetické pole jeden centimetr od permanentního magnetu bude pravděpodobně větší než magnetické pole vzdálené deset centimetrů.
Dále je magnetické pole v každém bodě prostoru reprezentováno vektorem. Velikost vektoru představuje sílu magnetického pole. Směr je kolmý jak na směr síly, tak na směr zkušebního proudu.
Magnetické pole na jednom místě si můžeme představit jako šipku. Magnetické pole v celém prostoru si můžeme představit pomocí řady šipek na různých místech, případně různých velikostí a ukazujících různými směry. Pěkná vizualizace je k dispozici na https://www.falstad.com/vector3dm/. Magnetometr, který stavíme, zobrazuje magnetické pole v místě senzorů jako šipku na displeji.
Co je snímač Hallova jevu a jak funguje?
Senzor Hallova jevu je malé, levné zařízení, které měří sílu magnetického pole v určitém směru. Je vyroben z kusu polovodiče dopovaného přebytečnými náboji. Výstupem některých snímačů s Hallovým efektem je analogové napětí. Ostatní senzory s Hallovým efektem mají integrovaný komparátor a produkují digitální výstup. Další senzory s Hallovým efektem jsou integrovány do větších přístrojů, které měří průtok, rychlost otáčení nebo jiné veličiny.
Fyzika za Hallovým efektem je shrnuta v Lorentzově silové rovnici. Tato rovnice popisuje sílu na pohybující se náboj v důsledku vnějšího elektrického a magnetického pole.
Níže uvedený obrázek ilustruje Hallův efekt. Předpokládejme, že chceme změřit sílu magnetického pole ve směru modré šipky. Jak je znázorněno na levé části obrázku, aplikujeme proud kusem polovodiče kolmo na směr měřeného pole. Proud je tok nábojů, takže náboj v polovodiči se pohybuje určitou rychlostí. Tento náboj pocítí sílu způsobenou vnějším polem, jak ukazuje střední část obrázku. Náboje se budou vlivem síly pohybovat a hromadí se na hranách polovodiče. Náboje se hromadí, dokud síla způsobená nahromaděnými náboji nevyrovná sílu způsobenou vnějším magnetickým polem. Můžeme změřit napětí na polovodiči, jak ukazuje pravá část obrázku. Naměřené napětí je úměrné síle magnetického pole a je ve směru kolmém na proud a směru magnetického pole.
Co je to izometrická projekce?
V každém bodě prostoru je magnetické pole popsáno trojrozměrným vektorem. Náš displej je však dvourozměrný. Trojrozměrný vektor můžeme promítnout do dvourozměrné roviny, abychom jej mohli nakreslit na obrazovku. Existuje několik způsobů, jak toho dosáhnout, například izometrická projekce, ortografická projekce nebo šikmá projekce.
V izometrické projekci jsou osy x, y a z od sebe vzdáleny 120 stupňů a vypadají stejně zkráceny. Další informace o izometrické projekci a potřebné vzorce najdete na stránce Wikipedie k tomuto tématu.
Krok 1: Shromážděte zásoby
Arduino a kabel
Arduino je mozkem magnetometru. Tyto pokyny popisují, jak používat Arduino Uno nebo Arduino MKR1010. V obou případech je k připojení k počítači potřeba kabel.
Možnost 1: Arduino Uno a 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 a 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 displej
TFT je zkratka pro Thin Film Transistor. Tento 1,44 displej obsahuje 128 x 128 pixelů. Je malý, jasný a barevný. Dodává se připevněný k odlamovací desce. Piny záhlaví jsou však oddělené, takže je musíte pájet. (Páječka a páječka jsou potřeboval.)
www.digikey.com/product-detail/en/adafruit-industries-llc/2088/1528-1345-ND/5356830
- Analogové snímače s Hallovým efektem
Jsou vyžadovány tři senzory s Hallovým efektem. Níže uvedený odkaz je pro číslo dílu Allegro A1324LUA-T. U tohoto senzoru je pin 1 napájecím napětím, pin 2 je uzemněn a pin 3 je výstup. Fungovat by měly i ostatní Hallovy senzory, ale ujistěte se, že jsou analogové, nikoli digitální. Pokud používáte jiný snímač, zkontrolujte vývod a v případě potřeby upravte zapojení. (Ve skutečnosti jsem pro účely testování použil jiný snímač od stejné společnosti. Ten, který jsem použil, je však zastaralý a tento senzor je jeho náhradou.)
www.digikey.com/product-detail/en/allegro-microsystems-llc/A1324LUA-T/620-1432-ND/2728144
Malé prkénko a drát
www.digikey.com/product-detail/en/adafruit-industries-llc/239/1528-2143-ND/7244929
Permanentní magnety pro testování
Magnety na lednici budou fungovat dobře.
Krok 2: Zapojení
Pájejte záhlaví na displeji.
Umístěte senzory na jeden konec prkénka a na opačný konec umístěte displej a Arduino. Proud v vodičích v Arduinu a displeji generuje magnetická pole, která nechceme, aby senzory četly. Kromě toho můžeme chtít umístit senzory do blízkosti permanentních magnetů, které by mohly nepříznivě ovlivnit proud ve vodičích displeje a senzoru. Z těchto důvodů chceme senzory daleko od displeje a Arduina. Také z těchto důvodů by měl být tento magnetometr držen mimo velmi silná magnetická pole.
Umístěte senzory navzájem kolmo, ale co nejblíže k sobě. Senzory jemně ohněte, aby byly kolmé. Každý kolík každého senzoru musí být v samostatné řadě prkénka, aby jej bylo možné samostatně připojit.
Zapojení mezi MKR1010 a Uno se mírně liší ze dvou důvodů. Nejprve Arduino a displej komunikují pomocí SPI. Různé modely Arduino mají různé vyhrazené piny pro určité řady SPI. Za druhé, analogové vstupy Uno mohou přijímat až 5 V, zatímco analogové vstupy MKR1010 mohou přijímat pouze až 3,3 V. Doporučené napájecí napětí pro snímače s efektem Hall je 5 V. Výstupy senzorů jsou připojeny k analogovým vstupům Arduino, a ty mohou být stejně velké jako napájecí napětí. Pro Uno použijte doporučené 5 V napájení pro senzory. U MKR1010 použijte 3,3 V, aby analogový vstup Arduina nikdy neviděl napětí větší, než dokáže zvládnout.
Postupujte podle níže uvedených diagramů a pokynů pro Arduino, které používáte.
Zapojení s Arduino Uno
Displej má 11 pinů. Připojte je k Arduino Uno následujícím způsobem. (NC znamená nepřipojeno.)
- Vin → 5V
- 3.3 → NC
- GND → GND
- SCK → 13
- SO → NC
- SI → 11
- TCS → 10
- RST → 9
- D/C → 8
- CCS → NC
- Lite → NC
Připojte Vin senzorů k 5V Arduina. Připojte uzemnění senzoru k zemi Arduina. Připojte výstup senzorů k analogovým vstupům A1, A2 a A3 Arduina.
Zapojení s Arduino MKR1010
Displej má 11 pinů. Připojte je k Arduinu následujícím způsobem. (NC znamená nepřipojeno.)
- 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
Připojte Vin senzorů k Vcc Arduina. Tento pin je na 3,3 V, ne na 5 V. Připojte uzemnění senzoru k zemi Arduina. Připojte výstup senzorů k analogovým vstupům A1, A2 a A3 Arduina.
Krok 3: Otestujte displej
Začněme pracovat s TFT displejem. Naštěstí má Adafruit několik uživatelsky přívětivých knihoven a vynikající výukový program. Tyto pokyny pečlivě dodržujte výukový program
Otevřete vývojové prostředí Arduino. Přejděte do Nástroje → Spravovat knihovny. Nainstalujte si knihovny Adafruit_GFX, Adafruit_ZeroDMA a Adafruit_ST7735. Restartujte vývojové prostředí Android.
Příklad graphstest je součástí knihoven. Otevři to. Soubor → Příklady → Knihovna Adafruit ST7735 a ST7789 → grafický test. Chcete -li vybrat 1,44 displej s komentářem, řádek 95 a odkomentujte řádek 98.
Originální verze:
94 // Tento inicializátor použijte, pokud používáte 1,8 TFT obrazovku:
95 tft.initR (INITR_BLACKTAB); // Init ST7735S chip, black tab 96 97 // NEBO použijte tento inicializátor (odkomentujte), pokud používáte 1,44 TFT: 98 //tft.initR(INITR_144GREENTAB); // Init ST7735R chip, zelená záložka
Správná verze pro 1,44 displej:
94 // Tento inicializátor použijte, pokud používáte 1,8 TFT obrazovku:
95 //tft.initR(INIT_BLACKTAB); // Init ST7735S chip, black tab 96 97 // NEBO použijte tento inicializátor (odkomentujte), pokud používáte 1,44 TFT: 98 tft.initR (INITR_144GREENTAB); // Init SST35R chip, zelená karta
Displej komunikuje pomocí SPI a různé modely Arduinos používají pro některé komunikační linky různé vyhrazené piny. Příklad Graphicstest je nastaven tak, aby fungoval s piny Uno. Pokud používáte MKR1010, přidejte mezi řádky 80 a 81 následující řádky.
Opravy pro 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_ 81 float p = 3,1415926;
Uložte upravený příklad grafického testu. Pokud jste tak dosud neučinili, připojte Arduino k počítači. Přejděte do Nástroje → Deska a Nástroje → Port a ověřte, že počítač dokáže najít Arduino. Přejděte na Skica → Nahrát. Pokud příklad funguje, na displeji se zobrazí čáry, obdélníky, text a kompletní ukázka. Kurz Adafruit poskytuje více podrobností, pokud je potřeba řešení potíží.
Krok 4: Kód magnetometru
Stáhněte si přiložený kód a otevřete jej ve vývojovém prostředí Arduino.
Tento program využívá šest funkcí:
Setup () inicializuje zobrazení
Loop () obsahuje hlavní smyčku programu. Zčerná obrazovku, nakreslí osy, přečte vstupy a nakreslí šipku představující vektor magnetického pole. Má obnovovací frekvenci jednu sekundu, kterou lze změnit změnou řádku 127
DrawAxes3d () nakreslí a označí osy x, y a z
DrawArrow3d () má vstup x, y a z v rozsahu od 0 do 1023. Z těchto hodnot vypočítá koncové body šipky v prostoru. Dále používá funkce izometricxx () a izometricyy () k výpočtu koncových bodů na obrazovce. Nakonec nakreslí šipku a vytiskne napětí ve spodní části obrazovky
Isometricxx () najde souřadnici x izometrické projekce. Převezme souřadnice bodu x, y a z a vrátí odpovídající umístění x pixelu na obrazovce
Isometricyy () najde souřadnici y izometrické projekce. Zaujme souřadnice bodu x, y a z a vrátí odpovídající umístění v pixelech na obrazovce
Před spuštěním kódu musíme určit, které piny použít pro komunikaci SPI s displejem, a musíme určit zdrojové napětí pro snímače. Pokud používáte MKR1010, okomentujte řádky 92-96 a také řádek 110. Poté odkomentujte řádky 85-89 a také řádek 108. Pokud používáte Uno, okomentujte řádky 85-89 a také řádek 108 Potom odkomentujte řádky 92-96 a také řádek 110.
Nahrajte kód, Skica → Nahrát.
Osy x, y a z byste měli vidět červeně. Zelená šipka s modrým kruhem na špičce představuje vektor magnetického pole na senzorech. Hodnoty napětí se zobrazují vlevo dole. Když přiblížíte magnet k senzorům, hodnoty napětí by se měly změnit a velikost šipky by se měla zvětšit.
Krok 5: Budoucí práce
Dalším krokem by byla kalibrace zařízení. Datový list senzoru poskytuje informace o tom, jak převést nezpracované hodnoty napětí senzoru na sílu magnetického pole. Kalibraci lze ověřit porovnáním s přesnějším magnetometrem.
Permanentní magnety interagují s vodiči vedoucími proud. Dráty poblíž displeje a v Arduinu generují magnetická pole, která by mohla ovlivnit hodnoty senzorů. Pokud se navíc toto zařízení používá k měření v blízkosti silného permanentního magnetu, magnetické pole z testovaného zařízení bude interagovat s, vnášet do něj šum a případně poškodit Arduino a displej. Stínění by mohlo tento magnetometr učinit robustnějším. Arduino může odolat větším magnetickým polím, pokud je stíněno v kovové krabici, a pokud jsou stíněné kabely připojeny k senzorům místo holých vodičů, bude docházet k menšímu šumu.
Magnetické pole je funkcí polohy, takže je v každém bodě prostoru jiné. Toto zařízení používá tři senzory, jeden k měření složky magnetického pole x, y a z v bodě. Senzory jsou blízko sebe, ale ne v jednom bodě, což omezuje rozlišení magnetometru. Bylo by skvělé uložit hodnoty magnetického pole v různých bodech a poté je zobrazit jako pole šipek na odpovídajících místech. To je však projekt na další den.
Reference
Informace o grafických knihovnách Adafruit Arduino
https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/overview
Vizualizace magnetického pole
https://www.falstad.com/vector3dm/
Informace o senzorech s Hallovým efektem a Hallovým efektem
- https://sensing.honeywell.com/index.php?ci_id=47847
- https://www.allegromicro.com/~/media/Files/Datasheets/A1324-5-6-Datasheet.ashx
Informace o izometrické projekci
- https://en.wikipedia.org/wiki/3D_projection
- https://en.wikipedia.org/wiki/Isometric_projection
Doporučuje:
Postup: Instalace Raspberry PI 4 bezhlavého (VNC) s Rpi imagerem a obrázky: 7 kroků (s obrázky)
Jak na to: Instalace Raspberry PI 4 Headless (VNC) s Rpi-imager a obrázky: Mám v plánu použít tento Rapsberry PI ve spoustě zábavných projektů zpět na mém blogu. Neváhejte se na to podívat. Chtěl jsem se vrátit k používání svého Raspberry PI, ale na novém místě jsem neměl klávesnici ani myš. Už je to dlouho, co jsem nastavoval Raspberry
Přenosný magnetometr: 7 kroků (s obrázky)
Přenosný magnetometr: Magnetometr, někdy také nazývaný Gaussmetr, měří sílu magnetického pole. Je to zásadní nástroj pro testování síly permanentních magnetů a elektromagnetů a porozumění tvaru pole netriviálních konfigurací magnetů
Digitální kompas využívající magnetometr Arduino a HMC5883L: 6 kroků
Digitální kompas využívající magnetometr Arduino a HMC5883L: Ahoj, tento senzor by mohl indikovat geografický sever, jih, východ a západ, my lidé bychom jej mohli také použít v případě potřeby. Tak. V tomto článku se pokusíme pochopit, jak funguje senzor magnetometru a jak jej propojit s mikrokontrolérem
SmartPhone Game Simulator- Hrajte hry pro Windows pomocí ovládání gest, IMU, akcelerometr, gyroskop, magnetometr: 5 kroků
SmartPhone Game Simulator- Hrajte hry pro Windows pomocí ovládání gest, IMU, akcelerometr, gyroskop, magnetometr: Podpořte tento projekt: https://www.paypal.me/vslcreations darováním open-source kódů & podpora dalšího rozvoje
Vykreslete 3D obrázky svých desek plošných spojů pomocí Eagle3D a POV-Ray: 5 kroků (s obrázky)
Vykreslování 3D obrázků vašich desek plošných spojů pomocí Eagle3D a POV-Ray: Pomocí Eagle3D a POV-Ray můžete vytvářet realistické 3D vykreslování vašich desek plošných spojů. Eagle3D je skript pro EAGLE Layout Editor. Tím se vygeneruje soubor pro sledování paprsku, který bude odeslán na POV-Ray, který nakonec vyskočí finální im