Ophélia - Un robot danseur

1 janvier 2017
Le robot Ophélia
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

CAO du robot danseur (CATIA)
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é
Les trois servomoteurs présents sur chaque épaule permettent de former une liaison rotule et ainsi de bouger le bras dans toutes les directions. Chaque avant-bras est actionné par un unique servomoteur.
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 :
La base hexagonale Parois en MDF et couronne supérieure en PLA Le support de la tête
Première version du bras, structure un peu trop fine pour l'imprimante 3D Version finale des bras Le robot Avec la tête et les habits


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'usinage du PCB Le PCB après le perçage La soudure des composants Le PCB fini

Le microcontrôleur est programmé avec un code en C. Il reçoit les positions des servomoteurs par bluetooth de l'application de contrôle. Il génère les signaux de commande correspondants et envoie à l'application le niveau de batterie qu'il mesure grâce à son convertisseur analogique-numérique.

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 :
IHM du robot danseur - l'accueil IHM du robot danseur - le contrôle en direct IHM du robot danseur - les chorégraphies IHM du robot danseur - édition d'une chorégraphie IHM du robot danseur - contrôle des servomoteurs


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.

Catégories