Animatronic Interactif : Le Live

This page contains changes which are not marked for translation.

Author avatar3regards | Last edit 18/02/2022 by L'Atelier-Bellangerais

Introduction

L'objet de cette page est de collecter les avancées d'un projet toujours en cours, afin de permettre à tout visiteur d'en reproduire les étapes, voire, de les améliorer.


En Février 2022, des quatre coins de Rennes et de l'Hexagone, une équipe de Makers se réunit à la Ferme de la Harpe, à l'occasion de la 1"ème édition du Festival l'Art et la Main. Leur intention : Tenter la réalisation d'un personnage animé et interactif en 48h, à partir des compétences présentes et le matériel collecté pour l'évènement.


L'intégralité de la performance est retransmis en vidéo sur Internet, la documentation du projet, commencée en temps réel et une restitution publique du résultat du Hackathon à lieu le second jour du hackathon.


Revivez l'ambiance en consultant les deux liens ci-dessous et surtout, inspirez-vous de la documentation suivante pour remixer le projet et enrichir cette expérience typiquement "OpenSource"


Lien vers l'album Photos

Lien du stream vidéo

Materials

Tools

Step 1 - Jour 0, Jour 1 Jour 2 - Commencer à documenter

Ce sera LA contrainte, pour que :


1) Tout les participants (et les visiteurs), sachent "où on en est ?"

2) A l'issue du projet : Bravo ! Tout est déjà documenté pour être remixé

Conseil : Nommer un rapporteur par pôle pour faciliter la remontée d'informations auprès des facilitateurs...

Step 2 - Jour 1 - Samedi Matin : Faire connaissance, trouver les affinités

Un résumé de qui est qui et qui de fait quoi...

  • Ivan, Valentin et Tonino planchent sur les capteurs avec Ardunio et Rapi...
  • Yo, Marc, Rémy, Pierre sur le chariot à roues du robot
  • Tony et Stéphane sur la Documentation
  • Marie, Chloé, Lucie sur les éléments textiles, un haut de forme et même un nœud papillon.
  • La découpeuse laser permet de prototyper certaines pièces en carton ou en bois (Rémy, Chloé ou Stéphane)
  • Olivier démonte des trucs pour récupérer des choses (engrenages, courroies)
  • 3 imprimantes 3D sont prêtes à démarrer (Marc et Tony)

Les groupes qui se sont constitués :

  • 👘 Habillage de l'automate : Marie, Chloé, Lucie.
  • ⚙️ Structure de l'automate : Yo, Marc, Rémy, Pierre.
  • 😀 Animation de l'automate : Valentin, Yvan, Gaël (Pierre et Tony en aide).
  • 🎤 Reconnaissance/Synthèse vocale : Tonino (Tony en aide).
  • 🚗 Système de déplacement : Yo, Marc.
  • 📄 Documentation générale : Stéphane, Tony.



Step 3 - Jour 1 - Samedi après-midi - Les défis

Lister les Tâches, les Trier par Pôle:


💚 Ce qui fonctionne !

  • Le chariot roule !
  • L'œil bouge !
  • La main droite bouge
  • Les accessoires textiles sont en bonne voie


💙 Ce qui semble facile :

  • Faire rouler l'animatronic


💛 Ce qui mérite réflexion :

  • Calibrer les moteurs pas à pas pour les mouvements envisagés
  • Synchroniser mouvement et paroles de l'animatronic


💔 Ce qui ne semble pas facile :

  • Installer "Jarvis" sur un Raspberry Pi


❌ Ce qui ne sera pas fait (a priori...) :

  • Permettre à l'animatronic "d'apprendre" de nouvelles choses
  • Rendre aléatoires les "routines" d'expression de l'animatronic


Step 4 - Jour 1 - 👘 Le robot prend corps !

Processus de création des différentes parties de l'animatronic :

D'abord, des dessins (Chloé, Yo)


Des fichiers sources : 2D, 3D, Patrons de couture, Code de routines, etc.

[Photos des plans]


Ressources utilisées :

Découpeuse laser:

Patronage en papier et carton de pour le textile

Découpe et gravure de pièces en bois : Bouche, Lecteur de cartes, déco

Machine à coudre

  • Assemblage des éléments textiles : Chapeau, Cape, Noeud Pap
  • Utilisation de matériau inhabituels: couverture de survie, pare soleil

Imprimante 3D:

Modélisation sous FreeCad (ou 3D Builder...)


To Do : photos des proto / plans des habits


Step 5 - Jour 1 - ⚙️ Structure de l'Animatronic

Processus :


Le Chariot motorisé : comment il va pouvoir bouger ce petit bonhomme ?

  • La sécurité d'abord ! (Parce qu'il avance comme un âne ce diable !)
  • Capteurs de proximité (infrarouge)
  • Pare-choc "intelligent" pour arrêter le moteur en cas de rencontre avec un obstacle

La structure / La motorisation / L'alimentation / La sécurité / Détection des collision / Arrêt d'urgence

La structure tient : Le ventre de la bête / La tête / Les accessoires


📝 Bonne avancée mais difficile de donner des plans numériques


Fichiers open-sources : [Photo des plans]


Ressources utilisées :

Machine : Soudure à l'arc, Meuleuse

Technique : Soudure.

To Do : photos des proto / plans des habits



Step 6 - Jour 1 - 😀 Animation : capteurs et réponses

Quelques mots :


Processus :

  • Action / Réaction : Qu'est-ce qui provoque quoi ?
  • Capteur Passifs / Actifs : On a tout ce qu'il faut ?
  • Remonter des infos (mais pas trop) : Quel support ? Quel format ?
  • Déclencher une réaction (ou pas !!!!) : Commande et puissance...
Conseil : Pour valider un montage, utiliser une breadboard avant de tout souder...
📝 Beaucoup de difficulté au début mais, tout le monde à surmonté les problèmes


Fichiers open-sources : [Code arduino / branchements ?]


Ressources utilisées :

Machine : Ordinateurs

Logiciel : Arduino / bibliothèque : Max72XX, Servo ...


To Do : Code à remettre / schéma de cablage



Step 7 - Jour 1 - 🎤 Synthèse vocale ou Interface plus exotique ?

1- L'IDEE INITIALE : Une reconnaissance vocale opérée par un rapsberry pi.


Les enfants poseraient leurs questions en lien avec l'environnement en français et le robot répondrait en français.


