Go Down

Topic: Faire ralentir ou accélérer la vitesse d'un cerveau en debut ou fin de course (Read 2463 times) previous topic - next topic

Sylvain_Jeanneton

Hello à tous  :O)   , je vais bientôt commencer un humanoïde en Arduino pour ma fille. Donc je vais vous poser des questions courtes avec je l'espère des réponses pareils concises avec exemples et concrètes. (je bosse beaucoup, pas trop le temps en fait.)
Comment faire ralentir ou accélérer la vitesse d'un cerveau en début ou fin de course.
Ex: je fais taper des pinces au future Bot. Plutôt qu'il ne se casse les pinces car en fin de course les moteurs sont à fond je voudrai ralentir leur vitesse. (Ou l'inverse)

Amicalement
Sy.

J-M-L

Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

biggil


jfs

2 réponses concises précises et même une avec un exemple concret, j'espère que ce sera suffisant pour mener à bien ton projet avec si peu de temps à disposition...   :D
Pas d'aide par MP !!!

Concernant le fonctionnement du forum tout se trouve dans les messages épinglés en tête de page.

68tjs

La sieste n'est pas mal aussi pour ralentir le cerveau.

Soyons sérieux, le cerveau c'est ce qui va te permettre de réfléchir à comment faire ce que tu veux avec un SERVOmoteur.

Regardes sur le blog d'Eskimon il explique très simplement comment fonctionne un servomoteur.
Tu verra que ce que tu veux faire n'est pas évident du tout, le servo étant en permanence à la vitesse maximale que lui permet la charge qui y est connectée.

_pepe_


Sylvain_Jeanneton

"Servo". Quel âne... Bande de sales moqueurs ! :0)
En tout cas merci de repondre si vite c'est cool. Oui je connais le mode de fonctionnement d'un servo. Je sais que ce n'est pas simple et c'est pour cela que je demande. Sinon je fais plus simple avec de simples moteurs en commandant la tension d'alim avec un potar électronique.



_pepe_ (Ooooolé)     wrote:



/*
α(t) = (A/2)·t2 + ω0·t + α0

avec A = 0,5·(ω12-ω02)/(α1-α0)
*/



Heu... (C'est pas bien de dire du mal de la mère des autres !)
Pas plus simple, genre couper ou diminuer l'alim du servo quelques millisec avant l'arrivé en fin de course ? Je me fiche de la manière, soit-elle la classe comme plus haut ou en arrondissant les coins à la lime. Seul le résultat compte.
Je n'ai pas trop besoin de réponse d'expert. si ma grand mère ne comprends pas un truc c'est que ce n'est pas une bonne réponse. Sinon les machines ont déjà gagnées.

Alors ? Une idée ?

Amicalement.
Sy

bricoleau

ah flûte
J'espérais trouver ici un truc pour accélerer un cerveau en fin de course...

Pour ton problème, il me semble que la solution passe par l'envoi de plusieurs consignes intermédiaires
Tutoriels arduino : http://forum.arduino.cc/index.php?topic=398112.0

_pepe_


aligote

.............

Faire une rampe de décélération sur la consigne reste de loin la solution la plus simple.
Bonjour,

C'est aussi ce que je pense; précisons dans le cas d'un exemple :

Pour cet exemple je considère que l'angle initial est -45° avec une course maximum de + ou - 45°

=> 0° correspondant à la position médiane associée à un PWM de commande de période environ 20 ms et de durée 1,5 ms au niveau haut

=> -45° correspondant à la position min associée à un PWM de commande de période environ 20 ms et de durée 1 ms au niveau haut

=> +45° correspondant à la position max associée à un PWM de commande de période environ 20 ms et de durée 2 ms au niveau haut

L'information "position angulaire" est entièrement présente dans la durée d'impulsion au niveau Haut.

Si je souhaite passer de -45° à 0° sans aménagement,  alors que la consigne est de 1ms (-45° maintenu), alors je dois envoyer une consigne de 1,5 ms. Dans ce cas le circuit de commande du servo fait le nécessaire, la vitesse augmente puis la position angulaire atteinte, un freinage vigoureux permet de ne pas trop dépasser la position recherchée. (quand on visualise à l'oscillo la forme du signal "intensité" on constate deux pics de consommation : au début et à la fin du déplacement).

Si on veut aménager, il faudrait par exemple envoyer une première consigne de 1,4 ms puis quelques consignes successives de plus en plus proches de 1,5 ms. Le circuit de commande du servo se chargeant d'adapter la consommation ( donc l'intensité et le couple) de façon à ne pas dépasser la position souhaitée; mais avec une vitesse faible.

Serge .D

Edit : Le rôle de la bibliothèque "servo" est réaliser la conversion " position angulaire" vers "durée en ms"

Sylvain_Jeanneton

Pas simple. Ok mais c'est très théorique tout ça. Quelqu'un a-t'il un bout de code à proposer pour tester.
Amicalement.
Sy.

aligote

Pas simple. Ok mais c'est très théorique tout ça. Quelqu'un a-t'il un bout de code à proposer pour tester.
Amicalement.
Sy.
Ah bon ?

Serge .D


-Standby

Pas simple. Ok mais c'est très théorique tout ça.
Bonsoir,

Les équations que pepe à fournies sont issu de la mécanique cinématique, ce n'est pas les cours et exemples qui manquent à ce sujet.
The Mind is like a parachute it works best when opened.

Sylvain_Jeanneton

Si je viens ici c justement pour avoir de l'aide et pas pour lire ce genre de réponse à la noix. Lol !
Quelqu'un peut-il m'aider de façon à ce que monsieur tout le monde puisse agir vite et de façon assez précise même sans être un expert ce serait chouette. Oui ou non ? :0)
Amicalement.
<sy

Go Up