Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

L'intégration des données du capteur avec le microprocesseur Raspberry Pi

Résumé


Pour implémenter divers capteurs sur un système robotique intégré, un environnement de programmation et des méthodes de communication valides capables de saisir des données de capteurs numérisées et d'utiliser ces données dans la boucle de contrôle sont nécessaires.

Mots-clés :communication I2C, communication UART, Adafruit Ultimate GP Breakout, Sparkfun MPU-9150 Breakout, Configuration Raspberry Pi


Présentation


L'acquisition et l'association des données des capteurs sont des éléments critiques pour le système de contrôle numérique. Étant donné qu'un contrôleur numérique intégré est utilisé pour traiter toutes les entrées de données du capteur, l'interface de communication, qui rend ces données lisibles et utilisables sur le microprocesseur, est la première priorité au niveau de la programmation. Un système de navigation
autonome, pour le projet d'équipe, nécessite un suivi continu de la localisation GPS et une mesure cohérente de l'angle de cap. Par conséquent, le groupe décide d'utiliser un module GPS pour détecter l'emplacement actuel (en latitude et longitude) du robot et d'utiliser un magnétomètre pour mesurer le parcours. Les données acquises par les deux modules seraient visibles sur une interface utilisateur à distance et peuvent également être utilisées dans un logiciel de contrôle.

Objectif

Il s'agit d'un didacticiel avancé qui suppose que l'utilisateur connaît certaines manipulations de base du système d'exploitation Raspbian, par exemple, installer une bibliothèque ou créer un fichier de script à l'aide du terminal Unix dans les commandes bash de la ligne de commande. L'objectif de cette note d'application est de guider une méthode permettant à l'utilisateur de lire les données de l'accéléromètre et les données GPS à partir de différentes interfaces de communication avec le Raspberry Pi en réel. En plus des instructions de ligne de commande, ce didacticiel couvre également les détails du câblage des capteurs au Pi et la configuration matérielle des capteurs.

Informations

Matériel
○ Sparkfun 9 degrés de liberté Breakout MPU9150

Le capteur de mesure inertielle utilisé pour ce projet est le Invensense MPU-9150 avec carte de dérivation conçue par sparkfun. Le MPU-9150 est un module multi-puces composé de deux matrices intégrées dans un seul boîtier. Une matrice est MPU-6050 avec un gyroscope à 3 axes et un accéléromètre à 3 axes. L'autre matrice abrite la boussole/magnétomètre numérique à 3 axes AK8975 d'Asahi Kasei Microdevices Corporation. Cette puce a été conçue pour une faible consommation, un faible coût et des performances élevées et est actuellement utilisée dans de nombreux endroits, y compris les smartphones et les tablettes.

Adafruit Ultimate GPS Breakout

Le breakout est construit autour du module MTK3339 de troisième génération qui prend en charge une antenne externe et une sortie Pulse-Per-Second. Il a un taux de mise à jour de 10 Hz et peut suivre jusqu'à 22 satellites sur 66 canaux. Ce module GPS est conçu pour un système embarqué qui offre une entrée de faible puissance (3,3 à 5 V) et la broche ENABLE peut être utilisée pour éteindre le module à l'aide de n'importe quelle broche de microcontrôleur. Il y a aussi une petite LED rouge qui est capable d'indiquer l'état du signal. La LED clignote à 1 Hz pendant la recherche de satellites et clignote une fois toutes les
15 secondes lorsqu'un correctif est trouvé. Ce GPS ne fonctionne qu'en champ libre lorsqu'il n'y a pas de bâtiment autour. Chaque fois qu'il acquiert un signal FIX, les données de cap, de longitude, de latitude et d'altitude seront mises à jour à la
fréquence définie par l'utilisateur.

Normes de communication


○ Communication I2C
I2C signifie Inter-Integrated Circuit Bus. I2C utilise un microcontrôleur comme maître et se connecte à plusieurs esclaves avec des adresses uniques via un bus informatique asymétrique. Il n'utilise que deux lignes à drain ouvert bidirectionnel :la ligne de données série (SDA) et une horloge série (SCL). SDA définit le bit transféré lorsque SCL est bas et les données sont reçues lorsque SCL est élevé.
○ Communication UART
UART signifie récepteur/émetteur asynchrone universel. Il transmet/reçoit des données en série à partir d'un octet (5-8 bits) de données écrites/stockées dans un registre. Toutes les données seront lues à une certaine vitesse de transmission prédéfinie par le programmeur. La transmission UART nécessite trois types de signaux :un Transmit Data (TxD), un Receive Data (RxD) et un Signal Ground (SG). Étant donné que ce type de transmission n'est pas bidirectionnel, deux lignes de réception et de transmission distinctes sont nécessaires.

Liste des pièces
Pour la configuration matérielle et la programmation sur Raspberry Pi, les pièces suivantes sont
nécessaires :
● Un Raspberry Pi
● Une alimentation électrique
● Un dongle Wifi
● Un gyroscope et un accéléromètre Sparkfun MPU9150
● Un module de dérivation GPS Adafruit Ultimate
● Un câble adaptateur USB vers TTL (en option)
● Une planche à pain
● Cavaliers MF
Hypothèses
Avant de commencer ce tutoriel, plusieurs hypothèses doivent être faites. Étant donné que ces notes d'application ne se concentreront que sur une facette particulière de l'ensemble du projet, la procédure de configuration de base pour le nouveau Raspberry Pi et la configuration du réseau sans fil seront ignorées ici. Voici quelques hypothèses sous-jacentes sur lesquelles cette application note :
● un accès Internet valide
● un système d'exploitation Raspian installé et le comportement de démarrage du Pi a été défini en mode bureau
● a une souris et un clavier se connectent aux ports usb du raspberry pi, et un moniteur se connecte via un adaptateur HDMI pour assurer l'affichage graphique.

Procédures :

  1. Connaître la configuration GPIO du Raspberry Pi pour la communication série. Les broches série utilisées dans la partie suivante de ce didacticiel sont GPIO 14 et 15 pour UART et GPIO 2 et 3 pour I2C.
  1. Câblage du GPS Adafruit au Raspberry Pi
    Trouvez les broches Tx/Rx, Vin et gnd sur votre module gps adafruit. Croiser ses broches Tx et Rx aux broches Rx et Tx sur Raspberry Pi. Ensuite, fournissez 5 V ou 3,3 V du Pi à la broche Vin et court-circuitez la broche GND avec la masse du Pi.
  1. Câblage du MPU9150 au Raspberry Pi
    Connectez les quatre broches du haut du MPU9150 au Raspberry Pi. Câblez GPIO 2 à SDA (ligne de données) et GPIO 3 à SCL (ligne d'horloge). Fournir 3,3 V du Pi à la broche Vcc de l'accéléromètre et court-circuiter la broche GND à la terre.
  1. Préparer le Pi pour la communication I2C
    a. Ouvrez un terminal dans Raspberry Pi et entrez les commandes bash suivantes :
    sudo apt-get update
    sudo apt-get install i2c-tools libi2c-dev
    b. WiringPi est une bibliothèque C++ très puissante conçue pour le RasPi qui comprend une grande variété d'outils GPIO pour le PI. Pour installer WiringPi, entrez les commandes suivantes :
    git clone git://git.drogon.net/wiringPi
    cd wirePi
    sudo nano /etc/modules
    c. Ajoutez les trois lignes suivantes au bas du fichier (/etc/modules) si elles n'y sont pas déjà
    snd-bcm2835
    i2c-bcm2708
    i2c-dev
    d . Ensuite, modifiez les paramètres de démarrage pour allumer l'i2c au démarrage. Tapez la commande bash :
    sudo nano /boot/config.txt
    e. Ajoutez les lignes suivantes au bas de ce fichier :
    dtparam=i2c1=on
    dtparam=i2c_arm=on
    f. Redémarrez votre Raspberry Pi
  2. Installation et exécution du logiciel MPU-6050-Pi-Demo
    a. Saisissez les commandes bash suivantes dans une fenêtre de terminal :
    git clone git://github.com/richardghirst/
    PiBits.git
    cd PiBits/MPU6050-Pi-Demo
    sudo apt-get install libgtkmm-3.0-dev
    b. Certains des fichiers sources doivent être modifiés pour fonctionner avec le Pi. Nous devons modifier les fichiers I2Cdev.cpp et setup-i2c.sh. Utilisez les commandes bash
    « nano » pour modifier le fichier.
    c. Changez toutes les références à "/dev/i2c-0" pour lire "/dev/i2c-1" dans ce fichier et enregistrez.
    d. Saisissez les commandes bash suivantes pour compiler la source :
    make
    ./setup-i2c.sh
    e. Attendez que les sources aient fini de compiler, puis entrez la commande bash suivante :
    sudo i2cdetect -y 1
    f. Vous devriez voir la sortie suivante

g. Exécutez maintenant l'exemple de programme « demo_raw » dans ce dossier en tapant la commande bash suivante :
./demo_raw
h. Cette démo affichera les valeurs brutes du gyroscope et de l'accélération dans le terminal
a/g :Ax Ay Az Gx Gy Gz

  1. Afin d'obtenir les données du module GPS Adafruit, Adafruit dispose de son propre logiciel auto-développé nommé GPS Daemon (gpsd). Le tutoriel est disponible sur le lien :https://learn.adafruit.com/adafruit-ultimate-gps-on-the-raspberry-pi
  2. Étant donné que gpsd n'est pas un logiciel open source, il est préférable d'utiliser un logiciel tiers qui permet aux utilisateurs de modifier et de créer leur propre fichier à lire à partir du gps. « libgps » est une bibliothèque gps open source créée pour une utilisation principalement sur les cartes Raspberry ARM et testée avec Adafruit Ultimate GPS Breakout. Nous utilisons cette bibliothèque dans notre projet.
  3. Installation et compilation du package libgps.
    a. Pour installer libgps, saisissez les commandes suivantes :
    git clone git://github.com/wdalmut/libgps.git
    cd libgps
    b. Après vous être dirigé vers le dossier libgps, créez les fichiers pour obtenir libgps.a en tapant :
    make
    sudo make install
  4. Vous pouvez trouver un exemple de code dans le dossier d'exemple appelé "position_logger.c" pour tester la connexion
    a. Compilez-le avec
    gcc -o position_logger position_logger.c -lgps
    -lm
    b. Exécutez-le avec
    $ ./position_logger
    c. Lorsqu'il y a un signal GPS valide (le voyant fixe ne clignote pas à 1 Hz),
    vous devriez voir les degrés décimaux pour les latitudes et les longitudes
    directement dans la console, comme suit :
    45.071060 7.646363
    45.071082 7.646385
    45.071078 7.646387
    45.071060 7.646373
    45.071048 7.646358
    45.071052 7.646372
    45.071057 7.646392
    45.071062 7.646372
    45.071057 7.646392
    45.063.071062 7.646372
    45.071057 7.646392
    45.071062 7.64.071062
    45.071073 7.646395
    45.071082 7.646403
    Conclusion
    Cette note d'application a pris deux capteurs comme exemple et a guidé l'utilisateur dans la configuration de la communication série entre les capteurs et le Pi dès la première étape. Il a également brièvement expliqué la méthode de ligne de commande pour éditer, compiler et exécuter un fichier. Cependant, pour écrire ces données de capteur dans un algorithme, il faut beaucoup plus d'efforts que de simplement les visualiser. L'objectif ultime, ou en d'autres termes, la dérivation plus avancée de cette note d'application devrait traiter différentes bibliothèques de capteurs à partir d'un seul
    fichier de script. Cela nécessite une compréhension plus approfondie des principes de codage derrière chaque progiciel de capteur.
    Référence :
  5. Kevin Townsend. Adafruit Ultimate GPS sur Raspberry Pi, 15 juillet 2014.
    Web. https://learn.adafruit.com/downloads/pdf/adafruit-ultimate-gps-on-theraspberry-pi.pdf
  6. Walter Dal Mout. Bibliothèque GPS UART NMEA pour Raspberry Pi. 08 sept. 2014.
    Web. https://github.com/wdalmut/libgps
  7. InvenSense. Fiche technique MPU-9150, 18 sept. 2013. Web. http://
    www.invensense.com/mems/gyro/documents/PS-MPU-9150A-00v4_3.pdf

Source :L'intégration des données du capteur avec le microprocesseur Raspberry Pi


Processus de fabrication

  1. Mesure des températures avec un capteur DS18B20 1 fil et Raspberry Pi
  2. Surveillance de la température sur le Raspberry Pi
  3. Contrôle de la température avec Raspberry Pi
  4. Capteur de mouvement utilisant Raspberry Pi
  5. Capteur d'humidité du sol Raspberry Pi
  6. Pan/Tilt Face Tracking avec le raspberry pi
  7. Comment connecter un capteur à ultrasons Lego Mindstorms NXT au Raspberry Pi
  8. Capteur de portée à ultrasons HC-SR04 sur le Raspberry Pi
  9. Créez votre premier IOT avec un Raspberry Pi, un capteur DHT11 et Thingspeak.