2 - PROBLEME TECHNIQUES :

  • Des professionnels de la silicone vallée bosse à plein temps pour avoir des IA qui permettent de parler avec des machines en Language naturel et de passer le test de Turing. Je vous laisse imaginer la complexité de la tache.
  • A la manière de Siri il est possible de faire reconnaitre de mots clefs et de demander à un algorithme d'associer ces mots clefs avec une intention. En fonction de l'intention reconnue une réponse est déclenchée. Il faut donc de toute manière avoir un set de questions et de réponses pré-conçue.
  • Le moteur "speech to text" ou stt sur lequel se base "JARVIS", snow boy, n'existe plus.
  • L'autre stt gratuit et hors ligne pocketSphynx ne fonctionne qu'en anglais, et pas très bien.
  • Même problème est la synthèse vocale, souvent en anglais.
  • L'IOT et les APIs, c'est pas ma tasse de thé. Compliqué de faire fonctionner JARVIS (qui n'est pas maintenu depuis 3 ans) avec Google speech. Peut-être une histoire de ficher Json.
  • Le bruit ambiant rend la compréhension des mots clefs super difficile.
  • Le "parlé" enfant peut-être une source de complexité supérieur
  • Pour atteindre une bonne efficacité il faut entrainer l'algorithme, ce qui n'est pas adapté lorsqu'il y a plusieurs interlocuteurs.


3 - CONCLUSION INTERMEDIAIRE ==> EXIT JARVIS ET LA RECONNAISSANCE VOCALE


4 - SOLUTION ALTERNATIVE :


Plus simple et plus consistant, remplacer de la reconnaisse vocale par de la reconnaissance optique.


Avantages :

  • Plus consistant : la reconnaissance optique n'est pas dépendant du volume ambiant ou du contexte, surtout s'il intègre son propre système d'éclairage.
  • Questions et réponses rédigé. Un peu à la manière d'un QR code, le décryptage d'une couleur ou d'un motif déclenche une réponse.
  • Permet la manipulation d'objets. C'est pas COVID mais c'est rigolo.


Principes : Une caméra reconnais un code à deux couleurs. En fonction du code reconnu, déclenche la lecture d'un fichier MP3.


Matériel nécéssaire :


Voir en J2 (plus bas) pour le détail du fonctionnement.



Step 8 - Jour 1&2 - 🚗 Le robot dans sa mobilitée

Processus :


Fichiers open-sources : [Schéma de câblage / y'a t'il un code ?]


Ressources utilisées :

Machine : Ordinateur / Arduino / Électronique

Technique : Logiciel de reconnaissance vocal Jarvis


Technique : Montage électronique / Codage


To Do : ??

Step 9 - Jour 1&2: 📄 Documenter pour Restituer

To Do : La visio à documenter / la grille des avancées du projet.
Conseil 1: Le A3 ou le PowerPoint, ben c'est pas si mal !

Conseil 2 : Un bon pitch est un Pitch court (2 à 4min max)

Conseil 3 : Un rapporteur ou plusieurs intervenants ?

Conseil 4 : Penser à ceux qui "n'y connaissent rien..."

Step 10 - Jour 1&2 : Tester... Encore et encore

... Jusqu'à ce que ça marche... Ou qu'on abandonne (à un moment, il faut)

Step 11 - Jour 2, le matin : Choisir, c'est renoncer

... Heu... Et si en fait, on ne faisait que ce qui marche ? (ou pas...)


Les groupes sur le jour 2 :


To do : Y-a t'il des changement ?


  • 👘 Habillage de l'automate : Marie, Chloé, Lucie.
  • ⚙️ Structure de l'automate : Yo, Marc, Rémy, Pierre (Stéphane, Chloé en aide).
  • 😀 Animation de l'automate : Valentin, Yvan.
  • 🎤 Reconnaissance vocale : Tonino, Tony (Stéphane et Chloé en aide).
  • 🚗 Système de déplacement : Yo, Marc.
  • 📄 Documentation générale : Stéphane, Tony.


Step 12 - Jour 2 - Combiner les fonctions

Tout ça, faut que ça marche ensemble...


  • Aller voir les copains
  • Piquer des idées
  • Mutualiser du matériel
  • Pensez à plusieurs pôles ?
  • Dire les problèmes, pas les planquer...

Step 13 - Jour 2 - 👘 Le robot prend corps !

texte

Step 14 - Jour 2 - ⚙️ Structure de l'Animatronic

texte

Step 15 - Jour 2 - 😀 Animation : capteurs et réponses

texte

Step 16 - Jour 2 - 🎤 Reconnaissance optique (anciennement vocale)

Comment ça marche !


1- LA BOITE

Construction d'une boite à la découpeuse laser. Sur cette boite la caméra pixy2 et quatre led blanche pour éclairer l'intérieur. La boite comporte une fente pour y insérer les cartes de couleurs.

Ressources :

....> Plan de la boite à découper à la laser

....> Plan des cartes à découper à la laser


2- LES CARTES

Les cartes doivent être découper en trois section puis peintes :

  • Une qui reste blanche c'est la partie que l'on garde en main, sur laquelle on peut écrire à quoi sers la carte
  • La partie du milieu à peindre d'une couleurs
  • La partie supérieure à peindre également
  • Un trait noir doit-être tracer entre les deux couleurs pour permettre à la caméra une reconnaissance aisée.

Chaque combinaison de couleur est unique et déclenche une réponse unique.


3- LA CAMERA

La caméra est une caméra pixy2, conçus pour la reconnaissance de couleurs. Elle peut stocker en mémoire la reconnaissance de 7 couleurs.

La caméra est "entraînée" à reconnaitre les couleurs sur un ordinateur grâce au logiciel pixymon.


Voici le tutorial pour entrainer la caméra à reconnaitre les couleurs : https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:teach_pixy_an_object_2


  1. Positionner la couleur à reconnaitre, bien éclairée face à la caméra.
  2. A l'aide de PixyMon sélectionner la couleurs à reconnaitre sur l'image renvoyé par le logiciel (PC, MAC, et LINUX)
  3. La caméra garde cela en mémoire, même une fois débrancher.
  4. Faites de même pour toute les couleurs
  5. Utiliser les paramètres du logiciel pour paramétrer la tolérance de reconnaissance et les paramètre de la caméra (balance des blancs etc.)


4- LA Raspberry Pi ET LE CODE PYTHON

  1. La pixy cam est branchée en USB
  2. Les led sont branché sur la broche 3.3V d'un coté et GND de l'autre
  3. Tuto pour installer la PixyCam2 sur la Raspberry Pi :https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:hooking_up_pixy_to_a_raspberry_pi
  4. Tuto pour utiliser le module en python "Build SWIG MODULE":https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:building_libpixyusb_as_a_python_module_on_linux&s%5B%5D=python&s%5B%5D=api
  5. Copier le code que l'on fournis dans le répertoire ==>
  6. Lancer le programme python grâce à la ligne de commande suivante
  7. Chaque carte déclenche la lecture d'un fichier audio situé dans le dossier "Musique". La carte rouge-rouge déclenche le 1. Etc. Pour changer la piste lu, écraser le fichier de votre choix par une bande audio de votre choix. Ce qui compte c'est qu'elle ai le même nom. Penser à changer dans le code python la valeur de la variable "sound_time[piste modifié]" pour qu'elle corresponde au temps de la nouvelle piste, en seconde.


Pour info, voici la matrice des cartes :

Rouge(1) Vert(1) Bleu(1)
Rouge(2) 1 4 7
Vert(2) 2 5 8
Bleu(2) 3 6 9


5- Lancer le programme au démarrage de la Raspberry Pi

  • Lancer la commande "sudo crontab -e"
  • Insérer la ligne "@reboot python3 ....Chemin absolu vers le code python...."
  • Sauvegarder


Fichiers open-sources : [Programme reconnaissance couleur / Plan des cartes et de la boite de détection / Schéma de câblage pour le détecteur de couleur]


To Do : ajouter les sources : Programme Python de la reconnaisance vocal / Programme Python de la reconnaisance des couleurs / Plans de la boite et des cartes colorées.


Step 17 - Jour 2 - Restituer : Le bilan

  • Si rien ne marche, Peaufiner le Pitch
  • Est-ce qu'on ne peut pas "tricher" pour la présentation ?
  • Débusquer "le diable dans les détails"
  • Faire simple...
  • Si ça marche pas, c'est pas grave, c'est l'intention qui compte...

Step 18 - Le début de la Fin

Arrivé ici:


  • L'animatronic doit commencer à fonctionner un peu tout seul...
  • Certains n'ont plus rien à faire, sinon à regarder...
  • Ca serait bien de lui donner un nom ? non ?


... Hey ! Est-ce que tout est bien documenté ? Y a des photos ? des vidéos ? Du son ?


Conseil : Si ça sert plus, alors c'est peut-être le moment de ranger...

Step 19 - Epilogue...

  • Comment ça s'est passé ?
  • La météo de l'humeur de chacun
  • Les réussites,
  • Les échecs,
  • Les frustrations
  • Ce qu'on a appris / confirmé / maitrisé.


C'est la Fin !

Notes and references

Cahier des charges et Liste des ressources disponibles réalisé en amont du Hackathon :

https://docs.google.com/document/d/1KuY6qdZxfLTBXZP8aNcI_dwIocBYwu62WJG46BG2STs/edit?usp=sharing_eil_m&ts=61e14799

Comments

Published