Pour tester rapidement les positions des servomoteurs d’un robot, Pure Data est bien pratique, avec son extension PDuino qui fournit tout ce qu’il faut pour piloter une carte Arduino depuis un ordinateur.
PDuino
Un bloc fonction "Arduino" dispose d’une entrée (inlet) pour lui envoyer des informations et une sortie (outlet) pour recevoir des informations.
Il faut d’abord sélectionner le port série, ouvrir la communication, et ensuite on peut envoyer des valeurs au format Firmata dont le driver aura d’abord été chargé dans la carte avec le logiciel (Firmata Standard est fourni en exemple), mais tout cela est simplifié par PDuino, l’extension pour Pure Data.
Servomoteurs
Il suffit de spécifier la patte Digital PWM sur laquelle on a connecté un servomoteur, et envoyer la configuration de cette patte, en mode servo pour qu’il y ait génération automatique par Firmata des signaux.
Mise en application
Pour le bipède, on peut ainsi bouger chaque membre indépendamment, chaque articulation, ou bien les grouper.
J’ai essayé d’aller plus loin en utilisant ce pour quoi Pd est fait : la génération de signaux.
Une fonction "métronome" va donc incrémenter un compteur à intervalle régulier, qui va être modifié par une fonction "sinus" qui donnera aux servomoteurs un cycle régulier. Après quelques coefficients, tout cela est envoyé sur l’Arduino.
Voici le résultat :
Amélioration
J’ai trouvé hier soir une façon encore meilleure de tester les configurations du robot avec gcanvas.
Code disponible sur le Playground (voir nos guides).