Aller au contenu

GO Print

[ROBOTIQUE] Robot inmoov (avec une Dagoma)


Heisenberg

Messages recommandés

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 xD , ç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 

 

20160307_223309.jpg

TETE INMOOV.jpg

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

 

Lien vers le commentaire
Partager sur d’autres sites

// 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);                        
  } 
}

 

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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);                        
  }
}

 

Lien vers le commentaire
Partager sur d’autres sites

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()

 

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

@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é :S

Lien vers le commentaire
Partager sur d’autres sites

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 :D )

 

 

Modifié (le) par lecagnois
  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

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é :S

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) par lecagnois
  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

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 xD 

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 :)

 

 

 

20160312_171115.jpg

20160312_174728.jpg

Modifié (le) par Heisenberg
  • J'aime 3
Lien vers le commentaire
Partager sur d’autres sites

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

56e54fbf1b7cc_tlcharger.jpg.880c167d5667

cdlt

Modifié (le) par damdam2959
  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

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 :)

 

Lien vers le commentaire
Partager sur d’autres sites

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.  

01.JPG

02.JPG

03.JPG

04.JPG

Lien vers le commentaire
Partager sur d’autres sites

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) par Heisenberg
Lien vers le commentaire
Partager sur d’autres sites

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 :P

 

#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) par lecagnois
Lien vers le commentaire
Partager sur d’autres sites

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) par grattounet
Lien vers le commentaire
Partager sur d’autres sites

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...