Inspiration
Néo est largement inspiré de la minifig Lego® Ironman. Suite aux projets Léa et Léo, l'idée était de faire un automate à la conception robuste, facile à monter et à démonter pour maintenance.
Néo est imprimé à l'échelle 15:1, il mesure 66 cm de haut et pèse 4 Kg, visserie et matériel électronique inclus.
Modélisation 3D
La modélisation 3D a été réalisée avec Autodesk Fusion 360.
Du modèle 3D d'origine modélisé par Neil Lantto, seul l'aspect extérieur a été conservé. A l'intérieur des éléments, de nombreuses modifications ont été apportées.
- Les pré-trous de fixation pour tous les éléments ont été systématiquement modélisés. Des inserts métalliques ont été posés afin d'assurer la pérennité des pas de vis.
- Le bras a été modifié pour accueillir un micro-servomoteur destiné à tourner la main. Les fils du servomoteurs passent dans un tube à l'intérieur du bras et ressortent dans le corps.
- Le bras est fixé à l'aide d'un long palonnier sur un servomoteur Hitec lui-même fixé sur la partie arrière du corps.
- Le corps a été coupé en 2 parties de manière à pouvoir retirer l'avant à la manière d'un couvercle. L'arrière du corps s'insère de haut en bas dans une glissière intégrée sur la partie centrale et fixée par vis. Le Raspberry Pi est fixé à la verticale.
- L'avant du corps glisse de l'avant vers l'arrière et vient se fixer sur la partie centrale et sur l'arrière du corps.
- Le cou est fixé entre les 2 parties du corps et supporte le servomoteur de la tête. Le cou supporte également le support du ring Néopixels et le support de caméra.
- L'arrière de la tête a été coupé pour faciliter l'accès à l'espace disponible. Cet espace n'est pas exploité dans la version actuelle.
Nous n'avions pas le temps de modéliser le casque plutôt complexe d'Ironman. Il s'agit donc d'une extrapolation du casque et de la visière disponibles dans la librairie LDraw.org. Les yeux et le bas de la visière ont été découpés pour pouvoir être imprimés dans des couleurs différentes. Le casque accueille un servomoteur capable de lever la visière. Un peu de ponçage a été nécessaire car il subsistait des frottements entre la casque et la visière avec les pièces sorties d'imprimante...
Les jambes sont vissées sur la partie centrale pour plus de stabilité.
Impression 3D
Néo a été imprimé sur Raise3D N2 Plus - Infill 10% / 0.25
La durée d'Impression totale est supérieure à 350 Heures.
Code & Réseau
- Néo communique en Wifi avec ses interfaces de pilotage.
- Mouvement des moteurs : librairie Adafruit 16 channels Servo / PWM hat.
- Passerelle cloud : si le réseau Wifi accède à Internet, Néo accepte alors des commandes via une passerelle SAAS. Ce module repose sur l’infrastructure Firebase et DialogFlow de Google et permet d'interagir avec Néo via Slack, Twitter ou Google assistant.
- Télécommande tactile : une télécommande tactile responsive est disponible pour piloter simplement l'automate (lever les bras, tourner les mains, lever la visière du casque) à partir d'un smartphone ou d'une tablette.
- Reconnaissance et tracking de visage : OpenCV
- Reconnaissance de mouvements : grâce à une Kinect disposée à l'extérieur, Néo reconnaît le mouvement du bras droit et le reproduit.
- Commande vocale : Néo peut être commandé par la voix soit via un service SAAS de chat-bot, soit via une application Android dédiée. Ce dernier mode plus limité en terme de reconnaissance naturel du langage permet de traiter une dizaine de commandes vocales en mode offline.
- Bus de message et Logique : l’ensemble des composants de Néo communiquent entre eux via des messages MQTT. Les premiers types de message sont les commandes émises par les différentes interface de pilotage. Le cerveau logique de Néo priorise les sollicitations et les transforme en message de type event à destination des actionneurs de l’automate.