InMoov à la taille d'un enfant (Small InMoov)


petit inmoov2

Le but du projet est de réaliser un InMoov plus petit pour gagner du poids  ,  afin de le rendre autonome avec une plateforme équipée de moteurs DC.

Beaucoup de fichiers de Gael sont modifiés , afin d'installer des Servo-moteurs plus petits .

Les articulations sont équipées de roulements à billes pour simplifier le montage.

Pour réaliser ce projet vous devez imprimer les fichiers à l’échelle 0.64 

L'avantage de la taille permet de merger beaucoup de fichiers STL de Gael . (cela permet de gagner du temps de montage et rend plus rigide le robot)

Le bassin est modifié pour utiliser des grands servo-moteurs .

La taille du Mini Inmoov une fois terminé est de 1 mètre 15 et sont poids de 6 kg

Divers éléments sont déplacés vue la place (type caméra , HP) , et certains supprimés comme les paupières .

L'avant Bras et la main seront remplacés par un système Pan/tilt et une autre main articulé .

Main 5DOF cher banggood

Chez Aliexpress

entier

petit inmoov


petit inmoov3

camera

La tête étant réduite , la caméra ne peux être fixée dans l’œil .

Je l'ai déporté sous le cou , avec un micro servo-moteur SG92 pour la motoriser (version  V1 ).

Les fichiers STL sont dans le menu téléchargement .

La caméra utilisée  est la LifeCam3000 Microsoft

Le micro sort sur le coté gauche de la caméra , il faudra dénuder la prise USB

Toute l'électronique rentre au dos du Mini InMoov  (Bon c'est un peu juste).

Vous trouverez dans le menu téléchargement les supports pour les différentes cartes .

A gauche et à droite les Méga arduino , avec les  Nervo Board de Gael .

en bas le bloc alimentation .

Au centre l'amplificateur , avec 2 Nano arduino , un pour la syncronisation de la bouche , l autre pour le néopixel .

Sur le bassin les deux servo-moteurs pour les hanches , et en dessous le Hub USB.

Le Pc sera fixé  sur le dos  ou  au pied sur le socle motorisé.

derriere

alim


Schéma de câblage des Arduino NANO 

Un pour le néopixel ring 16 leds et les leds RGB à clignotement lent pour les yeux,  l' autre pour la synchronisation de la bouche . 

  fichier .ino pour la bouche

Le câblage est réalisé sur une plaque d'essai à pastilles (en Epoxy).
Le servo-moteur ,les leds, le néopixel ring seront raccordés dessus .

Démo en vidéo

arduino nano

schema


20210127_145330

Dans le montage des épaules , pour plus de fluidité, j'ai modifié les fichiers des épaules en ajoutant des roulements à bille .

Vous trouverez ses petits roulements sur le site www.123roulement.com

Ci joint les références . 

MR126 taille 6x12x3 mm

61706-zz-zen taille 30x37x4 mm

. Le servo-moteur est également modifié avec le déport du potentiomètre. (attention utiliser un fer à souder a panne fine)

roulement4


Les Modifications apportées par manque de place .
(modification 2021 version V2)

- Caméra déporté sous le coup.

Autre solution pour la caméra . Modification du crâne pour intégrer la caméra. Avantage plus besoin d 'un servo-moteur supplémentaire pour diriger la caméra . les fichiers sont dans la rubrique téléchargement . Sous le nom cranecamera.zip

- Modification du sternum pour installer un haut parleur .

- Création d un cache sexe entre les jambes . L'entre jambes est fixé avec un serre-câble sur le tube de support.

- Modification du support Néopixel pour installer une loupe et un Néopixel ring de 16 LEDs.

- Le Kinet n'ayant pas la place , création d'un cache à cet emplacement.
(A suivre ultérieurement pour installer des détecteurs)

  • nota : Les fichiers STL sont dans le menu téléchargement. les fichiers sont déjà à l'échelle 0.64 

sternum

tetecamera


main

Voici la main gauche avec le système pan/tilt  pour le coude . (le holder du coude se trouve dans le fichier biceps.zip)

Cette main commandée sur Ali-express est livrée sans documentation .

Ci joint le fichier PDF trouvé sur internet  (en anglais) .

voici la video du montage

20210111_163434


Résolutions de problèmes

Une fois terminé , j avais des ronflements dus aux servomoteurs dans l'amplification audio . 

J' ai donc supprimé les nappes et remplacé les cartes de gael  , par des cartes  keyestudio Mega capteur bouclier carte d'extension pour Arduino Mega2560 en branchant directement les servomoteurs sur la carte bouclier .

J'ai alimenté l'amplificateur par une pile 9v indépendante avec un interrupteur .

Les servomoteurs des mains restent fragiles , je les ai donc protégés avec des  fusibles . 2.5 A

fichier stl porte fusible coude

dosmodif

fusible

coude

Amélioration du Câblage

  1. Ajout d 'une carte alimentation avec 3 sorties sécurisé avec un fusible .
  2. Création d'un support unique pour toutes les cartes électroniques .
  3. Création d un socle pour l'alimentation de l'amplificateur avec pile 9 volts  et interrupteur .
  4. Déplacements des 2 mini- arduino au centre entre les 2 Arduino méga

dos5

dos4

fichiers stl (support arduino et support pile)

le fichier "demidoassemble.stl" est déjà réduit a  l'échelle 0.64 . Il est possible de fusionner ce fichier avec le fichier "supporarduino2.stl " , pour rendre plus rigide votre petit InMoov . 


Réalisation du support motorisé

Le But du montage est de motoriser notre robot  avec des roues  , pour qu'il puisse se déplacer .

Matériel nécessaire :

  • Une carte Arduino Uno (ou autre)
  • Un pont en H type  L298N 
  • 2 moteurs DC
  • Un Capteur ultason HC-SR04 
    (il sera possible bien sur s'ajouter des capteurs  si vous voulez contrôler toutes les directions du robot.)

Ci - joint le schéma de câblage . 

L alimentation du pont pourra accepter de 5v à 12 volts en fonction de vos moteurs bien sur .

les broches PWM utilisées pour les moteurs sont 5,6, 10,11.

les broches 3 et 4 pour le capteur ultrason.

Le câblage est réalisé sur une plaque d'essai à pastilles (en Epoxy), le pont H est fixé par 4 entretoises le tout enfiché sur la carte Arduino.

moteur2

moteurroues


Le montage terminé , il nous reste à programmer tout cela dans MRL (myrobotlab) .

Il existe dans MRL un service nommé  MotorDualPwm nous allons donc l'utiliser .

Pour le capteur nous avons le service UltasonicSensor . Il faudra aussi que notre mini InMoov nous obéisse à la voix . (exemple viens vers moi, marche,recule,tourne à droite,tourne à gauche).

Si il rencontre un obstacle il devra s'arrêter et demander de l'aide .

Le projet est complété d'un pilotage par un smartphone android ( j'ai ecris une mise à jour du logiciel InMoov Android .)

Lien pour télécharger l'application sur le store google

Page de l'application InMoov Version 2.5


Il nous faut donc  : 

  1. Créer un fichier de configuration pour les services supplémentaires .
  2. Un fichier PYTHON pour gérer les événements.
  3. Un fichier AIML pour les commandes vocales .

Nous allons commencer par le fichier de configuration du matériel . 

Ci joint le fichier que j'ai appeler I_moteur.py pour suivre la philosophie des concepteurs InMoov.

Créer le fichier et déposer le dans le répertoire  ...../InMoov/services  (dans le fichier , modifier le port com , selon votre configuration).

moteurInit

(attention ne pas mettre d'accents dans les commentaires)

Maintenant nous allons créer le fichier python pour les événements .

Ci joint le fichier exemple des mouvements de mon plateau. Vous pouvez bien sur l'adapter à vos besoins .

Comment cela marche ? 

Dans la fonction def onRange(distance): 

- on teste la valeur de l'ultrason , si inferieur ou égale à 20 cm on arrête les moteurs .

Dans  la fonction avance() :

- motor1.move(0.5) fais avancer le moteur 1 a 50 % de sa vitesse (valeur 1 = 100%)

- motor2.move(-0.2) fais reculer le moteur 2 a 20 % de sa vitesse (valeur 1 = 100%) etc ....

- La commandes sr04.startRanging démarre le scan de l'ultrason

Dans la fonction recule() :

- motor1.move(-1)  fait tourner le moteur en sens inverse .

Dans fonction stop() : 

- moteur1.stop()   arrête le moteur 1.

- La commande  sr04.stopRanging() , arrête le scan de l'ultrason SR04.

Dans la fonction tourneD() :

- On fait tourner une roue dans un sens et l'autre dans l'autre sens .

Dans la fonction tourneG():

- Idem que la fonction tourneD.

Vous pouvez bien sur modifier ses fonctions à votre guise .

Nota : dans l'application android les noms des fonctions appelées sont non modifiable dans le programme . Il vous faudra  les conserver si vous voulez utiliser le joystick de  l'application .

Une fois votre programme Python construit , copiez le dans le répertoire ; .../inMoov/custom

prgmoteur

Il nous reste à créer le fichier AIML pour que notre mini robot nous obéisse .

Ci joint le fichier AIML , une fois construit , copiez le dans le répertoire ...../InMoov/chatbot/bots/fr/aiml/ votre fichier aiml

aimmoteur

Voila votre InMoov n'est plus statique , effectivement il est sur des roues pour le faire marcher avec ses deux jambes  , c 'est une autre HISTOIRE ...........

à suivre.