Farnell 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.
Au sommaire :
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
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).
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 :
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.
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 🙂 ).
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 » ?
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.
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.
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
La 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.
Mise en route du système
Deux solutions s’offrent à vous
- Installer une Raspbian propre et y intégrer les pilotes et programmes de démonstration de la carte Xtrinsic-Sense-Board
- Télécharger la distribution toute prête disponible en ligne…
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
L’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
Là 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
L’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.
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.
Boussole électronique
La 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
Un 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 ?
La température a augmenté, tout semble normal…
Utilisation de l’accéléromètre
Une 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…
- http://fr.farnell.com/cartes-de-capteur-xtrinsic
- http://www.element14.com/community/community/knode/dev_platforms_kits/mems-sensor-board/blog
- http://www.element14.com/community/docs/DOC-54360/l/element14-mems-sensors-evaluation-kit-with-freescale-frdm-kl25z-freedom-platform
- http://www.freescale.com/webapp/sps/site/overview.jsp?code=SNSMEMSOVERVIEW
- http://nextgenlog.blogspot.fr/2010/08/mems-packed-smartphones-creating-worlds.html
- http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MAG3110
- http://cache.freescale.com/files/sensors/doc/data_sheet/MMA8491Q.pdf
- http://www.element14.com/community/community/knode/dev_platforms_kits/mems-sensor-board/blog/2014/01/30/using-the-xtrinsic-sensor-board-for-raspberry-pi
- http://www.element14.com/community/community/knode/dev_platforms_kits/mems-sensor-board/blog/2014/02/13/enabling-support-for-xtrinsic-sensor-board-in-raspbian
- http://downloads.element14.com/sensorboard/sensor_board_1128.zip?ICID=Raspberrypi-Mems-Sensors-Board-Xtrinsic-Board-Space&COM=MEMSSensorsEvaluationBoard
es qu’il existe une du meme genre mais avec un gps intégré dans la carte (sans antenne)
Bonjour Elouan
oui ça existe, il s’agit de NAVIO. http://www.emlid.com/
Le GPS est intégré mais nécessite une antenne extérieure à connecter sur une prise SMC http://emlid.com/wp-content/uploads/2014/03/NavioPrototypes1.jpg
Le prix devrait tourner autour des 150$
Cordialement
François
Whaouu. 150$ pour une carte GPS… Non merci.
It has much more, RTK GPS, 3-axis gyro, 3-axis accelerometer, 3-axis compass, ms5611 barometer, adc, chip to control servos.
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
Je me pose exactement la même question que toi. Est-ce que quelqu’un aurait une idée?
Ping : Une carte de développement de capteurs p...
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.
Bonjour
la doc indique un ODR (output data rate) de <1Hz à 800Hz ce qui est également mentionné ici http://cache.freescale.com/files/training/doc/ftf/2014/FTF-SEG-F0171.pdf
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 ?
Bonjour
La feuille de caractéristiques du produit donne la même info Moins de 1Hz à 800Hz : http://cache.freescale.com/files/sensors/doc/data_sheet/MMA8491Q.pdf donc 25Hz est bien dans la plage.
Cordialement
François