
Creation d'un hexapode
#1
Posté 25 juin 2012 - 06:58
Maintenant que j'ai fait pas présentation. Je vais vous expliquer mon projet.
On va commencer fort (mais j'ai tout mon temps).
aller on commence.....
C'est de creer un hexapod.... Oui gros gros projet. Surtout que j'ai plein d'idée en plus.
Ma premiere etape a été d'acheter une carte de programation (je suis partie sur le modele arduino mega)
Une fois ma carte reçu, j'avais en stock un servomoteur futaba S3003 (pour les connaisseurs)...
J'ai donc parcouru le net et je suis tombé sur un site (Je crois vous avez deja ue a faire a lui, il sera heureux....voici le liens de son blogICI)
J'ai donc regardé une vidéo pour savoir comment faire bouger le servomoteur. Premier test réussi en moins de 10min. (le temps de réécrire le code et bien le commenter,
pour bien tout comprendre, oui moi je pense que en commentant les lignes cela permet d'apprendre les fonction et autres....c'est une maniere d'apprendre).
Je commence donc a modifié les valeurs (valeur de depart et mouvement de tel angle a tel angle:
Fiere et contant de voir que j'avais bien compris tout le code.
Je me suis commander 18 servomoteurs (sa fait beaucoup quand meme).
Donc ma premiere etape et de pouvoir faire bouger le premiere étage de l'hexapod.(On va commencer gentillement)....
A quoi correspond pour moi le premier étage de mon hexapod. Il s'agit en faite de la rotation de la patte de l'hexapod vue de dessus.
Donc six servomoteurs.....
Je pense que je suis bien les étapes de ma constrction.
J'ai donc fait mon montage sur une breadbord. j'ai relié les fils de couleur rouge ensemble et noir ensemble sur la breadbord. idem pour le fils signal chaque fils signal relié
au sortie pwm de la carte arduino......Un petit accu pour alimenter les servomoteurs.
Me reste plus qu'a faire la progamation.
C'est la ou je seche un peu...
Je sais donc faire bouger un servomoteur de angleX a angleX.
Maintenant il faudrait donc que deux ou trois servomoteursfasse le meme mouvement.
Une fois le mouvement terminer cela a pour action de faire bouger les deux ou trois autres servomoteurs.
Merci de mon aide, j'espere avoir été claire, c'est toujours difficile de dire ce que l'on veut faire.
Alors si vous avez des questions, j'y répondrai.
Je vous mettrait egalement des photos. de la carte, montage, et projet.
A +
#2
Posté 25 juin 2012 - 07:40
Commection des sorties pwm sur la carte arduino mega
J'ai choisi de prendre les sorties de 2 à 7.

On continue On relie maintenent les entrées signals au cable pwm de la carte arduino. Attention a pas se trompé de fil.
Oui je sais il y a deux cable qui sont pas de la meme couleur ne vous en accupé pas j'avais plus de jaune... Je l'ai changerai après.

Maintenant il me reste a alimenter les servomoteurs. Oui la carte ne fournira pas assez de puissance. (c'est ceux que j'ai compris).
Je vous mettrait des photos de mon montage je ne souhaiterai pas faire d'erreur, c'est pour ca que je vais vous montrer mon projet au fur et a meusure.
En espérant avoir de l'aide de la part de la communautée..
++
#3
Posté 25 juin 2012 - 07:53
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#4
Posté 25 juin 2012 - 07:58
Tu sembles avoir bien débuté (j'avais peur en lisant que tu n'ai alimenté tous tes servomoteurs à partir de l'Arduino.. mais non, tu as l'air de bien avoir étudié la chose avant de te lancer).
Plus qu'à te souhaiter une bonne continuation.. je ne sais pas si je pourrai t'aider mais je suivrai ce sujet avec engouement.

#5
Posté 25 juin 2012 - 08:00
C'est un projet qui à l'air fort sympathique

Pourrais-tu nous faire voir le code que tu as déjà écrit pour que l'on sache un peu où tu en es ?
Car je ne vois pas de difficulté majeur à imposer le même mouvement à plusieurs servomoteur.
Je ne comprend donc pas où tu bloques
myServo1.write(val) myServo2.write(val) myServo3.write(val)
Ce qui influe surtout, c'est le type d'alimentation. Si tu alimente ta carte via le port USB, alors oui il te faut une alimentation externe pour tes moteurs car un port USB ne peut fournir que du 500mA sous 5V.Maintenant il me reste a alimenter les servomoteurs. Oui la carte ne fournira pas assez de puissance. (c'est ceux que j'ai compris).
Par contre, si tu alimentes arduino avec une batterie 12V, alors, tu peux utiliser cette même batterie pour tes moteurs (s'ils fonctionnent en 12V).
Si tu dois alimenter tes moteurs en 5V, il n'est pas conseiller d'utiliser la sortie 5V de l'arduino car c'est la sortie régulée qui alimente directement le microcontroleur de l'arduino. (sortie régulé qui n'autorise d'ailleurs pas un grand courant de sortie... Je n'ai pas la valeur exacte, mais je dirais qu'il est déconseillé de dépasser 500mA aussi...) Donc si un de tes moteurs réclame trop de courant, il y aura une chute de tension, et c'est le reset du microcontroleur assuré.
Si tu as peut pour ton arduino, je te conseil de lire ce lien très instructif ^^ : http://ruggedcircuit...tml/ancp01.htmlJe vous mettrait des photos de mon montage je ne souhaiterai pas faire d'erreur,
++
Black Templar
Mon site internet : http://ferdinandpiette.com/
#6
Posté 25 juin 2012 - 08:13
Super comme projet, similaire au mien pour le chassis (quadrupèd pour moi).
j'ai deja commencé à programer une marche (dernier lien sur mon blog).
Pour programmer les servo attends à quelques pièges, comme les valeurs des angles qui sont différents pour chaque servo (parfois + de 10 degrés décart.. trés barbant.).
Si tu veux savoir autre chose n'hésite pas

Bon courage!
#7
Posté 25 juin 2012 - 08:21
#include <Servo.h>
int pos = 0; //position de depart
Servo myservo; //appel du servo myservo
void setup()
{
myservo.attach(12); //attache du sgnal pwm12
}
Void loop () //boucle
{
for(pos = 60; pos < 120; pos++) // Mvt rot positif de X° à X°
{
myservo.write(pos);
delay(15);
}
for(pos = 120; pos >= 60; pos--)
myservo.write(pos);
delay(15);
}
}
Rien de plus simple pour commander un servomoteur. Je tiens a preciser que je debut dans le code arduino, mais
j'ai des facilité je boss dans l'informatique j'ai deja ue a faire a du code donc je pense bien comprendre
et suis motivé a encore mieux comprendre le language arduino.
A vrai dire la je suis bloqué.
Donc si je copie le code pour les 6 servomoteurs en specifiant bien les sorties pwm et tout.
Ils devraient tous bouger ensemble.
Ca me parait logique .
Mais comment faire pour en faire bougé que trois puis trois (avec un shield ou il n'y en a pas besoin).
Je suis un peu perdu enfaite la.
Et merci pour vos encouragements
Et j'irai jeter un coup d'oeil a ton blog ashira.
#8
Posté 25 juin 2012 - 08:28
Le langage Arduino, c'est du C++ avec quelques fonctionnalités en moins.et suis motivé a encore mieux comprendre le language arduino.
Mais en réalité, ça ressemble plus au langage C (vu qu'un programme en C est compilable en C++, jusque là, rien de choquant).
Si tu veux apprendre et comprendre comment programmer avec Arduino, je te conseil d'étudier le langage C : http://www.siteduzero.com/tutoriel-3-14189-apprenez-a-programmer-en-c.html
(langage qui te permettra en plus de coder tes propres programmes PC !)
A vrai dire la je suis bloqué.
Donc si je copie le code pour les 6 servomoteurs en specifiant bien les sortie pwm.
[...]
Mais comment faire pour en faire bougé que trois puis trois (avec un shield ou il n'y en a pas besoin).
Je suis un peu perdu enfaite la.
Là, je laisse les pro des servo te répondre !
A part quelques tests sur servomoteur, je n'ai jamais utilisé que des moteurs cc avec arduino.
++
Black Templar
Mon site internet : http://ferdinandpiette.com/
#9
Posté 25 juin 2012 - 08:30
Il est tres bien fait..
#10
Posté 25 juin 2012 - 08:42
Pour faire ça tu utilises des pauses (delay ou intéruption).Mais comment faire pour en faire bougé que trois puis trois (avec un shield ou il n'y en a pas besoin).
void avant() { s3.write(145); //avant2 s6.write(75); delay(30); s5.write(60); s1.write(55); delay(180); s2.write(125); s4.write(130); delay(pas1); s3.write(110); //avant1 s6.write(55); delay(30); s5.write(110); s1.write(130); delay(180); s4.write(50); s2.write(50); delay(pas1); }]
voila un exemple de mon code, je fais bouger mes servos dans l'ordre chronologique avec des pauses pour différencier les mouvements des pattes.
#11
Posté 25 juin 2012 - 08:49
compris ton void avant voudrai dire qu'il s'agit des servos avant 2fois 3 servo
s1,s2,s3....s6 = se sont tes servos servomoteurs.
Tu les apelles dans un certain ordre avec des pauses pour chaque groupe.
#12
Posté 25 juin 2012 - 08:52
Voila c'est ca, s1,2,3 pour la patte1 et les autres pour la patte2.ok merci, j'y avait pas penser si j'ai bien
compris ton void avant voudrai dire qu'il s'agit des servos avant 2fois 3 servo
s1,s2,s3....s6 = se sont tes servos servomoteurs.
Tu les apelles dans un certain ordre avec des pauses pour chaque groupe.
Tu fais un chassis fait maison ?
#13
Posté 25 juin 2012 - 08:59
J'ai pas encore decidé avec quoi.
J'ai fait des tests avec un cd pour la base. mais trop souple trop petit en diametre je pense, Ca
rique d'etre sérré. Sinon j'ai un collègue qui a un laser qui peut decoupé le pmma 5mm (genre de pvc) et oui le pvc sa fond
ou j'avais pensé a du contreplaqué 5mm, il y a aussi le balsa mais ca demandera de le reforcer
Aprés si tu as d'autre matiere facile a travailler genre un carton ou un truc comme ca sutout que c'est pour les tests.
Je prevois ensuite de le faire en alu ou une matiere encore plus legere. Mais qui dit légé dit cassant...
#14
Posté 25 juin 2012 - 09:09
En alu ce serait pas mal, je te conseil du pvc dur ou du plexi, enfin ce que tu veux sauf qqch de souple! Sinon les pattes se plient etc, moi je suis obligé de lui faire des atelles avec des morceaux de bois.. *damn*Oui je fait un chassis maison.
J'ai pas encore decidé avec quoi.
J'ai fait des tests avec un cd pour la base. mais trop souple trop petit en diametre je pense, Ca
rique d'etre sérré. Sinon j'ai un collègue qui a un laser qui peut decoupé le pmma 5mm (genre de pvc) et oui le pvc sa fond
ou j'avais pensé a du contreplaqué 5mm, il y a aussi le balsa mais ca demandera de le reforcer
Aprés si tu as d'autre matiere facile a travailler genre un carton ou un truc comme ca sutout que c'est pour les tests.
Je prevois ensuite de le faire en alu ou une matiere encore plus legere. Mais qui dit légé dit cassant...
Et aussi, tu as une idée de l'alimentation de tes servos ?
#15
Posté 25 juin 2012 - 09:15
Et aussi, tu as une idée de l'alimentation de tes servos ?
Oui ca je sais, regarde cette vidéo.
Bon le debut est logique il explique plein de chose que beaucoup de gens connaisse(il faut bien les rappeller)
mais ca explique comment alimenter tes servo via une source externe en l'occurence des acuus
apres libre a toi d'alimenter le mombres de servo que tu veux selon le nombre pack d'accus que tu as sans oublier que plus tu as d'accus plus c'est lourd.
Pour les accus fait comme sur la video prend les accus avec un maximum de Miliampere. on en vend maintenet de tres bon a plus de 3000 Ma.
http://vimeo.com/19870515
#16
Posté 25 juin 2012 - 09:23
D'accord, donc si j'ai bien compris ton accu ne dépassera pas les 6 volts ?Oui ca je sais, regarde cette vidéo.
Bon le debut est logique il explique plein de chose que beaucoup de gens connaisse(il faut bien les rappeller)
mais ca explique comment alimenter tes servo via une source externe en l'occurence des acuus
apres libre a toi d'alimenter le mombres de servo que tu veux selon le nombre pack d'accus que tu as sans oublier que plus tu as d'accus plus c'est lourd.
Pour les accus fait comme sur la video prend les accus avec un maximum de Miliampere. on en vend maintenet de tres bon a plus de 3000 Ma.
http://vimeo.com/19870515
#17
Posté 25 juin 2012 - 09:24
#18
Posté 25 juin 2012 - 09:41
Ok. C'était pour savoir si tu avais besoin de passer par une régulation de tension.Oui mes servomoteurs vont jusqu'a 6V.

#19
Posté 25 juin 2012 - 09:45
#20
Posté 25 juin 2012 - 09:49
Ok, une petite pile 9v pourquoi pas^^Ok, d'accord et l'arduino sera alimenté via un autre accus si c'est pas trop lourd.
Désolé pour le doublon.
1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users