Aller au contenu

Messages recommandés

Posté(e)
  Le 03/05/2016 at 14:04, ehrenfeld a dit :

Bonjour à tous

ET encore merci pour vos conseils et améliorations.

J'imprime  actuellement avec ma discovery ( avec du  PLA)  pivgearV4 , pivwormV2 et pivcenterV1.... (impression épaule)  Apres quelques heures d'impression  j'essaye d'assembler ces 3 parties , mais après des heures de ponçage j'ai toujours du mal a faire tourner pivgear avec piworm

Comment avez-vous procédé car je ne vois pas beaucoup d'info sur le site d'inmoov sur ce problème

merci pour votre retour

Dérouler  

regarde ce meme topic page 3 nous en avons deja parlé

Posté(e)

Pareil , je reduis à 0.96 en x et en y avec cura by dagoma et ça marche assez bien :)

j'avoue que les pistons , c'est les pieces les plus galere a rendre au poil , mais avec un peu de patience on y arrive et le résultat en vaut le coup ;)

regarde , sur celui ci aucun poçage ni de graisse , direct sorti de l'impression :) , bon pour les pistons du cou c différent j'avoue lol

video-1462203597.mp4

Posté(e)

Bonsoir,

Le sujet est particulièrement intéressant, bravo pour ce travail. J'ai parcouru le site InMoov en diagonal car je ne maitrise pas la langue de Shakespear et j'aimerais savoir si il existe un model 3D complet assemblé du robot pour pouvoir le visualiser dans son intégralité? J'utilise principalement 3DSM pour la modelisation qui gère passablement de format.

Posté(e)

Kikou la foule !!! Bon je post l'avancement c'est chô les marrons chô Matt !! pour le montage du basin !! :( ... Merci au PLA de s'auto réparé avec un peu d'aide du fer à souder !! lol 

 

 

Bassin.jpg

Mysmoov+Bassin.jpg

  • J'aime 4
Posté(e)

Bonjour

tu es a combien de grammes niveau filament d'utiliser pour l'instant ?

cdlt

Posté(e)

C'est plus des grammes là, c'est des kilos :P

Très jolie travail! Je reste impressionné par ce qui sort de ce topic! Bravo à tous! Vite vite la suite ;)

Posté(e)

bonjour

  Le 06/05/2016 at 08:37, Weiling a dit :

C'est plus des grammes là, c'est des kilos :P

Très jolie travail! Je reste impressionné par ce qui sort de ce topic! Bravo à tous! Vite vite la suite ;)

Dérouler  

sisi toujours des grammes ca fais 4000 grammes lol

cdlt

Posté(e)
  Le 05/05/2016 at 18:45, grattounet a dit :

Kikou la foule !!! Bon je post l'avancement c'est chô les marrons chô Matt !! pour le montage du basin !! :( ... Merci au PLA de s'auto réparé avec un peu d'aide du fer à souder !! lol 

 

 

Bassin.jpg

Mysmoov+Bassin.jpg

Dérouler  

tu est un fou d impressions , moi ma femme veux qu il prenne pas trop de place ^_^

tu en est ou question électronique et informatique .fais nous une petite vidéo

Posté(e)

Slt @lecagnois j'ai pas encore attaqué l'électronique car pas encore reçu le matos qui va bien !!! mais ça devrait pas tarder !! ... Pour le "robot et la place !! moi j'ai dit à ma femme que c'est lui qui allait faire le ménage ! donc j'ai eu son feu vert :P  

Posté(e)

Bonjour a tous

Aller un petit coup D arduino , suite à l'idée génial de @Heisenberg

d utiliser le son du haut parleur et de synchroniser la bouche du robot , Un problème persiste faire fonctionner deux servos moteur en même temps (probleme d interuption dans l arduino) .

J ai fouillé sur internet et j ai trouvé cette bibliotheque arduino  (VarSpeedServo)  . l'avantage plus besoin de delay() ni de boucles for()  pour faire avancer les servos .

ci dessous le programme de @Heisenberg 

J'ai modifié le code pour l'adapter à la bibliotheque , resultat code plus simple et execution plus rapide des servos

lien pour télécharger la bibliothèque avec exemples : https://github.com/netlabtoolkit/VarSpeedServo

 

#include <VarSpeedServo.h>

int ServoPin = 11;
int HPpin = 5;
int vitesse = 15;
VarSpeedServo bouche;  // objet servo bouche 
VarSpeedServo tete; // mouvement tete
VarSpeedServo yeuxl; // yeux horizons
VarSpeedServo coup;  // coup du robot
int SecondDetection = 1; // 
int val = 0;     // variable pour bouche
int i = 0;      // variable pour test bouche
int BoucheStatus = 0;
int ActionBouche = 0;
const int L2 = 2; //broche 2 du micro-contrôleur leds yeux du robot
int flag = 0;

void setup()
 {
  analogReference(EXTERNAL);
  pinMode(ServoPin, OUTPUT);      
  Serial.begin(9600);  
  Serial.println("--- Start DEBUG ---");
  bouche.attach(11);  // attaches the servo on pin 9 to the servo object 
  bouche.write(45);
  pinMode(L2, OUTPUT); //L2 est une broche de sortie yeux
  yeuxl.attach(5);
 }

void loop()
 {
      tete.write(90,vitesse); // tete centre
      yeuxl.write(50,vitesse);// centre les yeux
      val = analogRead(HPpin);
      // allume les led en parlant ou paupieres si installées
     if (val > 700){digitalWrite(L2,LOW);
                   }else{ digitalWrite(L2,HIGH);
                 //  Serial.println(val);
                 //  Serial.println(flag);
                             }
    switch (flag) // action toutes les 15 et 30 paroles
    { 
      case 15:
        action();
        break;
      case 30 :
        action2();
        break;
      default:
       Mvbouche();
    }
    if (flag > 31){flag = 0;}

 } // fin loop


 void action(){
      tete.attach(10); // alim servo 10
      coup.attach(3);
      yeuxl.attach(5);
      tetegauche();
      tetedroite();
      coupbas();
      couphaut();
      yeuxled();
      MvyeuxL();
      flag++; 
      tete.detach();  // coupe alim des servos
      coup.detach();
      yeuxl.detach();}  

 void action2(){
      yeuxl.attach(5);
      MvyeuxL();
      yeuxled();
      flag++; 
      yeuxl.detach();}  

 void Mvbouche()
  {
     if (val < 665 || val > 680 ) // recherche valeur entre 665 et 680
      {
             BoucheStatus = 1; // bouche fermée
      }  else // sinon 
      {
          i++; // la valeur entre 665 et 680 est pas trouvée
          // Serial.println(val);
       }
     if (i>=SecondDetection)
      {   i=0;
         BoucheStatus = 0;
       }

      if (BoucheStatus == 0 && ActionBouche == 0)
      {
        bouche.write(100,250,true);
         ActionBouche = 1;
          bouche.write(45,250,true);
      }
     if (BoucheStatus == 1 && ActionBouche == 1)
     {
        bouche.write(45,250,true);
        ActionBouche =0;
       flag++; // compteur e boucles
       }
    }
  
 void yeuxled(){
  digitalWrite(L2,HIGH); // met la broche au niveau haut (5V) – allume la LED
    delay(4000); // pause de 500 millisecondes (ms)
  digitalWrite(L2,LOW); // met la broche au niveau bas (0V) – éteint la LED
    delay(500); // pause de 500ms
                 } 
    
  void tetedroite(){
   tete.write(90,vitesse,true);
   tete.write(40,vitesse,true);
   tete.write(90,vitesse,true);

                   }
  void couphaut(){
     coup.write(40,vitesse,true);
     coup.write(170,vitesse,true);
     coup.write(100,vitesse,true);
             }
                 
void coupbas(){
     coup.write(100,vitesse,true);
     coup.write(40,vitesse,true);
     coup.write(100,vitesse,true);
            } 

void tetegauche(){
     tete.write(90,vitesse,true);
     tete.write(140,vitesse,true);
     tete.write(90,vitesse,true);
                 }
void MvyeuxL(){
    yeuxl.write(45,vitesse,true);
    yeuxl.write(75,vitesse,true);
    yeuxl.write(20,vitesse,true);
    yeuxl.write(50,vitesse,true);
             } 


  • J'aime 1
  • 2 weeks later...
Posté(e)

Super ! Merci pour le code :) 

De mon côté en ce moment je suis sur la main , tout est en place , j'ai même créé un nouveau système de tendeur pour ses ptits doigts :) , je bidouille un peu le côté arduino pour reussir à lui programmer des mouvements de doigts synchronisés , j'ai aussi fait qq covers pour améliorer l'aspect de son torse et de son épaule

Inmoov TENSIONER ELASTIC VERSION found on #Thingiverse http://www.thingiverse.com/thing:1573521

 

 

2016-05-15 12.23.50.jpg

  • J'aime 5
Posté(e)

Pour le biceps j'utilise un servo beaucoup moins cher que celui d'origine et pourtant plus costaud ! 35 kg de couple pour 16 euro , trouvable ici :

http://fr.aliexpress.com/item/HV-high-torque-Robot-servo-35kg-RDS3135-Metal-gear-Coreless-motor-digital-servo-arduino-servo-for/32556521374.html

voici le lien du support pour adapter dans celui d'origine:

http://www.thingiverse.com/thing:1590680

et le test en vidéo :) :

  • J'aime 2
Posté(e)

Bonjour tout le monde !!! :) Bon aujourd'hui j'ai imprimé la dernière pièce !!! la SmartCub3D et au repos !! mais pas pour longtemps car je vais passer à l'étape custom !!! donc lui donner une apparence plus féminine et reste toute la partie mécanique !!! pour la rendre intelligente !! bon ça risque d'être la partie la plus dure vu que j'ai choisis "une femme" ... lol 

 

Mysmoov.jpg

  • J'aime 3
Posté(e)

super tu a vraiment beaucoup imprimé , j'espere que tu va lui faire une jolie poitrine ?

en tout cas le visage est bien lisse bravo

:banana:

Posté(e) (modifié)

AH j ai enfin résolu le problème pour faire fonctionner des servos en même temps avec une carte arduino

il ne faut pas utiliser la fonction delay ( qui bloque le processeur jusqu a la fin du delay )

mais il faut utiliser la fonction millis() 

ci joint mon code : 

explication du loop  

il y a trois variables  une pour le temps ecoulé , un drapeau pour compter les paroles , un autre pour synchroniser la bouche avec le son 

premier test toutes les x secondes ( j ai mis 6 secondes ) le programme continu et lance la procédure paupière et initialise le temps 

sans interruption du programme car pas de delay()

après si valeur analogique du son supérieur a 700 éteint les yeux sinon allumes les

après le drapeau du nombre de parole ( ici 15 ou 30 )

 execute le script 1 ou le script 2

puis remet le drapeau a 0 ainsi les scripts ne sont exécutés que tous les 15 et 30 (paroles)

#include <VarSpeedServo.h>

long temps; // variable mesure du temps
int ServoPin = 11;
int HPpin = 5;
int vitesse = 15;
VarSpeedServo bouche;  // objet servo bouche 
VarSpeedServo tete; // mouvement tete
VarSpeedServo yeuxl; // yeux horizons
VarSpeedServo coup;  // coup du robot
VarSpeedServo paupiere;
int SecondDetection = 1; // 
int val = 0;     // variable pour bouche
int i = 0;      // variable pour test bouche
int BoucheStatus = 0;
int ActionBouche = 0;
const int L2 = 2; //broche 2 du micro-contrôleur leds yeux du robot
int flag = 0;

void setup()
 {
  temps = millis(); // initialise le temps
  analogReference(EXTERNAL);
  pinMode(ServoPin, OUTPUT);      
 // Serial.begin(9600);  
 // Serial.println("--- Start DEBUG ---");
  bouche.attach(11);  // attaches the servo on pin 9 to the servo object 
  bouche.write(45);
  yeuxl.attach(5);
  paupiere.attach(9);
  pinMode(L2, OUTPUT); //L2 est une broche de sortie yeux
//  coup.attach(3);  // affecte à l'objet Servo la broche 3 de Arduino
// tete.attach(10);
// bouche.attach(11);
 }

void loop()
 {
      tete.write(90,vitesse); // tete centre
      yeuxl.write(50,vitesse);// centre les yeux
      val = analogRead(HPpin);
      // allume les led en parlant ou paupieres si installées
     if ((millis() - temps) > 6000) // toutes le x secondes 
         {
          Mpaupiere();
          temps = millis();  
         }

     if (val > 700){digitalWrite(L2,LOW);

                   }else{ digitalWrite(L2,HIGH);
                   
                 //  Serial.println(val);
                 //  Serial.println(flag);
                             }
    switch (flag) // action toutes les 15 et 30 paroles
    { 
      case 15:
        action();
        break;
      case 30 :
        action2();
        break;
      default:
       Mvbouche();
    }
    if (flag > 31){flag = 0;}
    

 } // fin loop


 void action(){
      tete.attach(10); // alim servo 10
      coup.attach(3);
      yeuxl.attach(5);
      tetegauche();
      tetedroite();
      coupbas();
      couphaut();
      yeuxled();
      MvyeuxL();
      flag++; 
      tete.detach();  // coupe alim des servos
      coup.detach();
      yeuxl.detach();}  

 void action2(){
      yeuxl.attach(5);
      MvyeuxL();
      yeuxled();
      flag++; 
      yeuxl.detach();}  

 void Mvbouche()
  {
     if (val < 665 || val > 680 ) // recherche valeur entre 665 et 680
      {
             BoucheStatus = 1; // bouche fermée
      }  else // sinon 
      {
          i++; // la valeur entre 665 et 680 est pas trouvée
//           Serial.println(val);
       }
     if (i>=SecondDetection)
      {   i=0;
         BoucheStatus = 0;
       }

      if (BoucheStatus == 0 && ActionBouche == 0)
      {
        bouche.write(100,250,true);
         ActionBouche = 1;
          bouche.write(45,250,true);
      }
     if (BoucheStatus == 1 && ActionBouche == 1)
     {
        bouche.write(45,250,true);
        ActionBouche =0;
       flag++; // compteur e boucles
       }
    }
  
 void yeuxled(){
  digitalWrite(L2,HIGH); // met la broche au niveau haut (5V) – allume la LED
    delay(4000); // pause de 500 millisecondes (ms)
  digitalWrite(L2,LOW); // met la broche au niveau bas (0V) – éteint la LED
    delay(500); // pause de 500ms
                 } 
    
  void tetedroite(){
   tete.write(90,vitesse,true);
   tete.write(40,vitesse,true);
   tete.write(90,vitesse,true);

                   }
  void couphaut(){
     coup.write(40,vitesse,true);
     coup.write(170,vitesse,true);
     coup.write(100,vitesse,true);
             }
                 
void coupbas(){
     coup.write(100,vitesse,true);
     coup.write(40,vitesse,true);
     coup.write(100,vitesse,true);
            } 

void tetegauche(){
     tete.write(90,vitesse,true);
     tete.write(140,vitesse,true);
     tete.write(90,vitesse,true);
                 }
void MvyeuxL(){
    yeuxl.write(45,vitesse,true);
    yeuxl.write(75,vitesse,true);
    yeuxl.write(20,vitesse,true);
    yeuxl.write(50,vitesse,true);
             } 
void Mpaupiere(){
   paupiere.write(90,40,true);
   paupiere.write(58,40,true);
 }
            

Modifié (le) par lecagnois
  • J'aime 1
Posté(e) (modifié)

Le lien qui explique la différence entre la fonction delay() et millis()

bien utile pour nos robots

http://eskimon.fr/76-arduino-202-introduire-le-temps

pour aller plus loin avec plusieurs moteurs en utilisant des tableaux

https://www.areaprog.com/arduino/article-629-millis-et-micros-utilisation-des-fonctions-millis-et-micros-pour-tirer-profit-de-l-horloge-interne-de-l-arduino

Modifié (le) par lecagnois
Posté(e)
  Le 01/06/2016 at 08:55, grattounet a dit :

Kikou Lecagnois !! non pas de réponse à mon mail :) ... me suis dit !! il me boude !! lol  

Dérouler  

Bien je disais ,

Merci pour les fichiers , mais je vais resté avec la version de MAT car j ai deja 5 servo branché sur ma carte arduino ca commence a faire (lol)

pour répondre a ta question de programmation :

Pour les deux servo en meme temps :

il suffit de rajouter dans la procedure Mpaupiere ton deuxième servo ( il faut  le déclarer avant dans void setup bien sur)

Pour le clin d oeil :

il faudra faire un deuxieme IF avec la fonction millis() qui pointera sur une deuxième procedure void paupiuere2() par exemple.

 

void Mpaupiere(){
   paupiere.write(90,40,true);
   paupiere.write(58,40,true);
 }
Posté(e)

Bon,jour à tous !! 

@lecagnois Meki pour le code je vais tester ça :) ... bon j'ai intégré ton code avec un peu de modiff !!! mais j'ai encore pas mal de trucs a modifier !! entre autres la synchro des paupières qui ce déclenche pas en même temps et la voix qui s'arrête je sais pas pourquoi !! enfin je pense à une question de plage pas appropriée !! ... Voilà Merci à Matt et à Anthony pour leurs aide également :) 

ps: c'est que quelques extraits car la syhcro s'arrête et repars longtemps après :) ~ 30 secondes 

  • J'aime 2

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...