Aller au contenu


Photo
- - - - -

prototype bras robot


21 réponses à ce sujet

#1 tom02

tom02

    Membre

  • Membres
  • 64 messages

Posté 25 août 2012 - 05:59

salut,
voila mon prototype de bras articulé commandé par flyduino



ceci n'est qu'un prototype lundi on va me faire un devis pour des pieces decoupé au laser
alors prometteur?

#2 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 25 août 2012 - 09:20

Les mouvements sont un poil brutaux mais c'est pas mal du tout ;)

 


#3 tom02

tom02

    Membre

  • Membres
  • 64 messages

Posté 26 août 2012 - 08:34

merci c'est mais tu sais je patoge un peu dans les codes voir je me noie

#4 thermo_nono

thermo_nono

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 825 messages

Posté 26 août 2012 - 02:35

:lex_14:
sympa... j'aimerai pas qu'il me mette une claque :kez_11:
Pour le code, plus tu en mangera et plus ce sera digeste. (c'était mon conseil à deux francs du jour :whistle2: )
en tous cas bonne continuation et merci pour le partage (même si j'aurais aimé en voir un peu plus.. circuits, code..) :thank_you:

#5 tom02

tom02

    Membre

  • Membres
  • 64 messages

Posté 26 août 2012 - 08:58

merci
c'est le debut

#6 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 966 messages
  • Gender:Male
  • Location:Anglet

Posté 28 août 2012 - 02:26

Les mouvements sont un poil brutaux mais c'est pas mal du tout ;)

Je suis du même avis ;) en tout cas : bonne continuation ;)

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  

 

 

 


#7 tom02

tom02

    Membre

  • Membres
  • 64 messages

Posté 29 août 2012 - 06:35

j'ai reussi a trouver un code, mais cela est vrai que c'est brusque

#8 Melmet

Melmet

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 520 messages
  • Gender:Male
  • Location:Saint-Sozy (46200)

Posté 29 août 2012 - 09:20

montre nous un peu ton code

Ne demande jamais à un robot de faire ce que tu peux faire toi même. :nono: :laugh1:


#9 tom02

tom02

    Membre

  • Membres
  • 64 messages

Posté 29 août 2012 - 11:21

#include <Servo.h>

Servo  servo1, servo2, servo3;  // create servo

void setup() {  

servo1.attach(1);  // attaches the servo on pin x to the servo object 

servo2.attach(2); 

servo3.attach(3);





} 



void loop() {        

  servo1.write(0);  

  servo2.write(0);  

  servo3.write(0); // tell servo to go to position  

  delay(50); 

  servo1.write (180);

  servo2.write (180); 

  servo3.write (180); 

  delay(50); 

  }


#10 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 29 août 2012 - 12:09

Faut pas chercher trop loin ;)

Tu laisses un delay de 50 (millisecondes me semble-t-il) après chaque ordre : pour l'angle zéro, ça ne pose pas vraiment de problème pour peu que ton bras ne soit pas trop loin de cet angle. Par contre, tu demandes ensuite à chaque servo de faire un demi-tour (à paritr de la position zéro) et tu ne lui laisses que 50 ms pour atteindre la position. Ce qui équivaut à demander une vitesse de 10 tr / seconde. C'est quand même beaucoup !
Je te conseille de tester différents temps et d'en choisir un qui permette un mouvement un peu plus lent (surtout qu'il y a l'inertie du bras qui vient s'ajouter aux forces subies à l'horizontale) tout en conservant une durée raisonnable.
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#11 thermo_nono

thermo_nono

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 825 messages

Posté 29 août 2012 - 12:36

pour ralentir la vitesse du bras, il faut avancer par paliers et faire une pause entre chaque :
pour ce faire, il faut utiliser une boucle "for" :
#include <Servo.h>
Servo  servo1, servo2, servo3;  // create servo
void setup() {  
servo1.attach(1);  // attaches the servo on pin x to the servo object 
servo2.attach(2); 
servo3.attach(3);

int vitesse = 10; // petit chiffre => petite vitesse 

void loop() {        
 for (int i = 0; i >= 180; i++) {
  servo1.write(i);  
  servo2.write(i);  
  servo3.write(i); // tell servo to go to position  
  delay(vitesse);
  }
 delay(50); 
 for (int i = 180; i <= 0; i--) {
  servo1.write (i);
  servo2.write (i); 
  servo3.write (i); 
  delay(vitesse); 
  } 
 delay(50);
}
je n'ai pas testé, mais ça ne doit pas être loin de ça...
ensuite pour un mouvement rapide, tu met "vitesse=1" et pour un mouvement lent "vitesse=500"
... bon dev.
:bye:

#12 tom02

tom02

    Membre

  • Membres
  • 64 messages

Posté 29 août 2012 - 07:18

ùerci mais je crois que cela va etre dur d'etre a votre niveau sur le systeme de code "creation"

#13 thermo_nono

thermo_nono

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 825 messages

Posté 29 août 2012 - 11:29

une boucle "for", ce n'est pas bien compliqué ; voici un exemple :

int vitesse = 10
for (int i = 0; i >= 180; i++) {
  servo1.write(i);
  delay(vitesse);
}

on oublie le reste du programme et on va juste regarder ce qui se passe ici :
La première ligne crée une variable de type Entier ("int") dont le nom sera "vitesse" et à laquelle on attribue la valeur 10 (millisecondes).
La seconde ligne désigne une boucle "for" suivi de trois arguments entre parenthèses qui indiquent :
1- la valeur de départ (à partir de combien doit-on compter ?)
2- la valeur d'arrivée (jusqu'à combien doit-on compter ?)
3- la valeur du pas (de combien doit-on avancer à chaque tour ?)
dans l'exemple,
1- on crée une variable (de type entier nommée "i" qui vaut 0 au départ ("int i = 0")
2- on fera tourner la boucle jusqu'à ce que la variable "i" soit égale ou suppérieure à 180 ("i >= 180")
3- on fait progresser i de 1 à chaque tour ("i++")
il important de savoir que "i++" c'est une façon raccourcie pour dire "i = i + 1" (on dit qu'on incrémente i) et que de la même manière,
"i--" signifie "i = i - 1" (ici, on décrémente i)
La boucle fera donc 181 tours (de 0 à 180) et à chaque fois, la variable "i" changera (0, 1, 2... etc... 179, 180, 181)

