Accueil Floss Manuals francophone

Puredata

Arduino et Pure Data

Comment introduire le monde réel dans nos applications ? Comment interagir avec nos créations numériques dans le monde concret qui nous entoure ? Une solution relativement facile à mettre en œuvre consiste à utiliser la plateforme de développement matériel Arduino et de l'interfacer avec Pduino ou Msg.

Arduino

L’Arduino est une carte électronique en matériel libre destinée notamment à la création artistique interactive. Elle permet de servir d'interface entre le « monde réel » et l'ordinateur, en y branchant par exemple des capteurs ou des actionneurs (moteurs, lumières, etc.), en la reliant en USB à un ordinateur et en la pilotant à l'aide d'un logiciel de gestion d’événements multimédias interactifs comme Pure Data. Elle peut aussi être utilisée sans ordinateur de façon autonome (possibilité que nous n'étudierons pas ici).

Pour davantage d'information sur Arduino, nous vous invitons à consulter les ressources francophones et anglophones disponibles sur Internet.  Le site officiel du projet Arduino est accessible à l'adresse http://www.arduino.cc

arduino.jpg

La carte Arduino est connectée à l'ordinateur par un port USB. L'actionneur est un bouton (button) sur une plaque d'essai. Quand on appuie sur le bouton, la LED intégrée dans la carte s'allume.

L’Arduino est une carte basée sur un micro-contrôleur (mini-ordinateur) Atmel ATMEGA8, ATMEGA168 ou ATMEGA328. Elle dispose dans sa version la plus basique de 1 Ko de mémoire vive et 8 Ko de mémoire flash pour stocker ses programmes. La carte basique dispose de 13 entrées ou sorties numériques et de 6 entrées analogiques sur lesquelles on peut brancher capteurs et actionneurs. Il existe de nombreuses autres versions et des déclinaisons de l’Arduino. La carte dispose d’un logiciel système interne (modifiable) et des programmes utilisateurs.

Pour relier Pure Data et une carte Arduino, nous allons présenter ici une méthode simple, mais qui offre néanmoins de nombreuses possibilités. Cette méthode est basée sur l'utilisation d'une librairie qui implémente un protocole de communication entre la carte et l'ordinateur-hôte. En termes plus simples, ces librairies permettent de faire dialoguer facilement la carte et l'ordinateur en permettant  de modifier directement depuis l'ordinateur la configuration de la carte sans avoir à modifier le code que l'on y a chargé au départ. Deux librairies existent, l'une appelée Firmata et l'autre Msg. Firmata est un projet de Hans-Christoph Steiner et outre la librairie qui doit être installée sur l'Arduino, c'est avec un patch Pure Data dédié que l'on va pouvoir décider si les connecteurs de la carte se comportent comme des entrées ou sorties. Dans Msg, c'est une application séparée qui donne une représentation graphique de la carte Arduino où la configuration des broches se fait. Msg, de Thomas Ouellet Fredericks , permet d'utiliser cette même interface avec d'autres environnements de programmation car il utilise le protocole OSC.

Firmata

Étape 1 : installer Firmata sur une carte Arduino

Installer la plateforme de développement Arduino :

  • Dans les dépôts de Debian et Ubuntu : installez le paquet « arduino » via le gestionnaire de paquets, ou tapez la ligne de commande "sudo apt-get install arduino" dans le terminal.
  • Sinon, téléchargez l'application sur http://www.arduino.cc  (voir configuration et notes d'installation sur ce site).

arduino_firmata.png

  • Depuis l'application Arduino, sélectionnez la bonne plateforme correspondant au modèle de votre carte Arduino : Tools > Boards >... (modèle de la carte)
  • Sélectionnez le port USB qui communiquera avec la carte Arduino (normalement ttyUSB0) : Tools > Port > ttyUSB0
  • Chargez le Firmata en ouvrant l'exemple proposé par l'interface Arduino : File > Exemple > Firmata > StandardFirmata
  • Vérifiez (compilez) le programme StandardFirmata en cliquant sur l'icône "play"
  • Chargez le programme StandardFirmata dans la carte Arduino en cliquant sur l'icône "upload"
  • Normalement, tout s'est déroulé sans accroc, et vous pouvez quitter l'application Arduino IDE.

    Étape 2 : connectez Pure Data à Arduino

    • Chargez dans Pure Data le patch "arduino-test.pd"
    • Vous trouverez ce patch sur le lien : http://at.or.at/hans/pd/objects.html en téléchargeant "Pduino-0.5beta8.zip"
    • Cliquez sur le message "device" pour voir dans la console quel port est utilisé par la carte Arduino :
    [comport]: available serial ports:
        0    /dev/ttyS0
        1    /dev/ttyS1
        4    /dev/ttyUSB0    <-- arduino
    

    Choisissez le port correspondant dans les bouton radio "serial port#" (ici 5e bouton, le premier = 0)

    pduino_firmata.png

    Usage

    Le principe est simple : l'objet [arduino] accepte des messages qui constituent des commandes pour l'Arduino, permettant ainsi de configurer les ports à la volée.

    Le patch arduino-test permet d'explorer les fonctionnalités qu'offre l'objet [arduino]. Voici quelques pistes :

    Entrées Analogiques

    Pour capturer les informations provenant de senseurs branchés sur un port analogique, il faut envoyer le message [pinMode analog n< (avec n le numéro du port) à l'objet [arduino]. Le patch ci-dessus permet de le faire simplement en choisissant le mode dans les boutons radio. Attention cependant à choisir les bons, le nombre de ports et leurs fonctionnalités changent d'un modèle à l'autre.

    Entrées Numériques

    Les entrées numériques se configurent de la même façon, en utilisant [pinMode digital n< pour les ouvrir.

    Msg

    Installation

    Installer l'application Msg :

    Installer la plateforme de développement Arduino :

    • Pour Linux, dans les dépôts de Debian et Ubuntu : installez le paquet « arduino » via le gestionnaire de paquets, ou tapez la ligne de commande "sudo apt-get install arduino" dans le terminal.
    • Pour OSX et Windows, téléchargez l'application sur http://www.arduino.cc  (voir configuration et notes d'installation sur ce site).
    • Placez la librairie 'Msg' sous le dossier 'librairies' de Arduino.

    msg_librairies_s.png

    • Depuis l'application Arduino, sélectionnez la plateforme correspondant au modèle de votre carte Arduino : Tools > Boards >... (modèle de la carte)
    • Sélectionnez le port USB qui communiquera avec la carte Arduino (normalement ttyUSB0) : Tools > Port > ttyUSB0
    • Chargez Msg en ouvrant l'exemple proposé par l'interface Arduino : File > Exemple > msg > msg.pde
    • Placez le programme sur l'Arduino en cliquant 'upload to board'.msg_arduino_ide.png
    • Lancez l'application Msg, choisissez votre interface depuis la console de menu et utilisez l'interface graphique pour choisir l'utilisation de vos entrées et sorties.
    • msg_interface_qt_s.png

    • Lancez Pure Data et choisissez l'exemple OSC_Msg.pdmsg_pd_patch.png