- Matériaux nécessaires
- Qu'est-ce qu'un magnétomètre et comment ça marche?
- Fonctionnement du module de capteur HMC5883L
- Schéma
- Fabrication des circuits imprimés pour la boussole numérique
- Assemblage du PCB
- Programmation de l'Arduino
Le cerveau humain est constitué d'une couche complexe de structures qui nous aide à être une espèce dominante sur terre. Par exemple, le cortex entorhinal de votre cerveau peut vous donner un sens de l'orientation et vous aider à naviguer facilement dans des endroits que vous ne connaissez pas. Mais contrairement à nous, les robots et les véhicules sans pilote Ariel ont besoin de quelque chose pour obtenir ce sens de l'orientation afin qu'ils puissent manœuvrer de manière autonome dans de nouveaux terrains et paysages. Différents robots utilisent différents types de capteurs pour ce faire, mais le plus couramment utilisé est un magnétomètre, qui pourrait informer le robot dans quelle direction géo-graphique il fait actuellement face. Cela aidera non seulement le robot à détecter la direction, mais aussi à se relayer dans une direction et un ange prédéfinis.
Étant donné que le capteur peut indiquer le nord, le sud, l'est et l'ouest géographiquement, nous, les humains, pouvons également l'utiliser à certains moments lorsque cela est nécessaire. Donc, dans cet article, essayons de comprendre comment fonctionne le capteur magnétomètre et comment l'interfacer avec un microcontrôleur comme Arduino. Ici, nous allons construire une boussole numérique cool qui nous aidera à trouver les directions en allumant une LED pointant vers le nord. Cette boussole numérique est soigneusement fabriquée sur PCB de PCBGOGO, de sorte que je puisse la transporter la prochaine fois que je sors dans la nature et souhaite que je me perde juste pour utiliser cette chose pour retrouver mon chemin de retour. Commençons.
Matériaux nécessaires
- Arduino Pro mini
- Capteur magnétomètre HMC5883L
- Lumières LED - 8Nos
- Résistance 470Ohm - 8Nos
- Barrel Jack
- Un fabricant de circuits imprimés fiable comme PCBgogo
- Programmeur FTDI pour mini
- PC / ordinateur portable
Qu'est-ce qu'un magnétomètre et comment ça marche?
Avant de plonger dans le circuit, comprenons un peu le magnétomètre et son fonctionnement. Comme son nom l'indique, le terme Magneto ne fait pas référence à ce mutant fou dans la merveille qui pourrait contrôler les métaux en jouant simplement du piano dans les airs. Ohh! Mais j'aime ce mec, il est cool.
Le magnétomètre est en fait un équipement qui pourrait détecter les pôles magnétiques de la terre et indiquer la direction en fonction de cela. Nous savons tous que la Terre est un énorme morceau d'aimant sphérique avec le pôle nord et le pôle sud. Et il y a un champ magnétique à cause de cela. Un magnétomètre détecte ce champ magnétique et en fonction de la direction du champ magnétique, il peut détecter la direction à laquelle nous faisons face.
Fonctionnement du module de capteur HMC5883L
Le HMC5883L étant un capteur magnétomètre fait la même chose. Il a le HMC5883L IC dessus qui est de Honeywell. Ce circuit intégré comporte 3 matériaux magnétorésistifs à l'intérieur qui sont disposés dans les axes x, y et z. La quantité de courant traversant ces matériaux est sensible au champ magnétique terrestre. Ainsi, en mesurant le changement de courant circulant à travers ces matériaux, nous pouvons détecter le changement du champ magnétique terrestre. Une fois que le changement est le champ magnétique est absorbé, les valeurs peuvent alors être envoyées à n'importe quel contrôleur embarqué comme un microcontrôleur ou un processeur via le protocole I2C.
Comme le capteur fonctionne en détectant le champ magnétique, les valeurs de sortie seront grandement affectées si un métal est placé à proximité. Ce comportement peut être exploité pour utiliser ces capteurs comme détecteurs de métaux également. Il faut veiller à ne pas amener d'aimants à proximité de ce capteur car le champ magnétique puissant d'un aimant peut déclencher de fausses valeurs sur le capteur.
Différence entre HMC5883L et QMC5883L
Il existe une confusion courante autour de ces capteurs pour de nombreux débutants. En effet, certains fournisseurs (en fait la plupart) vendent les capteurs QMC5883L au lieu du HMC5883L original de Honeywell. C'est principalement parce que le QMC5883L est bien moins cher que le module HMC5883L. Le plus triste est que le fonctionnement de ces deux capteurs est légèrement différent et que le même code ne peut pas être utilisé pour les deux. En effet, l'adresse I2C des deux capteurs n'est pas la même. Le code donné dans ce tutoriel ne fonctionnera que pour QMC5883L le module de capteur couramment disponible.
Pour savoir quel modèle de capteur vous utilisez, il vous suffit de regarder de près le CI lui-même pour lire ce qui est écrit dessus. S'il est écrit quelque chose comme L883, alors c'est le HMC58836L et s'il est écrit quelque chose comme DA5883 alors c'est le CI QMC5883L. Les deux modules sont illustrés ci-dessous pour une compréhension facile.
Schéma
Le circuit de cette boussole numérique basée sur Arduino est assez simple, nous devons simplement interfacer le capteur HMC5883L avec l'Arduino et connecter 8 LED aux broches GPIO de l'Arduino Pro mini. Le schéma de circuit complet est illustré ci-dessous
Le module Sensor possède 5 broches dont le DRDY (Data Ready) n'est pas utilisé dans notre projet car nous utilisons le capteur en mode continu. La broche Vcc et terre est utilisée pour alimenter le module avec 5V à partir de la carte Arduino. Le SCL et le SDA sont les lignes de bus de communication I2C qui sont respectivement connectées aux broches A4 et A5 I2C de l'Arduino Pro mini. Étant donné que le module lui-même a une résistance de tirage élevée sur les lignes, il n'est pas nécessaire de les ajouter à l'extérieur.
Pour indiquer la direction, nous avons utilisé 8 LED qui sont toutes connectées aux broches GPIO de l'Arduino via une résistance de limitation de courant de 470 Ohms. Le circuit complet est alimenté par une pile 9V à travers le jack cylindrique. Ce 9V est fourni directement à la broche Vin de l'Arduino où il est régulé à 5V à l'aide du régulateur embarqué sur Arduino. Ce 5V est ensuite utilisé pour alimenter le capteur et l'Arduino également.
Fabrication des circuits imprimés pour la boussole numérique
L'idée du circuit est de placer les 8 LED de manière circulaire afin que chaque LED pointe toutes les 8 directions à savoir respectivement Nord, Nord-Est, Est, Sud-Est, Sud, Sud-Ouest, Ouest et Nord Ouest. Il n'est donc pas facile de les ranger proprement sur une maquette ou même sur une planche de performance d'ailleurs. Le développement d'un PCB pour ce circuit le rendra plus net et plus facile à utiliser. J'ai donc ouvert mon logiciel de conception de circuits imprimés et placé les LED et la résistance dans un motif circulaire soigné et connecté les pistes pour former les connexions. Ma conception ressemblait à ceci ci-dessous une fois terminée. Vous pouvez également télécharger le fichier Gerber à partir du lien ci-dessous.
- Télécharger le fichier Gerber pour Digital Compass PCB
Je l'ai conçu pour être une carte double face car je veux que l'Arduino soit dans la partie inférieure de mon PCB afin qu'il ne gâche pas le look sur le dessus de mon PCB. Si vous craignez de devoir payer cher pour un PCB double face, attendez, j'ai une bonne nouvelle à venir.
Maintenant que notre design est prêt, il est temps de le fabriquer. Pour faire le PCB est assez facile, suivez simplement les étapes ci-dessous
Étape 1: Accédez à www.pcbgogo.com, inscrivez-vous si c'est votre première fois. Ensuite, dans l'onglet Prototype PCB, entrez les dimensions de votre PCB, le nombre de couches et le nombre de PCB dont vous avez besoin. Mon PCB mesure 80cm × 80cm donc l'onglet ressemble à ceci ci-dessous
Étape 2: Continuez en cliquant sur le bouton Soumettre maintenant . Vous serez redirigé vers une page où définir quelques paramètres supplémentaires si nécessaire, comme le matériau utilisé, l'espacement des pistes, etc. Mais la plupart du temps, les valeurs par défaut fonctionneront bien. La seule chose que nous devons considérer ici est le prix et le temps. Comme vous pouvez le voir, le temps de construction n'est que de 2-3 jours et il ne coûte que 5 $ pour notre PSB. Vous pouvez ensuite sélectionner une méthode d'expédition préférée en fonction de vos besoins.
Étape 3: La dernière étape consiste à télécharger le fichier Gerber et à procéder au paiement. Pour vous assurer que le processus est fluide, PCBGOGO vérifie si votre fichier Gerber est valide avant de procéder au paiement. De cette façon, vous pouvez être sûr que votre PCB est facile à fabriquer et vous atteindra comme engagé.
Assemblage du PCB
Après la commande de la carte, elle m'est parvenue au bout de quelques jours par courrier dans une boîte bien emballée soigneusement étiquetée et, comme toujours, la qualité du PCB était excellente. Je partage quelques photos des planches ci-dessous pour que vous puissiez en juger.
J'ai allumé ma tige à souder et j'ai commencé à assembler la carte. Comme les empreintes, les pads, les vias et la sérigraphie sont parfaitement de la bonne forme et de la bonne taille, je n'ai eu aucun problème à assembler la planche. La planche était prête en seulement 10 minutes après le déballage de la boîte.
Quelques photos de la carte après le soudage sont présentées ci-dessous.
Programmation de l'Arduino
Maintenant que notre matériel est prêt, examinons le programme qui doit être téléchargé sur notre carte Arduino. Le but du code est de lire les données du capteur magnétomètre QMC5883L et de les convertir en degrés (0 à 360). Une fois que nous connaissons le degré, nous devons allumer une LED pointant une direction spécifique. La direction que j'ai utilisée dans ce programme est le nord. Ainsi, quel que soit l'endroit où vous vous trouvez, il n'y aura qu'une seule LED allumée sur votre carte et la direction de la LED indiquera la direction NORD. Une fois pourrait calculer plus tard l'autre direction est une direction connue.
Le code complet de ce projet Digital Compass se trouve à la fin de cette page. Vous pouvez le télécharger directement sur votre tableau après avoir inclus la bibliothèque et vous êtes prêt à partir. Mais si tu veux savoir