Charles a créé DigitalSpirit en 2004 pour partager ses idées, ses projets, au travers de divers support : Un blog, un wiki qui lui permet de publier simplement ses projets/docs/etc… un forum et enfin, un espace d’échange de fichiers (datasheet, docs…).
Le tout sous licence Creative Commons BY-NC-SA, tiens, comme framboise314 😉
Charles a créé (entre autres) la carte RaspiO’Mix+ qui ouvre les monde de Grove au Raspberry Pi. Lorsqu’il m’a proposé de l’essayer, j’ai tout de suite accepté avec enthousiasme !
Au sommaire :
La carte RaspiO’Mix
Open Source Hardware
L’intérêt de RaspiO’Mix+, outre le fait d’ouvrir le monde de Grove au Raspberry Pi, est que cette carte est développée en open source hardware, c’est à dire que vous trouverez en ligne les schémas, dessins des circuits imprimés. La librairie Python est également disponible en open source.
Charles m’ayant fourni gracieusement ce matériel, c’est donc un
=========== Article Sponsorisé ===========
Made in France
Pour compléter le tableau en beauté, je vous dirai que la carte est… fabriquée en France ! Si, si, ça existe encore ! 😀
C’est d’ailleurs ce qui saute aux yeux à l’ouverture du colis contenant le matériel :
Allez, brisons ce sceau qui se fait de plus en plus rare. Faites attention que la larme d’émotion qui roule sur votre joue ne tombe pas sur la carte 🙂
Starter Kit RaspiO’Mix+
En fait en déballant le matériel, je m’aperçois que Charles m’a envoyé le Starter Kit ! (Merci 😉 ) je vous propose de le découvrir avec moi :
La carte RaspiO’Mix
C’est une carte au format HAT qui vient se fixer sur le Raspberry Pi via le connecteur GPIO 40 broches :
Des entretoises métalliques sont fournies pour assurer un montage rigide et une bonne tenue de l’ensemble.
A noter que dans la version définitive un jeu de rondelles est prévu pour compenser la (légère) différence de hauteur entre les entretoises et le connecteur GPIO.
Jetons maintenant un coup d’œil à la carte RaspiO’Mix
Ce qui frappe le plus lorsqu’on sort la carte de son sachet c’est le nombre de prises… 8 pour les E/S analogiques (AN), 8 pour les E/S numériques (IO), 3 bus I2C et un bus série… Il y a aussi 2 DIP switchs (en rose en haut à droite)
Le schéma de la carte RaspiO’Mix
Comme on est ici en open hardware, le schéma complet de la carte est fourni.
Implantation des connecteurs sur RaspiO’Mix
La pile CR1220 qui alimente l’horloge temps réel (RTC) lorsque l’alimentation disparait est placée dans un support situé sous la carte. Elle est livrée avec le starter kit. Il reste juste à la mettre en place, le + de la pile est vers le haut et apparent :
L’horloge RTC est ici un DS1307 auprès duquel on trouve un quartz horloge (le cylindre situé entre le DIP switch rose et le circuit intégré DS1307 sur la photo ci-dessous).
Tous les composants actifs sont regroupés dans un angle de la carte, le reste est occupé par la connectique. Il reste deux emplacements vides sur la carte. L’un d’eux est prévu pour accueillir dans une version future l’EEPROM prévue sur les cartes HAT, l’autre pour un capteur de température I2C (TMP100 ou TMP101) au format SOT23-6 (en option).
Entre les prises analogiques on trouve les résistances formant le pont diviseur qui permet d’envoyer une tension d’entrée de 5V (RAn et RBn de 10K et 6K8).
Les modules Grove
Le starter Kit contient toute une série de modules Grove :
Chaque module est fourni avec son propre câble au format Grove.
Mise en service de la RaspiO’Mix
Installation sur le Raspberry Pi
Commencez par monter les entretoises sur le Raspberry Pi. Mettez la carte en place en enfonçant son connecteur sur le port GPIO du Raspberry Pi. Précédez avec méthode et vérifiez (revérifez ! ) que le connecteur est bien en place, qu’il n’y a pas de décalage…
Lorsque tout est bien vérifié, mettez les vis qui viendront fixer la RaspiO’Mix au Raspberry Pi pour former un ensemble rigide. Pas de souci, les trous tombent au bon endroit 😀 Rigolez pas… ce n’est pas toujours le cas…
Une fois tout ça bien contrôlé visuellement une nouvelle fois (ouiii je sais mais je suis comme ça, vérifier, revérifier…) vous pouvez mettre le Raspberry Pi sous tension en connectant la prise micro-USB. La LED présente sur la carte RaspiO’Mix s’allume pour indiquer que la tension arrive bien sur la carte.
L’autre solution est de connecter un jack 5v sur le connecteur de la RaspiO’Mix qui partagera alors son alimentation avec le Raspberry Pi.
Bibliothèque Python
Le démarrage de la RaspiO’Mix commence par le téléchargement de la bibliothèque Python disponible sur GitHub. Placez vous dans le répertoire de votre choix et récupérez raspiomix.py avec la commande
wget https://raw.githubusercontent.com/hugokernel/RaspiOMix/master/src/python/raspiomix.py
Respectez la casse (majuscules et minuscules) sinon… bin ça marchera pas 😉
wget https://raw.githubusercontent.com/hugokernel/RaspiOMix/master/src/python/raspiomix.py --2015-11-22 12:41:28-- https://raw.githubusercontent.com/hugokernel/RaspiOMix/master/src/python/raspiomix.py Résolution de raw.githubusercontent.com (raw.githubusercontent.com)... 185.31.19.133 Connexion vers raw.githubusercontent.com (raw.githubusercontent.com)|185.31.19.133|:443...connecté. requête HTTP transmise, en attente de la réponse...200 OK Longueur: 3749 (3,7K) Sauvegarde en : «raspiomix.py» 100%[======================================>] 3 749 --.-K/s ds 0s 2015-11-22 12:41:32 (12,0 MB/s) - «raspiomix.py» sauvegardé [3749/3749]
Premier test en Python
Lancez Python, chargez la bibliothèque raspiomix.py et faites une lecture d’un port d’entrée analogique :
pi@raspberrypi ~ $ python3 Python 3.2.3 (default, Mar 1 2013, 11:53:50) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from raspiomix import Raspiomix >>> r=Raspiomix() >>> print ("La tension est de %f Volt !" % r.readAdc(0)) La tension est de 0.000232 Volt ! >>>
C’est plutôt bon signe. La lecture de l’entrée analogique renvoie une valeur de 0V, comme il n’y a rien de branché dessus, c’est normal.
Après avoir branché le module Grove muni d’un potentiomètre, j’ai relancé plusieurs fois la mesure en modifiant la position du potentiomètre entre chaque mesure.
>>> print ("La tension est de %f Volt !" % r.readAdc(0)) La tension est de 1.602479 Volt ! >>> print ("La tension est de %f Volt !" % r.readAdc(0)) La tension est de 2.879830 Volt ! >>> print ("La tension est de %f Volt !" % r.readAdc(0)) La tension est de 0.000270 Volt ! >>> print ("La tension est de %f Volt !" % r.readAdc(0)) La tension est de 4.980597 Volt !
Pour les deux premières mesure, la position du potentiomètre est quelconque. Les deux dernières correspondent aux positions extrêmes du potentiomètre.
L’horloge RTC
L’horloge RTC de la carte RaspiO’Mix est alimentée par une pile lorsque la tension d’alimentation est absente. J’ai vérifié qu’il était possible d’accéder à l’horloge RTC pour régler l’heure et ensuite récupérer cette heure dans le système du Raspberry Pi.
pi@raspberrypi ~ $ sudo modprobe rtc-ds1307 pi@raspberrypi ~ $ echo ds1307 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device ds1307 0x68 pi@raspberrypi ~ $ sudo hwclock -r sam. 01 janv. 2000 00:00:13 UTC -0.528738 seconds pi@raspberrypi ~ $ date dimanche 15 novembre 2015, 14:59:17 (UTC+0000) pi@raspberrypi ~ $ sudo hwclock -w pi@raspberrypi ~ $ sudo hwclock -r dim. 15 nov. 2015 14:59:34 UTC -0.399494 seconds pi@raspberrypi ~ $
On modifiera /boot/config.txt pour que la prise en charge du DS1307 se fasse au démarrage du Raspberry Pi.
# Additional overlays and parameters are documented /boot/overlays/README dtparam=i2c_arm=on dtoverlay=i2c-rtc,ds1307
J’ai fait un premier test en éteignant le Raspberry Pi et en débranchant la prise micro-USB pendant plus d’un quart d’heure. après redémarrage du Raspberry Pi l’heure a bien été maintenue.
pi@raspberrypi ~ $ sudo hwclock -r dim. 15 nov. 2015 15:27:50 UTC -0.319010 seconds
Test du module LED
Pour ce test le module LED est connecté sur un port numérique IO 0.
j’ai ensuite créé un programme led_IO0.py
from raspiomix import Raspiomix import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(Raspiomix.IO0, GPIO.OUT) while True: GPIO.output(Raspiomix.IO0, not GPIO.input(Raspiomix.IO0)) time.sleep(1)
et ça fonctionne :
Test de la carte relais
Bon, là on va pas se casser la tête… J’ai simplement débranché le module LED que j’ai remplacé par le module relais. Comme c’est un gif animé vous n’entendrez pas le relais coller mais la LED présente sur la carte indique que tout fonctionne normalement.
Test du module boutons poussoirs
Un peu plus de mal pour trouver l’info sur la lecture des 2 boutons poussoirs… Je me suis penché sur le schéma (pas forcément évident pour un débutant) sur lequel on voit que chaque connecteur IO comporte en fait 2 entrées IO0 et IO1 par exemple pour le connecteur marqué IO0 et ainsi de suite : IO1 et IO2 pour le connecteur marqué IO1. Il manque à mon avis un schéma représentant physiquement les prises et identifiant les pins.
Programme de test pour lire les interrupteurs lit_inters.py :
from raspiomix import Raspiomix import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(Raspiomix.IO0, GPIO.IN) GPIO.setup(Raspiomix.IO1, GPIO.IN) while True: print("IO0: %s, IO1: %s" % (GPIO.input(Raspiomix.IO0), GPIO.input(Raspiomix.IO1)) time.sleep(1)
ce qui donne après lancement par sudo python3 lit_inters.py
IO0: 1, IO1: 1 IO0: 0, IO1: 1 IO0: 0, IO1: 1 IO0: 1, IO1: 1 IO0: 1, IO1: 1 IO0: 1, IO1: 0 IO0: 1, IO1: 0 IO0: 1, IO1: 0 IO0: 1, IO1: 1 IO0: 1, IO1: 1 IO0: 0, IO1: 1 IO0: 0, IO1: 1 IO0: 0, IO1: 1 IO0: 1, IO1: 1 IO0: 1, IO1: 1
On voit ici que les appuis sur les poussoirs se traduisent par un affichage de 0
Combien ça coûte ?
La carte RaspiO’Mix+ coûte 35,90€, que vous la commandiez avec un jack ou un bornier. Elle est compatible Raspberry Pi A+/B+, et Raspberry Pi 2.
Pour le Starter Kit décrit ci-dessus comptez 49,90€ avec la carte RaspiO’Mix+ et les différents modules Grove.
Enfin pour les possesseurs d’un Raspberry Pi ancien modèle (mais en fait pas si vieux que ça 😉 ) équipé d’un port GPIO à 26 broches, il existe la carte RaspiO’Mix qui coûte 29,90€. Elle est compatible Raspberry Pi A/B, A+/B+, et Raspberry Pi 2.
Vidéo
Processus de fabrication de la première version de la carte RaspiO’Mix pour le Raspberry Pi Model B.
Conclusion
Une belle réalisation qui élargit le monde du Raspberry Pi à l’univers de Grove. La connexion des modules Grove se fait de façon sécurisée avec les connecteurs utilisés, cela garantit des contacts de bien meilleure qualité que si vous utilisez des fils connectés sur le port GPIO.
L’utilisation du bus I2C autorise l’accès aux ports GPIO d’origine tout en mettant à disposition des E/S analogiques.
La disponibilité des schémas et du logiciel assure une transparence totale lors de l’utilisation.
Je pense que pour utiliser la carte il faudrait déjà avoir quelques bases en Linux, Python… Mais on peut aussi s’en servir pour apprendre et découvrir ces domaines… L’utilisation des modules Grove donne accès à des dizaines de fonctions qui seront utiles pour un projet maker, une installation domotique…
Charles travaille sur d’autres projets comme OpenAlarm qui pourront certainement vous intéresser. N’hésitez pas à visiter son site DigitalSpirit.
Sources
- http://www.digitalspirit.org/about/
- http://raspiomix.org/prise-en-main-plus.html
- http://raspiomix.org/le-logiciel.html
- http://raspiomix.org/doc-plus.html
- http://www.digitalspirit.org/blog/index.php/post/2015/11/16/Les-entrailles-d-OpenAlarm-%3A-Le-firmware
Bonjour,
je possède un routeur Banana Pi R1 (BPI-R1) qui est équipé de 26 broches identiques que celle du RPi.
Sachant que son système d’exploitation est OpenWRT, savez-vous me dire si cette carte (à 26 broches) pourrait fonctionner ?
Merci de détailler comment, car je n’ai aucune expérience du RPi ni de gestion GPIO et donc comment.
Ma question se pose à savoir si lancer du code python va suffire pour lire les senseurs ou si des librairies sont imposées à devoir tourner sur le système d’exploitation en plus.
D’avance merci.
Bonjour
bonne question… malheureusement je ne connais pas du tout le Banana Pi (juste le Raspberry Pi) . Le Banana Pi est annoncé comme compatible avec le Raspberry Pi mais je n’ai pas d’autre info
essayez de poser la question sur le forum ou sur un forum Banana pi.
désolé de ne pouvoir répondre
cordialement
François
Bonjour,
Avez-vous une idée de quels sont les avantages de cette carte par rapport à la carte officielle grove Pi ?
Julien
PS : Merci pour ce super blog !:-)
merci Julien
pour la comparaison je laisserai la parole au créateur de la carte car je n’ai pas testé la Grove Pi
cordialement
François
C’est pas une mauvaise idée 🙂
Je me demandais où est fabriqué le pcb car la vidéo ne le dit pas…
Bonjour Julien,
L’approche de RaspiO’Mix et de GrovePi n’est pas la même, avec RaspiO’Mix, on commande directement les entrées / sorties du Raspberry, avec GrovePi, on passe par une interface, cela veut dire qu’on ne peut pas utiliser les capacités physiques des IO du Raspberry (trigger, pwm, etc…).
En comparaison :
* RaspiO’Mix+ possède 8 entrées / sorties – GrovePi+ n’en a que 7
* RaspiO’Mix+ à 8 entrées analogiques (18bits de résolution) – GrovePi+ n’en possède que 3 (10bits de résolution)
* RaspiO’Mix+ possède 2 interrupteurs intégrés à la carte – GrovePi+ n’en possède pas
* RaspiO’Mix+ intègre une horloge temps réel – GrovePi+ n’en a pas
Pour finir, RaspiO’Mix à une taille moindre au format HAT, il est donc plus facile de l’intégrer dans un boitier et il est possible de choisir le connecteur d’alimentation (jack ou bornier à vis).
Pour un comparatif entre la première version de RaspiO’Mix et GrovePi, voici un article : http://www.digitalspirit.org/blog/index.php/post/2014/07/31/RaspiO-Mix-ou-GrovePi
@+
Ping : Raspberry Pi - Micro-cartes / Europe - International | Pearltrees
Ping : RaspberryPI | Pearltrees
Ou est-il possible d’acheter la carte les revendeurs me disent que ce n’est pas possible
Bonjour
sur http://www.raspiomix.org/ ?
cordialement
François
Bonjour,
Comme le dit François, les cartes sont disponibles exclusivement via le site http://www.raspiomix.org/
Salutations
Bonjour,
comme le dit François, pour passer commande, allez sur le site http://www.raspiomix.org/
Salutations