Poll
Question: Pour les contraintes : vitesse, bruit, prix le meilleur compromis serait :
Turnigy TG9e - 0 (0%)
HXT900 - 1 (50%)
HK15178 - 0 (0%)
Autre (merci de filer des tuyaux) - 1 (50%)
Total Voters: 2

Pages: [1]   Go Down
Author Topic: Choix de servomoteur  (Read 790 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Je projette d'utiliser des servo afin de synchroniser un grand nombre de mouvements (tous similaires).
Le mouvement consiste en une translation simple sur un seul axe, avec une distance assez courte (~5cm).

Chaque servo sera potentiellement placé dans une cage cubique de 5cm de coté, ce qui rends les choses encore plus complexes.


Mes contraintes sont :
- en premier lieu la vitesse du moteur, car les mouvements seront synchronisés à la manière d'un ballet d'opéra et il faut donc de la réactivité et de la précision.
- le bruit, car il pourrait y avoir plusieurs dizaines de moteurs, et si les rendus des premiers protos sont cool, 200.
- le prix, pour le nombre forcément.


Option 1 : http://www.hobbyking.com/hobbyking/store/__9549__Turnigy_TG9e_9g_1_5kg_0_10sec_Eco_Micro_Servo.html
Option 2 : http://www.hobbyking.com/hobbyking/store/__662__HXT900_9g_1_6kg_12sec_Micro_Servo.html
Option 3 : http://www.hobbyking.com/hobbyking/store/__16257__HK15178_Analog_Servo_10g_1_4kg_0_09s.html

Les autres possibilités envisagées et abandonnées sont :
- les potentiomètres linéaires motorisés : trop couteux malheureusement (~13€/u)
- les systèmes pneumatiques car trop bruyant (micro compresseur nécéssaire)


J'aurai également aimé savoir si certains d'entre vous savaient s'il était possible de "lire" l'angle d'un servomoteur :
Admettons que je mette une tige au bout de l'engrenage de mon servo et que je le faisais tourner à la main, est ce qu'arduino pourrait voir, et identifier ces changements d'états ?

Je me doute que mes questions sont plutot bizarres, mais merci d'y avoir répondu  smiley-cry
Logged

France
Online Online
Faraday Member
**
Karma: 39
Posts: 3567
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
J'aurai également aimé savoir si certains d'entre vous savaient s'il était possible de "lire" l'angle d'un servomoteur :
Si le servo est correctement dimensionné et que tu n'as pas essayé de l'envoyer au delà de ses butées, la valeur de l'angle c'est la consigne que tu as donnée à la fonction Servo.Write()
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

D'ou ma question de si le le force à la main. Concrètement, je prends l'engrenage du servo, je tourne fort, il change d'angle, est-il possible de savoir son angle ?
Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour ça il faudrait mesurer la valeur que te retourne le potentiomètre dans le servo.
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

France
Online Online
Faraday Member
**
Karma: 39
Posts: 3567
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

D'ou ma question de si le le force à la main. Concrètement, je prends l'engrenage du servo, je tourne fort, il change d'angle, est-il possible de savoir son angle ?
Je crois qu'il faudrait regarder du coté des servos numériques. Il me semble que je l'avais vu dans une doc en cherchant à répondre à une personne sur ce forum.
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 24
Posts: 2055
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non.
Un servo se pilote mais n'a pas de voie de retour en standard (exceptions ?), uniquement la commande PWM qu'il s'agisse d'un analogique ou d'un numérique.
Si tu forces, peux importe la position du moteur, t'es en train de le cramer et il faudra le changer bientôt  smiley-sad

Analogique ou numérique ne porte que sur la méthode de contrôle du positionnement à l'intérieur.

En analogique, un potentiomètre est couplé à l'axe. Ce potentiomètre fournie une tension qui est comparée avec une tension fabriquée par un circuit RC qui dépend donc que la largeur de l'impusion de commande.
Si la tension issue du potentiomètre est plus grande, le moteur tourbne dans un sens, sinon il tourne dans un l'autre sens.
Il y a en plus un petit hysteresis pour éviter qu'il oscille autour de la position de repos.
Corollaire 1 : Si tu va vers la position X depuis une position Y < X ou depuis une position Z > X, alors la position effective d'arrêt à peu de chance d'être identique à cause de cet hystéresis. Un bon servo à une erreur plus faible qu'un mauvais...
Corollaire 2 : Si tu ouvre le servo et que tu piques la tension en sortie du potar pour l'envoyer à une entrée analogique de ta 'duino, tu connais la position. Tu as inventé le servomoteur a retour de position  smiley-lol

Un servo numérique utilise un encodeur de position (optique généralement) pour connaitre la position de l'axe. Un circuit numérique (un microcontroleur quoi), va piloter le moteur pour que la position de l'axe corresponde àla consigne (largeur d'impulsion). Comme il a un micro, il peut piloter de manière évoluée et utiliser des algo d'asservissement type PID.
D'où un positionnement plus précis.
Corollaire 2bis : Tu peux pas bricoler le servo pour connaitre la position (ou alors c'est plus dur pour se brancher sur l'encodeur de position)


Donc si tu veux un bon servo donc numérique et que tu veux connaitre la position de ton axe, tu met toi-même un potar ou un encodeur optique a l'extérieur.
Très utile pour tout couper justement si ton servo force avant de le cramer (au prix du servo numérique, vaut mieux).
 smiley
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour ça il faudrait mesurer la valeur que te retourne le potentiomètre dans le servo.
Dans le bibliothèque Servo, il y une fonction dédiée :  Angle = Servo.read().
Logged

Lao Tseu l'a dit "Longue est la route qui mène à la connaissance, et nombreux sont les péages".

Pages: [1]   Go Up
Jump to: