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 (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
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.