Sommario:
- Passaggio 1: informazioni generali sul modulo bussola
- Passaggio 2: componenti richiesti
- Passaggio 3: interfacciamento del modulo bussola GY-511 con Arduino
- Passaggio 4: calibrazione del modulo bussola GY-511
- Passaggio 5: circuito
- Passaggio 6: codice
- Passaggio 7: creare una bussola digitale
- Passaggio 8: circuito
- Passaggio 9: codice
- Passaggio 10: cosa c'è dopo?
Video: Come Usare il Modulo GY511 con Arduino [Crea una Bussola Digitale]: 11 Passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Panoramica
In alcuni progetti di elettronica, abbiamo bisogno di conoscere la posizione geografica in qualsiasi momento ed eseguire un'operazione specifica di conseguenza. In questo tutorial imparerai come utilizzare il modulo bussola LSM303DLHC GY-511 con Arduino per creare una bussola digitale. Innanzitutto, imparerai a conoscere questo modulo e come funziona, quindi vedrai come interfacciare il modulo LSM303DLHC GY-511 con Arduino.
Cosa imparerai
- Che modulo bussola è?
- Modulo bussola e interfaccia Arduino.
- Crea una bussola digitale con il modulo GY-511 e Arduino.
Passaggio 1: informazioni generali sul modulo bussola
Il modulo GY-511 include un accelerometro a 3 assi e un magnetometro a 3 assi. Questo sensore può misurare l'accelerazione lineare a fondo scala di ± 2 g / ± 4 g / ± 8 g / ± 16 g e campi magnetici a fondo scala di ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Gauss.
Quando questo modulo è posto in un campo magnetico, secondo la legge di Lorentz, una corrente di eccitazione induce nella sua microscopica bobina. Il modulo bussola converte questa corrente nella tensione differenziale per ciascuna direzione delle coordinate. Usando queste tensioni, puoi calcolare il campo magnetico in ogni direzione e ottenere la posizione geografica.
Consiglio
QMC5883L è un altro modulo bussola comunemente usato. Questo modulo, che ha una struttura e un'applicazione simili al modulo LMS303, ha prestazioni leggermente diverse. Quindi, se stai facendo i progetti, fai attenzione al tuo tipo di modulo. Se il tuo modulo è QMC5882L, usa la libreria e i codici appropriati che sono inclusi anche nel tutorial.
Passaggio 2: componenti richiesti
Componenti hardware
Arduino UNO R3 *1
GY-511 Accelerometro a 3 assi + magnetometro *1
Servomotore TowerPro SG-90 *1
1602 Modulo LCD *1
Ponticelli *1
Applicazioni software
Arduino IDE
Passaggio 3: interfacciamento del modulo bussola GY-511 con Arduino
Il modulo bussola GY-511 ha 8 pin, ma ne occorrono solo 4 per interfacciarsi con Arduino. Questo modulo comunica con Arduino utilizzando il protocollo I2C, quindi collega i pin SDA (uscita I2C) e SCK (ingresso orologio I2C) del modulo ai pin I2C sulla scheda Arduino.
NotaCome puoi vedere, in questo progetto abbiamo utilizzato il modulo GY-511. Ma puoi usare queste istruzioni per configurare altri moduli bussola LMS303.
Passaggio 4: calibrazione del modulo bussola GY-511
Per navigare, è necessario prima calibrare il modulo, il che significa impostare il campo di misura da 0 a 360 gradi. Per fare ciò, collega il modulo ad Arduino come mostrato di seguito e carica il seguente codice sulla tua scheda. Dopo aver eseguito il codice, è possibile visualizzare i valori minimo e massimo del campo di misura per gli assi X, Y e Z nella finestra del monitor seriale. Avrai bisogno di questi numeri nella parte successiva, quindi scrivili.
Passaggio 5: circuito
Passaggio 6: codice
In questo codice è necessaria la libreria Wire.h per la comunicazione I2C e la libreria LMS303.h per il modulo bussola. Puoi scaricare queste librerie dai seguenti link.
Libreria LMS303.h
Libreria Wire.h
NotaSe stai utilizzando QMC5883, avrai bisogno della seguente libreria:
MechaQMC5883L.h
Qui spieghiamo il codice per LMS303, ma puoi anche scaricare i codici per il modulo QMC.
Vediamo alcune delle nuove funzioni:
compass.enableDefault();
Inizializzazione del modulo
compass.read();
Lettura dei valori di output del modulo bussola
running_min.z = min(running_min.z, compass.m.z); running_max.x = max(running_max.x, compass.m.x);
Determinazione dei valori minimo e massimo del campo di misura confrontando i valori misurati.
Passaggio 7: creare una bussola digitale
Dopo aver calibrato il modulo, costruiremo una bussola collegando un servomotore al modulo. In modo che l'indicatore del servo ci mostri sempre la direzione nord, come la freccia rossa sulla bussola. Per fare ciò, prima il modulo bussola calcola prima la direzione geografica e la invia ad Arduino e poi, applicando un coefficiente appropriato, si calcola l'angolo che il servomotore deve ruotare in modo che il suo indicatore punti verso il nord magnetico. Alla fine, applichiamo quell'angolo al servomotore.
Passaggio 8: circuito
Passaggio 9: codice
Per questa parte hai anche bisogno della libreria Servo.h, che è installata di default sul tuo software Arduino.
Vediamo alcune delle nuove funzioni:
Servo Servo1;
Inizializzazione del modulo
compass.read();
Presentazione dell'oggetto servomotore
Servo1.attach(servoPin); compass.init(); compass.enableDefault();
Inizializzazione del modulo bussola e del servomotore
L'argomento Servo1.attach() è il numero del pin collegato al servomotore.
compass.m_min = (LSM303::vector){-32767, -32767, -32767}; compass.m_max = (LSM303::vector){+32767, +32767, +32767};
Utilizzando queste righe si definiscono i valori minimo e massimo per la misurazione del range ottenuto nella parte precedente.
intestazione float =compass.heading((LSM303::vector){0, 0, 1});
La funzione head() restituisce l'angolo tra l'asse delle coordinate e un asse fisso. È possibile definire l'asse fisso con un vettore nell'argomento della funzione. Ad esempio, qui, definendo il (LSM303:: vector) {0, 0, 1}, l'asse Z viene considerato come un asse costante.
Servo1.write(intestazione);
La funzione Servo1.write() applica il valore letto dal modulo bussola al servomotore.
NotaNotare che il servomotore potrebbe avere un campo magnetico, quindi è meglio posizionare il servomotore a una distanza adeguata dal modulo bussola, in modo che non provochi la deviazione del modulo bussola.
Consigliato:
Come smontare un calibro digitale e come funziona un calibro digitale: 4 passaggi
Come smontare un calibro digitale e come funziona un calibro digitale: Molte persone sanno come usare i calibri per misurare. Questo tutorial ti insegnerà come smontare un calibro digitale e una spiegazione di come funziona il calibro digitale
Visuino Come usare un pulsante come ingresso per controllare cose come il LED: 6 passaggi
Visuino Come utilizzare un pulsante come input per controllare cose come il LED: In questo tutorial impareremo come accendere e spegnere il LED utilizzando un semplice pulsante e Visuino. Guarda un video dimostrativo
Bussola digitale con magnetometro Arduino e HMC5883L: 6 passaggi
Bussola digitale con Arduino e magnetometro HMC5883L: Ciao ragazzi, questo sensore potrebbe indicare il nord, il sud, l'est e l'ovest geografico, anche noi umani potremmo usarlo quando necessario. Così. In questo articolo cerchiamo di capire come funziona il sensore Magnetometro e come interfacciarlo con un microcontrollore
Come usare il Wiimote come mouse del computer usando le candele come sensore!!: 3 passaggi
Come utilizzare il Wiimote come mouse del computer utilizzando le candele come sensore!!: questa guida ti mostrerà come collegare il telecomando Wii (Wiimote) al PC e utilizzarlo come mouse
Come Usare una TV come Monitor di Computer: 6 Passaggi
Come usare una TV come monitor di un computer: va bene così.. Questo è il mio primo istruttore, quindi abbi pazienza con me… In questo tutorial ti mostrerò.. è giusto.. come usare una TV come monitor di un computer ! Funziona abbastanza bene, ma ci sono dei limiti… per esempio non puoi leggere un testo piccolo, ma un pi