Tartalomjegyzék:
- 1. lépés: Gyűjtse össze a kellékeket
- 2. lépés: Kábelezés
- 3. lépés: Tesztelje a kijelzőt
- 4. lépés: A magnetométer kódja
- 5. lépés: Jövőbeli munka
Videó: Arduino magnetométer: 5 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Mit építünk?
Az emberek nem tudják érzékelni a mágneses mezőket, de olyan eszközöket használunk, amelyek állandóan mágnesekre támaszkodnak. A motorok, iránytűk, forgásérzékelők és szélturbinák például mágneseket igényelnek a működéshez. Ez az oktatóanyag leírja, hogyan kell felépíteni egy Arduino -alapú magnetométert, amely három Hall -effektus segítségével érzékeli a mágneses mezőt. A mágneses mező vektor adott helyen egy kis képernyőn jelenik meg izometrikus vetítéssel.
Mi az Arduino?
Az Arduino egy kisméretű, nyílt forráskódú, felhasználóbarát mikrokontroller. Digitális bemeneti és kimeneti csapokkal rendelkezik. Analóg bemeneti csapokkal is rendelkezik, amelyek hasznosak az érzékelők bemenetének leolvasásához. Különböző Arduino modellek állnak rendelkezésre. Ez az oktatóanyag leírja az Arduino Uno vagy az Arduino MKR1010 használatát. Azonban más modellek is használhatók.
Mielőtt elkezdené ezt az oktatóanyagot, töltse le az Arduino fejlesztői környezetet, valamint az adott modellhez szükséges könyvtárakat. A fejlesztői környezet a https://www.arduino.cc/en/main/software címen, a telepítési utasítások pedig a https://www.arduino.cc/en/main/software címen érhetők el.
Mi az a mágneses mező?
Az állandó mágnesek erőhatást gyakorolnak más állandó mágnesekre. Az áramvezető vezetékek erőt gyakorolnak más áramvezető vezetékekre. Az állandó mágnesek és az áramvezető vezetékek egymásra is erőt fejtenek ki. Ez az egységnyi tesztáramra ható erő mágneses mező.
Ha egy objektum térfogatát mérjük, egyetlen skaláris számot kapunk. A mágnesességet azonban egy vektormező írja le, egy bonyolultabb mennyiség. Először is, az egész tér helyzetétől függően változik. Például az állandó mágnestől egy centiméterre lévő mágneses mező valószínűleg nagyobb, mint a tíz centiméterre lévő mágneses mező.
Ezután a mágneses mezőt a tér minden pontján vektor jeleníti meg. A vektor nagysága a mágneses mező erősségét jelzi. Az irány merőleges mind az erő irányára, mind a vizsgálati áram irányára.
A mágneses mezőt egyetlen helyen ábrázolhatjuk nyílként. A mágneses mezőt az egész térben egy nyíl tömb segítségével tudjuk elképzelni különböző helyeken, esetleg különböző méretűek és különböző irányokba mutatva. Egy szép megjelenítés elérhető a https://www.falstad.com/vector3dm/ oldalon. Az általunk épített magnetométer nyílként jeleníti meg a mágneses mezőt az érzékelők helyén.
Mi a Hall -effektus érzékelő és hogyan működik?
A Hall -effektus érzékelő egy kicsi, olcsó eszköz, amely egy adott irányban méri a mágneses mező erősségét. Ez egy félvezető darabból készül, amelyet felesleges töltésekkel adalékolnak. Néhány Hall -hatású érzékelő kimenete analóg feszültség. Más Hall effekt érzékelők beépített összehasonlítóval rendelkeznek, és digitális kimenetet produkálnak. Más Hall effekt érzékelők nagyobb műszerekbe vannak beépítve, amelyek az áramlási sebességet, a forgási sebességet vagy más mennyiségeket mérnek.
A Hall -effektus mögött álló fizikát a Lorentz -erő -egyenlet foglalja össze. Ez az egyenlet a külső elektromos és mágneses mező hatására a mozgó töltésre kifejtett erőt írja le.
Az alábbi ábra a Hall -effektust szemlélteti. Tegyük fel, hogy meg akarjuk mérni a mágneses mező erősségét a kék nyíl irányában. Amint az ábra bal oldalán látható, áramot alkalmazunk a mérendő mező irányára merőleges félvezető darabon keresztül. Az áram a töltések áramlása, ezért a félvezető töltése bizonyos sebességgel mozog. Ez a töltés erőt fog érezni a külső mező hatására, amint az az ábra középső részén látható. A töltések az erő hatására elmozdulnak és felhalmozódnak a félvezető szélein. A töltések addig halmozódnak fel, amíg a felhalmozódott töltések miatti erő kiegyensúlyozza a külső mágneses mező hatását. Meg tudjuk mérni a feszültséget a félvezetőn, az ábra jobb oldalán látható módon. A mért feszültség arányos a mágneses mező erősségével, és az áramra merőleges irányban és a mágneses tér irányában van.
Mi az izometrikus vetítés?
A tér minden pontján a mágneses mezőt háromdimenziós vektor írja le. A kijelzőnk azonban kétdimenziós. A háromdimenziós vektort kétdimenziós síkba vetíthetjük, így rajzolhatjuk a képernyőre. Ennek számos módja van, például izometrikus vetítés, ortográfiai vetítés vagy ferde vetítés.
Izometrikus vetítésben az x, y és z tengelyek egymástól 120 fokos távolságban vannak, és ugyanolyan rövidre vannak írva. Az izometrikus vetítéssel kapcsolatos további információk, valamint a szükséges képletek a Wikipédia témakörben található oldalán találhatók.
1. lépés: Gyűjtse össze a kellékeket
Arduino és kábel
Az Arduino a magnetométer agya. Ezek az utasítások leírják az Arduino Uno vagy az Arduino MKR1010 használatát. Mindkét esetben kábel szükséges a számítógéphez való csatlakoztatáshoz.
1. lehetőség: Arduino Uno és USB AB kábel
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. lehetőség: Arduino MKR1010 és microUSB kábel
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 kijelző
A TFT a vékony film tranzisztor rövidítése. Ez az 1,44 hüvelykes kijelző 128 x 128 képpontot tartalmaz. Kicsi, fényes és színes. Kikapcsolási táblához van csatolva. A fejlécek azonban külön -külön érkeznek, ezért be kell forrasztani őket. (Forrasztó és forrasztópáka szükséges.)
www.digikey.com/product-detail/en/adafruit-industries-llc/2088/1528-1345-ND/5356830
- Analóg Hall Effect érzékelők
Három Hall effekt érzékelő szükséges. Az alábbi link az A1324LUA-T számú Allegro-alkatrészt tartalmazza. Ennél az érzékelőnél az 1. tüske a tápfeszültség, a 2. érintkező földelt, a 3. tüske pedig a kimenet. Más Hall -érzékelőknek is működniük kell, de győződjön meg arról, hogy analóg, nem pedig digitális. Ha másik érzékelőt használ, ellenőrizze a csatlakozót, és szükség esetén állítsa be a vezetékeket. (Valójában ugyanazon cégtől eltérő érzékelőt használtam tesztelésre. Azonban az általam használt elavult, és ez az érzékelő a cseréje.)
www.digikey.com/product-detail/en/allegro-microsystems-llc/A1324LUA-T/620-1432-ND/2728144
Kis kenyértábla és huzal
www.digikey.com/product-detail/en/adafruit-industries-llc/239/1528-2143-ND/7244929
Állandó mágnesek a teszteléshez
A hűtőmágnesek jól működnek.
2. lépés: Kábelezés
Forrasztja a fejléceket a kijelzőn.
Helyezze az érzékelőket a kenyértábla egyik végére, a kijelzőt és az Arduino -t pedig a másik végére. Az Arduino és a kijelző vezetékeiben lévő áram mágneses mezőket generál, amelyeket nem szeretnénk, ha az érzékelők olvasnának. Ezenkívül érdemes lehet az érzékelőket állandó mágnesek közelébe helyezni, ami hátrányosan befolyásolhatja a kijelző és az érzékelő vezetékeiben lévő áramot. Ezen okok miatt szeretnénk, ha az érzékelők távol lennének a kijelzőtől és az Arduino -tól. Ezen okok miatt is ezt a magnetométert távol kell tartani a nagyon erős mágneses mezőktől.
Helyezze az érzékelőket egymásra merőlegesen, de a lehető legközelebb egymáshoz. Óvatosan hajlítsa meg az érzékelőket, hogy merőlegesek legyenek. Az egyes érzékelők minden tűjének a kenyérlap külön sorában kell lennie, így külön csatlakoztatható.
A vezetékek némileg eltérnek az MKR1010 és az Uno között két okból. Először is, az Arduino és a kijelző SPI -n keresztül kommunikál. A különböző Arduino modellek különböző dedikált csapokkal rendelkeznek bizonyos SPI vonalakhoz. Másodszor, az Uno analóg bemenetei legfeljebb 5 V -ot, míg az MKR1010 analóg bemenetei legfeljebb 3,3 V -ot fogadhatnak el. A Hall -effektusok ajánlott tápfeszültsége 5 V. Az érzékelő kimenetek Arduino analóg bemenetekhez vannak csatlakoztatva, és ezek akkoraak lehetnek, mint a tápfeszültségek. Az Uno esetében használja az érzékelőkhöz ajánlott 5 V -os tápegységet. Az MKR1010 esetén használjon 3,3 V -ot, hogy az Arduino analóg bemenete soha ne látjon nagyobb feszültséget, mint amennyit képes kezelni.
Kövesse az alábbi diagramokat és utasításokat a használt Arduino számára.
Kábelezés az Arduino Uno -val
A kijelző 11 érintkezővel rendelkezik. Csatlakoztassa őket az Arduino Uno -hoz az alábbiak szerint. (Az NC azt jelenti, hogy nincs csatlakoztatva.)
- Vin → 5V
- 3.3 → NC
- Gnd → GND
- SCK → 13
- SO → NC
- SI → 11
- TCS → 10
- RST → 9
- D/C → 8
- CCS → NC
- Egyszerű → NC
Csatlakoztassa az érzékelők Vin -jét az Arduino 5V -hoz. Csatlakoztassa az érzékelő földjét az Arduino földjéhez. Csatlakoztassa az érzékelők kimenetét az Arduino A1, A2 és A3 analóg bemenetéhez.
Kábelezés az Arduino MKR1010 készülékkel
A kijelző 11 érintkezővel rendelkezik. Csatlakoztassa őket az Arduino -hoz az alábbiak szerint. (Az NC azt jelenti, hogy nincs csatlakoztatva.)
- Vin → 5V
- 3.3 → NC
- Gnd → GND
- SCK → SCK 9
- SO → NC
- SI → MOSI 8
- TCS → 5
- RST → 4
- D/C → 3
- CCS → NC
- Egyszerű → NC
Csatlakoztassa az érzékelők Vinjét az Arduino Vcc -jéhez. Ez a tüske 3.3V, nem 5V. Csatlakoztassa az érzékelő földjét az Arduino földjéhez. Csatlakoztassa az érzékelők kimenetét az Arduino A1, A2 és A3 analóg bemenetéhez.
3. lépés: Tesztelje a kijelzőt
Működtessük a TFT kijelzőt. Szerencsére az Adafruit rendelkezik néhány felhasználóbarát könyvtárral és kiváló oktatóanyaggal. Ezek az utasítások szorosan követik az oktatóanyagot, Nyissa meg az Arduino fejlesztői környezetet. Lépjen az Eszközök → Könyvtárak kezelése menüpontra. Telepítse az Adafruit_GFX, Adafruit_ZeroDMA és Adafruit_ST7735 könyvtárakat. Indítsa újra az Android fejlesztői környezetet.
A grafikus teszt példája szerepel a könyvtárakban. Nyisd ki. Fájl → Példák → Adafruit ST7735 és ST7789 Könyvtár → graphicstest. Az 1,44 -os kijelző 95. megjegyzés sorának és a 98 megjegyzés megszüntetése sorának kiválasztásához.
Eredeti verzió:
94 // Ezt az inicializálót használja, ha 1,8 hüvelykes TFT képernyőt használ:
95 tft.initR (INITR_BLACKTAB); // Init ST7735S chip, fekete fül 96 97 // VAGY használja ezt az inicializálót (megjegyzés nélkül), ha 1,44 TFT: 98 //tft.initR (INITR_144GREENTAB); // Init ST7735R chip, zöld lap
Az 1,44 -os kijelző helyes verziója:
94 // Ezt az inicializálót használja, ha 1,8 hüvelykes TFT képernyőt használ:
95 //tft.initR (INIT_BLACKTAB); // Init ST7735S chip, fekete fül 96 97 // VAGY használja ezt az inicializálót (megjegyzés nélkül), ha 1,44 TFT -t használ: 98 tft.initR (INITR_144GREENTAB); // Init SST35R chip, zöld lap
A kijelző SPI használatával kommunikál, és a különböző Arduinos modellek különböző kommunikációs vonalakhoz különböző dedikált csapokat használnak. A grafikus teszt példa az Uno csapokkal való együttműködésre van beállítva. Ha az MKR1010 készüléket használja, adja hozzá a következő sorokat a 80. és 81. sor között.
Az MKR1010 javításai:
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 úszó p = 3,1415926;
Mentse a módosított graphicstest példát. Csatlakoztassa az Arduino -t a számítógéphez, ha még nem tette meg. Lépjen az Eszközök → Tábla és Eszközök → Port menübe, és ellenőrizze, hogy a számítógép megtalálja -e az Arduino -t. Lépjen a Vázlat → Feltöltés menüpontra. Ha a példa működik, a kijelzőn sorok, téglalapok, szöveg és a teljes bemutató jelenik meg. Az Adafruit oktatóanyag részletesebb tájékoztatást nyújt, ha hibaelhárításra van szükség.
4. lépés: A magnetométer kódja
Töltse le a mellékelt kódot, és nyissa meg az Arduino fejlesztői környezetben.
Ez a program hat funkciót használ:
A Setup () inicializálja a kijelzőt
A Loop () tartalmazza a program fő ciklusát. Elfeketíti a képernyőt, megrajzolja a tengelyeket, leolvassa a bemeneteket, és rajzolja a mágneses mező vektorát jelző nyilat. Egy másodperces frissítési gyakorisággal rendelkezik, amelyet a 127 -es sor megváltoztatásával lehet megváltoztatni
A DrawAxes3d () rajzolja és címkézi az x, y és z tengelyt
A DrawArrow3d () x, y és z bemenetet vesz fel 0 és 1023 között. Ezekből az értékekből kiszámítja a nyíl végpontjait a térben. Ezután az isometricxx () és isometricyy () függvényeket használja a képernyő végpontjainak kiszámításához. Végül megrajzolja a nyilat, és kinyomtatja a feszültségeket a képernyő aljára
Az Isometricxx () megkeresi az izometrikus vetület x koordinátáját. Egy pont x, y és z koordinátáit veszi fel, és visszaadja a megfelelő x pixelhelyet a képernyőn
Az Isometricyy () megkeresi az izometrikus vetület y koordinátáját. Beveszi egy pont x, y és z koordinátáit, és visszaadja a megfelelő y képpont helyét a képernyőn
A kód futtatása előtt meg kell adnunk, hogy mely érintkezőket kell használni a kijelzővel való SPI kommunikációhoz, és meg kell adnunk az érzékelők forrásfeszültségét. Ha az MKR1010-et használja, írja le a 92-96. Sort és a 110. sort. Ezután törölje a 85-89. És a 108. sort. Ha az Uno-t használja, írja le a 85-89.. Ezután törölje a 92-96. És a 110. sor megjegyzéseit.
Töltse fel a kódot, Vázlat → Feltöltés.
Látnia kell az x, y és z tengelyt pirossal. A zöld nyíl kék körrel a hegyen jelzi a mágneses mező vektorát az érzékelőknél. A feszültség leolvasása megjelenik a bal alsó sarokban. Amint közelebb visz egy mágnest az érzékelőkhöz, a feszültségértékeknek meg kell változniuk, és a nyíl méretének növekednie kell.
5. lépés: Jövőbeli munka
A következő lépés az eszköz kalibrálása lenne. Az érzékelő adatlapja információkat tartalmaz arról, hogyan lehet a nyers érzékelő feszültségértékeit mágneses térerőssé alakítani. A kalibrációt egy pontosabb magnetométerrel összehasonlítva ellenőrizhetjük.
Az állandó mágnesek kölcsönhatásba lépnek az áramvezető vezetékekkel. A kijelző közelében és az Arduino -ban lévő vezetékek mágneses mezőket hoznak létre, amelyek befolyásolhatják az érzékelő leolvasását. Ezenkívül, ha ezt az eszközt erős állandó mágnes közelében mérik, akkor a vizsgált eszköz mágneses mezője kölcsönhatásba lép, zajt vezet be, és esetleg károsítja az Arduino -t és a kijelzőt. Az árnyékolás robusztusabbá teheti ezt a magnetométert. Az Arduino ellenáll a nagyobb mágneses mezőknek, ha fémdobozba van árnyékolva, és kevesebb zaj keletkezik, ha árnyékolt kábelek kötik össze az érzékelőket a csupasz vezetékek helyett.
A mágneses mező a pozíció függvénye, ezért a tér minden pontján más. Ez az eszköz három érzékelőt használ, az egyik a mágneses mező x, y és z komponensének mérésére egy ponton. Az érzékelők közel vannak egymáshoz, de nem egy ponton, és ez korlátozza a magnetométer felbontását. Jó lenne elmenteni a mágneses mező leolvasásait különböző pontokon, majd nyilak tömbjeként megjeleníteni a megfelelő helyeken. Ez azonban egy másik nap projektje.
Hivatkozások
Információk az Adafruit Arduino Graphics könyvtárairól
https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/overview
Mágneses mező megjelenítése
https://www.falstad.com/vector3dm/
Információk a Hall -effektusról és a Hall -effektus -érzékelőkről
- https://sensing.honeywell.com/index.php?ci_id=47847
- https://www.allegromicro.com/~/media/Files/Datasheets/A1324-5-6-Datasheet.ashx
Információk az izometrikus vetítésről
- https://en.wikipedia.org/wiki/3D_projection
- https://en.wikipedia.org/wiki/Isometric_projection
Ajánlott:
Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: 7 lépés (képekkel)
Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: Ezt a Rapsberry PI-t tervezem használni egy csomó szórakoztató projektben a blogomban. Nyugodtan nézd meg. Vissza akartam kezdeni a Raspberry PI használatát, de nem volt billentyűzetem vagy egér az új helyen. Rég volt, hogy beállítottam egy málnát
Hordozható magnetométer: 7 lépés (képekkel)
Hordozható magnetométer: A magnetométer, más néven Gaussmeter, méri a mágneses mező erősségét. Ez elengedhetetlen eszköz az állandó mágnesek és elektromágnesek erősségének teszteléséhez, valamint a nem triviális mágnes konfigurációk térerőjének megértéséhez
Digitális iránytű Arduino és HMC5883L magnetométer használatával: 6 lépés
Digitális iránytű az Arduino és a HMC5883L magnetométer használatával: Sziasztok, Ez az érzékelő jelezheti a földrajzi északot, délt, keletet és nyugatot, mi emberek is használhatjuk időnként, amikor szükséges. Így. Ebben a cikkben megpróbáljuk megérteni, hogyan működik a magnetométer érzékelő, és hogyan lehet összekötni egy mikrokontrolettel
A számítógép szétszerelése egyszerű lépésekkel és képekkel: 13 lépés (képekkel)
A számítógép szétszerelése egyszerű lépésekkel és képekkel: Ez az utasítás a számítógép szétszereléséről szól. A legtöbb alapvető alkatrész moduláris és könnyen eltávolítható. Fontos azonban, hogy szervezett legyen ezzel kapcsolatban. Ez segít elkerülni az alkatrészek elvesztését, és az újra összerakást is
SmartPhone Game Simulator- Játsszon Windows játékokkal az IMU gesztusvezérlés, gyorsulásmérő, giroszkóp, magnetométer segítségével: 5 lépés
SmartPhone Game Simulator- Játsszon Windows játékokat gesztusvezérléssel IMU, gyorsulásmérő, giroszkóp, magnetométer: Támogassa ezt a projektet: https://www.paypal.me/vslcreations, adományozva nyílt forráskódoknak és & további fejlődés támogatása