• Première étape
  • Matériel et accessoires ; GPIO
  • Projets
  • Logiciel
    • Serveur Web
  • Arduino & ESP8266
  • Automatisation de la maison
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Matériel et accessoires ; GPIO
  • Projets
  • Logiciel
  • Serveur Web
  • Première étape
  • Automatisation de la maison
  • Anglais
  • Allemand
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Matériel et accessoires ; GPIO»Construisez votre propre boussole Raspberry Pi (HMC5883L)

Construisez votre propre boussole Raspberry Pi (HMC5883L)

Facebook Twitter LinkedIn Tumblr Email Reddit
Raspberry Pi Kompass selber bauen
Share
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

En plus d’être utilisé comme un système de suivi GPS, le module HMC5883L peut également être utilisé pour construire une boussole Raspberry Pi. Celui-ci indique l’angle auquel il se trouve actuellement. Le module boussole HMC5883L peut être adressé via I2C, à l’instar de nombreux autres capteurs. Le capteur de rotation permet de construire des systèmes complets de position et de positionnement.

Dans ce tutoriel, nous voulons configurer notre propre boussole électronique Raspberry Pi afin qu’elle indique toujours la déviation (en degrés) par rapport au nord.

 

Composants de la Boussole

Raspberry Pi Compass Module HMC5883L
Module boussole Raspberry Pi HMC5883L

Dans ce tutoriel, j’ai utilisé les composants suivants :

  • Raspberry Pi
  • HMC5883L/GY-271
  • Câble jumper femelle femelle 

Pour la visualisation, on peut par exemple utiliser un servomoteur qui pointe dans la direction correspondante et réajuste ainsi l’aiguille de la boussole. J’ai déjà construit quelque chose de similaire avec une manette de Xbox 360, ce qui pourrait servir d’inspiration.

 

Connecteur boussole pour Raspberry Pi

Le module HMC5883L possède généralement cinq connexions, dont nous n’avons besoin que de quatre. La terminaison « DRDY » ou « RDY » reste libre.

Les quatre broches restantes du capteur sont connectées au Pi comme suit : VCC -> 3,3V (Broche 1), GND -> GND (Broche 6), SCL -> GPIO3 (Broche 5), SDA -> GPIO2 (Broche 3).

Certains capteurs ont six broches. Si vous en avez un (avec 3vo et VIN), les deux sont connectés à la broche 3.3V du Pi.

Vous pouvez trouver un aperçu de l’affectation des broches sur le Raspberry Pi ici. La connexion au Raspberry Pi ressemble à ceci :

Raspberry Pi HMC5883L Breadboard
Faites attention à l’étiquetage des broches du capteur !

Remarque : comme cette question est revenue plusieurs fois, je tiens à préciser que vous pouvez également faire fonctionner plusieurs périphériques I²C sur le Raspberry Pi en même temps. Pour ce faire, les connexions (SDA, SCL) sont mises en parallèle. Le module est reconnu via l’adresse matérielle fixe (plus d’informations à ce sujet ci-dessous). Seuls deux appareils ayant la même adresse I2C ne peuvent pas être exploités. Cependant, avec de nombreux capteurs, l’adresse peut être modifiée à l’aide de câbles jumper sur la carte de circuit imprimé. Si vous avez besoin de quelque chose de ce genre, je vous recommande de jeter un coup d’œil à la fiche technique.

 

Préparation de la boussole Raspberry Pi

Avant de pouvoir utiliser la boussole, certains logiciels sont nécessaires. Entre autres, le git client, les outils I2C et Python3 doivent être installés. Pour ce faire, nous ouvrons le terminal SSH et entrons ce qui suit :

sudo apt-get install git i2c-tools python-smbus python3 python-pip python-virtualenv python3-setuptools

Après une installation réussie, il faut encore activer l’I2C, si ce n’est pas encore fait. Pour ce faire, entrez dans la ligne de commande :

sudo raspi-config

Activez-la sous « Options avancées »> « I2C ».

Si le module boussole est déjà connecté, nous pouvons déjà voir s’il est reconnu. Pour ce faire, entrez sudo i2cdetect -y 1. Le résultat devrait ressembler à ceci :

pi@raspberrypi:~ $ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1e --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Si rien n’a été détecté, vous devez vérifier la connexion du capteur.

Normalement, les root rights doivent être disponibles pour lire le bus I²C. Cependant, comme la bibliothèque qui sera utilisée plus tard n’en dispose pas, nous devons d’abord l’activer. Pour cela, nous créons un fichier

sudo nano /etc/udev/rules.d/99-i2c.rules

avec le contenu suivant :

SUBSYSTEM=="i2c-dev", MODE="0666"

Avec CTRL + O, nous sauvegardons cette opération et avec CTRL + X, nous quittons l’éditeur et retournons au terminal.

 

Configurer la bibliothèque de la boussole de Raspberry Pi (HMC5883L)

