Taula de continguts:
- Pas 1: reuniu subministraments
- Pas 2: cablejat
- Pas 3: proveu la pantalla
- Pas 4: el codi del magnetòmetre
- Pas 5: Treball futur
Vídeo: Magnetòmetre Arduino: 5 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Què estem construint?
Els humans no podem detectar camps magnètics, però fem servir dispositius que confien sempre en imants. Els motors, les brúixoles, els sensors de rotació i els aerogeneradors, per exemple, necessiten imants per al seu funcionament. Aquest tutorial descriu com construir un magnetòmetre basat en Arduino que detecta el camp magnètic mitjançant tres sensors d’efecte Hall. El vector del camp magnètic en una ubicació es mostra en una pantalla petita mitjançant projecció isomètrica.
Què és un Arduino?
Un Arduino és un petit microcontrolador de codi obert fàcil d’utilitzar. Té pins d'entrada i sortida digitals. També té pins d'entrada analògics, que són útils per llegir l'entrada de sensors. Hi ha disponibles diferents models Arduino. Aquest tutorial descriu com utilitzar l'Arduino Uno o l'Arduino MKR1010. No obstant això, també es poden utilitzar altres models.
Abans de començar aquest tutorial, descarregueu l'entorn de desenvolupament d'Arduino i totes les biblioteques necessàries per al vostre model en particular. L’entorn de desenvolupament està disponible a https://www.arduino.cc/en/main/software i les instruccions d’instal·lació estan disponibles a
Què és un camp magnètic?
Els imants permanents exerceixen forces sobre altres imants permanents. Els cables de transport de corrent exerceixen forces sobre altres cables de transport de corrent. Els imants permanents i els cables de transport de corrent també exerceixen forces els uns sobre els altres. Aquesta força per unitat de corrent de prova és un camp magnètic.
Si mesurem el volum d’un objecte, obtindrem un sol nombre escalar. No obstant això, el magnetisme es descriu mitjançant un camp vectorial, una quantitat més complicada. En primer lloc, varia amb la posició de tot l'espai. Per exemple, és probable que el camp magnètic a un centímetre d’un imant permanent sigui més gran que el camp magnètic a deu centímetres de distància.
A continuació, el camp magnètic en cada punt de l’espai es representa mitjançant un vector. La magnitud del vector representa la força del camp magnètic. La direcció és perpendicular a la direcció de la força i la direcció del corrent de prova.
Podem imaginar el camp magnètic en un sol lloc com una fletxa. Podem imaginar el camp magnètic a través de l’espai mitjançant una matriu de fletxes en diferents llocs, possiblement de mides diferents i apuntant en direccions diferents. Una bona visualització està disponible a https://www.falstad.com/vector3dm/. El magnetòmetre que estem construint mostra el camp magnètic a la ubicació dels sensors com una fletxa a la pantalla.
Què és un sensor d'efecte Hall i com funciona?
Un sensor d’efecte Hall és un dispositiu petit i econòmic que mesura la intensitat del camp magnètic al llarg d’una direcció concreta. Està fabricat a partir d’un tros de semiconductor dopat amb càrregues excessives. La sortida d’alguns sensors d’efecte Hall és un voltatge analògic. Altres sensors d’efecte Hall tenen un comparador integrat i produeixen una sortida digital. Altres sensors d’efecte Hall s’integren en instruments més grans que mesuren el cabal, la velocitat de rotació o altres quantitats.
La física darrere de l’efecte Hall es resumeix en l’equació de la força de Lorentz. Aquesta equació descriu la força sobre una càrrega en moviment a causa d’un camp elèctric i magnètic extern.
La figura següent il·lustra l’efecte Hall. Suposem que volem mesurar la força del camp magnètic en la direcció de la fletxa blava. Com es mostra a la part esquerra de la figura, apliquem un corrent a través d’un tros de semiconductor perpendicular a la direcció del camp a mesurar. El corrent és el flux de càrregues, de manera que una càrrega al semiconductor es mou amb certa velocitat. Aquesta càrrega sentirà una força a causa del camp extern, tal com es mostra a la part central de la figura. Les càrregues es mouran a causa de la força i s’acumularan a les vores del semiconductor. Les càrregues s’acumulen fins que la força deguda a les càrregues acumulades equilibra la força deguda al camp magnètic extern. Podem mesurar la tensió a través del semiconductor, tal com es mostra a la part dreta de la figura. La tensió mesurada és proporcional a la força del camp magnètic i es troba en la direcció perpendicular al corrent i a la direcció del camp magnètic.
Què és la projecció isomètrica?
En cada punt de l’espai, el camp magnètic es descriu mitjançant un vector tridimensional. Tot i això, la nostra pantalla és bidimensional. Podem projectar el vector tridimensional en un pla bidimensional per poder dibuixar-lo a la pantalla. Hi ha múltiples maneres d’aconseguir-ho, com ara projecció isomètrica, projecció ortogràfica o projecció obliqua.
En la projecció isomètrica, els eixos x, y i z estan separats per 120 graus i apareixen igualment escorçats. A la pàgina de Viquipèdia sobre el tema es pot trobar informació addicional sobre la projecció isomètrica, així com les fórmules necessàries.
Pas 1: reuniu subministraments
Arduino i Cable
L'Arduino és el cervell del magnetòmetre. Aquestes instruccions descriuen com utilitzar un Arduino Uno o un Arduino MKR1010. En qualsevol cas, cal un cable per connectar-lo a l'ordinador.
Opció 1: Arduino Uno i cable USB AB
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
Opció 2: Arduino MKR1010 i cable 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
Pantalla TFT
TFT significa Thin Film Transistor. Aquesta pantalla d'1,44 conté 128 per 128 píxels. És petita, brillant i acolorida. S'adjunta a un tauler de ruptura. No obstant això, els passadors de capçalera estan separats, de manera que els heu de soldar. necessari.)
www.digikey.com/product-detail/en/adafruit-industries-llc/2088/1528-1345-ND/5356830
- Sensors d'efecte Hall analògics
Es requereixen tres sensors d’efecte Hall. L'enllaç següent és per al número de peça Allegro A1324LUA-T. Per a aquest sensor, el pin 1 és la tensió d’alimentació, el pin 2 està connectat a terra i el pin 3 és la sortida. Altres sensors Hall també haurien de funcionar, però assegureu-vos que siguin analògics i no digitals. Si utilitzeu un sensor diferent, comproveu el pinout i ajusteu el cablejat si cal. (De fet, he utilitzat un sensor diferent de la mateixa empresa per fer proves. No obstant això, el que he utilitzat està obsolet i aquest sensor és el seu substitut).
www.digikey.com/product-detail/en/allegro-microsystems-llc/A1324LUA-T/620-1432-ND/2728144
Tauler de pa petit i filferro
www.digikey.com/product-detail/en/adafruit-industries-llc/239/1528-2143-ND/7244929
Imants permanents per a proves
Els imants de nevera funcionaran bé.
Pas 2: cablejat
Soldeu les capçaleres de la pantalla.
Col·loqueu els sensors en un dels extrems de la placa de configuració i col·loqueu la pantalla i Arduino a l’extrem oposat. El corrent als cables de la pantalla i Arduino genera camps magnètics, que no volem que llegeixin els sensors. A més, és possible que vulguem situar els sensors a prop d’imants permanents, cosa que podria afectar negativament el corrent dels cables de la pantalla i del sensor. Per aquests motius, volem que els sensors estiguin allunyats de la pantalla i d’Arduino. També per aquestes raons, aquest magnetòmetre s’ha de mantenir allunyat de camps magnètics molt forts.
Col·loqueu els sensors perpendiculars entre si però el més a prop possible. Doblegueu suaument els sensors perquè siguin perpendiculars. Cada pin de cada sensor ha d'estar en una fila separada del tauler de control perquè es pugui connectar per separat.
El cablejat és lleugerament diferent entre el MKR1010 i l’Uno per dos motius. En primer lloc, l'Arduino i la pantalla es comuniquen mitjançant SPI. Els diferents models Arduino tenen diferents pins dedicats per a certes línies SPI. En segon lloc, les entrades analògiques de l’Uno poden acceptar fins a 5 V mentre que les entrades analògiques del MKR1010 només poden acceptar fins a 3,3 V. La tensió d’alimentació recomanada per als sensors d’efecte Hall és de 5 V. Les sortides del sensor estan connectades a les entrades analògiques Arduino, i poden ser tan grans com les tensions d'alimentació. Per a l’Uno, utilitzeu el subministrament recomanat de 5 V per als sensors. Per al MKR1010, utilitzeu 3,3 V perquè l’entrada analògica de l’Arduino mai vegi una tensió més gran del que pot suportar.
Seguiu els diagrames i les instruccions següents per a l'Arduino que utilitzeu.
Cablatge amb l'Arduino Uno
La pantalla té 11 pins. Connecteu-los a l'Arduino Uno de la següent manera. (NC significa que no està connectat.)
- Vin → 5V
- 3.3 → NC
- Gnd → GND
- SCK → 13
- SO → NC
- SI → 11
- TCS → 10
- RST → 9
- D / C → 8
- CCS → NC
- Lite → NC
Connecteu Vin dels sensors a 5V de l'Arduino. Connecteu la terra del sensor a la terra de l’Arduino. Connecteu la sortida dels sensors a les entrades analògiques A1, A2 i A3 de l’Arduino.
Cablatge amb l'Arduino MKR1010
La pantalla té 11 pins. Connecteu-los a l'Arduino de la manera següent. (NC significa que no està connectat.)
- 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
Connecteu Vin dels sensors a Vcc de l'Arduino. Aquest passador està a 3,3 V, no a 5 V. Connecteu la terra del sensor a la terra de l’Arduino. Connecteu la sortida dels sensors a les entrades analògiques A1, A2 i A3 de l’Arduino.
Pas 3: proveu la pantalla
Fem funcionar la pantalla TFT. Afortunadament, Adafruit té algunes biblioteques fàcils d’utilitzar i un excel·lent tutorial per acompanyar-les. Aquestes instruccions segueixen de prop el tutorial, Obriu l’entorn de desenvolupament Arduino. Aneu a Eines → Gestiona les biblioteques. Instal·leu les biblioteques Adafruit_GFX, Adafruit_ZeroDMA i Adafruit_ST7735. Reinicieu l'entorn de desenvolupament d'Android.
L'exemple graphicstest s'inclou a les biblioteques. Obre-ho. Fitxer → Exemples → Biblioteca Adafruit ST7735 i ST7789 → graphicstest. Per seleccionar la línia 95 del comentari de la pantalla 95 i la línia 98 del comentari de visualització.
Versió original:
94 // Utilitzeu aquest inicialitzador si utilitzeu una pantalla TFT d'1,8 :
95 tft.initR (INITR_BLACKTAB); // Xip Init ST7735S, pestanya negra 96 97 // O utilitzeu aquest inicialitzador (sense comentari) si utilitzeu un TFT de 1,44 : 98 //tft.initR(INITR_144GREENTAB); // Xip Init ST7735R, pestanya verda
Versió correcta per a pantalla de 1,44 :
94 // Utilitzeu aquest inicialitzador si utilitzeu una pantalla TFT d'1,8 :
95 //tft.initR(INIT_BLACKTAB); // Xip Init ST7735S, pestanya negra 96 97 // O utilitzeu aquest inicialitzador (sense comentari) si utilitzeu un TFT d’1,44 : 98 tft.initR (INITR_144GREENTAB); // Xip Init SST35R, pestanya verda
La pantalla es comunica mitjançant SPI i Arduinos de diferents models utilitzen diferents pins dedicats per a algunes línies de comunicació. L'exemple graphicstest està configurat per funcionar amb els pins Uno. Si feu servir el MKR1010, afegiu les línies següents entre les línies 80 i 81.
Correccions per al 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 flotador p = 3,1415926;
Deseu l'exemple de graphicstest modificat. Connecteu l'Arduino a l'ordinador si encara no ho heu fet. Aneu a Eines → Tauler i Eines → Port per verificar que l’ordinador pot trobar l’Arduino. Aneu a Esbós → Penja. Si l'exemple funciona, la pantalla mostrarà línies, rectangles, text i la demostració completa. El tutorial d'Adafruit proporciona més detalls si cal una solució de problemes.
Pas 4: el codi del magnetòmetre
Baixeu-vos el codi adjunt i obriu-lo a l'entorn de desenvolupament Arduino.
Aquest programa utilitza sis funcions:
Setup () inicialitza la pantalla
Loop () conté el bucle principal del programa. Ennegreix la pantalla, dibuixa els eixos, llegeix les entrades i dibuixa la fletxa que representa el vector del camp magnètic. Té una freqüència d’actualització d’un segon que es pot canviar alterant la línia 127
DrawAxes3d () dibuixa i etiqueta els eixos x, y i z
DrawArrow3d () pren una entrada x, y, z que oscil·la entre 0 i 1023. A partir d'aquests valors, calcula els punts finals de la fletxa a l'espai. A continuació, utilitza les funcions isometricxx () i isometricyy () per calcular els punts finals de la pantalla. Finalment, dibuixa la fletxa i imprimeix els voltatges a la part inferior de la pantalla
Isometricxx () troba la coordenada x de la projecció isomètrica. Pren coordenades x, y i z d’un punt i retorna la ubicació x píxel corresponent a la pantalla
Isometria () troba la coordenada y de la projecció isomètrica. Pren coordenades x, y i z d’un punt i retorna la ubicació corresponent en píxels a la pantalla
Abans d’executar el codi, hem d’especificar quins pins utilitzar per a la comunicació SPI amb la pantalla i hem d’especificar la tensió de la font dels sensors. Si feu servir el MKR1010, comenteu les línies 92-96 i la línia 110. Després, descomenteu les línies 85-89 i la línia 108. Si feu servir l’Uno, comenteu les línies 85-89 i la línia 108 Després, descomenteu les línies 92-96 i la línia 110.
Pengeu el codi, Esbós → Penja.
Hauríeu de veure els eixos x, y i z en vermell. Una fletxa verda amb un cercle blau per a la punta representa el vector del camp magnètic als sensors. Les lectures de tensió es mostren a la part inferior esquerra. A mesura que apropeu un imant als sensors, les lectures de voltatge haurien de canviar i la mida de la fletxa hauria de créixer.
Pas 5: Treball futur
El següent pas seria calibrar el dispositiu. El full de dades del sensor proporciona informació sobre com convertir els valors de tensió del sensor en brut a intensitat de camp magnètic. La calibració es podria verificar comparant-la amb un magnetòmetre més precís.
Els imants permanents interactuen amb els cables de transport actuals. Els cables propers a la pantalla i a l’Arduino generen camps magnètics que podrien afectar la lectura del sensor. A més, si aquest dispositiu s’utilitza per mesurar a prop d’un fort imant permanent, el camp magnètic del dispositiu que s’està provant interactuarà amb, introduirà soroll i possiblement farà malbé l’Arduino i la pantalla. El blindatge pot fer aquest magnetòmetre més robust. L'Arduino pot suportar camps magnètics més grans si està protegit en una caixa metàl·lica i s'introduirà menys soroll si els cables blindats connecten els sensors en lloc de cables nus.
El camp magnètic és una funció de la posició, de manera que és diferent en cada punt de l'espai. Aquest dispositiu utilitza tres sensors, un per mesurar la component x, y i z del camp magnètic en un punt. Els sensors estan a prop els uns dels altres, però no en un sol punt, i això limita la resolució del magnetòmetre. Seria fantàstic guardar les lectures del camp magnètic en diferents punts i després mostrar-les com una matriu de fletxes als llocs corresponents. Tot i això, aquest és un projecte per a un altre dia.
Referències
Informació sobre les biblioteques de gràfics Adafruit Arduino
https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/overview
Visualització del camp magnètic
https://www.falstad.com/vector3dm/
Informació sobre sensors d’efecte Hall i efectes Hall
- https://sensing.honeywell.com/index.php?ci_id=47847
- https://www.allegromicro.com/~/media/Files/Datasheets/A1324-5-6-Datasheet.ashx
Informació sobre projecció isomètrica
- https://ca.wikipedia.org/wiki/3D_projection
- https://ca.wikipedia.org/wiki/Isometric_projection
Recomanat:
Magnetòmetre portàtil: 7 passos (amb imatges)
Magnetòmetre portàtil: un magnetòmetre, de vegades també anomenat Gaussmeter, mesura la força del camp magnètic. És una eina essencial per provar la força dels imants permanents i electroimants i per entendre la forma del camp de les configuracions d'imants no trivials
Brúixola digital mitjançant magnetòmetre Arduino i HMC5883L: 6 passos
Brúixola digital que utilitza el magnetòmetre Arduino i HMC5883L: Hola nois, aquest sensor podria indicar el nord, el sud, l'est i l'oest geogràfics, els éssers humans també el podríem utilitzar de vegades quan ho requereixi. Tan. En aquest article, intentem entendre com funciona el sensor del magnetòmetre i com connectar-lo amb un microcontro
Com desmuntar un ordinador amb passos i imatges senzills: 13 passos (amb imatges)
Com desmuntar un ordinador amb passos i imatges senzills: és una instrucció sobre com desmuntar un ordinador. La majoria dels components bàsics són modulars i fàcilment eliminables. Tanmateix, és important que us organitzeu al respecte. Això us ajudarà a evitar la pèrdua de peces i també a fer el muntatge
Calibració senzilla del magnetòmetre de ferro dur i tou: 6 passos (amb imatges)
Calibració fàcil del magnetòmetre de ferro dur i suau: si el vostre hobby és el RC, els drons, la robòtica, l'electrònica, augmenten la realitat o similars, tard o d'hora us reunireu amb la tasca de calibrar el magnetòmetre. Cal calibrar qualsevol mòdul de magnetòmetre, perquè la mesura del camp magnètic està subjecta a
Simulador de jocs SmartPhone: juga a jocs de Windows mitjançant control de gestos IMU, acceleròmetre, giroscopi, magnetòmetre: 5 passos
Simulador de jocs SmartPhone: juga a jocs de Windows mitjançant IMU de control de gestos, acceleròmetre, giroscopi i magnetòmetre: dóna suport a aquest projecte: https://www.paypal.me/vslcreations donant a codis de codi obert & suport per al desenvolupament posterior