Offline
Full Member
Karma: 0
Posts: 137
|
 |
« on: January 19, 2013, 06:36:14 am » |
Bonjour à tous, Actuellement élève en 1°S Si, nous avons été inscrit aux Olympiades des sciences de l'ingénieur qui se dérouleront prochainement. Le projet est un robot sauteur propulsé par un vérin. Je m'occupe de la partie programmation et j'aurai quelque questions: - Quelle carte Arduino faut-il utilisé pour ce genre de robot , je dispose déjà de carte Arduino Uno et Arduino Mega 2560, mais on est libre d'utiliser la carte que l'on veut. - Pour les shields, se branches-t-il tous sur les cartes méga et lequel utilise pour le contrôle du robot en wifi? L'éthernet shield? - Avant son saut, le robot doit-être incliné à un certain angle, j'ai déjà programmé ce programma pour l'inclinaison du robot par servomoteur, fonctionne-t-il ? #include <Servo.h> // librairie arduino pour servomoteur
const int POS_MIN=550; // mise a zero pour un servomoteur position minimale const int POS_MAX=2330; // position maximale servomoteur
int angle_servo=40; //angle voulu
const int broche_servo=2; //broche selon branchement (2) const int Voie_0=0; //constante pour passage en analogique
int mesure_brute=0;// résultat brut float mesuref=0.0;// résultat décimal
Servo mon_servo; // pour le control du servomoteur
void setup() { // debut de la fonction setup()
mon_servo.attach(broche_servo, POS_MIN, POS_MAX); // broche commande servo
pinMode(broche_servo, OUTPUT); //met la broche en sortie } void loop(){ // fonction loop() infini mesure_brute=analogRead(Voie_0);
angle_servo=map(mesure_brute,0,1023,0,180); // conversion en angle °
mon_servo.write(angle_servo); // positionne le servo à l'angle voulu
delay (100); // pause entre 2 mesures et modif position servomoteur } Dans le code, le servo doit-être incliné à 40°. - Connaissez-vous des servomoteurs qui peuvent aller à plus de 180° et faire les 360°? Merci pour vos réponses.
|
|
|
|
« Last Edit: January 19, 2013, 06:39:53 am by edwinre »
|
Logged
|
|
|
|
|
france
Offline
Sr. Member
Karma: 4
Posts: 274
|
 |
« Reply #1 on: January 19, 2013, 07:01:28 am » |
Le choix de la carte se fait selon le cahier des charges complet: compter le nombre d'entrées / sorties dont on a besoin. Utiliser un shield wifi : http://arduino.cc/en/Main/ArduinoWiFiShieldUn servo limité à 180° peut tourner à 360° avec une simple paire d'engrenages multiplicateurs.
|
|
|
|
|
Logged
|
Christian
|
|
|
|
Offline
Edison Member
Karma: 6
Posts: 2430
|
 |
« Reply #2 on: January 19, 2013, 07:04:58 am » |
Bonjour à tous, Actuellement élève en 1°S Si, nous avons été inscrit aux Olympiades des sciences de l'ingénieur qui se dérouleront prochainement. Le projet est un robot sauteur propulsé par un vérin. Je m'occupe de la partie programmation et j'aurai quelque questions: - Quelle carte Arduino faut-il utilisé pour ce genre de robot , je dispose déjà de carte Arduino Uno et Arduino Mega 2560, mais on est libre d'utiliser la carte que l'on veut. - Pour les shields, se branches-t-il tous sur les cartes méga et lequel utilise pour le contrôle du robot en wifi? L'éthernet shield? - Avant son saut, le robot doit-être incliné à un certain angle, j'ai déjà programmé ce programma pour l'inclinaison du robot par servomoteur, fonctionne-t-il ? #include <Servo.h> // librairie arduino pour servomoteur
const int POS_MIN=550; // mise a zero pour un servomoteur position minimale const int POS_MAX=2330; // position maximale servomoteur
int angle_servo=40; //angle voulu
const int broche_servo=2; //broche selon branchement (2) const int Voie_0=0; //constante pour passage en analogique
int mesure_brute=0;// résultat brut float mesuref=0.0;// résultat décimal
Servo mon_servo; // pour le control du servomoteur
void setup() { // debut de la fonction setup()
mon_servo.attach(broche_servo, POS_MIN, POS_MAX); // broche commande servo
pinMode(broche_servo, OUTPUT); //met la broche en sortie } void loop(){ // fonction loop() infini mesure_brute=analogRead(Voie_0);
angle_servo=map(mesure_brute,0,1023,0,180); // conversion en angle °
mon_servo.write(angle_servo); // positionne le servo à l'angle voulu
delay (100); // pause entre 2 mesures et modif position servomoteur } Dans le code, le servo doit-être incliné à 40°. - Connaissez-vous des servomoteurs qui peuvent aller à plus de 180° et faire les 360°?Merci pour vos réponses. Bonjour puisque tu es en science de l'ingenieur, commence déjà par raisonner comme un futur ingenieur !  reflechi aux possibilités, meme les plus farfelues avant d'en evacuer pour telle ou telle raisons. question liminaire : cette course sur 360° est imperative ? 1ere question : c'est foutu comment un servo basique 0/180° et que faudrait il faire et où pour que la course angulaire "apparente" passe de 0/180° à 0/360°?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #3 on: January 19, 2013, 07:17:16 am » |
Merci pour le shield.
Pour le servo, il me faut une course supérieure à 180°, comment faire? Le servo dont je dispose à ces caractéristiques suivantes: Couple: 5.5 kg/cm Course: 0.19 secs /60° Dimensions: 41*20*41 Poids: 64g Tension in: 4.8-6 V Conso repos/travail: 2/180 mAh conso charge max: 500 mAh paliers: 2 roulements pignons: métal
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 6
Posts: 2430
|
 |
« Reply #4 on: January 19, 2013, 07:25:44 am » |
Pour le servo, il me faut une course supérieure à 180°, comment faire?
une course > à 180° n'implique pas nécessairement une course de 360° 
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #5 on: January 19, 2013, 08:49:59 am » |
Pour le servo, le problème est réglé, j'en ai trouvé un qui avait une course à 360°. Merci.
|
|
|
|
|
Logged
|
|
|
|
|
Bretagne
Offline
Full Member
Karma: 0
Posts: 145
|
 |
« Reply #6 on: January 19, 2013, 10:12:18 am » |
Bonjour, Un comme celui-ci? http://www.zartronic.fr/servo-df05sr-%C3%A0-rotation-%C3%A0-360-degr%C3%A9s-55kg-p-301.htmlSi c'est pour faire rouler un mobile d'accord, si c'est pour tenir une position angulaire entre 0 et 360 il ne peut pas. Je te laisse lire la doc...d'ailleurs au titre trompeur et mensonger! La vraie fonction est "à rotation continue". Un autre de 0 à 1260°  , http://www.robotshop.com/ProductInfo.aspx?pc=RB-Hit-53lui tient la position. Pour les servos, il y a du choix, le tout c'est de trouver le bon  Bonne recherche.
|
|
|
|
|
Logged
|
...ils embarquèrent la logique, coupèrent les cordons, alors, libérés de leurs chaînes, une immensité s'ouvrait devant eux...
|
|
|
|
Bretagne
Offline
Full Member
Karma: 0
Posts: 145
|
 |
« Reply #7 on: January 19, 2013, 10:23:12 am » |
et pour le programme:
delay (100) c'est du brutal! si la variation de l'angle est grande, voire extrême, entre 2 cycles loop. ça va remuer! Voir si la mécanique le permet. Commencer par un delay long est toujours prudent. Le raccourcir lors de la mise au point.
Edit: avec des servos standards la vitesse maxi est voisine de 200ms pour 60°. Donc avec un delay(100) + des broutilles (analogRead...) dans la boucle, le servo n'a même pas le temps de finir son angle de 60°. Si angle_servo varie progressivement d'un cycle à l'autre, c'est jouable.
|
|
|
|
« Last Edit: January 19, 2013, 12:24:42 pm by papybricol »
|
Logged
|
...ils embarquèrent la logique, coupèrent les cordons, alors, libérés de leurs chaînes, une immensité s'ouvrait devant eux...
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #8 on: January 19, 2013, 04:55:47 pm » |
Merci. Pour le projet, je vais rester sur un servo à course de 180° car l'angle maximun que je devrais avoir est de 90°.
Pour le temps du delay, je vais sans doute passer à 300 ms même si le temps que j'ai est bon et fonctionne avec les essais que j'ai pus effectuer.
Mon programme doit contrôler deux servomoteurs, comment faire? Dois-je multiplier par deux mon programme en changeant les broches de branchement?
Je vais utiliser un wifi shield pour le contrôle du moteur à distance. Pour le contrôle des roues motrices du robot, dois-je utiliser un motor shield? Pour le contrôle total des moteurs à distance, qui se fera sans doute par joystick, dois-je prévoir une sorte de joystick shield? Pour l'alimentation de tous les shields et de la carte arduino, comment les alimenter car la batterie sera embarquée sur le robot et non sur secteur ou sur pc?
|
|
|
|
|
Logged
|
|
|
|
|
france
Offline
Sr. Member
Karma: 4
Posts: 274
|
 |
« Reply #9 on: January 20, 2013, 04:28:16 am » |
Sur quoi sera connecté le joystick, une seconde carte Arduino servant de télécommande wifi, ou sur un PC ?
|
|
|
|
|
Logged
|
Christian
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #10 on: January 20, 2013, 05:06:28 am » |
Je pense plutôt pc mais la seconde carte arduino serait une bonne idée
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #11 on: January 20, 2013, 06:43:58 am » |
Bonjour à tous, je voudrais savoir quels étaient les différences entre:
Adafruit Motor / Stepper / Servo Shield - v1.0 et Arduino Motor Shield Rev3 et Arduino Motor Shield Rev3 - Retail
Et entre: Joystick Shield Kit et Joystick TINKERKIT
Pour la batterie située sur le robot, avez-vous une idée de références ainsi que comment alimenter les cartes arduino à partir de ces batteries? Auriez-vous aussi une idée des références concernant des servomoteur pour contrôler une barre de direction sur un robot, pour contrôler une inclinaison d'un robot? Et des références concernant des moteurs à courant continu pour les roues motrices du robot?
Merci
|
|
|
|
|
Logged
|
|
|
|
|
france
Offline
Sr. Member
Karma: 4
Posts: 274
|
 |
« Reply #12 on: January 20, 2013, 07:13:09 am » |
Il semble préférable d'alimenter ton robot sauteur sur pile (9V ) ou avec une petite batterie rechargeable (les Lipo sont très légères) plutôt qu'avec un grand fil. La carte Arduino accepte jusqu'à 12V en entrée, elle a son propre convertisseur 5V intégré. L'idéal est de choisir des petits moteurs de moins de 12V pour avoir une alimentation commune à Arduino et à la partie puissance. La plupart des servomoteurs usuels et moteurs CC devraient pouvoir marcher, sauf si ton engin est particulièrement lourd/encombrant. Mais je présume que ce sera léger si ça doit pouvoir sauter. Le branchement d'un joystick sur un Arduino est très simple (c'est juste 2 résistances variables) et ça ne prend que 2 entrées + 2 fils d'alim, donc pas forcément besoin d'un shield spécifique pour connecter ça, sauf si tu es allergique au fer à souder. http://www.arduino.cc/en/Tutorial/JoyStickQuelle est la tension de fonctionnement du vérin qui sert à sauter, et sa puissance ?
|
|
|
|
« Last Edit: January 20, 2013, 07:15:25 am by Christian_R »
|
Logged
|
Christian
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #13 on: January 20, 2013, 08:41:26 am » |
Merci. Pour les moteurs à courant continu des roues motrices ou des servomoteurs, faut-il un shield comme dit précedemment?
Récapitulatif:
- Dans le robot: - Shield wifi - Carte arduino - moteurs cc et 2 servo - vérin et distributeur - batterie
- A distance: - Moyen de contrôle
Une question, comment contrôler le robot en wifi avec l'arduino? Le code que j'ai pour contrôler le servomoteur, comment dois-je faire si je dois en contrôler deux? Dois-je multiplier le code par deux et mettre des entrées doubles?
|
|
|
|
|
Logged
|
|
|
|
|
france
Offline
Sr. Member
Karma: 4
Posts: 274
|
 |
« Reply #14 on: January 20, 2013, 10:02:44 am » |
Un servomoteur (3 fils :+V, Gnd et commande) se pilote avec 1 seule sortie Arduino , pas besoin de shield.
Un moteur CC peut se contrôler de nombreuses manières . - Simple marche/arrêt : un relais ou un transistor - Changement de sens de rotation : pont en H - Variations de vitesse : impulsions pwm Que devra faire le moteur ?
Il faut utiliser une broche par servo, et du code spécifique à chacun. Par contre la librairie servo n'est incorporée qu'une seule fois en début de code.
|
|
|
|
|
Logged
|
Christian
|
|
|
|
|