Démarrer avec Arduino

Expériences et tests de composants avec un Arduino et le framework Johnny Five.

Quel processeur pour un robot?

Un Arduino est un nano ordinateur, que l'on appelle microcontôleur parce qu'utilisé surtout pour programmer des appareils. Pourtant il est 16 fois plus performant que ne l'était l'Apple ][, utilisé à son époque pour le jeu, le traitement de texte ou la gestion d'une petite entreprise!

Arduino vs Apple ][

D'autre alternatives utilisables en électronique sont plus performantes encore. La série Launchpad de Texas Instrument est 80 fois plus puissante que l'Apple originel et supporte en outre les opérations en virgule flottante. Le Raspberry Pi avec ses ports GPIO (entrées sorties à usage général), s'utilise aussi pour des montages mais est 700 fois plus puissant et suffisant pour faire fonctionner un navigateur.

Launchpad TI et Raspberry

Launchpad de Texas Instrument et Raspberry Pi

On utilisera donc l'Arduino ou la version réduite, Arduino Pro pour commander des éléments du robot, et éventuellement un contrôleur du type Launchpad pour des calculs plus poussé comme la gestion de l'équilibre, et enfin un Rasberry pour gérer le comportement général du robot et servir de superviseur pour les Arduinos et d'intermédiaire un ordinateur distant ou un mobile (si le Raspberry est installé dans le robot).

Un langage idéal: JavaScript

Pour commander les composants électroniques comme pour le comportement du robot, JavaScript est le langage que nous choisissons, pour plusieurs raisons...

  1. L'EDI Arduino et son compilateur ne fonctionnent qu'avec un Arduino. Le code JavaScript peut fonctionner aussi sur Raspberry et autres controleurs.
  2. Le modèle orienté évènement convient bien aux robots, qui réagissent à des évènements.
  3. La portabilité sur différent OS permet de développer là où on le veut.
  4. Son support dans les navigateurs: on peut construire des interfaces graphiques d'interaction facilement, en traitant le robot comme un serveur.
  5. De nombreux langages compilent en JavaScript en conservant le coté dynamique. Citons notamment Scriptol, TypeScript, CoffeeScript. On a donc en faite le choix du langage de programmation.
  6. Il est inévitable que l'on veuille utiliser un mobile pour commander le robot à distance. Il est plus facile d'interfacer deux programmes JavaScript.
  7. Le dynamisme du langage permet de construire des objets durant le traitement, ce qui peut aider à l'apprentissage par le robot.
  8. Les objets JS sont facilement sérialisables et cela peut permettre aux robots d'échanger directement leur savoir faire.

Le langage étant choisi, l'environnement de développement peut être défini... Ce qu'il nous faut:

Créons un environnement de travail

Tous les montages que l'on allons ajouter dans cette section vous aideront à apprendre à construire des robots. Il est même probable que vous ne puissiez construire un robot sans savoir faire tout ce qui va être montré ici.
L'environnement de travail est aussi défini dans le but de vous permettre de construire un robot.

Vous allez démarrer avec l'IDE Arduino et un framework JavaScript, mais par la suite nous allons ajouter d'autres outils d'interaction homme-machine bien pratiques en robotique.

Installons les programmes nécessaires:

  1. Téléchargez l'IDE Arduino sur le site du fabricant.
  2. Connectez l'Arduino à l'ordinateur par USB.
  3. Ouvrez le menu Examples, Firmata puis sélectionnez StandardFirmata pour charger le pilote nécessaire.
  4. Mettez à jour l'Arduino en tapant CTRL-U.
  5. Téléchargez et installez Node.js. Le programme de chargement de module npm est installé avec.
  6. Ouvrez la console. Installez le framework Johnny-Five et le module requis:
    npm install node-gyp  
    npm install johnny-five
  7. Vous pouvez maintenant réaliser un montage, par exemple "Salut le Monde! sur écran LCD", et lancer le programme correspondant en ligne de commande:
    node lcd.js

De nouveau montages vous seront présentés jour après jour. Revenez souvent sur le site... Vous pouvez aussi consulter la traduction en français des exercices pour le NodeBot par Anna Gerber.