Sommario:

Bussola LED e altimetro: 7 passaggi (con immagini)
Bussola LED e altimetro: 7 passaggi (con immagini)

Video: Bussola LED e altimetro: 7 passaggi (con immagini)

Video: Bussola LED e altimetro: 7 passaggi (con immagini)
Video: Spyglass – how to navigate by the GPS course and back up your vehicle gauges (iPhone, iPad, iOS) 2024, Novembre
Anonim
Image
Image
Schema circuitale e PCB
Schema circuitale e PCB

Gli oggetti con i LED mi affascinano sempre. Pertanto questo progetto combina il popolare sensore della bussola digitale HMC5883L con 48 LED. Posizionando i LED in un cerchio, il LED che si accende è la direzione in cui ti stai dirigendo. Ogni 7,5 gradi guiderà un nuovo LED che fornisce risultati dettagliati.

La scheda GY-86 fornisce anche un sensore di pressione barometrica MS5611. Con l'aiuto di questo sensore è possibile calcolare l'altitudine. A causa dell'alta risoluzione è perfetto per gli altimetri.

Il sensore MPU6050 sulla scheda GY-86 ha sia un accelerometro a 3 assi che un giroscopio a 3 assi. Il giroscopio può misurare la velocità della posizione angolare nel tempo. L'accelerometro può misurare l'accelerazione gravitazionale e utilizzando la matematica della trigonometria è possibile calcolare l'angolo a cui è posizionato il sensore. Combinando i dati dell'accelerometro e del giroscopio è possibile ottenere informazioni sull'orientamento del sensore. Questo può essere usato per la compensazione dell'inclinazione per la bussola HMC5883L (da fare).

I brevi video di istruzioni in questo tutorial spiegheranno in dettaglio come funziona. Le procedure di calibrazione sono automatizzate, quindi il successo è garantito. La temperatura è disponibile in gradi Celsius (impostazione predefinita) o Fahrenheit.

Divertiti !!

Passaggio 1: altimetro

Image
Image

L'altimetro utilizza il sensore di pressione barometrica MS5611. L'altitudine può essere determinata in base alla misurazione della pressione atmosferica. Maggiore è l'altitudine, minore è la pressione. All'avvio, l'altimetro utilizza la pressione al livello del mare predefinita di 1013,25 mbar. Premendo il pulsante al pin 21, la pressione nella tua posizione verrà utilizzata come riferimento. In questo modo è possibile misurare approssimativamente l'altezza di qualcosa (ad esempio quando si guida in salita con un'auto).

In questo progetto viene utilizzata la cosiddetta "formula ipsometrica". Questa formula utilizza la temperatura per compensare la misurazione.

float alt=((powf(source / ((float) P / 100.0), 0.19022256) - 1.0) * ((float) TEMP / 100 + 273.15)) / 0.0065;

Puoi trovare ulteriori informazioni sulla formula ipsometrica qui:

Formula ipsometrica

I dati di calibrazione di fabbrica e la temperatura del sensore vengono letti dal sensore MS5611 e applicati al codice per ottenere le misurazioni più accurate. Durante il test ho scoperto che il sensore MS5611 è sensibile ai flussi d'aria e alle differenze di intensità della luce. Deve essere possibile ottenere risultati migliori rispetto a questo video di istruzioni.

Passaggio 2: parti

1 x Microchip 18f26k22 microcontrollore 28-PIN PDIP

3 x MCP23017 Espansione I/O a 16 bit SPDIP a 28 pin

48 x LED 3mm

1 x modulo GY-86 con sensori MS5611, HMC5883L e MPU6050

1 x SH1106 OLED 128x64 I2C

1 x condensatore ceramico 100nF

1 x resistenza da 100 Ohm

Passaggio 3: schema elettrico e PCB

Schema circuitale e PCB
Schema circuitale e PCB

Tutto si adatta a un PCB a lato singolo. Trova qui i file Eagle e Gerber in modo da poterlo realizzare da solo o chiedere a un produttore di PCB.

Uso la bussola a LED e l'altimetro nella mia auto e uso l'interfaccia OBD2 come alimentatore. Il microcontrollore si inserisce perfettamente nel connettore.

Passaggio 4: come allineare perfettamente i LED in un cerchio in pochi secondi con il software di progettazione PCB Eagle

Devi vedere questa caratteristica davvero interessante nel software di progettazione PCB Eagle che ti fa risparmiare ore di lavoro. Con questa funzione Eagle puoi allineare perfettamente i LED in un cerchio in pochi secondi.

Basta fare clic sulla scheda "File" e quindi su "Esegui ULP". Da qui fare clic su "cmd-draw.ulp". Seleziona "Sposta", "Passo di grado" e "Cerchio". Inserire il nome del primo LED nel campo "nome". Impostare le coordinate del centro del cerchio sulla griglia nei campi "X center coord" e "Y center coord". In questo progetto ci sono 48 LED quindi 360 divisi per 48 fanno 7.5 per il campo "Angle step". Il raggio di questo cerchio è di 1,4 pollici. Premi invio e hai un cerchio perfetto di LED.

Passaggio 5: processo di calibrazione della bussola

Image
Image

L'HMC5883L include un ADC a 12 bit che consente una precisione di rotta della bussola da 1 a 2 gradi Celsius. Ma prima di fornire dati utilizzabili, deve essere calibrato. Per avere questo progetto attivo e funzionante senza intoppi c'è questo metodo di calibrazione che fornisce l'offset x e y. Non è il metodo più sofisticato ma è sufficiente per questo progetto. Questa procedura ti costerà solo pochi minuti e ti darà buoni risultati.

Caricando ed eseguendo questo software sarai guidato in questo processo di calibrazione. Il display OLED ti dirà quando inizierà il processo e quando terminerà. Questo processo di calibrazione ti chiederà di ruotare il sensore di 360 gradi tenendolo assolutamente piatto (orizzontale al suolo). Montalo su un treppiede o qualcosa del genere. Farlo tenendolo in mano non funziona. Alla fine gli offset verranno presentati sull'OLED. Se esegui questa procedura più volte, devi vedere risultati quasi uguali.

Opzionalmente, i dati raccolti sono disponibili anche via RS232 tramite il pin 27 (9600 baud). Basta usare un programma terminale come Putty e raccogliere tutti i dati nel file di registro. Questi dati possono essere importati facilmente in Excel. Da qui puoi vedere più facilmente come appare l'offset del tuo HMC5883L.

Gli offset vengono inseriti nella EEPROM del microcontrollore. Questi verranno caricati all'avvio del software della bussola e dell'altimetro che troverai al punto 7.

Passaggio 6: compensa la declinazione magnetica della tua posizione

Image
Image
Concorso Sensori
Concorso Sensori

C'è un nord magnetico e un nord geografico (polo nord). La tua bussola seguirà le linee del campo magnetico terrestre, quindi punta al nord magnetico. La differenza tra il nord magnetico e il nord geografico è chiamata declinazione magnetica. Nella mia posizione la declinazione è solo di 1 grado e 22 minuti, quindi non vale la pena compensarla. In altre località questa declinazione può arrivare fino a 30 gradi.

Trova la declinazione magnetica nella tua posizione

Se vuoi compensare questo (è facoltativo) puoi aggiungere la declinazione (gradi e minuti) nella EEPROM del microcontrollore. Alla posizione 0x20 puoi aggiungere i gradi in forma esadecimale con segno. È firmato perché può essere anche una declinazione negativa. Alla locazione 0x21 si possono aggiungere i minuti anche in forma esadecimale.

Passaggio 7: compila il codice

Image
Image

Compila questo codice sorgente e programma il tuo microcontrollore. Questo codice viene compilato correttamente con il compilatore MPLABX IDE v5.20 e XC8 v2.05 in modalità C99 (quindi includi le directory C99). Anche il file esadecimale è disponibile in modo da poter saltare la procedura di compilazione. Assicurati di deselezionare la casella di controllo "Dati EEPROM abilitati" per evitare che i dati di calibrazione (vedi passaggio 5) vengano sovrascritti. Imposta il tuo programmatore a 3,3 volt!

Collegando il pin 27 a massa si ottiene la temperatura in Fahrenheit.

Grazie ad Achim Döbler per la sua libreria grafica µGUI

Concorso Sensori
Concorso Sensori

Secondo classificato al concorso Sensori

Consigliato: