Aller au contenu


Photo
- - - - -

Bras robotique (avec carte Arduino)


25 réponses à ce sujet

#1 Emeth

Emeth

    Membre

  • Membres
  • 17 messages
  • Gender:Female

Posté 22 octobre 2010 - 07:45

Bonsoir à tous, smile.gif

Si on contrôle un servo grâce à un microcontrolleur, vers lequel dois-je m'orienter ? Cela serait dans un premier temps pour fabriquer un bras robotique.

Il y a le Arduino à 25 € -> http://www.zartronic.fr/arduino-duemilanove-atmega328-p-7.html?zenid=09309f8d4fc964ec9b733c8221a0c0c7
Beaucoup de robots utilisent des cartes Arduino, mais je ne sais pas pourquoi. Qu'a-t-elle de spécial ? Ce qui m'intéresse notamment pour l'heure est de savoir combien puis-je contrôler en même-temps de servos avec cette carte ?

Caractéristiques
* Microcontrôleur Atmel ATmega328 à 16 Mhz, 2K Ram, 32K flash.
* 14 Entrées/Sorties numériques dont 6 Sorties MLI (PWM).
* 6 Entrées Analogiques utilisables en Entrées/Sorties numériques.
* Interface USB (Programmation et communication série).
* Alimentation à commutation automatique USB/Externe.
* Connecteur pour programmation directe ICSP.
* Interface série à niveaux TTL.
* Alimentation par port USB ou externe de 7V à 12V CC.
* Sorties d'alimentation 5V / 3.3V et externe.

Merci,
Emeth.


« Il ne faut pas craindre la machine qui se rebelle contre l'homme, mais l'homme qui lui a donné goût à cela. »

#2 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 22 octobre 2010 - 09:26


dont 6 Sorties MLI (PWM).


Je dirais 6 servos tongue.gif [EDIT : j'ai dis des conneries apparemment, tu peux mettre un servo sur un peu n'importe quelle pin "Note that as of Arduino 0017, the Arduino Servo library supports up to 12 motors on most Arduino boards and 48 on the Arduino Mega." [1] ]

Au pire si tu as besoin de beaucoup de servos, soit tu prends une arduino méga (sur ebay tu la trouve aussi a 25euros) soit tu prends une carte microcontrolleur + une carte SSC32 [3], soit tu prends une carte ARC32 [2].


[1] http://www.arduino.cc/playground/ComponentLib/Servo
[2] http://www.basicmicro.com/ARC32_p_141.html
[3] http://www.lynxmotion.com/p-395-ssc-32-servo-controller.aspx


Malédiction du Créatif :
Plus vous avez d’idées et moins vous arrivez à les structurer.


#3 Emeth

Emeth

    Membre

  • Membres
  • 17 messages
  • Gender:Female

Posté 23 octobre 2010 - 01:03

Oki ! Par contre, ce que je ne comprends pas, c'est quand on regarde sur l'image de la carte http://www.zartronic.fr/index.php?main_page=popup_image&pID=7, je ne vois pas d'endroits où on peut brancher son servo, à part à droite sur les 6 petites tiges "TCSP"...

Les servos que j'ai ont 3 prises femelles collées côte à côte entre elles, alors je ne vois pas trop où je vais pouvoir connecter ça :mellow:
« Il ne faut pas craindre la machine qui se rebelle contre l'homme, mais l'homme qui lui a donné goût à cela. »

#4 Luj

Luj

    Habitué

  • Membres
  • PipPip
  • 295 messages
  • Gender:Not Telling

Posté 23 octobre 2010 - 09:02

En fait la connexion n'est pas directe, pour économiser de la place sur la carte Arduino.

Trois solutions existent alors :
- utiliser une autre carte de la même famille Arduino, comme la Romeo car elle inclut les connecteurs pour servomoteurs (lien vers la Romeo) et elle n'est pas beaucoup plus chère.

- garder l'Arduino standard (Duemilanove ou Uno, peu importe) et ajouter une extension de prototypage (12 €) sur lequel tu pourras mettre les connecteurs pour tes servos (nécessite un fer à souder)

- fabriquer des connecteurs, notamment des "pieuvres" capable de dupliquer les signaux "masse" et "tension 5V" pour chacun des servomoteurs.

