Intégration de données de capteurs sur Raspberry Pi : Guide pratique complet
Résumé
Apprenez à connecter et lire les données d'un module GPS et d'une centrale inertielle MPU‑9150 sur un Raspberry Pi via les interfaces I²C et UART, puis à traiter ces informations en temps réel pour la navigation autonome.
Mots‑clés : communication I2C, communication UART, Adafruit Ultimate GPS Breakout, Sparkfun MPU‑9150 Breakout, configuration Raspberry Pi
Introduction
L'acquisition de données capteurs est la colonne vertébrale de tout système de commande numérique. Lorsque le contrôleur embarqué traite ces entrées, le choix de l'interface de communication devient critique. Pour un projet de navigation robotique, des mises à jour GPS continues et des mesures de cap précises sont indispensables. Ce tutoriel montre comment câbler un module GPS et un magnétomètre sur un Raspberry Pi, visualiser les données à distance et les intégrer dans un logiciel de contrôle.
Objectif
Ce tutoriel avancé suppose une familiarité avec Raspbian et les commandes bash de base. Il vous guide dans la lecture des données accéléromètre et GPS via les interfaces série du Pi, le câblage des capteurs et la configuration des pilotes matériels nécessaires.
Matériel
- Sparkfun Breakout 9 degrés de liberté (MPU‑9150)
- Adafruit Ultimate GPS Breakout
Le MPU‑9150
Le MPU‑9150 est un module multi‑puces combinant un MPU‑6050 (gyroscope 3 axes & accéléromètre) et une boussole numérique AK8975. Largement utilisé dans les smartphones et tablettes pour sa faible consommation et ses hautes performances.
L'Adafruit Ultimate GPS
Le GPS Ultimate Adafruit repose sur une puce MTK3339 offrant un taux de mise à jour de 10 Hz, le suivi de 22 satellites et un port d'antenne externe. Sa LED rouge indique l'état du signal : clignotement 1 Hz pendant la recherche et clignotements espacés de 15 secondes une fois le fix obtenu.
Standards de communication
I²C
L'I²C utilise deux lignes bidirectionnelles (SDA et SCL) pour connecter un maître (le Pi) à plusieurs esclaves, chacun possédant une adresse unique.
UART
L'UART transmet les données de manière asynchrone en trames de 5 à 8 bits à un débit (baud rate) défini par le programmeur, nécessitant des lignes TxD et RxD séparées.
Liste des composants
- Raspberry Pi
- Alimentation
- Dongle Wi‑Fi
- Breakout Sparkfun MPU‑9150
- Breakout Adafruit Ultimate GPS
- Adaptateur USB‑vers‑TTL (optionnel)
- Plaque d'essai (breadboard)
- Fils de connexion M‑vers‑F
Prérequis
- Accès Internet disponible
- Raspbian installé et configuré en mode bureau
- Souris, clavier et moniteur HDMI connectés
Procédures
1. Identifier les broches GPIO du Pi
UART utilise GPIO 14 (Tx) et 15 (Rx) ; I²C utilise GPIO 2 (SDA) et 3 (SCL).
2. Câblage du GPS
Connectez le Tx du GPS au Rx du Pi, le Rx du GPS au Tx du Pi, alimentez le Vin en 3,3 V ou 5 V, et reliez la masse (GND) à celle du Pi.
3. Câblage du MPU‑9150
Connectez Vcc à 3,3 V, GND à la masse, SDA au GPIO 2 et SCL au GPIO 3.
4. Activer l'I²C sur le Pi
- Exécutez
sudo apt‑get update && sudo apt‑get install i2c‑tools libi2c‑dev - Installez WiringPi :
git clone git://git.drogon.net/wiringPi && cd wiringPi - Éditez
/etc/moduleset ajoutezsnd-bcm2835,i2c-bcm2708,i2c-dev - Éditez
/boot/config.txtpour ajouterdtparam=i2c1=onetdtparam=i2c_arm=on, puis redémarrez
5. Installer la démo MPU‑6050
- Clonez
git://github.com/richardghirst/PiBits.git, allez dansMPU6050-Pi-Demo, installezlibgtkmm-3.0-dev - Modifiez
I2Cdev.cppetsetup‑i2c.shpour remplacer/dev/i2c-0par/dev/i2c-1 - Compilez avec
make, lancez./setup-i2c.sh, puis vérifiez avecsudo i2cdetect -y 1 - Exécutez la démo avec
./demo_rawpour visualiser les données brutes du gyroscope et de l'accéléromètre
6. Configurer l'acquisition des données GPS
- Le guide GPS Daemon d'Adafruit est un bon point de départ, mais pour un traitement personnalisé nous utilisons la bibliothèque open‑source libgps
- Clonez
git://github.com/wdalmut/libgps.git, compilez avecmake && sudo make install - Testez avec l'exemple
position_logger.cfourni : compilez viagcc -o position_logger position_logger.c -lgps -lmet lancez./position_logger. Une fois le fix obtenu, latitude et longitude s'affichent en degrés décimaux
Conclusion
Ce tutoriel a couvert le câblage matériel, l'activation des protocoles de communication et la configuration logicielle de base pour deux capteurs courants sur Raspberry Pi. Bien que les exemples se concentrent sur l'affichage des données, les mêmes principes s'appliquent à l'intégration des sorties capteurs dans des algorithmes de navigation ou de contrôle sophistiqués. La maîtrise de chaque bibliothèque capteur et une solide compréhension du développement C/C++ permettront une fusion de capteurs plus complexe en temps réel.
Références
- Kevin Townsend. Adafruit Ultimate GPS on the Raspberry Pi, 15 juillet 2014.
- Walter Dal Mut. UART NMEA GPS library for Raspberry Pi, 8 sept 2014.
- InvenSense. MPU‑9150 Datasheet, 18 sept 2013.
Processus de fabrication
- Connecter plusieurs capteurs DS18B20 1-Wire à un Raspberry Pi pour une surveillance température précise
- Surveillance de température professionnelle sur Raspberry Pi avec DS18B20
- Surveillance précise de la température dans un placard serveur avec Raspberry Pi
- Contrôler une LED avec un capteur de mouvement PIR sur Raspberry Pi
- Construire un capteur d'humidité du sol Raspberry Pi low-cost pour irrigation intelligente
- Suivi de visage Pan/Tilt temps réel sur Raspberry Pi – Guide pratique
- Connecter directement un capteur ultrasonique Lego Mindstorms NXT à un Raspberry Pi
- Connecter un capteur ultrasonique HC‑SR04 à un Raspberry Pi – Guide pratique
- Réaliser votre premier projet IoT avec Raspberry Pi, DHT11 et ThingSpeak