Taula de continguts:
- Pas 1: Informació general sobre el mòdul Brúixola
- Pas 2: components necessaris
- Pas 3: Interfície del mòdul de brúixola GY-511 amb Arduino
- Pas 4: Calibratge del mòdul de la brúixola GY-511
- Pas 5: Circuit
- Pas 6: Codi
- Pas 7: fer una brúixola digital
- Pas 8: Circuit
- Pas 9: Codi
- Pas 10: què segueix?
Vídeo: Com utilitzar el mòdul GY511 amb Arduino [Feu una brúixola digital]: 11 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Visió general
En alguns projectes d’electrònica, hem de conèixer la ubicació geogràfica en qualsevol moment i fer una operació específica en conseqüència. En aquest tutorial, aprendreu a utilitzar el mòdul de brúixola LSM303DLHC GY-511 amb Arduino per fer una brúixola digital. Primer, coneixereu aquest mòdul i el seu funcionament i, a continuació, veureu com s’interfata el mòdul LSM303DLHC GY-511 amb Arduino.
Què aprendràs
- Què és el mòdul de brúixola?
- Mòdul de brúixola i interfície Arduino.
- Feu una brúixola digital amb el mòdul GY-511 i Arduino.
Pas 1: Informació general sobre el mòdul Brúixola
El mòdul GY-511 inclou un acceleròmetre de 3 eixos i un magnetòmetre de 3 eixos. Aquest sensor pot mesurar l’acceleració lineal a escala completa de ± 2 g / ± 4 g / ± 8 g / ± 16 g i camps magnètics a escala completa de ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Gauss.
Quan aquest mòdul es col·loca en un camp magnètic, segons la llei de Lorentz indueix un corrent d’excitació a la seva bobina microscòpica. El mòdul de la brúixola converteix aquest corrent en la tensió diferencial per a cada direcció de coordenades. Mitjançant aquestes tensions, podeu calcular el camp magnètic en cada direcció i obtenir la posició geogràfica.
Consell
QMC5883L és un altre mòdul de brúixola d'ús habitual. Aquest mòdul, que té una estructura i una aplicació similars al mòdul LMS303, té un rendiment lleugerament diferent. Per tant, si esteu fent els projectes, tingueu cura del vostre tipus de mòdul. Si el vostre mòdul és QMC5882L, utilitzeu la biblioteca i els codis adequats que també s'inclouen al tutorial.
Pas 2: components necessaris
Components de maquinari
Arduino UNO R3 * 1
Acceleròmetre + magnetòmetre de 3 eixos GY-511 * 1
Servomotor TowerPro SG-90 * 1
Mòdul LCD 1602 * 1
Saltadors * 1
Aplicacions de programari
IDE Arduino
Pas 3: Interfície del mòdul de brúixola GY-511 amb Arduino
El mòdul de brúixola GY-511 té 8 pins, però només en necessiteu 4 per connectar-vos amb Arduino. Aquest mòdul es comunica amb Arduino mitjançant el protocol I2C, de manera que connecteu els pins SDA (sortida I2C) i SCK (entrada de rellotge I2C) del mòdul als pins I2C de la placa Arduino.
Nota Com podeu veure, hem utilitzat el mòdul GY-511 en aquest projecte. Però podeu utilitzar aquesta instrucció per configurar altres mòduls de brúixola LMS303.
Pas 4: Calibratge del mòdul de la brúixola GY-511
Per navegar, primer cal calibrar el mòdul, que significa establir l’interval de mesura de 0 a 360 graus. Per fer-ho, connecteu el mòdul a Arduino com es mostra a continuació i pengeu el següent codi a la vostra placa. Després d'executar el codi, podeu veure els valors mínim i màxim del rang de mesura per a l'eix X, Y i Z a la finestra del monitor sèrie. Necessitareu aquests números a la següent part, així que escriviu-los.
Pas 5: Circuit
Pas 6: Codi
En aquest codi, necessiteu la biblioteca Wire.h per a la comunicació I2C i la biblioteca LMS303.h per al mòdul de brúixola. Podeu descarregar aquestes biblioteques des dels següents enllaços.
Biblioteca LMS303.h
Biblioteca Wire.h
Nota: Si utilitzeu QMC5883, necessitareu la biblioteca següent:
MechaQMC5883L.h
Aquí expliquem el codi per a LMS303, però també podeu baixar-los per al mòdul QMC.
Vegem algunes de les noves funcions:
compass.enableDefault ();
Inicialització del mòdul
brúixola.read ();
Lectura dels valors de sortida del mòdul de brúixola
running_min.z = min (running_min.z, compass.m.z); running_max.x = max (running_max.x, brúixola.m.x);
Determinació dels valors mínim i màxim del rang de mesura mitjançant la comparació dels valors mesurats.
Pas 7: fer una brúixola digital
Després de calibrar el mòdul, construirem una brúixola connectant un servomotor al mòdul. De manera que l'indicador de servo sempre ens mostra la direcció nord, com la fletxa vermella a la brúixola. Per fer-ho, primer el mòdul de la brúixola calcula primer la direcció geogràfica i l’envia a Arduino i, a continuació, aplicant un coeficient adequat, calcularà l’angle que ha de girar el servomotor de manera que el seu indicador apunti cap al nord magnètic. Finalment, apliquem aquest angle al servomotor.
Pas 8: Circuit
Pas 9: Codi
Per a aquesta part també necessiteu la biblioteca Servo.h, que està instal·lada al vostre programari Arduino per defecte.
Vegem algunes de les noves funcions:
Servo Servo1;
Inicialització del mòdul
brúixola.read ();
Presentació de l'objecte servomotor
Servo1.attach (servoPin); compass.init (); compass.enableDefault ();
Inicialització del mòdul de la brúixola i del servomotor
L'argument Servo1.attach () és el número del pin connectat al servomotor.
compass.m_min = (LSM303:: vector) {- 32767, -32767, -32767}; compass.m_max = (LSM303:: vector) {+ 32767, +32767, +32767};
Mitjançant aquestes línies es defineixen els valors mínim i màxim per mesurar l'interval obtingut a la part anterior.
float heading = compass.heading ((LSM303:: vector) {0, 0, 1});
La funció heading () retorna l'angle entre l'eix de coordenades i un eix fix. Podeu definir l'eix fix amb un vector a l'argument de funció. Per exemple, aquí, definint el (LSM303:: vector) {0, 0, 1}, es considera l'eix Z com a eix constant.
Servo1.write (encapçalament);
La funció Servo1.write () aplica el valor de lectura del mòdul de brúixola al servomotor.
Nota: tingueu en compte que el servomotor pot tenir un camp magnètic, de manera que és millor col·locar el servomotor a una distància adequada del mòdul de la brúixola, de manera que no faci que el mòdul de la brúixola es desvii.
Recomanat:
Una petita brúixola amb ATtiny85: 12 passos (amb imatges)
Una brúixola petita amb ATtiny85: aquest és el nostre primer projecte amb ATtiny85; una simple brúixola digital de butxaca (en col·laboració amb J. Arturo Espejel Báez). ATtiny85 és un microcontrolador d’alt rendiment i poca potència. Té 8 Kbytes de memòria flash programable. A causa d'això, el chal
Tutorial per a la interfície Sensor de brúixola HMC5883L amb Arduino: 10 passos (amb imatges)
Tutorial per a la interfície Sensor de brúixola HMC5883L amb Arduino: Descripció HMC5883L és una brúixola digital de 3 eixos que s’utilitza per a dos propòsits generals: per mesurar la magnetització d’un material magnètic com un ferromagnet o per mesurar la força i, en alguns casos, la direcció del camp magnètic en un punt de s
Brúixola compensada amb inclinació amb LSM303DHLC: 3 passos
Brúixola compensada d’inclinació amb LSM303DHLC: en aquest manual d’instruccions vull mostrar com utilitzar el sensor LSM303 per obtenir una brúixola compensada d’inclinació. Després d’un primer intent (sense èxit), vaig tractar el calibratge del sensor. Gràcies a aquests, els valors del magnetòmetre han millorat si
Feu una unitat d’exposició del PCB adequada amb una làmpada de curació d’ungles UV barata: 12 passos (amb imatges)
Feu una unitat d’exposició del PCB adequada amb una làmpada de curació d’ungles UV barata: què tenen en comú la producció de PCB i les ungles falses? Tots dos utilitzen fonts de llum ultraviolada d’alta intensitat i, per sort, aquestes fonts de llum tenen exactament la mateixa longitud d’ona. Només els de producció de PCB solen ser força costosos
Com utilitzar el mòdul del sensor IR TCRT5000 amb Arduino UNO: 7 passos (amb imatges)
Com utilitzar el mòdul del sensor IR TCRT5000 amb Arduino UNO: En aquest tutorial, us ensenyarem alguns conceptes bàsics sobre l’ús del mòdul del sensor IR TCRT5000. Aquests bàsics us mostren els valors analògics i digitals al monitor sèrie. Descripció: aquest sensor reflectant IR utilitza un TCRT5000 per detectar el color i