Animatronic Interactif : Le Live : Différence entre versions

 
(20 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 3 : Ligne 3 :
 
|Main_Picture_annotation={"version":"2.4.6","objects":[{"type":"image","version":"2.4.6","originX":"left","originY":"top","left":-1,"top":-2,"width":360,"height":450,"fill":"rgb(0,0,0)","stroke":null,"strokeWidth":0,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeMiterLimit":4,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"crossOrigin":"","cropX":0,"cropY":0,"src":"https://wikifab.org/images/0/02/Group-Hackathon_Animatronic_-_L_Art_et_la_Main_-_29_et_30_janvier_2022_M_chant_Minion.png","filters":[]}],"height":449.7142857142857,"width":600}
 
|Main_Picture_annotation={"version":"2.4.6","objects":[{"type":"image","version":"2.4.6","originX":"left","originY":"top","left":-1,"top":-2,"width":360,"height":450,"fill":"rgb(0,0,0)","stroke":null,"strokeWidth":0,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeMiterLimit":4,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"crossOrigin":"","cropX":0,"cropY":0,"src":"https://wikifab.org/images/0/02/Group-Hackathon_Animatronic_-_L_Art_et_la_Main_-_29_et_30_janvier_2022_M_chant_Minion.png","filters":[]}],"height":449.7142857142857,"width":600}
 
|Description=<translate>Suivi du prototypage d'un Animatronic Interactif. La figurine sera animée, pourra se déplacer et sera douée de parole ou d'une interface permettant de communiquer avec un humain.</translate>
 
|Description=<translate>Suivi du prototypage d'un Animatronic Interactif. La figurine sera animée, pourra se déplacer et sera douée de parole ou d'une interface permettant de communiquer avec un humain.</translate>
|Area=Electronics, Robotics
+
|Area=Clothing and Accessories, Electronics, Recycling and Upcycling, Robotics, Science and Biology
 
|Type=Création
 
|Type=Création
 
|Difficulty=Hard
 
|Difficulty=Hard
 
|Duration=3
 
|Duration=3
 
|Duration-type=day(s)
 
|Duration-type=day(s)
|Cost=0
+
|Cost=500
 
|Currency=EUR (€)
 
|Currency=EUR (€)
|Tags=Robot, animatronic, jarvis, arduino, soudure, marionette, interactif, yeux, bouche, expression, capteur, moteur
+
|Tags=Robot, animatronic, jarvis, arduino, soudure, marionette, interactif, yeux, bouche, expression, capteur, moteur, python, Raspberry Pi
 
}}
 
}}
 
{{Introduction
 
{{Introduction
|Introduction=<translate>Des quatre coins de Rennes et de l'Hexagone, une équipe de Makers se réunit à l'occasion d'un Festival pour tenter la réalisation d'un personnage animé et interactif.
+
|Introduction=<translate>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.  
  
  
[https://photos.google.com/share/AF1QipOre6uD87uvmf3qormHtdylWjPjGnATCZjOeBe1Id2wZPSkXviN3VdGRjlEXAx--A/photo/AF1QipMPU_51DmvCkfE-j-vA39PtWCPRn70dujmcJ3fz?key=bG1sNTNvT2ZMSnE3SjM4RndTTERLR19YLXNwY1Vn Lien vers l'album Photos]
+
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.
  
[https://meet.jit.si/hackathonartalamain Lien du stream vidéo]
 
  
 +
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.
  
Quelques contraintes propres au Hackathon : 2 jours (+une soirée), une dizaine de participants et une restitution ouverte au public le deuxième jour.
 
  
L'objet de cette page est de documenter en temps quasi réel les avancées du projet, afin de pouvoir en reproduire les étapes, voire, de les améliorer.
+
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"
  
C'est parti !
 
  
<br /></translate>
+
[https://photos.google.com/share/AF1QipOre6uD87uvmf3qormHtdylWjPjGnATCZjOeBe1Id2wZPSkXviN3VdGRjlEXAx--A/photo/AF1QipMPU_51DmvCkfE-j-vA39PtWCPRn70dujmcJ3fz?key=bG1sNTNvT2ZMSnE3SjM4RndTTERLR19YLXNwY1Vn Lien vers l'album Photos]
 +
 
 +
[https://meet.jit.si/hackathonartalamain Lien du stream vidéo]</translate>
 
}}
 
}}
 
{{Materials}}
 
{{Materials}}
Ligne 38 : Ligne 38 :
  
 
2) A l'issue du projet : Bravo ! Tout est déjà documenté pour être remixé
 
2) A l'issue du projet : Bravo ! Tout est déjà documenté pour être remixé
 
 
 
{{Info|Conseil : Nommer un rapporteur par pôle pour faciliter la remontée d'informations auprès des facilitateurs...}}</translate>
 
{{Info|Conseil : Nommer un rapporteur par pôle pour faciliter la remontée d'informations auprès des facilitateurs...}}</translate>
 
}}
 
}}
 
{{Tuto Step
 
{{Tuto Step
 
|Step_Title=<translate>Jour 1 - Samedi Matin : Faire connaissance, trouver les affinités</translate>
 
|Step_Title=<translate>Jour 1 - Samedi Matin : Faire connaissance, trouver les affinités</translate>
|Step_Content=<translate>'''Un résumé de qui est qui et qui de fait quoi...'''
+
|Step_Content=<translate>'''Un résumé de qui est qui et qui de fait quoi...'''<br />
 
 
<br />
 
  
 
*Ivan, Valentin et Tonino planchent sur les capteurs avec Ardunio et Rapi...
 
*Ivan, Valentin et Tonino planchent sur les capteurs avec Ardunio et Rapi...
Ligne 56 : Ligne 52 :
 
*3 imprimantes 3D sont prêtes à démarrer (Marc et Tony)
 
*3 imprimantes 3D sont prêtes à démarrer (Marc et Tony)
  
'''Les Groupes que l'on à pus observer :'''<br />
+
'''Les groupes qui se sont constitués :'''<br />
  
 
*👘 Habillage de l'automate : Marie, Chloé, Lucie.
 
*👘 Habillage de l'automate : Marie, Chloé, Lucie.
 
*⚙️ Structure de l'automate : Yo, Marc, Rémy, Pierre.
 
*⚙️ Structure de l'automate : Yo, Marc, Rémy, Pierre.
*🙄 Animation de l'automate : Valentin, Yvan, Gaël (Pierre et Tony en aide).
+
*😀 Animation de l'automate : Valentin, Yvan, Gaël (Pierre et Tony en aide).
*🎤 Reconnaissance vocale : Tonino (Tony en aide).
+
*🎤 Reconnaissance/Synthèse vocale : Tonino (Tony en aide).
 
*🚗 Système de déplacement : Yo, Marc.
 
*🚗 Système de déplacement : Yo, Marc.
 
*📄 Documentation générale : Stéphane, Tony.</translate>
 
*📄 Documentation générale : Stéphane, Tony.</translate>
Ligne 81 : Ligne 77 :
 
'''💙 Ce qui semble facile :'''
 
'''💙 Ce qui semble facile :'''
  
Faire rouler l'animatronic
+
* Faire rouler l'animatronic
  
  
 
'''💛 Ce qui mérite réflexion''' :
 
'''💛 Ce qui mérite réflexion''' :
  
Calibrer les moteurs pas à pas pour les mouvements envisagés  
+
* Calibrer les moteurs pas à pas pour les mouvements envisagés  
 
+
* Synchroniser mouvement et paroles de l'animatronic
Synchroniser mouvement et paroles de l'animatronic
 
  
  
 
'''💔 Ce qui ne semble pas facile''' :  
 
'''💔 Ce qui ne semble pas facile''' :  
  
Installer "Jarvis" sur un Raspberry Pi
+
* Installer "Jarvis" sur un Raspberry Pi
  
  
Ligne 105 : Ligne 100 :
 
}}
 
}}
 
{{Tuto Step
 
{{Tuto Step
|Step_Title=<translate>Jour 1 - Structure de l'Animatronic</translate>
+
|Step_Title=<translate>Jour 1 - 👘 Le robot prend corps !</translate>
|Step_Content=<translate>Le Chariot motorisé
+
|Step_Content=<translate>'''Processus de création des différentes parties de l'animatronic :'''
  
 +
D'abord, des dessins (Chloé, Yo)
  
'''Et comment il va pouvoir bouger ce petit bonhomme ?'''
 
  
<br />La sécurité d'abord ! (Parce qu'il avance comme un âne ce diable !)
+
Des '''fichiers sources : 2D, 3D, Patrons de couture, Code de routines, etc.''' 
  
<br />
+
[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''
 +
 
 +
<br /></translate>
 +
}}
 +
{{Tuto Step
 +
|Step_Title=<translate>Jour 1 - ⚙️ Structure de l'Animatronic</translate>
 +
|Step_Content=<translate>'''Processus :'''
 +
 
 +
 
 +
Le Chariot motorisé : comment il va pouvoir bouger ce petit bonhomme ?<br />
  
*Capteurs de proximité (infrarouge)
+
* 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
 
*Pare-choc "intelligent" pour arrêter le moteur en cas de rencontre avec un obstacle
*
 
  
La structure
+
La structure / La motorisation / L'alimentation / La sécurité / Détection  des collision / Arrêt d'urgence
  
La motorisation
+
La structure tient : Le ventre de la bête / La tête / Les accessoires
  
L'alimentation
 
  
La sécurité
+
📝 Bonne avancée mais difficile de donner des plans numériques
  
Détection  des collision
 
  
Arrêt d'urgence
+
'''Fichiers open-sources :''' [Photo des plans]
  
  
 +
'''Ressources utilisées :'''
  
Le ventre de la bête
+
Machine : Soudure à l'arc, Meuleuse
  
 +
Technique : Soudure.
  
La tête
+
'''''To Do :''' photos des proto / plans des habits''
  
 
+
<br /></translate>
Les accessoires</translate>
 
 
|Step_Picture_00=Animatronic_Interactif_-_Le_Live_IMG_20220129_175141.jpg
 
|Step_Picture_00=Animatronic_Interactif_-_Le_Live_IMG_20220129_175141.jpg
 
|Step_Picture_01=Animatronic_Interactif_-_Le_Live_IMG_20220129_105814.jpg
 
|Step_Picture_01=Animatronic_Interactif_-_Le_Live_IMG_20220129_105814.jpg
 
}}
 
}}
 
{{Tuto Step
 
{{Tuto Step
|Step_Title=<translate>Jour 1 - Capteurs et réponses</translate>
+
|Step_Title=<translate>Jour 1 - 😀 Animation : capteurs et réponses</translate>
|Step_Content=<translate>* Action / Réaction : Qu'est-ce qui provoque quoi ?
+
|Step_Content=<translate>'''Quelques mots :'''
* 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...
 
  
{{Info|Conseil : Pour valider un montage, utiliser une breadboard avant de tout souder...}}</translate>
+
 
 +
'''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...
 +
 
 +
{{Info|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''
 +
<br /></translate>
 
|Step_Picture_00=Animatronic_Interactif_-_Le_Live_VID_20220129_162122.mp4
 
|Step_Picture_00=Animatronic_Interactif_-_Le_Live_VID_20220129_162122.mp4
 
}}
 
}}
 
{{Tuto Step
 
{{Tuto Step
|Step_Title=<translate>Jour 1&2 - Synthèse vocale ou Interface plus exotique ?</translate>
+
|Step_Title=<translate>Jour 1 - 🎤 Synthèse vocale ou Interface plus exotique ?</translate>
|Step_Content=<translate>'''Causera, causera pas ?'''
+
|Step_Content=<translate>'''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 "[https://openjarvis.com 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.
  
<br />
 
  
*Les yeux
+
'''Matériel nécéssaire :'''
*La bouche
 
*L'expression
 
*Les gestes
 
*Les "routines" pour donner l'illusion du vivant...
 
**Utiliser mblock pour tester les routines rapidement
 
**Introduire de l'aléatoire dans les routines
 
*L'aléatoire
 
  
 +
* Des carte en bois
 +
* De la peinture
 +
* Une raspberry pi 4
 +
* Une pixy2 ==> https://pixycam.com/pixy2/
 +
* Des enceintes
  
'''Interactivité :''' Répondre à des questions pour un animatronic, ça suppose
 
  
*Reconnaissance vocale
+
'''Voir en J2 (plus bas) pour le détail du fonctionnement.'''
*Où aller chercher les réponses ? la qualifier, la réduire avant de restituer
 
*Synthèse vocale
 
*Couper la reconnaissance quand l'animatronic répond ?
 
*En mode "Avatar" : L'animatronic répète ce que dit un humain distant... ?
 
  
 
<br /></translate>
 
<br /></translate>
|Step_Picture_00=Animatronic_Interactif_-_Le_Live_VID_20220129_170552.mp4
+
|Step_Picture_00=Animatronic_Interactif_-_Le_Live_8B601492-BBCC-4E73-9432-2B799612EF68_copie.jpg
 +
|Step_Picture_01=Animatronic_Interactif_-_Le_Live_IMG_20220130_154626.jpg
 
}}
 
}}
 
{{Tuto Step
 
{{Tuto Step
|Step_Title=<translate>Jour 2, le matin :  Choisir, c'est renoncer</translate>
+
|Step_Title=<translate>Jour 1&2 - 🚗 Le robot dans sa mobilitée</translate>
|Step_Content=<translate>... Heu... Et si en fait, on ne faisait que ce qui marche ? (ou pas...)</translate>
+
|Step_Content=<translate>'''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 : ??''</translate>
 
}}
 
}}
 
{{Tuto Step
 
{{Tuto Step
|Step_Title=<translate>Jour 1&2: Documenter pour Restituer</translate>
+
|Step_Title=<translate>Jour 1&2: 📄 Documenter pour Restituer</translate>
|Step_Content=<translate><br />{{Info|Conseil 1: Le A3 ou le PowerPoint, ben c'est pas si mal !
+
|Step_Content=<translate>''To Do :'' La visio à documenter / la grille des avancées du projet.<br />{{Info|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 2 : Un bon pitch est un Pitch court (2 à 4min max)
Ligne 197 : Ligne 285 :
 
|Step_Title=<translate>Jour 1&2 : Tester... Encore et encore</translate>
 
|Step_Title=<translate>Jour 1&2 : Tester... Encore et encore</translate>
 
|Step_Content=<translate>'''... Jusqu'à ce que ça marche...''' Ou qu'on abandonne (à un moment, il faut)</translate>
 
|Step_Content=<translate>'''... Jusqu'à ce que ça marche...''' Ou qu'on abandonne (à un moment, il faut)</translate>
 +
}}
 +
{{Tuto Step
 +
|Step_Title=<translate>Jour 2, le matin :  Choisir, c'est renoncer</translate>
 +
|Step_Content=<translate>... 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 ?
 +
 +
<br />
 +
 +
*👘 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.
 +
 +
<br /></translate>
 
}}
 
}}
 
{{Tuto Step
 
{{Tuto Step
Ligne 209 : Ligne 318 :
 
*Pensez à plusieurs pôles ?
 
*Pensez à plusieurs pôles ?
 
*Dire les problèmes, pas les planquer...</translate>
 
*Dire les problèmes, pas les planquer...</translate>
 +
}}
 +
{{Tuto Step
 +
|Step_Title=<translate>Jour 2 - 👘 Le robot prend corps !</translate>
 +
|Step_Content=<translate>texte</translate>
 +
}}
 +
{{Tuto Step
 +
|Step_Title=<translate>Jour 2 - ⚙️ Structure de l'Animatronic</translate>
 +
|Step_Content=<translate>texte</translate>
 +
}}
 +
{{Tuto Step
 +
|Step_Title=<translate>Jour 2 - 😀 Animation : capteurs et réponses</translate>
 +
|Step_Content=<translate>texte</translate>
 +
}}
 +
{{Tuto Step
 +
|Step_Title=<translate>Jour 2 - 🎤 Reconnaissance optique (anciennement vocale)</translate>
 +
|Step_Content=<translate>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 [https://pixycam.com/pixy2/ 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
 +
 +
<br />
 +
 +
# Positionner la couleur à reconnaitre, bien éclairée face à la caméra.
 +
# A l'aide de PixyMon sélectionner la couleurs à reconnaitre sur l'image renvoyé par le logiciel (PC, MAC, et LINUX)
 +
# La caméra garde cela en mémoire, même une fois débrancher.
 +
# Faites de même pour toute les couleurs
 +
# 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'''
 +
 +
# La pixy cam est branchée en USB
 +
# Les led sont branché sur la broche 3.3V d'un coté et GND de l'autre
 +
# 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
 +
# 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&#x5B;&#x5D;=python&s&#x5B;&#x5D;=api
 +
# Copier le code que l'on fournis dans le répertoire ==>
 +
# Lancer le programme python grâce à la ligne de commande suivante
 +
# 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 :''
 +
<br />
 +
{| class="wikitable"
 +
|+
 +
!
 +
!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.''</translate>
 +
|Step_Picture_00=Animatronic_Interactif_-_Le_Live_2022-02-03_15.24.21.gif
 +
|Step_Picture_01=Animatronic_Interactif_-_Le_Live_2022-02-03_15.37.05.gif
 +
|Step_Picture_02=Animatronic_Interactif_-_Le_Live_2022-02-03_15.37.08.gif
 
}}
 
}}
 
{{Tuto Step
 
{{Tuto Step
 
|Step_Title=<translate>Jour 2 - Restituer : Le bilan</translate>
 
|Step_Title=<translate>Jour 2 - Restituer : Le bilan</translate>
|Step_Content=<translate>* Si rien ne marche, Peaufiner le Pitch
+
|Step_Content=<translate>*Si rien ne marche, Peaufiner le Pitch
* Est-ce qu'on ne peut pas "tricher" pour la présentation ?
+
*Est-ce qu'on ne peut pas "tricher" pour la présentation ?
* Débusquer "le diable dans les détails"
+
*Débusquer "le diable dans les détails"
* Faire simple...
+
*Faire simple...
* Si ça marche pas, c'est pas grave, c'est l'intention qui compte...</translate>
+
*Si ça marche pas, c'est pas grave, c'est l'intention qui compte...</translate>
 
}}
 
}}
 
{{Tuto Step
 
{{Tuto Step
Ligne 245 : Ligne 464 :
  
 
'''C'est la Fin !'''</translate>
 
'''C'est la Fin !'''</translate>
}}
 
{{Tuto Step
 
|Step_Title=<translate>Jour 1 - Structure de l'Animatronic</translate>
 
|Step_Content=<translate>Le Chariot motorisé
 
 
 
'''Et comment il va pouvoir bouger ce petit bonhomme ?'''
 
 
<br />
 
 
*Penser à la sécurité ! (Il avance comme un âne ce diable !)
 
*Poser des capteurs de proximité (infrarouge)
 
*Poser des bumpers 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
 
 
 
 
Le ventre de la bête
 
 
 
La tête
 
 
 
Les accessoires</translate>
 
 
}}
 
}}
 
{{Notes
 
{{Notes
Ligne 292 : Ligne 476 :
 
}}
 
}}
 
{{Tuto Status
 
{{Tuto Status
|Complete=Draft
+
|Complete=Published
 
}}
 
}}

Version actuelle datée du 18 février 2022 à 12:31

Auteur avatar3regards | Dernière modification 18/02/2022 par 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

Matériaux

Outils

Étape 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...

Étape 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.




Étape 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



Étape 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


Étape 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




Étape 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




Étape 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.




Étape 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 : ??

Étape 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..."

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

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

Étape 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.


Étape 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...

Étape 13 - Jour 2 - 👘 Le robot prend corps !

texte

Étape 14 - Jour 2 - ⚙️ Structure de l'Animatronic

texte

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

texte

Étape 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.


Étape 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...

Étape 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...

Étape 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 et références

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

Commentaires

Published