Ophélia - Un robot danseur
1 janvier 2017

Ophélia est un robot qui effectue des chorégraphies en bougeant ses deux bras et sa tête.
Chacun de ses bras est composé de quatre servomoteurs. Ils forment une liaison rotule sur l'épaule et une pivot au niveau du coude.
La tête est doté d'un servomoteur lui permettant de tourner horizontalement.
Une application Windows et Android permet de contrôler le robot en direct et également de programmer des chorégraphies sur une musique de fond.
Voici le robot en action :
La fabrication du robot et l'application sont présentés ci-dessous.
Mécanique et fabrication

Le robot est constitué de différents matériaux :
- les parois sont découpées dans du MDF (pièces marrons sur l'illustration)
- les épaules, bras et pièces de liaisons sont imprimées en 3D en PLA (pièces bleues)
- les avant-bras sont découpés dans une fine plaque de polystyrène non-expansé
- la tête est une boule de polystyrène expansé
La structure est construite autour d'une base hexagonale, un bon compromis entre un cône (difficile à faire) et une pyramide (un peu trop anguleux).
Voici quelques photos de la fabrication du robot :
L'électronique
Le robot est piloté par un microcontrôleur PIC18F25K22 qui contrôle les 9 servomoteurs.Une batterie NiMH de 5 cellules alimente le robot. Les servomoteurs sont alimentés directement sans régulateur.
Un module bluetooth est relié au microcontrôleur en UART, il permet de contrôler le robot à distance.
Le PCB a été usiné sur une fraiseuse numérique ("gravure à l'anglaise") :
L'application Windows et Android
Le logiciel de contrôle du robot est codé en C++ et QML avec le framework Qt et son module QtQuick pour l'interface.L'utilisation de Qt permet d'écrire un programme une seule fois pour Windows et Android. Le seul point d'incompatibilité se situe au niveau de la communication bluetooth. Celle-ci est gérée par le module QBluetooth sur Android. Sur Windows, ce module n'est pas encore fonctionnel. La communication bluetooth reste toutefois simple puisque les ports de communications bluetooth sont vus comme des ports série (ports COM). Le module QSerialPort est donc utilisé en lieu et place.
L'interface est présentée ci-dessous :
Pour créer une chorégraphie, l'utilisateur ajoute des étapes. Une étape est composée d'un délai la précédant et au choix, soit d'une position, soit d'une consigne pour un servomoteur. Les positions sont créées au préalable et regroupent un ensemble de consignes pour les servomoteurs.