
Déplacement autonome avec Arduino ?
#1
Posté 02 septembre 2012 - 10:35
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
Posté 03 septembre 2012 - 12:14
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)

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
Posté 05 septembre 2012 - 12:08
#4
Posté 05 septembre 2012 - 09:37
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
Posté 05 septembre 2012 - 09:51
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
Posté 07 septembre 2012 - 07:57
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
Posté 07 septembre 2012 - 11:30
Je viens de recevoir la commande aujourd'hui. Je bloque déjà sur le câblage du contrôleur moteur

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
Posté 08 septembre 2012 - 12:51
#9
Posté 08 septembre 2012 - 02:33
Mais pour le faire avancé, il suffit juste de connecter 2 Fils par moteur.

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
Posté 09 septembre 2012 - 10:08
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
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
Posté 10 septembre 2012 - 11:25
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
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
Posté 11 septembre 2012 - 09:49
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
Posté 11 septembre 2012 - 06:29
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
Posté 12 septembre 2012 - 09:13
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
Posté 12 septembre 2012 - 09:34
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
Posté 12 septembre 2012 - 10:59
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
Posté 12 septembre 2012 - 11:34
Qu'est ce qu'il se passait alors?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)
#20
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.
1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users