- Materials necessaris
- Què és i com funciona un magnetòmetre?
- Com funciona el mòdul del sensor HMC5883L
- Esquema de connexions
- Fabricació dels PCB per a la brúixola digital
- Muntatge del PCB
- Programació de l'Arduino
El cervell humà està format per una complexa capa d’estructures que ens ajuda a ser una espècie dominant a la terra. Per exemple, l’escorça entorinal del cervell us pot donar sensació d’orientació i us ajuda a navegar fàcilment per llocs que no coneixeu. Però a diferència de nosaltres, els robots i els vehicles Ariel no tripulats necessiten alguna cosa per obtenir aquest sentit de la direcció i puguin maniobrar de manera autònoma en nous terrenys i paisatges. Diferents robots utilitzen diferents tipus de sensors per aconseguir-ho, però el més utilitzat és un magnetòmetre, que pot informar al robot en quina direcció geogràfica es troba actualment. Això no només ajudarà el robot a detectar la direcció, sinó també a fer torns en una direcció i un àngel predefinits.
Atès que el sensor podria indicar el geogràfic nord, sud, est i oest, els éssers humans també el podríem utilitzar de vegades quan es requereixi. Per tant, en aquest article anem a intentar comprendre com funciona el sensor magnetòmetre i com connectar-lo amb un microcontrolador com Arduino. Aquí construirem una brúixola digital que ens ajudarà a trobar les indicacions fent brillar un LED que apunta direcció nord. Aquesta brúixola digital està perfectament fabricada en PCB de PCBGOGO, de manera que puc portar-la la propera vegada que surti a la natura i desitgi que em perdi només per fer servir aquesta cosa per trobar el camí de tornada a casa. Comencem.
Materials necessaris
- Arduino Pro mini
- Sensor magnetòmetre HMC5883L
- Llums LED - 8Nos
- Resistència 470 Ohm - 8Nos
- Barrel Jack
- Un fabricant fiable de PCB com PCBgogo
- Programador FTDI per a mini
- PC / ordinador portàtil
Què és i com funciona un magnetòmetre?
Abans de capbussar-nos al circuit, entenem una mica el magnetòmetre i el seu funcionament. Com el seu nom indica, el terme Magneto no es refereix a aquell mutant boig de meravella que podia controlar els metalls només tocant el piano a l'aire. Ah! Però m'agrada aquest noi que és genial.
El magnetòmetre és en realitat un equip que pot detectar els pols magnètics de la terra i assenyalar-ne la direcció. Tots sabem que la Terra és un enorme imant esfèric amb el pol nord i el pol sud. I per això hi ha un camp magnètic. Un magnetòmetre detecta aquest camp magnètic i, en funció de la direcció del camp magnètic, pot detectar la direcció que estem davant.
Com funciona el mòdul del sensor HMC5883L
El HMC5883L, que és un sensor magnetòmetre, fa el mateix. Té l'IC HMC5883L que prové de Honeywell. Aquest CI té 3 materials magneto-resistius a l'interior que estan disposats en els eixos x, y i z. La quantitat de corrent que circula per aquests materials és sensible al camp magnètic terrestre. Així, mesurant el canvi de corrent que circula per aquests materials podem detectar el canvi en el camp magnètic de la Terra. Quan el canvi magnètic s'absorbeix, els valors es poden enviar a qualsevol controlador incrustat, com ara un microcontrolador o un processador, mitjançant el protocol I2C.
Com que el sensor funciona detectant el camp magnètic, els valors de sortida es veuran molt afectats si es col·loca un metall a prop. Aquest comportament es pot aprofitar per utilitzar aquests sensors també com a detectors de metalls. S'ha de tenir cura de no apropar els imants a aquest sensor, ja que el fort camp magnètic d'un imant pot provocar falsos valors al sensor.
Diferència entre HMC5883L i QMC5883L
Hi ha una confusió comuna que gira al voltant d’aquests sensors per a molts principiants. Això es deu al fet que alguns proveïdors (en realitat la majoria) venen els sensors QMC5883L en lloc del HMC5883L original de Honeywell. Es deu sobretot al fet que el QMC5883L és molt més barat que el mòdul HMC5883L. El més trist és que el funcionament d’aquests dos sensors és lleugerament diferent i que no es pot utilitzar el mateix codi per a tots dos. Això es deu al fet que l'adreça I2C dels dos sensors no és la mateixa. El codi que es proporciona en aquest tutorial només funcionarà per a QMC5883L, el mòdul de sensor disponible habitualment.

Per saber quin model de sensor teniu, només heu de mirar de prop el CI propi per llegir el que hi ha escrit al damunt. Si està escrit com L883, és el HMC58836L i si està escrit com DA5883, és el QMC5883L IC. Tots dos mòduls es mostren a la imatge següent per facilitar-ne la discreció.

Esquema de connexions
El circuit d’aquesta brúixola digital basada en Arduino és bastant senzill, simplement hem d’interfacer el sensor HMC5883L amb l’Arduino i connectar 8 LED als pins GPIO de l’Arduino Pro mini. El diagrama complet del circuit es mostra a continuació

El mòdul Sensor té 5 pins dels quals el DRDY (Data Ready) no s’utilitza al nostre projecte, ja que estem operant el sensor en mode continu. El Vcc i el pin de terra s’utilitzen per alimentar el mòdul amb 5V des de la placa Arduino. SCL i SDA són les línies de bus de comunicació I2C que es connecten als pins I2C A4 i A5 de l’Arduino Pro mini respectivament. Com que el mòdul en si té una resistència de tracció alta a les línies, no cal afegir-les externament.
Per indicar la direcció hem utilitzat 8 LED, tots connectats als pins GPIO de l'Arduino mitjançant una resistència de limitació de corrent de 470 Ohms. El circuit complet està alimentat per una bateria de 9V a través del barril Jack. Aquest 9V s’ofereix directament al pin Vin de l’Arduino, on es regula a 5V mitjançant el regulador incorporat d’Arduino. Aquest 5V s’utilitza per alimentar el sensor i l’Arduino també.
Fabricació dels PCB per a la brúixola digital
La idea del circuit és situar els vuit LED de manera circular de manera que cada led apunti totes les vuit direccions, és a dir, nord, nord-est, est, sud-est, sud, sud-oest, oest i nord-oest respectivament. Per tant, no és fàcil disposar-los perfectament sobre una taula de tall o fins i tot sobre una taula de perfeccionament. El desenvolupament d’un PCB per a aquest circuit farà que sembli més net i fàcil d’utilitzar. Així que vaig obrir el meu programari de disseny de PCB i vaig col·locar els LEDs i la resistència en un patró circular ordenat i vaig connectar les pistes per formar les connexions. El meu disseny es veia com aquest a continuació quan es completa. També podeu descarregar el fitxer Gerber des de l’enllaç que es mostra a continuació.
- Descarregueu el fitxer Gerber per a la brúixola digital PCB

L'he dissenyat perquè sigui una placa lateral doble, ja que vull que l'Arduino estigui a la part inferior del meu PCB perquè no espatlli l'aspecte que hi ha a la part superior del meu PCB. Si us preocupa que hàgiu de pagar molt per un PCB lateral doble, espereu que tinc bona nova arribada.
Ara, quan el nostre disseny està llest, és hora de fabricar-los. Per fer el PCB de manera senzilla, seguiu els passos següents
Pas 1: accediu a www.pcbgogo.com, inscriviu-vos si és la primera vegada. A continuació, a la pestanya Prototip de PCB introduïu les dimensions del PCB, el nombre de capes i el nombre de PCB que necessiteu. El meu PCB fa 80 cm × 80 cm, de manera que la pestanya té l'aspecte següent

Pas 2: continueu fent clic al botó Cita ara . Se us dirigirà a una pàgina on definiu uns quants paràmetres addicionals si cal, com ara el material utilitzat espaiat entre pistes, etc. Però la majoria dels valors per defecte funcionaran bé. L’únic que hem de tenir en compte aquí és el preu i el temps. Com podeu veure, el temps de construcció és de només 2-3 dies i només costa 5 dòlars per al nostre PSB. A continuació, podeu seleccionar un mètode d’enviament preferit en funció del vostre requisit.

Pas 3: l'últim pas és carregar el fitxer Gerber i procedir al pagament. Per assegurar-se que el procés sigui fluït, PCBGOGO verifica si el fitxer Gerber és vàlid abans de procedir al pagament. D'aquesta manera, podeu assegurar-vos que el vostre PCB sigui amigable amb la fabricació i us arribi com a compromès.
Muntatge del PCB
Després d’ordenar el tauler, em va arribar després d’uns dies, tot i que el missatger en una caixa ben empaquetada i ben etiquetada i com sempre, la qualitat del PCB era impressionant. Comparteixo poques imatges de les taules següents perquè les jutgeu.

Vaig engegar la barra de soldar i vaig començar a muntar el tauler. Com que les petjades, els coixinets, les vies i la serigrafia són perfectament de la forma i mida adequades, no vaig tenir cap problema en muntar el tauler. El tauler estava llest en només 10 minuts des del moment de desembalar la caixa.
A continuació es mostren poques imatges del tauler després de la soldadura.

Programació de l'Arduino
Ara que el nostre maquinari està a punt, examinem el programa que s'ha de penjar a la nostra placa Arduino. El propòsit del codi és llegir les dades del sensor magnetòmetre QMC5883L i convertir-les en graus (0 a 360). Un cop sabem el grau, hem d’encendre un LED que apunta una direcció específica. La direcció que he utilitzat en aquest programa és cap al nord. Així que, independentment d’on us trobeu , només hi haurà un LED brillant a la vostra placa i la direcció del LED indicarà la direcció NORD. Un cop més tard es podria calcular l'altra direcció, es coneix una direcció.
El codi complet d’aquest projecte de brúixola digital es troba al final d’aquesta pàgina. Podeu penjar-lo directament al vostre tauler després d'incloure la biblioteca i ja podeu començar. Però, si voleu saber-ho
