Test du BeagleBone Black avec Yoctopuce

Test du BeagleBone Black avec Yoctopuce

Ces dernières années, un grand nombre de mini- (voire micro-) PCs bon marché sont apparus. La plupart ont basés sur une architecture ARM et le système d’exploitation Linux, et le plus connu est bien évidemment le Raspberry Pi. Récemment, un nouveau concurrent est apparu : le BeagleBone Black. Nous avons décidé d’en commander un pour voir ce que vaut ce board.




Nous avons déjà testé un grand nombre de ces mini-PCs, mais nous n’avons jamais trouvé la perle rare. Pour réaliser des projets personnels, ces machines fonctionnent relativement bien, mais nous n’oserions jamais mettre une de ces machines en production pour un système qui doit être opérationnel 24 heures sur 24 et 7 jours sur 7. Le Raspberry Pi, par exemple, souffre d’une pile USB plus que perfectible, les MK802/MK805 ont une interface Wi-Fi qui n’est pas fiable etc. D’une manière générale, aucune de ces machines ne fournit de support officiel digne de ce nom.

Le BeagleBone Black
Le BeagleBone Black



Le BeagleBone Black (BBB) cible très clairement les utilisateurs du Raspberry Pi. Ces deux machines sont livrées sans boîtier, les boards sont à peu près de la même taille. On retrouve dans les deux cas une sortie HDMI, un port Ethernet, 512 Mb de RAM et un processeur ARM (un peu plus puissant sur le BeagleBone Black).

Nous avons trouvé de nombreux tests et comparatifs de ces deux machines, mais aucun qui teste vraiment le port USB. C’est pour cela que nous avons décidé de tester notre projet PiCooker sur le BeagleBone Black.

Premier point positif, le BBB est livré avec une distribution Linux déjà installée. Il vous suffit de brancher l’alimentation pour que la machine boote directement une image Angstrom Linux. C’est très pratique, même si à terme vous allez probablement vouloir installer votre propre image avec votre distribution préférée.

Un autre point positif de ce board est l’alimentation, plus particulièrement l’alimentation du port USB. Le BeagleBone Black ne dispose que d’un port USB ce qui rend presque obligatoire l’utilisation d’un hub USB mais, contrairement au Raspberry Pi, ce port est capable d’alimenter à lui tout seul un hub USB plus 4 périphériques USB (un clavier, une souris, et deux modules Yoctopuce). Pour l’utilisation des modules Yoctopuce c’est un gros avantage: plus besoin d’alimenter le hub USB en plus du board. Le port USB fonctionne parfaitement en USB 2.0 et est capable de supporter la charge de plusieurs périphériques sans perdre de paquet. A aucun moment pendant nos tests nous n'avons eu d'erreur de communication USB.

Le BeagleBone Black est capable d'alimenter plusieurs périphériques USB sans problèmes
Le BeagleBone Black est capable d'alimenter plusieurs périphériques USB sans problèmes



Par contre, tout comme le Raspberry Pi, le BeagleBone Black n’a pas de Real Time Clock (RTC), ce qui signifie que dès que vous allez éteindre votre système celui-ci perdra l’heure. Il faut donc mettre à jour l’heure système à chaque boot ! Cela peut être fait avec la commande:

ntpdate -b -s -u pool.ntp.org



On ne pense pas toujours à ce problème, mais le fait de ne pas avoir de RTC peut poser de vrais problèmes si vous voulez logger des événements sur une carte SD, par exemple lors d’une coupure de courant dans votre bâtiment. Il y a fort à parier que votre BeagleBone Black ait finit de booter avant que votre routeur ADSL ait réussi à établir une connexion avec votre fournisseur Internet et vous ne pourrez pas mettre l’heure à jour tant que vous n’aurez pas une connexion Internet.

Passons à l’installation de la libraire Yoctopuce pour Python. Nous allons utiliser la version qui est disponible sur PyPi. L’exécutable pip qui permet d’installer des librairies Python n’est pas disponible par défaut, il faut l’installer avec l’utilitaire opkg. Avant de commencer, assurez-vous d’avoir mis à jour l’heure système, sinon la plupart des commandes suivantes ne fonctionneront pas correctement.