Ma préférence va à la Romeo, car il y a alors la possibilité (bornier à vis) d'utiliser une source d'alimentation différente pour les servomoteurs. En effet, 6 servomoteurs en même temps peuvent consommer plus que ce que la carte Arduino peut fournir via son convertisseur. Quelle alimentation as-tu prévu pour ton bras ? Je parle avec expérience de cette solution, puisque je pilotais 4 moteurs avec cette carte dont un modèle très puissant pour la pince de notre robot et deux servomoteurs à rotation continue, donc consommant en permanence.

Note: le connecteur "TCSP" est en fait "ICSP" et même s'il y a 2x3 points ce n'est pas des entrées/sorties pour servo mais un connecteur pour la reprogrammation (In-Circuit Serial Programming) qui n'est pas beaucoup utilisé (par l'USB c'est tellement plus simple).

Pour revenir sur la question initiale, l'Arduino a l'avantage d'être pratique : des cartes électroniques existaient déjà avant mais les logiciels de programmation / compilation / chargement du programme étaient plus complexes. Ici, un éditeur simple et deux boutons "compile" et "charge". D'où un succès phénoménal en quelques années seulement.



#5 Emeth

Emeth

    Membre

  • Membres
  • 17 messages
  • Gender:Female

Posté 23 octobre 2010 - 11:11

Merci pour la réponse développée, Luj :)

Je pense que je vais aussi me rabattre sur ta première idée avec la carte Romeo. Mais est-ce que cette carte permet de faire tout ce que permettait l'Arduino, ou vais-je devoir acheter en plus d'autres composants pour "compenser" ?

Pour l'alimentation du bras, comme je contrôlerai le bras avec mon PC, il me semble que l'alimentation par l'USB s'en chargera.

Pour revenir sur la question initiale, l'Arduino a l'avantage d'être pratique : des cartes électroniques existaient déjà avant mais les logiciels de programmation / compilation / chargement du programme étaient plus complexes. Ici, un éditeur simple et deux boutons "compile" et "charge". D'où un succès phénoménal en quelques années seulement.

C'est en lien avec ma question précédente ; est-ce qu'on aura toujours cette simplicité d'utilisation avec Romeo ?
« Il ne faut pas craindre la machine qui se rebelle contre l'homme, mais l'homme qui lui a donné goût à cela. »

#6 Leon

Leon

    Membre passionné

  • Membres
  • PipPipPipPipPip
  • 1 289 messages
  • Gender:Male

Posté 24 octobre 2010 - 07:07

L'alimentation d'un port USB sera bien insuffisante pour alimenter plusieurs servos. Prévoir une alimentation externe de 3A, ça me parait sage.

Leon.

BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)


#7 Emeth

Emeth

    Membre

  • Membres
  • 17 messages
  • Gender:Female

Posté 24 octobre 2010 - 11:04

Qu'est-ce que tu veux dire dire par "alimentation 3A", Leon ?

Un support pour 2 (ou 4) piles AA peut faire l'affaire si je connecte ça à la carte Romeo ?
« Il ne faut pas craindre la machine qui se rebelle contre l'homme, mais l'homme qui lui a donné goût à cela. »

#8 Leon

Leon

    Membre passionné

  • Membres
  • PipPipPipPipPip
  • 1 289 messages
  • Gender:Male

Posté 24 octobre 2010 - 12:22

A = ampères.

Leon.

BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)


#9 Luj

Luj

    Habitué

  • Membres
  • PipPip
  • 295 messages
  • Gender:Not Telling

Posté 24 octobre 2010 - 03:53

La Romeo est compatible 100% Arduino (c'est à dire qu'il y a toute l'électronique d'une Arduino et même la possibilité d'utiliser les extensions - ou shields).

Pour l'alimentation, une pile AA rechargeable a une capacité de 2Ah (ampères par heure) ce qui signifie que si ton montage consomme 2 ampères en continu, les piles seront vides en une heure. Si ton montage consomme la moitié (1A) en continu, les piles seront vides en deux heures.

C'est pour cela qu'il est préférable d'utiliser une alimentation externe (un simple adaptateur secteur fera l'affaire). Une solution pratique pour commencer et finalement peu onéreuse (ça peut servir à plein d'autres usages) est le modèle "Adaptateur commutable 1500 mA 3 - 12 Vcc + USB" de Gotronic. Il prend peu de place et fournit 1,5 ampères avec plusieurs tensions.

Bien sûr il faut vérifier la documentation technique des servomoteurs que tu vas utiliser : certains consomment 0,4 ampères en fonctionnement. A terme, si tu ajoutes des moteurs, des solénoïdes, etc. il faudra passer à une alimentation plus puissante (mais ça prend plus de place et coûte le double).

#10 Emeth

Emeth

    Membre

  • Membres
  • 17 messages
  • Gender:Female

Posté 26 octobre 2010 - 05:28

Ok, Luj, merci pour les conseils. Je viens de passer commande (carte Romeo + adaptateur).

S'il y a des problèmes, de toute façon je ne manquerai pas de vous en faire part !
« Il ne faut pas craindre la machine qui se rebelle contre l'homme, mais l'homme qui lui a donné goût à cela. »

#11 Emeth

Emeth

    Membre

  • Membres
  • 17 messages
  • Gender:Female

Posté 03 novembre 2010 - 08:24

Bonsoir à tous !

J'ai reçu mes composants (servos + carte + alimentation), mais je viens de me rendre compte que je n'ai rien pour connecter ma carte Romeo à mon PC ! Je croyais que le câble était livré par défaut. :(

> Carte Romeo


Y a des points de branchement un peu partout, en plus. Qu'est-ce que vous me suggérez d'acheter pour connecter la carte au PC ?

Merci.
« Il ne faut pas craindre la machine qui se rebelle contre l'homme, mais l'homme qui lui a donné goût à cela. »

#12 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 03 novembre 2010 - 09:06

Y a des points de branchement un peu partout, en plus. Qu'est-ce que vous me suggérez d'acheter pour connecter la carte au PC ?


Un cable USB :P


Malédiction du Créatif :
Plus vous avez d’idées et moins vous arrivez à les structurer.


#13 Luj

Luj

    Habitué

  • Membres
  • PipPip
  • 295 messages
  • Gender:Not Telling

Posté 03 novembre 2010 - 09:30

Si tu as une imprimante, le câble doit être le même : USB rectangulaire (comme une clé mémoire USB) côté PC et USB carré côté Arduino.

#14 Luj

Luj

    Habitué

  • Membres
  • PipPip
  • 295 messages
  • Gender:Not Telling

Posté 03 novembre 2010 - 09:31

Oups, désolé pour le double post.

#15 Emeth

Emeth

    Membre

  • Membres
  • 17 messages
  • Gender:Female

Posté 08 novembre 2010 - 03:15

Oki, merci, c'était pas bien compliqué ! ^_^

Ma carte RoMeo a quelques particularités par rapport aux Arduino plus classiques. Notamment, tous ces petites tiges dont je ne comprends pas l'utilité, et puis ces 7 micro-boutons poussoirs (S1 à S7).

Je suis en train de lire les tutoriaux http://arduino.cc/en/Tutorial/HomePage sur le site Arduino, mais, pour le moment, je n'arrive pas à dialoguer avec mes boutons poussoirs. Je n'ai pas trouvé de tuto propre à la carte. Exemple : je clique sur bouton S2, la LED 13 s'allume.

Vous avez une idée ?
« Il ne faut pas craindre la machine qui se rebelle contre l'homme, mais l'homme qui lui a donné goût à cela. »

#16 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 08 novembre 2010 - 03:50

Salut,

Je te conseil de télécharger ce document si ce n'est pas deja fait. Il y a un exemple de ce que tu décris (appuyer sur le bouton 6 et allumer une LED sur la pin13). Il faut bien faire attention à mettre les jumpers comme il faut pour activer les boutons.


Jbot.


Malédiction du Créatif :
Plus vous avez d’idées et moins vous arrivez à les structurer.


#17 Luj

Luj

    Habitué

  • Membres
  • PipPip
  • 295 messages
  • Gender:Not Telling

Posté 08 novembre 2010 - 03:58

La carte ajoute des connecteurs supplémentaires aux deux rangées femelles.
La plupart des petites tiges mâles permettent de connecter directement les servomoteurs.
Le blanc (ou jaune) vers la rangée femelle et le noir (ou brun) vers l'extérieur de la carte.

On voit le servo bleu connecté sur ce type de connecteur (désolé pour la photo floue, vendredi soir tout ça..) :

Image IPB

#18 Emeth

Emeth

    Membre

  • Membres
  • 17 messages
  • Gender:Female

Posté 09 novembre 2010 - 02:11

Merci JBot pour le doc. En fait, j'avais découvert le doc peu de temps après avoir posé ma question. Ce qui fait que j'ai trouvé toute seule comme une grande comment activer mes boutons poussoirs. -_- Effectivement, il fallait mettre des jumpers ("cavaliers" en français, je crois) pour activer le machin.

Oki, Luj. J'ai vu comment brancher les servos sur la carte à cette page http://www.arduino.cc/en/Reference/Servo.

Désolé pour les questions quelque peu élémentaires que je pose, mais comme je l'ai dit je suis vraiment débutante en électronique !
Par contre, j'aurais encore deux petites questions :

1. Comment je fais pour savoir à quel pin mon servo est branché ? Et d'une manière générale, n'importe quel composant, comme une led, photorésistance, etc. ? Parce que je n'ai pas vu de correspondance sur la carte. Sur la doc, ils disaient que le bouton poussoir S6 avait le pin 2, et le S7 le pin 3, par exemple, mais sinon je n'aurais pas pu deviner toute seule !

2. Je ne saisi pas la différence entre l'analogique et le digital pour mes servos. Vous me conseillez de les brancher où ?
(On a un plan de la carte dans ce doc pdf, page 4 sur 12).
« Il ne faut pas craindre la machine qui se rebelle contre l'homme, mais l'homme qui lui a donné goût à cela. »

#19 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 09 novembre 2010 - 02:23

1. Comment je fais pour savoir à quel pin mon servo est branché ? Et d'une manière générale, n'importe quel composant, comme une led, photorésistance, etc. ? Parce que je n'ai pas vu de correspondance sur la carte. Sur la doc, ils disaient que le bouton poussoir S6 avait le pin 2, et le S7 le pin 3, par exemple, mais sinon je n'aurais pas pu deviner toute seule !


Pour savoir le numéro de la pin, il faut regarder sur la carte, à coté des connecteurs femelle il y a le numéro de la pin a chaque fois. Tu peux aussi t'aider de la documentation de l'arduino normale etant donné que les pin sont au meme endroit et ont le même nom je crois.


2. Je ne saisi pas la différence entre l'analogique et le digital pour mes servos. Vous me conseillez de les brancher où ?
(On a un plan de la carte dans ce doc pdf, page 4 sur 12).


Tu peux mettre ton servomoteur ou tu veux, il suffit juste de configurer la pin en mode digital (numérique). Donc que ce soit une pin numérique ou analogique, tu peux la reconfigurer en numérique, par contre une pin de base numérique ne peut pas etre reconfigurée en analogique. C'est pour ca qu'en général on branch les servos directement sur les pin qui ne font que du numérique (celles du haut sur le plan de la carte) pour pouvoir garder les peu de pin analogique pour faire autre chose.


Malédiction du Créatif :
Plus vous avez d’idées et moins vous arrivez à les structurer.


#20 Emeth

Emeth

    Membre

  • Membres
  • 17 messages
  • Gender:Female

Posté 11 novembre 2010 - 04:47

Merci, Jbot. C'est noté.

Avec Rduino, j'ai un problème lorsque j'essaye de contrôler plus d'un servo à la fois. Par exemple, j'en connecte 2 et je leur demande en boucle de faire des va-et-viens de 180°, mais il se passe quelque chose de bizarre ; la carte réagit mal et lorsque j'arrive à la fin de la boucle, le délai avant de revenir au début est beaucoup plus long que ma 1/2s. De plus, ma diode 13 clignote alors que je ne lui ai rien demandé...

Voilà mon code (sous Arduino) :
#include <Servo.h>

Servo srv, srv2;

void setup()
{
  srv.attach(8);
  srv2.attach(9);
}

void loop()
{ 
  srv.write(0);
  srv2.write(0);
      
  delay(500);
      
  srv.write(180);
  srv2.write(180);
  
  delay(500);
}

Vous savez d'où peut venir le problème ?

EDIT: lors de la fin de la boucle, je crois que le programme se reboot, comme si j'avais appuyé sur RST. D'ailleurs, mes servos passent en roue libre pendant ce laps de temps, alors qu'ils devraient au contraire résister à la pression.

Modifié par Emeth, 11 novembre 2010 - 04:55 .

« Il ne faut pas craindre la machine qui se rebelle contre l'homme, mais l'homme qui lui a donné goût à cela. »



Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users