Pour pouvoir utiliser le module boussole, nous avons besoin de deux bibliothèques Python 3, que nous allons maintenant installer :

git clone https://github.com/quick2wire/quick2wire-python-api
cd quick2wire-python-api

Pour pouvoir utiliser le module boussole, nous avons besoin de deux bibliothèques Python 3, que nous allons maintenant installer pwd pour montrer dans quel dossier vous vous trouvez. Pour mettre à jour le chemin Python, éditons le fichier Profiles :

sudo nano /etc/profile

En haut, ajoutez ces deux lignes (ajustez le circuit si nécessaire) :

export QUICK2WIRE_API_HOME=/home/pi/quick2wire-python-api
export PYTHONPATH=$PYTHONPATH:$QUICK2WIRE_API_HOME

Après avoir enregistré le fichier, nous redémarrons le Pi.

sudo reboot

 

Après nous être reconnectés via SSH, nous vérifions rapidement si le chemin d’accès est maintenant défini :

echo $PYTHONPATH

Celui-ci devrait maintenant contenir notre chemin spécifié. De plus, un périphérique I2C devrait être reconnu (le module de la boussole doit être connecté) :

ls /dev/i2c-*

Vous devez vous souvenir du numéro affiché car vous en aurez bientôt besoin (pour moi, c’est 1).

De retour dans le répertoire de la bibliothèque, nous pouvons maintenant commencer l’installation :

cd quick2wire-python-api
sudo python3 setup.py install

Maintenant, nous pouvons enfin installer la bibliothèque actuelle, qui peut lire la boussole HMC5883L.

git clone https://bitbucket.org/thinkbowl/i2clibraries.git

Il existe également d’autres bibliothèques I2C, comme celles disponibles pour l’ITG-3205, l’ADXL345 et les écrans LCD.

Si vous le souhaitez, vous pouvez également ajouter le circuit des bibliothèques à la variable Python path (analogue à celle présentée ci-dessus).

 

 

Test de la boussole du Raspberry Pi

Il est maintenant temps de tester la boussole électrique. Pour ce faire, nous appelons la console Python3:

sudo python3

Voici quelques exemples de codes qui décrivent les fonctions. Si votre périphérique I2C n’a pas le numéro 1 (comme le mien), vous devez l’ajuster à la ligne 3.

Python
1
2
3
4
5
6
7
8
from i2clibraries import i2c_hmc5883l
 
hmc5883l = i2c_hmc5883l.i2c_hmc5883l(1)
 
hmc5883l.setContinuousMode()
hmc5883l.setDeclination(2, 15)
 
print(hmc5883l)

Vous devez régler la déclinaison avec la plus grande précision possible (ligne 6). Pour moi, c’est 2 ° et 15 ‘(minutes d’arc). La « Déclinaison magnétique » est différente dans chaque endroit et peut par exemple être trouvée via cette page.

Dans l’exemple, nous sommes intéressés par la dernière valeur, qui peut aussi être lue via hmc5883l.getHeadingString(). Une valeur de 0 signifie que le capteur est dirigé vers le nord.

Lecture des axes

En plus de l’angle, il est également possible de lire la rotation des axes :

Python
1
2
3
4
5
6
7
8
from i2clibraries import i2c_hmc5883l
 
hmc5883l = i2c_hmc5883l.i2c_hmc5883l(1)
 
hmc5883l.setContinuousMode()
 
# Vers les axes mis à l'échelle
(x, y, z) = hmc5883l.getAxes()

 

Malheureusement, le site web contenant la documentation complète est maintenant hors ligne, mais heureusement, il est toujours accessible via la Wayback Machine.

GPS Kompass Navigation
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Previous ArticleCréation d’un certificat SSL Raspberry Pi gratuit avec Let’s Encrypt
Next Article Transfert de données Bluetooth de Raspberry Pi vers le Smartphone

Related Posts

Connecter un clavier Raspberry Pi – Code Lock

Construire un capteur de porte / fenêtre Raspberry Pi avec Reed Relais

Utiliser Raspberry Pi comme récepteur radio (autoradio FM, PC de voiture)

MCP3008 : Lire des signaux analogiques sur le Raspberry Pi

Leave A Reply Cancel Reply

Communication sans fil entre les Raspberry Pi via le courtier/client MQTT

Télécommandez une Raspberry Pi avec un émetteur radio de 433Mhz

Mesure de la rotation et de l’accélération avec le Raspberry Pi

Contrôlez un écran LCD HD44780 via I2C avec le Raspberry Pi

Evaluation de l’humidité du sol avec le Raspberry Pi

Contrôlez votre Raspberry Pi à l’aide d’une manette Xbox 360 sans fil

ABONNEZ-VOUS MAINTENANT
Et recevez de nouveaux tutoriels dans votre boîte de réception.
Cliquez ici pour soumettre!

Merci!

Nous vous contacterons bientôt.

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Politique de confidentialité
  • Conditions de service & Politique sur les cookies

Type above and press Enter to search. Press Esc to cancel.