opkg update opkg install python-setuptools opkg install python-pip



Une fois pip installé, la librairie Yoctopuce s’installe très facilement avec la commande:

pip install yoctopuce



Avant de télécharger et d’exécuter PiCooker, il faut aussi installer la librairie matplotlib qui est utilisée pour dessiner les graphiques:

pip install --upgrade numpy pip install matplotlib



Finalement, il ne reste plus qu’à télécharger et executer le script Python du PiCooker:

git clone git://github.com/yoctopuce-examples/PiCooker.git cd PiCooker ./picooker.py --smtp_host=smtp.gmail.com --smtp_port=465 --smtp_user=myemail@gmail.com --smtp_pass=mypassword



Vous deviez pouvoir vous connecter sur l’interface web du PiCooker (http://localhost:8888). Si vous ne savez pas ce que fait PiCooker ou comment l’utiliser, vous pouvez relire l’article original.


Pour conclure, le BeagleBone Black est une solution très intéressante pour les gens qui ont besoin d’une machine très bon marché ou très petite pour interagir avec nos modules. Pour 10$ de plus qu’un Raspberry Pi, ce board fournit un port USB qui fonctionne. L’installation est relativement simple si l’on connait un peu Linux. Très honnêtement, nous ne recommanderions pas (encore) d’utiliser ce board dans un milieu industriel, mais pour les cas moins critiques, c’est une très bonne solution. Nous allons continuer à tester ce système et nous referons probablement un point dans quelques temps.

Commenter 5 commentaires Retour au blog



1 - bsg75 Vendredi 20 décembre 2013 15H05

Très intéressant, merci pour cet article. Mais dites moi, la contrainte liée à l'absence de RTC sera levée avec le nouveau firmware du datalogger, n'est-ce pas?

2 - bsg75 Vendredi 20 décembre 2013 15H07

j'aurais dû préciser que l'idée étant de faire des mesures sans fil à la patte si je puis dire

3 - martinm (Yocto-Team)Samedi 21 décembre 2013 7H08

@bsg75: Non, il n'y a rien de magique dans nos modules: à l'exception du Yocto-HubWireless, ils n'ont pas de RTC. Si l'ordinateur de contrôle n'a pas de RTC non plus, et pas de moyen pour se mettre à l'heure (pas de réseau), le datalogger ne pourra pas être mis à l'heure.

Par contre, dans la nouvelle version de l'API, si l'heure est disponible sur l'ordinateur/le yoctoHub de controle, le datalogger sera automatiquement mis à l'heure.

Dans votre cas, le seul moyen d'avoir un datalogger à l'heure sans ordinateur de contrôle et sans réseau est de l'alimenter avec un YoctoHub-Wireless (le Yoctohub-wireless fonctionne très bien sans connexion wifi). C'est un overkill fort couteux, je vous l'accorde.

4 - hilitec Samedi 08 mars 2014 8H30

@bsg75: J'utilise un Beaglebone Black pour un autre projet, et n'ayant pas de RTC à disposition, j'ai finalement décidé de fabriquer une "cape" pour cela (voir http://goo.gl/KhexLv). J'utilise une horloge de haute précision (DS3232) et la carte additionnelle est suffisamment plate pour se positionner sur le BeagleBone Black et toujours entrer dans le boitier en métal produit par Logic Supply (http://www.logicsupply.eu/cases/mini-pc-cases/bb100/).
J'ai fabriqué une centaine de cape pour l'instant, vu la petite production, elles me reviennent pour l'instant à €40 (sans compter le port et une partir du développement).

5 - hilitec Samedi 08 mars 2014 8H37

@bsg75: En fait je suis une bille, comme je suis tout commme Yoctopuce en Suisse, je peux indiquer en francs suisses le prix de revient d'une de mes capes RTC, soit environ CHF 50 + le port.

Yoctopuce, get your stuff connected.