Aller au contenu


Photo

HumaOne


  • Veuillez vous connecter pour répondre
190 réponses à ce sujet

#1 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 08 avril 2016 - 09:05

Bonjour,

 

comme annoncé dans ma présentation je suis en cours de fabrication d'un humanoïde ou disons un bipède !!

 

Il s’appellera HumaOne......

 

L'objectif étant d'obtenir un bipède capable de se déplacer correctement sans pour autant avoir la prétention d'imiter à la perfection la démarche humaine.....En même temps hein.....quand ont voit ce qu'il se fait aujourd'hui.....

 

Ce dernier devra donc pouvoir se déplacer debout sur un terrain facile et il devra pouvoir transporter des petits objets +/- 100 grammes.

 

Il ne sera pas autonome dans ses déplacements (pas de détection d'obstacle dans un premier temps) et sera uniquement commandé par IR.

 

Toutes les pièces du squelette seront réalisées par impression....Enfin le plus possible .....

 

Le matériel :

  • 1 batterie de 7,4 volts-5A/h,
  • 2 step down 7,4->6volts/ 2A Max
  • 1 carte genuino mega 2560 R3,
  • 2 driver PWM 16 servo,
  • 20 servo MG996R (6 servo par jambe et 4 servo par bras),
  • 1 télécommande IR.

 

1 stepdown par driver PWM, soit 1 driver PWM avec 12 servo pour les jambes et 1 autre driver PWM avec 8 servo pour les bras.

 

Je vous transmettrai plus de commentaire au fur et à mesure de mes avancées..............

 

++



#2 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 08 avril 2016 - 09:19

Bien,

 

Maintenant que le décor est planté voici mes premières constatations :

 

Tous les servo ont des pulsemin et pulsemax différents !!!

 

Sur 12 servo testés, j'ai un écart sur le pulsemax de 510 à 545.....

 

Je pensais prendre la moyenne, disons 528 mais si nous prenons le pulsemax de 510 cela correspond à une erreur de 18, soit sur 510 -> 3,5%.....d'écart....

 

Faible ?!!

 

Et bien sur une consigne d'angle de disons pour exemple 160°, le servo pourra donc se placer soit à 154.4° ou  soit sur 165.6°......

 

Bon et bien j'ai bien peur que la fluidité de la marche du robot soit un peu impacté non?

 

Que pourriez vous me dire sur ce résonnement.....

 

Bon allez un peu de rigolade......Petite photo ci-dessous :

 

mini_204070stepdown.jpg

 

Ho mais qu'est ce donc ???

 

Et bien c'est un petit stepdown qui ma pété à la bouche !!

 

Hier soir je mesurais les pulsemin et pulsemax de mes servo....Et puis comme ça me saoulait car je ne trouvais que très peu de servo avec des bornes min et max identiques j'ai commencé (SANS RÉFLÉCHIR)  à les connecter sur le driver PWM, 1, 2, 3, 4 ......puis 12 servo connectés sur le même driver PWM alimenté par 1 seul stepdown......

 

Lorsque soudain, pour une raison indéterminée tous mes servo se sont mis à trembler puis à se mettre en position butée 0°...........Puis j'ai entedu un super siflement strident...........

 

Et ensuite un super PETCH !!!! ..................Objet volant non identifié venant de traverser le salon!!!!????

 

J'arrête tout ???!!!......

 

Oui!!! Effectivement !!! L'objet volant non identifié c'était le morceau qu'il manque sur la photo du stepdown.....

 

Je crois qu'il est mort lui !!!

 

Bon, ces stepdown LM2596 / 2A Max doivent être un peut juste. Étonnant car je faisais bouger mes servo un après l'autre et sans charge soit disons +/- 500 ma.....Mais quand le bug ses produits, se sont tous les servo qui se sont placée en butée 0° simultanément et qui ont consommé tous en même temps.....ARGH !!! Et PETCH !!

 

 

Bon il va falloir que je change de stepdown pour du plus costaud je pense, ou faire plus attention.....

 

Bien après cette petite mésaventure, j'en reviens à mes découvertes......Si les pulsemin et pulsemax des servo sont assez dispersés, comment pourrais-je ne pas perdre cette notion ??

 

Dans arduino la fonction map : pulseLen = map( a, ANGLEMIN, ANGLEMAX, PULSEMIN, PULSEMAX); permet de calculer la longueur d'impulsion.

 

a étant la broche du servo sur le driver PWM

 

Je pensais utiliser un tableau pour stocker les PULSEMIN et PULSEMAX de chaque servo.

 

genre : pulseLen = map( a, ANGLEMIN, ANGLEMAX, TABPULSE[a][1], TABPULSE[a][2]);

 

C'est une bonne idée ou je chipote pour pas grand chose.....

 

Et concernant le stepdown, auriez vous une suggestion pour un modèle plus robuste.....

 

Merci par avance pour vos conseils...

 

++



#3 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 08 avril 2016 - 10:43

Merci du partage.

Je ne saurais pas te dire si de telle différences c'est aberrant. Mais un tableau pour stocker ces infos n'est pas déconnant en tout cas.

Tu utilise servo.h ?

Tes servos sont tous tu même modèle ?



#4 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 08 avril 2016 - 10:52

Mes servo sont des MG996R de TowerPro...Acheté en ligne pas chère...........Ha !! Oui vous savez le pas chère d'Asie.....

 

J'utilise la librairie  <Adafruit_PWMServoDriver.h>



#5 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 09 avril 2016 - 01:50

Non mais ou avais-je la tête ? Je l'ai déjà vu passé le MG996R :)

http://www.robot-maker.com/forum/topic/10351-driver-pwm-gros-probleme/#entry68401

 

C'est le même projet ?



#6 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 09 avril 2016 - 02:21

oui c'est bien moi,

 

Je posterai tous mes messages concernant mon robot dorénavant sur ce topic.....



#7 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 09 avril 2016 - 03:07

Mais un tableau pour stocker ces infos n'est pas déconnant en tout cas.

 

 

 

 

Je pensais utiliser un tableau pour stocker les PULSEMIN et PULSEMAX de chaque servo.

 

genre : pulseLen = map( a, ANGLEMIN, ANGLEMAX, TABPULSE[a][1], TABPULSE[a][2]);

 

C'est une bonne idée ou je chipote pour pas grand chose.....

 

 

 

C'est une bonne idée en effet ,
Par contre si tu veux faire ta fonction map correcte par la suite mon conseil est de faire un tableau non pas à ANGLEMIN et ANGLEMAX de chaque servo mais bien à une valeur fixe qui correspond avec à la plus petite plage angulaire de tes servos...

Après perso moi je fais plutôt les choses ainsi : 

 

Spoiler

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#8 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 09 avril 2016 - 10:28

ok,

 

Merci pour ces informations.

 

sympa aussi la foncton qui retourne pulselenght...

 

++



#9 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 09 avril 2016 - 10:39

Bon allez un peu de rigolade......Petite photo ci-dessous :

 

mini_204070stepdown.jpg

 

Ho mais qu'est ce donc ???

 

Et bien c'est un petit stepdown qui ma pété à la bouche !!

 

Hier soir je mesurais les pulsemin et pulsemax de mes servo....Et puis comme ça me saoulait car je ne trouvais que très peu de servo avec des bornes min et max identiques j'ai commencé (SANS RÉFLÉCHIR)  à les connecter sur le driver PWM, 1, 2, 3, 4 ......puis 12 servo connectés sur le même driver PWM alimenté par 1 seul stepdown......

 

Lorsque soudain, pour une raison indéterminée tous mes servo se sont mis à trembler puis à se mettre en position butée 0°...........Puis j'ai entedu un super siflement strident...........

 

Et ensuite un super PETCH !!!! ..................Objet volant non identifié venant de traverser le salon!!!!????

 

J'arrête tout ???!!!......

 

Oui!!! Effectivement !!! L'objet volant non identifié c'était le morceau qu'il manque sur la photo du stepdown.....

 

Je crois qu'il est mort lui !!!

 

Bon, ces stepdown LM2596 / 2A Max doivent être un peut juste. Étonnant car je faisais bouger mes servo un après l'autre et sans charge soit disons +/- 500 ma.....Mais quand le bug ses produits, se sont tous les servo qui se sont placée en butée 0° simultanément et qui ont consommé tous en même temps.....ARGH !!! Et PETCH !!

 

 

Bon il va falloir que je change de stepdown pour du plus costaud je pense, ou faire plus attention.....

 

Oh, c'est intéressant !

Je suis justement en train de bosser sur ce genre de step-down (alim à découpage de type buck) pour faire passer des courants importants (plusieurs centaines de watts).

Je vais rajouter un test de surcharge ainsi qu'un test de stress de charge (alternance à fréquences variables de demandes importantes/pas de demande) à ma liste :P


Mon site internet : http://ferdinandpiette.com/


#10 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 09 avril 2016 - 11:22

Plusieurs centaines de watts !! Oh Punaise !!!

 

Et l'utilisation final c'est?



#11 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 09 avril 2016 - 11:39

Plusieurs centaines de watts !! Oh Punaise !!!

 

Et l'utilisation final c'est?

 

Pas de panique, j'y vais progressivement !

Je commence par 10W pour me familiariser avec la forte puissance et ses contraintes et puis j'augmenterai au fur et à mesure ;)

 

Le projet, c'est de faire mumuse avec des panneaux solaires et des batteries pour alimenter certains équipements chez moi.

Du coup, j'ai plusieurs petits projet :

  • Un contrôleur de charge pour les batteries (à base d'un régulateur Buck) entre les panneaux et les batterie.
  • Un régulateur inverseur en pure sinus 12V DC => 220V AC qui peut supporter plusieurs millier de watts (pareil, je commence petit avec 10W histoire de me familiariser petit à petit avec les contraintes magnétiques à forte puissance)

Pour commencer, je reçois un panneau monocristallin de 10W avec une batterie de moto 7Ah.

Ça me permettra déjà de voir le rendement de ce genre de bestiole.

Ensuite, j'ai déjà repéré des panneau 100W pour charger des batteries de voitures (80-100Ah) :D


Mon site internet : http://ferdinandpiette.com/


#12 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 10 avril 2016 - 10:11

Bonjour,

 

J'ai une question qui me trotte dans ma boîte "crânienne".

 

Admettons que j'ai deux servo, servo1 et servo2 :

 

  1. j'envoie sur les deux servo une première pulsation de longueur 150. Servo 1 se place à 12° et servo2 à 15°
  2. j'envoie sur les deux servo une deuxième pulsation de longueur 500. Servo 1 se place à 147° et servo2 à 153°

 

Alors, est ce qu'il m'est possible d'utiliser la fonction map avec dépassement des bornes min et max. Par exemple est ce que je peux faire pour les deux servo

 

 

pulseservo1 = map(180,12, 147,150, 500);

pulseservo2 = map(180,15, 153,150, 500);

 

Car, si oui, exit la recherche sans fin depulsemin et pulsemax de chaque servo. Il faudarait envoyer pulse1 et regarder l'angle min de chaque servo, puis envoyer pulse2 et regarder l'angle des servo. Beaucoup plus rapide....

 

Je pense que c'est possible car source http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.Map: " Cette fonction ne contraint pas les valeurs à rester dans les limites indiquées, car les valeurs en dehors de la fourchette sont parfois attendues et utiles. L'instruction constrain() doit être utilisée également avant ou après cette fonction, si les limites de la fourchette utilisée doivent être respectées."

 

D'ailleurs la fonction mathématique tendrait à le prouver :

 

long map(long x, long in_min, long in_max, long out_min, long out_max)
{
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
 

 

Les calculs semblent le confirmer :

 

180 577,173913     12   150   145   500  

 

 

Je n'avais jamais fait attention à cette notion.....

 

Bref, je pense pouvoir gagner un peu de temps pour calibrer mes servos, il me restera donc à stocker dans une table anglebas et anglehaut pour les pulsebas et pulsehaut....

 

 

Punaise!! Pourquoi se faire.....suer !!??



#13 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 10 avril 2016 - 04:06

Oui c'est possible aussi et ça marche très bien. 
ça fait uniquement stocker plus de variable différentes. 
 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#14 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 11 avril 2016 - 08:10

ok,

 

Merci pour la confirmation.



#15 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 14 avril 2016 - 07:31

Des nouvelles de HumaOne,
 
Celui-ci est presque debout sur ses jambes :

 

Spoiler

 

Je suis assez surpris dans la mesure ou le montage se passe bien, le calcul des dimensions des pièces n'est pas mal donc pas de grosse galère pour assembler les pièces.

 

Il me reste encore les tibias et les pieds à fixer mais les pièces s'emboîtent déjà bien.

 

Cependant, après ce premier montage je sais déjà que des modifications seront apportées.

 

Moins de visserie pour le prochain modèle. Ceci étant j'ai conçu celui-ci rapidement de manière à obtenir une base pour développer un algorithme et aussi pour pouvoir constater par des tests les difficultés mécaniques (montage, zones de fragilité, ....blablabla......).

 

Ensuite un squelette plus développé viendra améliorer HumaOne...Enfin je l'espère.....

 

Je reste à l'écoute de vos remarques et questions mais soyez sympas avec le débutant que je suis ...

 

++

Image(s) jointe(s)

  • 593932ph01.jpg


#16 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 14 avril 2016 - 08:26

 

 

Je reste à l'écoute de vos remarques et questions mais soyez sympas avec le débutant que je suis ...

 

 

 

Vraiment pas mal pour un " débutant " ! :) 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#17 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 14 avril 2016 - 08:48

Merci,

 

j'espère qu'il va tenir le coup et qu'il pourra effectuer quelques pas sans se fracturer de toutes parts.....

 

++



#18 Andarkam

Andarkam

    Membre

  • Membres
  • 34 messages

Posté 15 avril 2016 - 10:00

Un beau travail en tout cas ! J'aime beaucoup le design. Par contre, je ne comprend pas le moteur "Haut de tes jambes", les jambes ne s’écartent pas mais tournent sur elle même ou c"est moi qui vois mal ?

 

Par contre, ton convertisseur est très très limite pour tes moteurs, moi je me trouvais déjà léger ^^



#19 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 15 avril 2016 - 10:46

Merci,

 

Le mouvement des hanches est pris en charge par deux servo. 1 pour la rotation de la jambe sur elle même et l'autre pour l'inclinaison du robot gauche/droite. 6 servo par jambe :

 

  • pivot jambe, rotation hanche, rotation cuisse, rotation genoux et 2 rotation cheville (1 pour gauche/droite et l'autre avant/arrière...

Mon convertisseur et plus que limite oui...

 

Ton modèle est génial !! La connectique c'est du XT60 ou XT30?



#20 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 18 avril 2016 - 08:13

Damned !!

 

Mon deuxième stepdown vient de me péter à  la bouche aussi...........

 

En fait j'ai un problème avec la partie électronique...

 

Après avoir connecté la carte arduino, le driver pwm, les 12 servos et enfin la batteirie via le stepdown..........lorsque j'exécute le programme tous mes servo se place en butée 0° et plus rien ne bouge..........D'ailleurs dès que je connecte la batterie mes servo se mettent en butée 0° et au son des servo...je comprends vite que ce n'est pas bon...Et donc impossible de faire autre chose que de débrancher la batterie......;

 

Par contre, si je connecte la carte arduino, le driver pwm, la batteirie via le stepdown et enfin les 12 servos .............aucun problème d'exécution du programme!!??

 

Je n'arrive pas à faire fonctionner l'ensemble si je connecte pas les 12 servo en dernier.......

 

Par contre avec 4-6 servo je n'ai aucun problème...........si je lès branches en premier ou en dernier aucun soucis....Serais-ce le driver PWM???

 

Finalement après moultes essai..........le stepdown à fini par voler ............

 

carte mega 2560 R3

pwm driver : driver servo made in aliexpress sur la base adafruit

servo : MG996

stepdown : LM2596 made in aliexpress

batterie 7,4 V - 5000mA/h (charge 96%)

 

HumaOne est donc au repos  :

 

 

repos.PNG

 

 

repos2.PNG






0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users