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.

  1. Il doit être mobile. Cela suppose une faible puissance que l'on puisse activer avec une batterie. Comme un portable sans écran ni clavier.
  2. Il doit s'interfacer avec les senseurs du robot.
  3. Il doit disposer d'un système de programmation, à interface graphique de préférence.
  4. 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.
  5. 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.
  6. 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.

Les connecteurs du Raspberry Pi modèle B dans un boitier vert translucide

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

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.

Carte mère Arduino Tre

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.