Aller au contenu


Photo
- - - - -

Déplacement autonome avec Arduino ?


  • Veuillez vous connecter pour répondre
31 réponses à ce sujet

#1 Ulmo

Ulmo

    Membre

  • Membres
  • 32 messages

Posté 02 septembre 2012 - 10:35

Bonjour à tous,


je suis sur le point de commander un kit robot Rover 5, un chassis et une carte contrôle moteur :

http://www.arobose.com/shop/kits-robot/170-kit-robot-rover-5-2wd.html

suivi de l'Arduino Uno Rev 3 pour le "cerveau"

MAIS

pour que ce robot puisse voguer sans se prendre les murs, je pensais à un emeteur/recepteur ultrason.

Cependant, je ne vois pas ce genre de capteur dispo pour l'Arduino. Le kit capteurs Arduino n'en compte pas. Ni le kit TinkerKit.
Puis je brancher un capteur ultrason comme celui ci :

http://www.arobose.com/shop/capteurs-robot/157-capteur-de-distance-a-ultrasons-hc-sr04.html

Me manquera t il quelque chose ?

Je suppose qu'il me faut penser à l'alimentation electrique ?
Le cable USB est fourni ?
Quoi d'autre ?

Help me, please

#2 zouillex

zouillex

    Nouveau membre

  • Membres
  • 9 messages

Posté 03 septembre 2012 - 12:14

Salut.
Je suis en plein dans ce projet. (ROVER 5 + Sr04)
J'ai monté le capteur ultra son sur un servo moteur, parceque le faiseau de l'ultra son n'est pas assez large.
Pourl'instant mon robot navigue bêtement en évitant les gros obstacles (Murs, meubles massifs).
Mais pour ce qui est des pieds de chaises et autre pièges, c'est une autre paire de manche.
Je pense qu'il faut que tu prennes au moins 2 capteurs ultra son pour avoir un balayage plus large.
Voila a quoi ressemble le robot a ce jour (Photo tres tres pourrie, dsl)
Image IPB

