- Materiali richiesti
- Cos'è un magnetometro e come funziona?
- Come funziona il modulo sensore HMC5883L
- Schema elettrico
- Fabbricazione dei PCB per la bussola digitale
- Assemblaggio del PCB
- Programmazione di Arduino
Il cervello umano è costituito da un complesso strato di strutture che ci aiutano a essere una specie dominante sulla terra. Ad esempio, la corteccia entorinale nel cervello può darti il senso dell'orientamento aiutandoti a navigare facilmente attraverso luoghi che non conosci. Ma a differenza di noi, i robot e i veicoli Ariel senza pilota hanno bisogno di qualcosa per ottenere questo senso dell'orientamento in modo da poter manovrare autonomamente su nuovi terreni e paesaggi. Robot diversi utilizzano diversi tipi di sensori per ottenere questo risultato, ma quello comunemente utilizzato è un magnetometro, che potrebbe informare il robot in quale direzione geografica è attualmente rivolto. Questo non solo aiuterà il robot a percepire la direzione, ma anche a fare i turni in una direzione e un angelo predefiniti.
Dato che il sensore potrebbe indicare il nord geografico, il sud, l'est e l'ovest, anche noi umani potremmo usarlo quando necessario. Quindi in questo articolo cerchiamo di capire come funziona il sensore Magnetometer e come interfacciarlo con un microcontrollore come Arduino. Qui costruiremo una fantastica bussola digitale che ci aiuterà a trovare le direzioni accendendo un LED che indica la direzione nord. Questa bussola digitale è fabbricata ordinatamente su PCB da PCBGOGO, in modo che possa portarla la prossima volta quando esco in natura e vorrei che mi perdessi solo per usare questa cosa per trovare la strada di casa. Iniziamo.
Materiali richiesti
- Arduino Pro mini
- HMC5883L Sensore magnetometro
- Luci a LED - 8Nos
- Resistenza da 470 Ohm - 8Nos
- Barrel Jack
- Un produttore di PCB affidabile come PCBgogo
- Programmatore FTDI per mini
- PC / laptop
Cos'è un magnetometro e come funziona?
Prima di immergerci nel circuito, capiamo un po 'sul magnetometro e su come funzionano. Come suggerisce il nome, il termine Magneto non si riferisce a quel pazzo mutante in meraviglia che poteva controllare i metalli semplicemente suonando il piano nell'aria. Ohh! Ma mi piace quel ragazzo che è forte.
Il magnetometro è in realtà un apparecchio in grado di rilevare i poli magnetici della terra e indicarne la direzione. Sappiamo tutti che la Terra è un enorme pezzo di magnete sferico con Polo Nord e Polo Sud. E c'è un campo magnetico a causa di esso. Un magnetometro rileva questo campo magnetico e in base alla direzione del campo magnetico può rilevare la direzione in cui siamo rivolti.
Come funziona il modulo sensore HMC5883L
L' HMC5883L essendo un sensore magnetometro fa la stessa cosa. Ha l'IC HMC5883L di Honeywell. Questo IC ha 3 materiali magneto-resistivi all'interno dei quali sono disposti negli assi x, y e z. La quantità di corrente che scorre attraverso questi materiali è sensibile al campo magnetico terrestre. Quindi misurando il cambiamento nella corrente che scorre attraverso questi materiali possiamo rilevare il cambiamento nel campo magnetico terrestre. Una volta che la variazione è stata assorbita dal campo magnetico, i valori possono essere inviati a qualsiasi controller integrato come un microcontrollore o un processore tramite il protocollo I2C.
Poiché il sensore funziona rilevando il campo magnetico, i valori di uscita saranno notevolmente influenzati se un metallo viene posizionato nelle vicinanze. Questo comportamento può essere sfruttato per utilizzare questi sensori anche come metal detector. Prestare attenzione a non avvicinare i magneti a questo sensore poiché il forte campo magnetico di un magnete potrebbe attivare valori falsi sul sensore.
Differenza tra HMC5883L e QMC5883L
C'è una confusione comune che ruota attorno a questi sensori per molti principianti. Questo perché alcuni fornitori (in realtà la maggior parte) vendono i sensori QMC5883L invece dell'originale HMC5883L di Honeywell. È principalmente perché il QMC5883L è molto più economico del modulo HMC5883L. La parte triste è che il funzionamento di questi due sensori è leggermente diverso e lo stesso codice non può essere utilizzato per entrambi. Questo perché l'indirizzo I2C di entrambi i sensori non è lo stesso. Il codice fornito in questo tutorial funzionerà solo per QMC5883L, il modulo sensore comunemente disponibile.
Per sapere quale modello di sensore hai, devi solo guardare da vicino l'IC stesso per leggere cosa c'è scritto sopra di esso. Se è scritto qualcosa come L883, allora è HMC58836L e se è scritto qualcosa come DA5883, allora è l'IC QMC5883L. Entrambi i moduli sono mostrati nell'immagine sotto per una facile comprensione.
Schema elettrico
Il circuito per questa bussola digitale basata su Arduino è piuttosto semplice, dobbiamo semplicemente interfacciare il sensore HMC5883L con Arduino e collegare 8 LED ai pin GPIO di Arduino Pro mini. Lo schema elettrico completo è mostrato di seguito
Il modulo sensore ha 5 pin di cui il DRDY (Data Ready) non viene utilizzato nel nostro progetto poiché stiamo operando il sensore in modalità continua. Il Vcc e il pin di terra vengono utilizzati per alimentare il modulo con 5 V dalla scheda Arduino. SCL e SDA sono le linee del bus di comunicazione I2C che sono collegate rispettivamente ai pin I2C A4 e A5 di Arduino Pro mini. Poiché il modulo stesso ha una resistenza pull high sulle linee, non è necessario aggiungerle esternamente.
Per indicare la direzione abbiamo utilizzato 8 LED tutti collegati ai pin GPIO di Arduino tramite un resistore limitatore di corrente da 470 Ohm. Il circuito completo è alimentato da una batteria da 9V attraverso la canna Jack. Questo 9V viene fornito direttamente al pin Vin di Arduino dove è regolato a 5V utilizzando il regolatore di bordo su Arduino. Questo 5V viene quindi utilizzato per alimentare il sensore e anche Arduino.
Fabbricazione dei PCB per la bussola digitale
L'idea del circuito è posizionare gli 8 LED in modo circolare in modo che ogni LED punti tutte le 8 direzioni rispettivamente Nord, Nord-Est, Est, Sud-Est, Sud, Sud-Ovest, Ovest e Nord Ovest. Quindi non è facile disporli ordinatamente su una breadboard o anche su una perf board per quella materia. Sviluppare un PCB per questo circuito lo renderà più pulito e facile da usare. Quindi ho aperto il mio software di progettazione PCB e ho posizionato i LED e la resistenza in uno schema circolare ordinato e ho collegato le tracce per formare le connessioni. Il mio design sembrava qualcosa di simile a questo sotto una volta completato. Puoi anche scaricare il file Gerber dal link indicato di seguito.
- Scarica il file Gerber per il PCB della bussola digitale
L'ho progettato per essere una doppia scheda laterale poiché voglio che Arduino si trovi nella parte inferiore del mio PCB in modo che non rovini l'aspetto sopra il mio PCB. Se ti preoccupi di dover pagare in alto per un PCB a doppio lato, resisti, ho una buona novità.
Ora che il nostro design è pronto, è tempo di fabbricarli. Per completare il PCB è abbastanza semplice, segui semplicemente i passaggi seguenti
Passaggio 1: accedi a www.pcbgogo.com, registrati se è la prima volta. Quindi, nella scheda Prototipo PCB, inserisci le dimensioni del tuo PCB, il numero di strati e il numero di PCB richiesto. Il mio PCB è 80 cm × 80 cm, quindi la scheda è simile alla seguente
Passaggio 2: procedi facendo clic sul pulsante Cita ora . Verrai indirizzato a una pagina in cui impostare alcuni parametri aggiuntivi, se necessario, come il materiale utilizzato per la spaziatura delle tracce, ecc. Ma per lo più i valori predefiniti funzioneranno bene. L'unica cosa che dobbiamo considerare qui è il prezzo e il tempo. Come puoi vedere, il tempo di costruzione è di soli 2-3 giorni e costa solo $ 5 per il nostro PSB. È quindi possibile selezionare un metodo di spedizione preferito in base alle proprie esigenze.
Passaggio 3: il passaggio finale è caricare il file Gerber e procedere con il pagamento. Per assicurarsi che il processo sia fluido, PCBGOGO verifica se il tuo file Gerber è valido prima di procedere con il pagamento. In questo modo puoi essere certo che il tuo PCB è facile da fabbricare e ti raggiungerà come impegnato.
Assemblaggio del PCB
Dopo che la scheda è stata ordinata, mi è arrivata dopo alcuni giorni anche se corriere in una scatola ben imballata ben etichettata e come sempre la qualità del PCB era eccezionale. Condivido alcune immagini delle bacheche qui sotto affinché tu possa giudicare.
Ho acceso la mia barra di saldatura e ho iniziato a montare la scheda. Dato che Footprints, pad, vias e serigrafia sono perfettamente della giusta forma e dimensione, non ho avuto problemi a montare la tavola. La tavola era pronta in soli 10 minuti dal momento del disimballaggio della scatola.
Di seguito sono riportate alcune immagini della scheda dopo la saldatura.
Programmazione di Arduino
Ora che il nostro hardware è pronto, esaminiamo il programma che deve essere caricato nella nostra scheda Arduino. Lo scopo del codice è leggere i dati dal sensore magnetometro QMC5883L e convertirli in gradi (da 0 a 360). Una volta che conosciamo il grado, dobbiamo accendere un LED che punta in una direzione specifica. La direzione che ho usato in questo programma è il nord. Quindi, indipendentemente da dove ti trovi, ci sarà solo un LED acceso sulla tua scheda e la direzione del LED indicherà la direzione NORD. Una volta potrebbe successivamente calcolare l'altra direzione se una direzione è nota.
Il codice completo per questo progetto Digital Compass può essere trovato alla fine di questa pagina. Puoi caricarlo direttamente sulla tua bacheca dopo aver incluso la libreria e sei pronto per partire. Ma se vuoi saperlo