Cet article de blog décrit comment faire fonctionner un capteur de boussole magnétique HMC5883L avec un Raspberry Pi. Les images ci-dessous montrent la carte de dérivation du capteur en question.
Pour Arduino Leonardo
Si vous ne possédez pas d’Arduino, ou si vous voulez simplement les instructions pour le Raspberry Pi, veuillez sauter cette section.
J’ai suivi les instructions de bildr.org pour connecter la carte à un clone Arduino Leonardo (le Dreamer Nano v4). Pour le Leo, les ports I2C sont D2 (pour SDA) et D3 (pour SCL). L’alimentation de la carte est 3v3 et vous devez également connecter la broche de terre. La broche DRDY n’est pas utilisée. J’ai téléchargé la bibliothèque Arduino et le package d’exemples à partir du bas de cet article (http://code.bildr.org/download/976.zip) et câblé comme ceci:
- VCC -> 3,3 v
- GND -> Terre
- SDA -> D2
- SCL -> D3
J’ai utilisé l’IDE Arduino pour télécharger l’exemple de croquis et j’ai ouvert le moniteur série à partir duquel j’ai obtenu les lectures suivantes:
Raw: 31 407 -587 Scaled: 28.52 374.44 -540.04 Heading: 1.54 Radians 88.26 Degrees
Lorsque j’ai fait pivoter la planche à pain sur laquelle le capteur était monté, les lectures ont changé.
Pour Raspberry Pi
Tout d’abord, assurez-vous que votre Pi a I2C installé et activé. C’est un peu un essai si vous ne savez pas ce que vous faites, mais si vous avez des problèmes, laissez-moi un commentaire. Suivez ces instructions pour savoir comment le faire. Après avoir exécuté la dernière commande:
i2detect -y
Deuxièmement, installer les bibliothèques ThinkBowl I2C. Veuillez noter que pour ces bibliothèques, vous devez utiliser Python 3, pas seulement Python ordinaire.
Prochain, trouvez votre déclinaison magnétique en utilisant ce site.
Connectez maintenant la carte du capteur. J’ai utilisé une maquette et un Connecteur d’évasion GPIO Hobbytronics, mais toi pouvez connectez-le directement aux broches GPIO du Pi. Voici les mappages pin-to-pin du Pi à la carte. N’oubliez pas que la broche 1 est le connecteur d’alimentation 3v du GPIO du Pi afin que vous puissiez compter à partir de là.
Pi pin number Pi pin name HMC5883L pin name -------------------------------------------------------- 1 3V3 VCC 6 Ground GND 3 SDA SDA 5 SCL SCL
Ensuite, utilisez le exemple de base Python à partir d’ici (ou voir ci-dessous) et exécutez-le avec python3 (par exemple python3 test-sensor.py) et vous devriez obtenir les lectures des axes X, Y, Z et votre cap en degrés et minutes. Faites pivoter le tableau et vous devriez obtenir des lectures différentes
#!/usr/bin/python3 from i2clibraries import i2c_hmc5883l
hmc5883l = i2c_hmc5883l.i2c_hmc5883l(1)
hmc5883l.setContinuousMode() hmc5883l.setDeclination(9,54)
print(hmc5883l)
NB: Si vous obtenez une erreur d’entrée / sortie, essayez de changer la première ligne en:
hmc5883l = i2c_hmc5883l.i2c_hmc5883l(0)
Enfin, si vous rencontrez des problèmes pour faire fonctionner ces instructions, veuillez laisser un commentaire ou utiliser mon formulaire de contact
poser des questions.
Voici, pour votre intérêt, à quoi ressemble mon Pi lorsqu’il est connecté à une maquette avec la carte de capteur dessus.
Ressources utilisées pour ce billet de blog
-
JoyousMall GY-271 HMC5883L Module de capteur magnétomètre à 3 axes, ADC 12 bits électronique pour boussole pour Arduino pour Raspberry Pi projets de navigation DIY
-
Lecreatekit GY-271 HMC5883L Module de capteur magnétomètre 3 axes 2,16-3,6 V Faible puissance pour boussole pour systèmes de navigation