Pour l'alimentation electrique, il te faudra alimenter ta carte arduino (J'ai 6 pile 1.5V) et aussi les moteurs (j'ai une batterie LIPO 7.2V)

#3 Ulmo

Ulmo

    Membre

  • Membres
  • 32 messages

Posté 05 septembre 2012 - 12:08

Il est donné pour quel angle ce capteur ultrason ?

#4 zouillex

zouillex

    Nouveau membre

  • Membres
  • 9 messages

Posté 05 septembre 2012 - 09:37

Le cône de l'ultra son est de 15°.
Sans doute que mon erreur première est de l'avoir monté carrément a l'avant.
Un peu de recul devrai surement augmenter sa zone de détection.
Tu as déjà commander du matériel pour ton projet, ou tu es en pleine phase de réflexion?

#5 Ulmo

Ulmo

    Membre

  • Membres
  • 32 messages

Posté 05 septembre 2012 - 09:51

J'attends la commande, qui devrait arriver vendredi.

J'ai pris un capteur de mouvement infrarouge, et un détection ultrason.
Le but est de m'amuser à programmer la bête. Plus tard arriveront sans doute d'autres capteurs.

#6 zouillex

zouillex

    Nouveau membre

  • Membres
  • 9 messages

Posté 07 septembre 2012 - 07:57

Tu peux m'indiquer ce que tu as pris comme capteur de mouvement infrarouge. Capteur de mouvement, ou capteur de distance?

Moi, j'attend une commande faite sur E bay d'un vendeur en chine (4x moins cher) de 3 ultra son , 2 capteurs infra rouge longue distance (3-80cm), et +ieurs capteurs infrarouge courte distance (<2cm).
Par ailleurs, je te donne des sites très instructuctifs que j'ai trouvé sur le net:
Arduino: site du zero, avec un big tuto vachement bien foutu: sciences.siteduzero.com/tutoriel-3-515602-arduino-pour-bien-commencer-en-electronique-et-en-programmation.html
Electronique: www.sonelec-musique.com/electronique_bases.html

#7 Ulmo

Ulmo

    Membre

  • Membres
  • 32 messages

Posté 07 septembre 2012 - 11:30

J'ai pris ce capteur IR : http://www.arobose.com/shop/capteurs-robot/98-capteur-de-mouvement-infrarouge.html

Je viens de recevoir la commande aujourd'hui. Je bloque déjà sur le câblage du contrôleur moteur :D et suis en pleine recherche.

Je débute totalement en robotique, mais j'ai déjà programmé un automate en cours d'elec (un automate TSX en PL7 II).

Merci pour tes liens.

#8 Ulmo

Ulmo

    Membre

  • Membres
  • 32 messages

Posté 08 septembre 2012 - 12:51

Tu as trouvé le cablage des moteurs ?

#9 zouillex

zouillex

    Nouveau membre

  • Membres
  • 9 messages

Posté 08 septembre 2012 - 02:33

Désolé, mais je n'ai pas pris la carte qui allait avec le robot. En fait je l'ai réalisé moi même.
Mais pour le faire avancé, il suffit juste de connecter 2 Fils par moteur.
Image IPB

Par exemple, tu choisi de mettre ton moteur sur la voie 1 (ch1)
Tu branche la borne "direction" sur une borne de ton arduino, et "PWM" sur une autre.
Pour faire tourner ton moteur, tu mets a 0 ou 1 la borne direction suivant le sens voulu, et tu envoies un signal PWM (sur la borne PWM) pour jauger la puissance. Sans oublier de connecter la masse commune bien sur

Si tu ne sait pas ce qu'est un signal PWM (comme moi il y a 2 mois), je t'encourage vivement a bien lire et comprendre le tuto sur le site du zero. Faut pas mettre la charrue avant les boeufs... Fait clignoter des leds avant de monter un robot autonome.
a+ et bonne continuation.

#10 Ulmo

Ulmo

    Membre

  • Membres
  • 32 messages

Posté 09 septembre 2012 - 10:08

J'ai réussi à télécommander mon Rover5. Ce fut long mais ce fut bon.
Aujourd'hui, l'objectif est de le rendre "autonome", grâce au capteur ultrason. Peut être en faudrait il plusieurs.
Le top serait d'y ajouter des capteurs capacitifs, mais ça vaut trop cher.(120euros)

Pour la carte "contrôle moteur", je n'ai pas câblé les encodeurs, vu que je saisi mal l'utilité. Cela sert il à compter le nombre de tour, de 1/4 de tour ? (je n'ai pas cherché)

#11 Jep31

Jep31

    Membre

  • Membres
  • 43 messages
  • Gender:Male
  • Location:Toulouse France

Posté 09 septembre 2012 - 11:50

J'ai réussi à télécommander mon Rover5. Ce fut long mais ce fut bon.
Aujourd'hui, l'objectif est de le rendre "autonome", grâce au capteur ultrason. Peut être en faudrait il plusieurs.
Le top serait d'y ajouter des capteurs capacitifs, mais ça vaut trop cher.(120euros)

Pour la carte "contrôle moteur", je n'ai pas câblé les encodeurs, vu que je saisi mal l'utilité. Cela sert il à compter le nombre de tour, de 1/4 de tour ? (je n'ai pas cherché)


Salut,

Je ne connais pas bien le Rover mais si il dispose d'encodeur c'est vraiment utile. Les encodeurs c'est pour moins la base d'un robot autonome, le capteur le plus important.
Un encodeur envoi un grand nombre d'impulsions par tour(on en trouve à plus de 1000 impulsion) ce qui te permet de savoir de combien tourne ton moteur et sur des robots mobiles à roues ou à chenilles de savoir comment bouge ton robot et donc où il est. Les encodeurs sont indispensables si tu veux que ton robot suive une trajectoire calculée au préalable.

Bon tu peux faire sans mais dans ce cas ca reste très basique comme: tu as un obstacle, tu tournes pendant 1 seconde vers la droite et ensuite tu avances. Ca marche aussi et c'est bien de commencer par ca au début. Mais les encodeurs sont indispensables à un bon robot autonome si tu veux t'amuser à coder des trucs plus costaux.

Bon courage à vous deux, le projet à l'air en très bon voie et bien bien sympa.

#12 Ulmo

Ulmo

    Membre

  • Membres
  • 32 messages

Posté 10 septembre 2012 - 11:25

J'ai une chenille qui tourne légèrement moins vite que l'autre. Les encodeurs sont ils une solution à ceci ?

Les encodeurs pourraient aussi me servir à contourner un obstacle pour revenir sur la trajectoire prévue plutôt que de se détourner de l'obstacle, n'est ce pas ?

Pour l'instant, mon Rover5 se déplace sans se taper dans les murs ou autre obstacle. Y a plus qu'à lui coller des balayettes, un réservoir pour la poussière.. :)

#13 Jep31

Jep31

    Membre

  • Membres
  • 43 messages
  • Gender:Male
  • Location:Toulouse France

Posté 10 septembre 2012 - 11:40

J'ai une chenille qui tourne légèrement moins vite que l'autre. Les encodeurs sont ils une solution à ceci ?

Les encodeurs pourraient aussi me servir à contourner un obstacle pour revenir sur la trajectoire prévue plutôt que de se détourner de l'obstacle, n'est ce pas ?

Pour l'instant, mon Rover5 se déplace sans se taper dans les murs ou autre obstacle. Y a plus qu'à lui coller des balayettes, un réservoir pour la poussière.. :)



Oui exactement ^_^
Avec les encodeurs tu peux connaitre la vitesse de rotation de tes chenilles et donc adapter ta vitesse en fonction. Tu viens de mettre le doigt sur un problème récurent. Souvent les robots à deux roues motrices ou chenilles(enfin avec deux moteurs quoi) ont ce problème car il est rare que deux moteurs identiques tournent à la même vitesse pour la même commande. Donc pour faire rouler un robot tout droit ce n'est déjà pas évident. La solution c'est effectivement d'avoir des encodeurs et donc de corriger ce défaut. Attention par contre comme tes encodeurs sont surement placés sur l'axe moteur, tu ne prends pas en compte le glissement mais avec des chenilles tu devrais être à l'abri sur sol plat.

Oui tu peux aussi faire du véritable contournement d'obstacle avec ce genre de chose et du suivi de trajectoire. Mine de rien suivre une trajectoire n'est pas si simple que ça, ca demande du boulot.

Perso mon robot à deux roues motrices est opérationnel mais il me manque deux encodeurs qui sont souvent quelque chose de très chers si tu veux être précis.
Faudra regarder le nombre d'impulsion des tiens d'ailleurs. Donc pour l'instant je ne fais que commander mon robot avec une manette en attendant les encodeurs. ;-)

C'est déjà pas mal du tout ça,le rover m'à l'air vraiment intéressant pour son faible prix.

#14 Ulmo

Ulmo

    Membre

  • Membres
  • 32 messages

Posté 11 septembre 2012 - 09:49

Sur cette carte "driver moteur" (en photo, plus haut), l'encodeur de chaque moteur a 3 sorties :

encodeur A, encodeur B et Interrupt. Ce dernier englobe les deux premier en un signal unique.
Donc, on pourrait n'utiliser que ce dernier ? Dans ce cas, il faudrait lire les fronts montants et descendants plutôt que les états (0/1)?

Je ne vois pas trop l'utilité de cette sortie "Interrupt" pour l'instant. Je vais d'abord utiliser les encodeurs A et B seuls pour bien saisir le concept.

(Je suis en plein dans l'étude des encodeurs, y a encore quelques trucs qui m'échappe)

Je me rend compte que le nombre d'entrée est vite limité si je veux utiliser les encodeurs : pour deux moteurs, 4 entrées occupées !

Je pensais, si je n'utilise que la sortie mixée A/B, que je la combine au sens de rotation connu, alors je peux me passer de A et B, économisant deux entrées.

Et pas moyen de ralentir les moteurs, pourtant contrôlés avec les pin PWM de (10 et 6)l'arduino (qui vont vers les pins PWM de la carte contrôle moteur). J'ai rentré différentes commandes : 254, 200, 150, 10 mais rien n'y fait, les moteurs font 3 à-coup, avancent sur 10cm, stop, ... Il n'y a que les valeurs 255/0 qui fonctionnent. Impossible de faire du ralenti.

Je n'ai pas configuré les broches PWM en OUTPUT dans le programme. (le faire n'y change rien:) )

