Quel ordinateur pour faire fonctionner un robot personnel?
On a le choix entre le Raspberry, l'Arduino, le Beagleboard et le Minnowboard d'Intel, entre autres.
D'abord, il faut préciser ce que l'on attend de l'ordinateur qui fera fonctionner le robot.
- Il doit être mobile. Cela suppose une faible puissance que l'on puisse activer avec une batterie. Comme un portable sans écran ni clavier.
- Il doit s'interfacer avec les senseurs du robot.
- Il doit disposer d'un système de programmation, à interface graphique de préférence.
- Une interface Ethernet permet de le relier au besoin à un ordinateur de bureau ou portable par un réseau local, cela facilite sa mise en oeuvre.
- Le MLI (Modulation de largeur d'impulsion), ou PWM en anglais. En convertissant un signal binaire en analogique, cela permet de contrôler la vitesse de moteurs. L'opération inverse permet de lire le signal envoyé par un senseur.
- Un ordinateur mobile actuel ne peut avoir la puissance nécessaire pour actionner un robot androïde. Il ne peut que servir de relais à un ordinateur distant. Il faut donc une liaison wifi pour échanger données et commandes.
Le Raspberry Pi correspond à ces critères, c'est le plus répandu et le moins cher, donc on va le prendre comme point de référence, et le comparer aux produits concurrents.
Raspberry Pi
Il dispose d'emblée d'une sortie MLI sous la forme d'un connecteur GPIO (General Purpose I/O). On peut avoir besoin de composants additionnels entre le connecteur et l'appareil périphérique.
L'image ci-dessous montre la liste de tous les connecteurs pour un RPi modèle B, dans son boitier transparent.
- L'ensemble de connecteurs GPIO permet de réaliser des montages, par exemple, relier une batterie pour une alimentation mobile.
- L'alimentation par le port micro USB le connecte sur le réseau avec un chargeur (on peut utiliser un chargeur de mobile).
- La sortie RCA le relie à un écran et le connecteur audio supporte une prise de 3.5.
- Le groupe de LEDs montre l'état du fonctionnement.
- Deux USB 2 pour un clavier et une souris en mode développement. On peut y insérer différent dongles, dont le Wi-fi.
- Une prise RJ-45 pour se relier au réseau.
- Une sortie HDMI pour connecter un écran.
- Le connecteur CSI relie la carte à un appareil photo ou tout autre appareil fournissant des images ou des senseurs. Cela peut servir à la reconnaissance de formes.
- Le connecteur DSI (Display Serial Interface) relie la carte à un affichage LCD.
- SD pour stocker le système d'exploitation et vos données.
- Le JTAG sert au déboguage de la carte et n'est pas très utile (ni très documenté).
Il y a au moins deux connecteurs très utiles pour concevoir un robot, le CSI et le GPIO. Mais il n'est pas exclu d'utiliser l'USB pour connecter des éléments. Tous les autres connecteurs permettent de programmer la carte et contrôler le fonctionnement du programme grâce à l'interface de développement.
BeagleBone Black
Dans le même ordre de prix, avec un processeur similaire et une mémoire de 512 MO également...
- Alimenté par un port mini USB ou un jack. Cela permet de réutiliser un chargeur, si l'on en a déjà un de 5 V et 1000 ampères au moins.
- Un USB 2. Connecteur hôte comme ceux du Rpi.
- Un USB client. Peut servir à l'alimentation
- Un port série Serial Debug UART0. Il permet de communiquer avec la carte. Requiert une interface TTL.
- Connecteur RJ-45.
- Carte micro SD.
- Micro HDMI. Pas de sortie audio dédié, le son peut passer par le HDMI, mais le robot ne se déplace pas avec un écran, donc c'est une limitation.
- Deux connecteurs d'extension CAN. Il donnent une certaine liberté pour connecter des périphériques.
- La charte affiche 3 accès MLI, passant sans doute par les connecteurs CAN.
Il n'a pas les mêmes capacités de traitement vidéo que le RPi, donc pas le même confort pour l'interface de développemeent, mais plus de connecteurs GPIO grâce aux ports d'extensions. On trouvera moins facilement des réponses aux problèmes qu'avec le RPi, même s'il a une bonne documentation. Au moment où j'écris cet article, tous les ports ne sont pas fonctionnels et les utilisateurs essaient de les rendre actifs. C'est un produit moins abouti.
Plus de renseignement sur BeagleBone Black dans ce fichier PDF.
Arduino
La carte Arduino est nettement moins puissante que le RPi. Mais elle a des avantages, elle consomme nettement moins de courant, elle est compacte et peut même avoir la taille d'un timbre poste (modèle DigiSpark ou Microduino). On peut la relier à une carte BlueTooth ou Wi-fi pour recevoir des ordres d'un ordinateur plus puissant qui se chargera de tous les traitements et enverra des commandes élémentaires. On peut envisager d'utiliser plusieurs cartes ensemble pour activer les différentes parties du robot.
L'Arduino TRE est une alternative parfaite au Pi, peut-être même supérieure, mais est encore en développement au moment ou cet article est publié.
Minnowboard
C'est le moins adapté à la robotique. Il est dix fois plus puissant que les précédents. Il ne dispose pas des ports utilisés habituellement en robotique.
La carte, à coté du fait qu'elle est plus imposante, est similaire à celle du RPi. Mais le GPIO est remplacé par un slot d'extension, plus un connecteur eSata. Ce dernier est peu utile pour un appareil mobile.
Son avantage est qu'il est entièrement open source et on peut changer ses composants pour modifier ses capacités. Cela le destine plus au monde industriel (et c'est ainsi qu'Intel le positionne), pour faire fonctionner des machines, que des robots personnels. Le prix actuel est proche de celui d'un notebook.
Utiliser un mobile
Une autre solution est d'utiliser un téléphone mobile, si on veut y mettre le prix. On dispose d'une puissance très supérieure et d'un écran pour l'interface, de nombreux outils de programmation.
On ne dispose pas des mêmes connecteurs aussi faut-il envisager en outre l'ajout d'une carte Arduino. Celle-ci peut être reliée au mobile par une prise USB transformée en USB On-The-Go. Cela supprime la dualité maître-esclave entre le port hôte et le port client et le transforme en port à double fonction, donc pouvant être commandé ou commander. Un cable USB-OTB permet de faire la liaison entre les deux appareils.
Une autre option est un carte spéciale comme l'IOIO Mint d'Adafruit, conçue spécialement pour ajouter des connecteurs robotiques à un mobile Android.
Conclusion
Il y a de plus en plus de nouveaux modèles équivalents. Le RPi a toujours l'avantage de la popularité, donc plus de logiciels, plus de support. Cet ordinateur tout comme les concurrents ne suffira pas à faire fonctionner un robot humanoïde. Il faut le voir comme un outil d'apprentissage pour commencer avec un montage plus simple. L'étape suivante consistera à utiliser un mobile Android avec une ou plusieurs cartes d'interface. On utilisera les senseurs de l'Android, et ses capacités de communication. Le nom Android de ce système trouvera alors sa pleine justification!
En dernier lieu on pourra passer à un ensemble de cartes Arduino réparties dans le corps du robot.