Hexapode avec Arduino Mega 2650

Bonjour @toutes et @tous :),

j'ai une petite question sur mon arduino :-/ :
il peut générer 14 signaux PWM (port n° 13 à 0 : avec 1 = TX0 et 0 = RX0 )
Cependant y aurait-il un moyen afin de lui faire générer 4 signaux PWM supplémentaire ? (pour pouvoir commander 18 servos :wink: )

Désolé si cette question est toute conne, mais je débute :wink:
Merci d'avance pour vos réponses

p.s : je vous tiens au courant de l'évolution de mon robot. :wink:

Je pilote mes servos sur des ports digitaux, qui ne sont pas forcements PWM. Avec une Mega ça t'ouvre pas mal de perspectives :wink:
Il faut bien différencier la fonction PWM apportée par Arduino et la modulation de rapport cyclique que tu peux faire manuellement sur tous les autres ports.

Merci pour ta réponse :slight_smile:

Tu veux dire, que je peux faire un signal "PWM" sur les ports digitaux en faisant moduler un signal avec de timers ?

cela me rappel de mauvais souvenir :-/ c'est ce que j'essayer de programmer sur mon ATmega8 et que j'ai jamais réussi à faire :cry:
(avec 2 timers et variation du signal sur chaque port toutes les 20ms... )

il y aurait moyen d'avoir un petit aiguillage de ta part ? stp :wink:
@plus

Pour ton besoins c'est normalement la librairie Servo qu'il faut que tu utilises, as-tu refais un essai, ça avais l'air de bugger au début ?

Dans ta boucle de 'levé en douceur" , il faut que tu mettes une tempo de plus de 100ms entre les "pas", avec 20ms tu vas aussi vite que le rafraichissement des servos.

N'oublie pas que les servos sont fait pour le modélisme, et en modélisme on alimente avec des batteries qui peuvent sortir en pointe de 5 à 120A ...
Tu devrais faire tes essaies avec une batterie de modélisme, tu aurais surement moins de problèmes ...

A+ Teiva


www.Zartronic.fr : Robots & Arduino

Je suis d'accord pour la batterie, si je devait compter le nombre de fois où je me suis arraché les cheveux lorsque mon montage ne fonctionnait pas alors que ça venait de l'alimentation...
Pour piloter les servos, la librairie servo est la mieux. après à mon IUT on utilisait l'outil PulseOut(pin,délai) qui fasait ceci:
mettre à l'état 1 le pin
attendre le délai
mettre à 0

il fallait donc ensuite compléter avec des tempos... un peu lourd comparé à la librairie servo toute faite!

je te la donne si tu veux t'en servir: ajoute ça au début de ton programme:

#define PulseOut(pin, us) digitalWrite(pin, HIGH); delayMicroseconds(us); digitalWrite(pin, LOW)

puis tu l'utilises comme cela:

PulseOut(BrocheServoGauche, ZeroServoGauche);

(ZeroServoGauche est un temps, pour lequel mon servo à rotation continue ne bougeait pas du tout)

mais perso je n'utilise plus que la librairie servo, bien plus pratique.

Et tu peux utiliser la librairie servo sur des ports digitaux non? (je veux dire "non-pwm") c'est ce que je fais sur ma duelaminove....
Du coup tu peux commander énormément de servo (voir le détail de la librairie: Servo - Arduino Reference => 48 servos!)

@Teiva, @MrAlexis44600 : Merci pour vos réponses :slight_smile:
@Teiva :
pour mes tests j'utilisais une alim 220V, mais qui n'était pas assez puissante mais avec une alim de pc tous va bien :slight_smile:

Pour info : Avec l'ampèremètre j'ai mesuré un pic de 1,4A (de qqles sec ) lorsque tous les servos bougent ensemble
Tant que je n'ai pas finis mon robot je n'utilises pas de batteries mais sinon j'en ai 3 de 800mAh mais il faut que je les chargent... :slight_smile:

@MrAlexis44600 :
La librairie "servo.h" peut diriger jusqu'à 48 servos O_o Wahou !!! :o
(merci pour le lien j'avais pas vu )
Je vais pouvoir m'éclater ^^/
j'essaye ça pendant les vacances et je vous tiens au courant.

Encore MERCI :wink:

Oui, je pense qu'avec 48 servos tu as de la marge... perso je suis en train de me faire un bras robotisé, équipé d'une pince, vu que je vois que tu as l'air de te débrouiller dans le travail du bois, ça pourrait peut être t'intéresser? si tu as des servomoteurs en rab', même pas très puissants... Je te montre mon résultat :ici
j'ai encore pas mal de calibration à faire, je me suis inspiré d'un tuto du site LetsMakeRobots.

@MrAlexis44600 : pas mal ton idée :slight_smile:
pour l'instant je me consacre à mon hexapode, mais pourquoi pas d'ici quelques temps : une pince ou des bras... ::slight_smile:
mais la priorité est la marche et son intelligence ( bah oui il faut qu'il soit autonome, sinon c'est c** si il se prend les portes ;D :wink: )
si tu veux de l'aide pour faire de plan ou si tu as des questions sur " le bois" et la découpe, n'hésites pas :wink:
@plus :slight_smile:

bonjour,
j'aurais une question piflechien54,
tu dit mettre des condensateur, si j'ai bien compris ce sont des filtres.
Moi j'ai une alim de 5V et 2A et j'aurais aimé savoir comment choisis tes condo et comment tu l'ai place.
Merci.

@JulienR2D2 :
Salut :slight_smile:
alors j'ai piqué cette idée de filtre dans ce bouquin : http://microbot.free.fr/index.html

car c'était ce qui se rapprochait le plus de mon projet :wink:

donc l'idée c'est de mettre 2 paires de condo :

  • C1 : 100µF/25V
    et
  • C2 : 100nF
    de chaque "cotés" des connecteurs des servos... :-/ t'es perdu, non ? ;D

pour info : il utilise une alim 6v 1450 mA/H donc les condo devraient correspondre pour ton alim.

Regarde sur cette photo:

Cela donne ceci en branchement (désolé pour le schéma, j'avais pas trop de temps :wink: )

J'espère avoir répondu à ta question :wink:
Je remercie Mr Yann LEIDWANGER pour son bouquin et son aide :slight_smile:

Si tu as d'autres question, n'hésites pas ::slight_smile:
@plus

Les condensateur servent à compenser les pics de consommation lorsque les servos sont sollicités.
C'est un problème connu en modélisme, lorsque les servos et le récépteur sont sur la même source, cela peut aller jusqu'à la coupure momentanée du récepteur, un condensateur sur l'alimentation des servos permet de palier à ce problème.

The storage capacitor can be plugged into any vacant servo socket at the receiver, and eliminates voltage spikes which could cause interference to the receiver. High-performance digital servos generate extremely high peak voltages under load, which may damage the receiver or have an adverse effect on the receiver's micro-controller under certain circumstances. Receivers and servos are fitted with reservoir capacitors, but they are often too small to filter out these unwanted voltages. The storage capacitor effectively protects the receiver and servos from severe voltage spikes. Brief collapses in voltage are also effectively bridged by the capacitor. The storage capacitor is a sensible precaution for any airborne system, as it enhances the security of thereceiving equipment. It is recommended for use with receiver batteries as well as with electronic receiver power supplies. The storage capacitor is particularly helpful with 2.4 GHz receivers, but is also a useful adjunct to conventional receivers.

@Jean-François : Merci pour ta précision :wink:

Pour info : j'ai complètement modifier les pattes de mon hexapode.
dès que je suis sûr de moi, je mettrais des photos.
Et dès qu'il marche, je mettrais le code et une vidéo.
Voilà
Bonne année @toutes et @tous :slight_smile:

Je suis impatient de voir tout ça! :slight_smile:
Pour info, la carte sur laquelle tu branches tes servos, elle est faite maison? je me suis fabriqué un pseudo-shield disposant de plusieurs groupes de 3 broches (type servo) mais c'est un peu galère à souder...

Merci piflechien54 tu as entièrement répondu a ma question.
Bonne continuation pour ton projet :slight_smile:

@JulienR2D2 : Merci :wink:

@MrAlexis44600 : ben j'ai la carte arduino Mega 2650, et pour l'instant durant les phases de tests je branche directement (fil à fil) dessus, :stuck_out_tongue:
mais dès que je serais plus sur de moi je ferais faire un circuit imprimé qui s'adaptera sur la carte Arduino Mega et qui aura tous les pins de branchement pour les servos, capteur et autres bidules elect :wink:

p.s : j'ai trouvé ce site pour faire faire mon circuit et le gars et hyper-sympa et pro. (non je fais pas de la pub ::slight_smile: :P)
-> http://www.cijurassien.fr/

@plus :slight_smile:

Bonjour @toutes et @tous,

voilà, juste un petit up pour vous tenir informé sur l'évolution de mon projet.

j'ai complètement refait le système des pattes.
ce qui donne un robot plus stable et plus robustes (et mieux visuellement même si il est un peu carré... :wink: )

photo :
Ensemble :
ImageShack - Best place for all of your image hosting and image sharing needs

Patte :
ImageShack - Best place for all of your image hosting and image sharing needs

câblage arduino et platine :

ImageShack - Best place for all of your image hosting and image sharing needs

le câblage c'est pas encore cela et la programmation non plus, sans parler des batteries ;D :stuck_out_tongue:
mais je m'y attèle sérieusement entre 2 recherches de boulot... :wink:

Voilà, si vous avez des questions n'hésitez pas (je ne mord pas... sans une bonne raison ;D )

@plus :wink:

ça à l'air chouette tous ça :smiley:

Bonsoir,

Super boulot ton hexapode :slight_smile:

Je voudrais savoir, il pèse combien ton robot ?

Il a l'air assez imposant d'après les photos.

@SamoLaw : alors pour l'instant sans le câblage définitif et sans les batteries = 1,126 kg (tu rajoute 150g pour les batteries)

Voilà :wink:

@ceux qui s'y connaissent : :wink:

Je souhaiterais faire ce code :-/ : un bouton poussoir BP , un led

si BP==APPUI && LED==OFF => LED ON
si BP==APPUI && LED==ON => LED OFF
si BP==PAS_APPUI && LED==OFF => LED OFF
si BP==PAS_APPUI && LED==ON => LED ON

en gros, c'est une histoire de maintien (en bistable ON/OFF)
mais je sèche :cry: :cry:

Somebody Know ? :-/ :-/
Merci :wink: