Publié le 24 avril 2014 - par

Une carte de développement de capteurs pour Raspberry Pi chez Farnell

xtrinsic_sense_board_250pxFarnell distribue une carte appelée XTRINSIC-SENSE-BOARD embarquant des capteurs MEMS() freescale.

Accéléromètre 3 axes, magnétomètre 3 axes, température et pression sont au programme.

C’est après la journée Raspberry Pi du CERN où était présentée une carte (industrielle celle-ci) qui mettait en œuvre des capteurs dont un accéléromètre 3 axes que je me suis mis en quête d’un équivalent accessible pour une somme plus raisonnable.

Carte XTRINSIC-SENSE-BOARD

J’ai trouvé cette carte chez Farnell. Elle est vendue 14,77 € HT et offre pour ce prix un accéléromètre, un capteur de pression ainsi qu’un magnétomètre.

C’est une plateforme conçue pour développer des projets ou être intégrée à des réalisations à base de Raspberry Pi. Grâce à son interface I²C, elle peut être utilisée avec d’autres cartes sans monopoliser les ports du GPIO.

Cette carte d’évaluation de capteur MEMS :

  • Est compatible avec le Raspberry Pi et la carte FRDM-KL25Z
  • Fonctionne avec les kits de développement grâce à l’interface I²C
  • Propose un capteur de pression d’une grande précision [50 à 110 kPa, 2,5 V]
    un magnétomètre 3D à économie d’énergie
    un accéléromètre numérique à 3 axes
Carte Xtrinsic-Sense-Board de Freescale

Carte Xtrinsic-Sense-Board de Freescale

Compatibilité

Cette carte est munie d’une double connectique qui la rend compatible avec la carte KL25Z de Freescale (CN1 et CN2), mais aussi (et c’est là que ça nous intéresse !) avec notre framboise314 , puisqu’elle comporte un connecteur 26 points prévu pour le Raspberry Pi (CN3).

La carte Xtrinsic-Sense montée sur une KL25Z

La carte Xtrinsic-Sense montée sur une KL25Z

Une carte dédiée au seul Raspberry Pi aurait pu être de taille plus réduite puisque les capteurs occupent une place minime sur la carte :

Les 3 capteurs de la carte Xtrinsic-Sense-Board

Les 3 capteurs de la carte Xtrinsic-Sense-Board

Mais compatibilité oblige, la carte est munie d’un connecteur d’alimentation pour la KL25Z, ce qui fait qu’elle déborde du Raspberry Pi.

Carte Xtrinsic-Sense-Board vue de dessous

Carte Xtrinsic-Sense-Board vue de dessous

Sur cette vue de la carte, on reconnait le connecteur 26 points destiné au Raspberry Pi, ainsi que les deux rangées de broches assurant la connexion sur la carte KL25Z. Les 3 broches d’alimentation sur la KL25Z sont située dans l’angle inférieur droit. Une entretoise en Nylon assure la stabilité de la carte d’extension, ainsi qu’une fixation ferme sur le Raspberry Pi.

Installation de la carte sur le Raspberry Pi

L’insertion de la carte doit se faire impérativement hors tension. Assurez vous de bien positionner le connecteur femelle de la carte sur le port GPIO du Raspberry Pi. L’insertion des 26 broches nécessite une certaine force et la pression sur le connecteur me semble un gage de bonne tenue aux vibrations, si vous utilisez cette carte avec un RasPi embarqué (je n’ai pas eu l’occasion de tester la résistance aux vibrations, si vous l’avez fait, signalez le résultat dans les commentaires ci dessous 🙂 ).

Carte Xtrinsic-Sense-Board Montée sur le Raspberry Pi

Carte Xtrinsic-Sense-Board Montée sur le Raspberry Pi

On voit que le dépassement est minime. mais peut gêner l’insertion de l’ensemble dans un boîtier. Comme le connecteur à 3 broches ne transporte que l’alimentation, peut-on envisager de découper le morceau de carte « excédentaire » ?

Carte Xtrinsic-Sense-Board Montée sur le Raspberry Pi

Carte Xtrinsic-Sense-Board Montée sur le Raspberry Pi

Carte Xtrinsic-Sense-Board Montée sur le Raspberry Pi

Carte Xtrinsic-Sense-Board Montée sur le Raspberry Pi

Carte Xtrinsic-Sense-Board Montée sur le Raspberry Pi - Positionnement de l'entretoise

Carte Xtrinsic-Sense-Board Montée sur le Raspberry Pi – Positionnement de l’entretoise

Mécaniquement la carte s’adapte parfaitement au Raspberry Pi comme le montre cette image où l’on voit que l’entretoise tombe parfaitement sur le trou de fixation du Raspberry Pi.

Carte Xtrinsic-Sense-Board Montée sur le Raspberry Pi - Positionnement du connecteur

Carte Xtrinsic-Sense-Board Montée sur le Raspberry Pi – Positionnement du connecteur

Une autre de mes craintes concernait le connecteur prévu pour la carte KL25Z, inutilisé sur le Raspberry Pi. La photo ci-dessus montre qu’il n’y a aucune crainte à avoir. Le connecteur est à distance de toute partie de la carte du RasPi et la présence de l’entretoise fait qu’il ne pourra jamais descendre plus bas.

Carte Xtrinsic-Sense-Board Montée sur le Raspberry Pi - Positionnement du connecteur

Carte Xtrinsic-Sense-Board Montée sur le Raspberry Pi – Positionnement du connecteur

Sur cette vue latérale on voit bien le débordement de la carte sur la droite du Raspberry Pi, ainsi que les trois broches destinées à l’alimentation lorsque la Xtrinsic-Sense Board est utilisée avec la KL25Z. Notez également l’écartement convenable entre le condensateur C6, situé derrière la prise micro-USB d’alimentation) et la carte d’extension.

Documentation

xtrinsic_sense_board_doc01La documentation de la carte est disponible en ligne. Elle détaille l’installation sur la carte Freescale KL25Z et sur le Raspberry Pi, les caractéristiques de capteurs, l’installation des pilotes et des programmes ainsi que les tests réalisables en ligne de commande et via l’interface web.

Cliquez sur l’image ci-contre pour accéder à la documentation et la consulter si vous le souhaitez.

Les capteurs

Trois capteurs sont disponibles sur la carte Xtrinsic-Sense :

  • MPL3115A2 Altimètre I2C de précision
    Le MPL3115A2 emploie un capteur de pression MEMS avec une interface I2C.  Il fournit des informations précises de Pression/Altitude ainsi que la température. Les sorties des capteurs sont numérisés par un ADC avec une résolution de 24-bit. Ce composant dispense des tâches de traitement habituellement dévolues au CPU de l’hôte. Plusieurs modes d’économie d’énergie, d’interruption et d’acquisition autonome de données programmables par l’utilisateur sont disponibles, y compris la programmation du cycle d’acquisition. La consommation est de 40µA par mesure/seconde  de sortie. La pression en sortie peut être en fraction de Pascal et l’altitude en fraction de mètre. Le MPL3115A2 est livré en boîtier CMS de type LGA. Il mesure 5 mm x 3 mm x 1,1 mm et peut fonctionner entre -40 °C et 85 °C.
  • MAG3110 Magnétomètre 3 axes
    Ce composant peut être utilisé en conjonction avec un accéléromètre 3 axes pour réaliser une boussole électronique autonome pouvant fournir une information de cap précise. Il dispose d’une interface standard I2C et bénéficie de fonctions intelligentes intégrées. Le MAG3110 est capable de mesurer des champs magnétiques, avec un vitesse de sortie des données jusqu’à 80 Hz. Ce débit de données de sortie correspond à des intervalles d’échantillons de 12,5 ms à plusieurs secondes. Le MAG3110 est disponible en boîtier DFN plastique et il est prévu pour fonctionner dans la plage de température de -40 ° C à +85 ° C.
  • MMA8491 accéléromètre numérique 3 axes
    C’est un accéléromètre 3 axes logé dans un boîtier QFN de 3mm x 3 mm. Il peut travailler de deux façons, soit comme capteur d’inclinaison à 45°, soit comme accéléromètre numérique à sortie I2C. En tant que capteur d’inclinaison à 45°, le MMA8491Q offre une extrême facilité de mise en œuvre car il utilise un seul fil de sortie ligne par axe. Comme accéléromètre numérique les données disponibles sur 14 bits pour ±8g peuvent être lues avec une précision de 1 mg/LSB. La consommation extrêmement faible du MMA8491Q réduit le courant à moins de 400nA par Hz.
Architecture de l'accéléromètre - Le capteur est à droite, le circuit de traitement des données à gauche.

Architecture de l’accéléromètre – Le capteur est à droite, le circuit de traitement des données à gauche.

Mise en route du système

Deux solutions s’offrent à vous

Devinez… j’ai choisi la deuxième, mais si vous avez un peu de temps la première vous tend les bras… Seul bémol, la distribution est en anglais (yesssss) mais un simple

sudo rqspi-config

vous donnera accès à raspi-config pour régler les paramètres et passer en clavier français. Tapez bien un q à la place du a, et si vous ne savez pas où se trouve le tiret en QWERTY, il y en a un sur le pavé numérique (en haut à droite…).

Programmes de test en ligne de commande

Redémarrez le système et vous êtes prêt(e) à tester les fonctions de la carte. Des programmes en Python sont disponibles dans le répertoire rpi_sensor_board :

pi@raspberrypi:~$ cd ~/rpi_sensor_board/

Listez les programmes disponibles, 3 programmes en Python vont vous permettre de tester les capteurs : mag3110.py pour le magnétomètre, mpl3115a2 pour le capteur de pression et température, et enfin mma8491q.py. Vous disposez avec ces trois programmes d’une base de départ pour vérifier que les capteurs fonctionnent, mais surtout d’un socle solide pour réaliser vos propres applications.

Test du magnétomètre MAG3110

pi@raspberrypi ~/rpi_sensor_board $ sudo python mag3110.py

gtest_xtrinsic_sense_mmaL’affichage en µT pour les 3 axes fonctionne, modifiez la position de la carte pour observer les variations des valeurs affichées. Le capteur mesure le champ magnétique terrestre local, mais aussi ceux qui existent dans l’environnement proche de la carte. Essayez d’approcher un aimant, pour voir…

Test du capteur de pression/température MPLA3115A2

pi@raspberrypi ~/rpi_sensor_board $ sudo python mpl3115a2.py

test_xtrinsic_sense_temp3Là encore tout se passe bien et l’affichage de l’altitude et de la température fonctionnent.

Test de l’accéléromètre MMA8491Q

test_xtrinsic_sense_mmaL’affichage est cohérent, la carte est posée à plat et l’axe Z indique bien l’accélération due à la masse de la terre.

Directions des mesures d'accélération du MMA8491Q

Directions des mesures d’accélération du MMA8491Q

Programmes de test en mode WEB

Les programmes fournis avec la carte permettent également de tester l’interaction de celle-ci avec des pages web. En voici quelques exemples.

Initialisation des capteurs

Exécutez le programme sensor_website.py (attention celui-ci nécessite Python 3!)

pi@raspberrypi ~/rpi_sensor_board $ sudo python3 sensor_website.py

Un menu vous est proposé, choisissez le capteurs que vous souhaitez lier à la page web. Vous voyez ci-dessous la copie d’écran de deux choix successifs : 1 pour le magnétomètre, puis 3 pour l’accéléromètre, enfin 0 pour sortir du programme.

test_xtrinsic_sense_web2Boussole électronique

test_xtrinsic_sense_boussoleLa boussole indique l’orientation de la carte. La rotation de la carte provoque une rotation de l’aiguille sur l’écran.

Mesure de température

test_xtrinsic_sense_temp1Un ciel bleu et une pâquerette vous accueillent. La température est affichée à gauche. Que se passe-t-il si je pose un doigt sur le capteur ?

test_xtrinsic_sense_temp2La température a augmenté, tout semble normal…

Utilisation de l’accéléromètre

test_xtrinsic_sense_autoUne voiture sur une route. Bougez la carte, la voiture avance, recule, se décale sur la gauche ou la droite.

Conclusion

Pour moins de 20 € TTC (+ frais de port) cette carte vous permettra de bénéficier de capteurs très sensibles et de réaliser des applications utilisant leurs informations. Compas électronique, tablette à base de Raspberry, télécommande sans fil ou encore manette de jeu sont envisageable. Vous pourrez aussi contrôler la position d’un quad-copter ou toute autre application en fonction de vos besoins.
N’hésitez pas à faire part de vos projets, ou de vos réalisations dans les commentaires ci-dessous.

Sources

Pour cet article, les sources sont abondantes, mais je pense que le sujet mérite cette documentation…

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

10 réflexions au sujet de « Une carte de développement de capteurs pour Raspberry Pi chez Farnell »

        1. Igor

          It has much more, RTK GPS, 3-axis gyro, 3-axis accelerometer, 3-axis compass, ms5611 barometer, adc, chip to control servos.

          Répondre
  1. antoine

    Belle carte qui laisse envisager pas mal de trucs.
    Pour ma part, je l’intégrerai bien dans mon avion RC. Je me demande si le magnétomètre peut servir pour le positionnement à l’instar du GPS ?
    merci pour votre travail sur ce blog.
    Antoine

    Répondre
  2. Ping : Une carte de développement de capteurs p...

  3. Kstor4u

    Salut,

    J’ai regardé la datasheet de l’accéléromètre et je ne trouve pas la bande passante+fréquence d’acquisition.
    J’ai besoin de passer le 25Hz minimum.

    Est-ce que quelqu’un aurait une fiche plus complète ou des infos à ce sujet ?

    Merci d’avance.

    Répondre
  4. kstor

    Salut,

    Effectivement c’est très intéressant !
    Je n’ai pas trouvé dans la datasheet la bande passante du capteur.
    J’aurais besoin de 25 Hz. Est-ce qu’il y aurait une fiche technique qui aurait ces infos ?

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.