#15 zouillex

zouillex

    Nouveau membre

  • Membres
  • 9 messages

Posté 11 septembre 2012 - 06:29

J'ai eu des problemes pour faire tourner mes 2 moteurs + un servo, Quand je branchais le servo, un moteur tombait en carafe.
Après moultes recherches, et avoir trouvé un projet similiare, j'ai branché mes moteurs sur les sorties 5 et6, et mon servo sur la 9.
Essayes sur ces 3 connections, je ne sais pas quelles sorties exactement font du PWM sur la UNO
mes valeurs de PWM varient de 80 a 240. J'essayerai le 255.

#16 Ulmo

Ulmo

    Membre

  • Membres
  • 32 messages

Posté 12 septembre 2012 - 09:13

J'ai essayé pas mal de sortie. J'en conclue qu'une seule à la fois peut être en PWM.
J'ai mesuré au voltmetre : si l'une fonctionne en PWM, l'autre ne fonctionne qu'en tout ou rien.
Je commande donc la puissance fournie aux moteurs avec une seule broche PWM.
Je n'ai peut être pas tout lu sur l'Arduino et la limite de ses sorties ?

#17 Jep31

Jep31

    Membre

  • Membres
  • 43 messages
  • Gender:Male
  • Location:Toulouse France

Posté 12 septembre 2012 - 09:34

Personnellement je possède un Arduino Uno et je commande mes moteurs avec deux PWM sans problème.

Je en sais pas à quoi est du ton problème mais chez moi ça marche bien.

Normalement tu disposes sur le Uno de six sorties PWM et bien sur elles peuvent fonctionner en même temps.

Pour repérer ces sorties tu peux voir une petite vague à coté du numéro de pin sur la carte.

#18 Ulmo

Ulmo

    Membre

  • Membres
  • 32 messages

Posté 12 septembre 2012 - 10:59

Je viens de tout décabler, j'ai fait un prog simple : avance des deux moteurs, avec commande analogique 160.
J'ai fait des essais sur différentes broches (3,6,5,9,10,11)

Le PWM ne fonctionne pas sur les broches 3 et 11, systématiquement. Sur toutes les autres oui, et simultanément.

Bizarre hein ?

#19 zouillex

zouillex

    Nouveau membre

  • Membres
  • 9 messages

Posté 12 septembre 2012 - 11:34

Et pas moyen de ralentir les moteurs, pourtant contrôlés avec les pin PWM de (10 et 6)l'arduino (qui vont vers les pins PWM de la carte contrôle moteur)

Qu'est ce qu'il se passait alors?

#20 Jep31

Jep31

    Membre

  • Membres
  • 43 messages
  • Gender:Male
  • Location:Toulouse France

Posté 12 septembre 2012 - 11:43

Je viens de tout décabler, j'ai fait un prog simple : avance des deux moteurs, avec commande analogique 160.
J'ai fait des essais sur différentes broches (3,6,5,9,10,11)

Le PWM ne fonctionne pas sur les broches 3 et 11, systématiquement. Sur toutes les autres oui, et simultanément.

Bizarre hein ?


Est ce que tu es sur de ne pas mal déclarer le pin 3 et 11 ? Par exemple le déclarer pour une autre utilisation dans un autre coin de ton programme.
Je peux pas te dire, de mon coté j'ai utilisé la 5 et 6.




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

0 members, 0 guests, 0 anonymous users