lecagnois Posté(e) Mai 3, 2016 Posté(e) Mai 3, 2016 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é
Heisenberg Posté(e) Mai 3, 2016 Auteur Posté(e) Mai 3, 2016 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
Loader79 Posté(e) Mai 3, 2016 Posté(e) Mai 3, 2016 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.
grattounet Posté(e) Mai 5, 2016 Posté(e) Mai 5, 2016 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 4
damdam2959 Posté(e) Mai 5, 2016 Posté(e) Mai 5, 2016 Bonjour tu es a combien de grammes niveau filament d'utiliser pour l'instant ? cdlt
grattounet Posté(e) Mai 5, 2016 Posté(e) Mai 5, 2016 bonsoir, Actuellement j'en suis à 4 bobines environ !!
Weiling Posté(e) Mai 6, 2016 Posté(e) Mai 6, 2016 C'est plus des grammes là, c'est des kilos Très jolie travail! Je reste impressionné par ce qui sort de ce topic! Bravo à tous! Vite vite la suite
damdam2959 Posté(e) Mai 6, 2016 Posté(e) Mai 6, 2016 bonjour Le 06/05/2016 at 08:37, Weiling a dit : C'est plus des grammes là, c'est des kilos 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
lecagnois Posté(e) Mai 6, 2016 Posté(e) Mai 6, 2016 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 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
grattounet Posté(e) Mai 6, 2016 Posté(e) Mai 6, 2016 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
lecagnois Posté(e) Mai 9, 2016 Posté(e) Mai 9, 2016 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); } 1
grattounet Posté(e) Mai 9, 2016 Posté(e) Mai 9, 2016 Arfffffffffffff !!!!!!!!!!!!!!!!! MERCCCCCCCiiiiiiiiii @lecagnois ça va nous aider trop cool ... hâte de pouvoir le tester !!
Heisenberg Posté(e) Mai 19, 2016 Auteur Posté(e) Mai 19, 2016 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 5
lecagnois Posté(e) Mai 26, 2016 Posté(e) Mai 26, 2016 j ai modifier les fichiers de @Heisenberg pour adapter les paupières à un servo MG90 ci joint les stl de la came et du support . ci cela peut aider ............. Les fichiers STL : Révéler le texte masqué cames4.stlFetching info... support_paupiere.stlFetching info...
Heisenberg Posté(e) Mai 26, 2016 Auteur Posté(e) Mai 26, 2016 Ah cool @lecagnois , bien vu ! alors le fonctionnement des paupieres cela donne quoi de ton coté ? 1
Heisenberg Posté(e) Mai 26, 2016 Auteur Posté(e) Mai 26, 2016 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 : 2
lecagnois Posté(e) Mai 27, 2016 Posté(e) Mai 27, 2016 (modifié) Le 26/05/2016 at 17:13, Heisenberg a dit : Ah cool @lecagnois , bien vu ! alors le fonctionnement des paupieres cela donne quoi de ton coté ? Dérouler je ferais une vidéo une fois mise au point terminée lien intéressant pour coupler les servos a un raspberry http://www.bakatek.fr/2016/04/03/inmoov-raspberry-pi/ Modifié (le) Mai 27, 2016 par lecagnois
grattounet Posté(e) Mai 29, 2016 Posté(e) Mai 29, 2016 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 3
lecagnois Posté(e) Mai 30, 2016 Posté(e) Mai 30, 2016 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
lecagnois Posté(e) Mai 30, 2016 Posté(e) Mai 30, 2016 (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) Mai 30, 2016 par lecagnois 1
grattounet Posté(e) Mai 30, 2016 Posté(e) Mai 30, 2016 Le 30/05/2016 at 15:21, lecagnois a dit : 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 Dérouler ça deviendra comme ça mais pour instant c'est comme ça !!! lol
grattounet Posté(e) Mai 30, 2016 Posté(e) Mai 30, 2016 @lecagnois Meki pour le code je vais tester ça
lecagnois Posté(e) Mai 31, 2016 Posté(e) Mai 31, 2016 (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) Mai 31, 2016 par lecagnois
lecagnois Posté(e) Juin 1, 2016 Posté(e) Juin 1, 2016 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); }
grattounet Posté(e) Juin 4, 2016 Posté(e) Juin 4, 2016 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 2
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant