lecagnois Posté(e) Mars 9, 2016 Posté(e) Mars 9, 2016 Il y a 17 heures, Heisenberg a dit : Bon en attendant mon arduino et servo moteur , j'ai pas pu résister à démarrer le print de la tête , ça fait plaisir de mettre un visage sur mon robot lol Pour info jusque aujourd'hui je n'ai utilisé que les 3/4 d'une bobine de blanc de 500 gramme et 1/5 d'une bobine de noir de 500 gramme et tiré un peu de gris sur une autre bobine pour les doigts et la rotation du poignet... Honnêtement je pensais réellement que le pla partirais plus vite que ça tu avance rapidement super . j ai reçu tous les servos , si cela vous intéresse je met en ligne les petits bouts de code pour calibrer les servo de la tête
Heisenberg Posté(e) Mars 9, 2016 Auteur Posté(e) Mars 9, 2016 Carrément @lecagnois ça m'interresse C'est une bonne idée ; )
lecagnois Posté(e) Mars 10, 2016 Posté(e) Mars 10, 2016 // mouvement tete gauche droite // monter le servo a 90 degres #include <Servo.h> Servo myservo; int pos = 0; // variable position void setup() { myservo.attach(3); // sortie 3 pwm } void loop() { for(pos = 0; pos < 180; pos += 1) { myservo.write(pos); delay(15); } for(pos = 180; pos>=1; pos-=1) { myservo.write(pos); delay(15); } }
lecagnois Posté(e) Mars 10, 2016 Posté(e) Mars 10, 2016 Pour les servos moteurs pour la tête voici la liste : Servomoteur Hitec HS805BB 44,90 € 2 Servomoteur miniature MG90 13,95 € 2 Servomoteur analogique MG996R 10,80 € 1 Tous compatible sans modification des fichiers stl ( acheté chez GOTRONIC livré en 48 heures) car trop long made in china.
lecagnois Posté(e) Mars 10, 2016 Posté(e) Mars 10, 2016 mouvement des yeux gauche droite // mouvement des yeux droite gauche // sur pin 6 #include <Servo.h> Servo myservo; int pos = 45; // initialise a 45 degres void setup() { myservo.attach(6); // pin 6 pwm } void loop() { for(pos = 45; pos < 65; pos += 1) { myservo.write(pos); delay(100); } for(pos = 65; pos>=1; pos -=1) { myservo.write(pos); delay(100); } } mouvement des yeux haut et bas // mouvement petit servo yeux haut et bas // sur pin 5 #include <Servo.h> Servo myservo; int pos = 45; // initialise a 45 degres void setup() { myservo.attach(5); // pin 5 pwm } void loop() { for(pos = 45; pos < 170; pos += 1) { myservo.write(pos); delay(50); } for(pos = 170; pos>= 45 ; pos -=1) { myservo.write(pos); delay(50); } }
lecagnois Posté(e) Mars 10, 2016 Posté(e) Mars 10, 2016 mouvement du coup // réglage coup inmoov // servo monté a zero degré #include <Servo.h> Servo myservo; int pos = 50; // initialise le coup a 50 degres void setup() { myservo.attach(9); // pin pwd 9 } void loop() { for(pos = 50; pos < 180; pos += 1) // 50 a 180 degres { // boucle +1 myservo.write(pos); delay(20); // waits 20ms ralenti le servo } for(pos = 180; pos>=50 ; pos-=1) // 180 degrees a 50 { myservo.write(pos); delay(20); } } Mouvement de la bouche allumage des yeux avec 2 leds rvb deux pattes plus résitances en // // diode tricole 2 pattes pour les yeux const int LED=2; //declaration constante de broche void setup() { // debut de la fonction setup() //Serial.begin(9600); pour test port serie pinMode(LED, OUTPUT); //met la broche en sortie } // fin de la fonction setup() void loop(){ // debut de la fonction loop() digitalWrite(LED,HIGH); // met la broche au niveau haut (5V) allume la LED delay(4000); // pause de 500 millisecondes (ms) //Serial.println("led allume"); digitalWrite(LED,LOW); // met la broche au niveau bas (0V) etteint la LED //Serial.println("led eteinte"); delay(500); // pause de 500ms } // fin de la fonction setup() 1
Heisenberg Posté(e) Mars 11, 2016 Auteur Posté(e) Mars 11, 2016 Ouah tu te balade on dirais @lecagnois , merci pour ces codes , ils seront precieux Donc si je dis pas de bêtise ces codes sont à inserrer dans l'arduino et ensuite tu peux faire agir la tête du robot via myrobotlab , c'est bien ça ? mais au niveau de l'interactivité il faudra surement modifier les codes pour qu'il puisse suivre un objet du regard ( avec la kinect ) et qu'il bouge la bouche lorsqu'il parle ? Je me suis pas encore fortement penché dessus mais si tu peux expliquer sans rentrer dans le détail les liens entre les actions / mouvement cela m'éclairerais pas mal pour la suite lol , ce sera toujours des codes à entrer dans l'arduino qui seront en liaison entre les mouvements avec la vue et l’ouïe du robot ?
Motard Geek Posté(e) Mars 11, 2016 Posté(e) Mars 11, 2016 @lecagnois essaie de mettre ton code dans la balise qui va bien, c'est plus lisible A ce sujet j'ai perdu le code "mouvement de la bouche" en voulant le mettre en page (j'ai une connexion de merde sur les pistes )... Si tu pouvais le remettre stp merci et désolé
Furtys Posté(e) Mars 11, 2016 Posté(e) Mars 11, 2016 Tiens, je vais rejoindre votre petit groupe là Je vois que ça prog un peu Arduino, ça me plait bien tout ça Je vais commander pas mal de servo aussi et commencer à imprimer tout ça tiens 1
Heisenberg Posté(e) Mars 11, 2016 Auteur Posté(e) Mars 11, 2016 Super @Furtys , bienvenue , plus on sera à se lancer dans ce projet , plus ce sera enrichissant
comardud Posté(e) Mars 12, 2016 Posté(e) Mars 12, 2016 j'hésites encore à me lancer dans un tel projet mais en tout cas c'est passionnant, bravo les gars 1
lecagnois Posté(e) Mars 12, 2016 Posté(e) Mars 12, 2016 (modifié) Il y a 18 heures, Heisenberg a dit : Ouah tu te balade on dirais @lecagnois , merci pour ces codes , ils seront precieux Donc si je dis pas de bêtise ces codes sont à inserrer dans l'arduino et ensuite tu peux faire agir la tête du robot via myrobotlab , c'est bien ça ? mais au niveau de l'interactivité il faudra surement modifier les codes pour qu'il puisse suivre un objet du regard ( avec la kinect ) et qu'il bouge la bouche lorsqu'il parle ? Je me suis pas encore fortement penché dessus mais si tu peux expliquer sans rentrer dans le détail les liens entre les actions / mouvement cela m'éclairerais pas mal pour la suite lol , ce sera toujours des codes à entrer dans l'arduino qui seront en liaison entre les mouvements avec la vue et l’ouïe du robot ? ces codes sont à téléverse dans l arduino juste pour calibré les servos moteurs sans qu ils force aprés il faut ecrire des scenarios selon ce que l on veux faire avec la tete , je vous en ferais quelques un . Pour le moment je ne vais pas utiliser myrobolab , je vais utiliser la carte electronique d un nabastag ( le serveur est maintenant en open sources ) . le nabastag la carte son est intégré donc facile de faire parler le robot en plus le wifi est aussi intégré il faut le mettre dans un raspberry par exemple . couple a une carte arduino , je programme le robot a partir du raspberry et du serveur nabastag Pour utiliser une Kinet il te faudra la puissance d un ordinateur pour piloter tout ca . voir tout les tutos sur kinet ou jarvis ou le blog de idlman avec le projet YANA etc .... plein de pistes sont réalisable , moi je vais au plus juste avec du matériel de recup ou qui dorment ( genre un nabastag un carte arduino dans un tiroir ) Modifié (le) Mars 12, 2016 par lecagnois 1
lecagnois Posté(e) Mars 12, 2016 Posté(e) Mars 12, 2016 (modifié) Il y a 17 heures, MatC a dit : @lecagnois essaie de mettre ton code dans la balise qui va bien, c'est plus lisible A ce sujet j'ai perdu le code "mouvement de la bouche" en voulant le mettre en page (j'ai une connexion de merde sur les pistes )... Si tu pouvais le remettre stp merci et désolé ben le revoilà : ces codes servent a calibrer les servos pour ajuster les mouvements au mécanisme sans forcer sur les servos . // mouvement de la bouche pin 10 #include <Servo.h> Servo myservo; int pos = 40; // initialise a 40 degres void setup() { myservo.attach(10); // pin 10 } void loop() { for(pos = 40; pos < 70; pos += 1) { myservo.write(pos); delay(15); //rapidité des levres } for(pos = 70; pos>=40 ; pos-=1) { myservo.write(pos); delay(15); //rapidite des levres } } Modifié (le) Mars 12, 2016 par lecagnois 1
Heisenberg Posté(e) Mars 12, 2016 Auteur Posté(e) Mars 12, 2016 (modifié) Merci pour les explications , ça tombe bien j'ai un netbook eeepc qui ne sert plus depuis quelque temps , je compte l'utiliser sur le robot , reste à voir si ses capacités seront suffisantes ... J'ai reçu ma carte arduino aujourd'hui , mais pas encore le servo grrr,... bon ça me permet de jouer un peu avec En attendant ça print toujours , y'a pas mal de mécanisme dans la tête et sur le site inmoov c'est pas toujours très clair mais c'est comme un puzzle , en cherchant un peu on y arrive Modifié (le) Mars 12, 2016 par Heisenberg 3
grattounet Posté(e) Mars 12, 2016 Posté(e) Mars 12, 2016 Super Heisenberg !! trop cool ton visage ... dis j'ai pensé à un truc pour l' esthétique le recouvrir de syntofer à carrosserie et comme ça il aura la peau douce ... lol 1
damdam2959 Posté(e) Mars 13, 2016 Posté(e) Mars 13, 2016 (modifié) Il y a 14 heures, grattounet a dit : Super Heisenberg !! trop cool ton visage ... dis j'ai pensé à un truc pour l' esthétique le recouvrir de syntofer à carrosserie et comme ça il aura la peau douce ... lol Bonjour oui mais dans ce cas il faudra le rebaptiser nivea et non inmoov cdlt Modifié (le) Mars 13, 2016 par damdam2959 1
Heisenberg Posté(e) Mars 13, 2016 Auteur Posté(e) Mars 13, 2016 Oui lol c'est prévu de lui faire un beau lifting complet du visage, supprimer les vis et masquer les trous , mais il faut que je termine toute la tête pour connaitre les accès car il y a pas mal de pièces à l'intérieur
grattounet Posté(e) Mars 13, 2016 Posté(e) Mars 13, 2016 Bonjour les amis j'ai un souci avec MYRobotLAB !! pourtant je l'est déjà exécuté plusieurs fois avant il fonctionnait sans souci !! ... je voie les leds réagir sur ma carte ma uno réagir quand je bouge les curseurs d'un servo (par-exemple) mais le servo lui ne bouge pas !! et pourtant il fonctionne sur arduino en direct !! quelqu'un à une idée !!! j'ai changé le serial.begin à 115000 bauds ? ... mais ça vient pas de ça je pense, car quand je bouge le curseur les leds de ma uno fonctionne !! donc c'est comme si le pin n'est pas activé malgré que je l'attach bien à la carte et au numéro ... ps : je joins quelques capture d'écran pour info !! sur la 03 je sais pas si il faut agir sur ces commandes si oui j'ai fais plusieurs essai en on ou in mais rien .... et j'ai bien recopié le code ds ma uno !! que MLR me donne.
Heisenberg Posté(e) Mars 13, 2016 Auteur Posté(e) Mars 13, 2016 (modifié) En OUT/ON non ? Tu as essayé d’alimenter en externe ton servo ? j'ai lu que si on utilise des servo à fort amperage cela peux provoquer des initialisation de carte arduino ou non fonctionnement du servo Modifié (le) Mars 13, 2016 par Heisenberg
lecagnois Posté(e) Mars 13, 2016 Posté(e) Mars 13, 2016 (modifié) Par précaution il faut alimenter toujours les servos avec une alim exterieur et relier un masse a la carte arduino a une pin GND ( bien sur) Modifié (le) Mars 13, 2016 par lecagnois
lecagnois Posté(e) Mars 13, 2016 Posté(e) Mars 13, 2016 (modifié) voila je vous ai fais un script pour la tête de notre robot pour modifier le script il suffit de modifier dans la procedure loop l ordre des sous programmes ou en ajouter a votre guise , dans l ordre qu il vous plais . Nota dans la procedure LOOP les lignes en commentaire servent à déclencher les mouvements a partir de la carte électronique du nabastag avec une cellule mise en face du diode . voici un lien pour installer le serveur Openjannab sur votre raspberry http://jetweb.free.fr/nabaztag_rpi/Tutoriel_OJN_RPi_v1-1.pdf moi j ai suivi le pdf est le serveur marche niquel que un vieux raspeberry ou http://nabaztag.forumactif.fr/t13396-tutoriel-d-installation-d-openjabnab-sur-un-serveur-ubuntu-lamp-installation-pas-a-pas-de-0 Apres il suffit de quelque ligne en php pour envoyer des commande a la carte . et faire faire a votre robot tout ce que faisait le lapin , bien sur il faut un vieux lapin lol #include <Servo.h> Servo coup; // coup du robot int poscoup = 30; int postete = 50; int posbouche= 45; int posyeuxl = 45; //Servo yeuxh; // yeux haut du robot Servo yeuxl; // yeux horizons Servo tete; // mouvement tete Servo bouche; // mouvement bouche int lightPin = 0; //l'entrée analogique sur laquelle la photo-résistance est connectée const int L2 = 2; //broche 2 du micro-contrôleur leds yeux du robot void setup() { pinMode(L2, OUTPUT); //L2 est une broche de sortie coup.attach(3); // affecte à l'objet Servo la broche 3 de Arduino //yeuxh.attach(6); // affecte à l'objet Servo la broche 6 de Arduino yeuxl.attach(5); tete.attach(10); bouche.attach(11); //Serial.begin(9600); } void loop() //la fonction loop() exécute le code qui suit en le répétant en boucle { //int lightLevel = analogRead(lightPin); //Lit le niveau de lumière Read the lightlevel //lightLevel = map(lightLevel, 0, 900, 0, 255); // ajuste la valeur de l'échelle 0 à 900 vers 0 à 255 //lightLevel = constrain(lightLevel, 0, 255); // contraint la valeur entre 0 et 255 //if(lightLevel > 254){ // Serial.println( cpt); //if(cpt>0) yeuxl.write(45); // yeux centrer bouche.write(45); // bouche fermer couphaut(); // leve le coup et arrete au centre yeuxled(); // allume les yeux Mvbouche(); // parle boucle 20 mots MvyeuxL(); // bouge les yeux coupbas(); // du centre vers le bas delay(1000); tetegauche(); // tourne la tete a gauche tetedroite(); // tourne la tete a droite couphaut(); tetedroite(); tetegauche(); } void couphaut(){ for(poscoup = 40; poscoup < 170; poscoup += 1) // 40 a 170 = tete haute { coup.write(poscoup); delay(20); } for(poscoup = 170; poscoup >=100 ; poscoup-=1) { coup.write(poscoup); delay(20); }} void coupbas(){ poscoup=80; for(poscoup = 100; poscoup >= 40; poscoup -= 1) { coup.write(poscoup); delay(40); }} 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 tetegauche(){ for(postete = 90; postete < 150; postete += 1) // tete a gauche { tete.write(postete); delay(80); } for(postete = 150; postete >= 90; postete -= 1) // revient au centre { tete.write(postete); delay(80); } } void tetedroite(){ for(postete = 90; postete > 20; postete -= 1) // tete a droite { tete.write(postete); delay(80); } for(postete = 20; postete <=90 ; postete+=1) // remet au centre { tete.write(postete); delay(80); } } void Mvbouche() { for (int i=0 ; i < 20; i++){ digitalWrite(L2,HIGH); for(posbouche = 45; posbouche < 100; posbouche += 1) //45 fermé { bouche.write(posbouche); delay(15); //rapidité des levres } for(posbouche = 100; posbouche >=45 ; posbouche-=1) { bouche.write(posbouche); delay(15); //rapidite des levres } } bouche.write(45); digitalWrite(L2,LOW); } void MvyeuxL(){ for (int i=0 ; i < 2; i++){ { for(posyeuxl = 45; posyeuxl < 70; posyeuxl += 1) // roule les yeux { yeuxl.write(posyeuxl); delay(30); } for(posyeuxl = 70; posyeuxl >=20; posyeuxl -=1) { yeuxl.write(posyeuxl); delay(30); } } } yeuxl.write(45); } Modifié (le) Mars 13, 2016 par lecagnois
Furtys Posté(e) Mars 14, 2016 Posté(e) Mars 14, 2016 @Heisenberg Petite question, comment fixes-tu tes doigts ? N'ayant pas de filament de 3mm et pas tellement envie de mettre des vis as-tu une solution où faut-il acheter du filament de 3mm ?
grattounet Posté(e) Mars 14, 2016 Posté(e) Mars 14, 2016 (modifié) Merci !! @Lecagenois Sympa ce code !!! je suis sur arduino !! il fonctionne aussi ? avec une carte soit "Uno" "Mega" ou "Due" ? ou faut installer automatiquement le serveur Openjannab !! car j'ai installé MyrobotLab ils vont pas rentrer en conflit ? Modifié (le) Mars 14, 2016 par grattounet
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