Ouf ! maintenant que l'on a compris ça voyons ce qui va se passer dans cette boucle (qui va faire 181 tours) :
"servo1.write(i);"
- Le servo1 se place à l'angle valant "i" (c'est à dire qu'il va passer successivement par tous les degrès de 0 à 180)
puis, on peut lire : "delay(vitesse);"
- le robot va faire une pause de "vitesse" millisecondes (pour chaque tour de boucle, soit 181 fois au total)

(pour info, 181x10ms = 1.8seconde... le bras devrait mettre environ 2 secondes par mouvement... et donc 4 secondes pour un aller retour)

voilà voilà... la seconde boucle for fait la même chose, sauf qu'au lieu d'aller de 0 à 180 en faisant "i=i+1", il va aller de 180 à 0 en faisant "i=i-1".

:dance2:

#14 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 30 août 2012 - 09:50

Ouf ! maintenant que l'on a compris ça voyons ce qui va se passer dans cette boucle (qui va faire 181 tours) :


Qui va faire zéros tours.

La boucle initialise la variable i, puis teste la condition. Est-ce que i est supérieur ou égal à 180 ? Non, i = 0. La condition est fausse, les instructions ne sont pas exécutées.
Il faut bien comprendre que les instructions sont éxecutées si et seulement si la condition est vraie !

Un code qui fonctionne serait donc :
int vitesse = 10
for (int i = 0; i <= 180; i++)
{
  servo1.write(i);
  delay(vitesse);
}
La boucle va s'exécuter pour i = 0, i=1 ... i=180, soit bien 181 fois.


L'erreur est là :

La seconde ligne désigne une boucle "for" suivi de trois arguments entre parenthèses qui indiquent :
1- la valeur de départ (à partir de combien doit-on compter ?)
2- la valeur d'arrivée (jusqu'à combien doit-on compter ?) La condition de rebouclage !
3- la valeur du pas (de combien doit-on avancer à chaque tour ?)


En effet, il est possible de tester à peu prêt n'importe quoi à cet endroit (il faut s'assurer que la condition puisse être invalidée un jour si on veut pouvoir soirtir de la boucle). Par exemple :
#include <iostream>

int main(int argc, char ** argv)
{
	int j = 0;
	std::cout << "Hello !" << std::endl;
	for (int i = 0; j < 64 ; i++)
	{
		j = i*i;
		std::cout << "i = " << i << " j = " << j << std::endl;
	}
	std::cout << "Fin !" << std::endl;

	return 0;
}
Et en prime, un lien vers le Wikibooks C/C++, partie sur les boucles.
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#15 thermo_nono

thermo_nono

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 825 messages

Posté 30 août 2012 - 12:48

C'était pour voir si vous suiviez... :whistle2:
... nan... j'avoue :
:blush: En effet j'ai "un peu" merdé dans ma démonstration (j'aurais dû tester le code avant de le mettre en ligne).. merci à R1D1 qui a bien tout lu et corrigé...
Je vais laisser le dev en lua et me remettre sérieusement au C, parce que je commence à tout mélanger. :dash2:

#16 tom02

tom02

    Membre

  • Membres
  • 64 messages

Posté 30 août 2012 - 07:21

je viens de recevoir mes pieces decoupé au laser, la v2.0 est monté

#17 tom02

tom02

    Membre

  • Membres
  • 64 messages

Posté 27 janvier 2013 - 12:37

salut a tous
je déterre mon post
apres deux demenagement et mon retour des usa, je peux me remettre a partager avec vous mon projet
des photos dans les jours a venir

#18 tom02

tom02

    Membre

  • Membres
  • 64 messages

Posté 29 janvier 2013 - 09:03

voila la version 2.0

Image IPB

Image IPB

Image IPB

mon flyduino montre des signes de fatigues
j'ai vu ça
board

alors vous en penser quoi ?



#19 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 966 messages
  • Gender:Male
  • Location:Anglet

Posté 30 janvier 2013 - 12:20

C'est un beau bras que voilà ! ;)
Il n'y a plus qu'à le voir en mouvement ! =)

Concernant la board : Je ne connais pas donc je n'ai aucun avis mais au vu de ce qui est dit c'est vrai qu'elle pourrait être intéressante...

Bonne continuation ! =)

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  

 

 

 


#20 tom02

tom02

    Membre

  • Membres
  • 64 messages

Posté 30 janvier 2013 - 11:16

comme tu dit un beau bras de 565gr
mais pour les mouvements, j'ai ma board qui fait des siennes elle met 5-6 min a charger le code avant instantané
a part celle deja cité je ne sais pas quoi prendre si vous avez des idéés
merci



Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users