Le traceur (suite)
#1
Posté 05 février 2012 - 05:36
J'ai decider de crée un new topic pour mon bot, (l'autre commencer a sentir mauvais)
Voila une photos pour commencer gentillement. Elle commence a dater, elle date du moment ou il manqué les vis ..... Pour fixer les roues (un truc americain).
Donc hier, je me suis pencher un peu dessus (le robot). J'ai fabriquer le second etage, en ctp de 3mm, une chute solide qui trainé par la. J'avais la plaque de fibre dans un coin, mais fallait la decouper.... et la fibre ca gratte, ca en met partout...... Donc maintenant le rdc du robot et composer d'un accus lipo de 11.1v avec mon alim, 3A en 5v, et 1A pour l'Arduino (+ une autre sortie variable). Des deux capteur Sharp sur servo, chacun gerant un coté, et bien sur les moteur. Sans oublier dessous le chassis le capteur de reflectivité neuf (echange) Pololu.
L'etage servira a distibuer l'alimentation a tout les composants du robot, et aussi c'est la qu'est la Arduino mega, avec toujours sont shield pour les moteurs. Y est aussi installé le capteur US.
Pour l'instant rien n'est brancher, bien que le code est deja dans la carte prés a fonctionner.
J'acheterai des bascule D (74hc74) lorsque j'en aurai l'occasion, qui me serviront a geré les codeurs . Comme decrit ICI.
Voilà !!
Suivront peut etre des photos de l'etat actuel.
Je vous laisse sur cette derniere phrase : "Vive le pistolet a colle ".
Cdlt, Fabien
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#2
Posté 05 février 2012 - 10:35
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#3
Posté 11 février 2012 - 08:56
Ca y est j'ai ma bascule D (en fait j'en ai deux) sn74hc74n
Donc j'ai 'fait les branchements, si quelqu'un qui s'y connait la dedans peut me dire si c'est bien ca, ca serai cool, merci.
"Nous positionnerons par défaut /CLR et /PR au niveau haut, le canal A est branché sur l'entrée CK, et le signal B de l'encodeur est envoyé sur la patte D"
Pour que ce soit au niveaux haut, j'ai connecter au Vin C'est bien comme ça ?
Merci
Voici comment il dise de branché sur Fribotte :
Voila la denomination des broche de la datasheet :
Et voici mes connections:
Lien vers la data : ICI
Fribotte
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#4
Posté 14 février 2012 - 02:51
Mon but etait dans un but premier la detection d'obstacle, But maintenant accomplie (reste a tester pres d'une table avec des chaise partout! ) Le probleme que j'avais etait que mon robot, arrivé dans une zone type fond de couloir trés etroit (40cm) il se mettait a touner 100ms a gauche 100ms a droit et finissait dans le mur, maintenant c'est bon.
Cdlt, Fabien
Ps: le dernier post et toujours d'actualité, merci.
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#5
Posté 20 février 2012 - 07:20
Donc, le cablage du74hc74 est theoriquement bon, MAIS, il ne detecte pas le sens ...
Voila mon code, si ca peut aider.
// avec le 74hc74 volatile int sens; #define encoder0PinA 2 volatile double comp=0 ; void setup (){ Serial.begin (115200); attachInterrupt (0, comptage,FALLING); pinMode(encoder0PinA, INPUT); pinMode (3,INPUT); pinMode (3,HIGH); //turn on pullup resistor digitalWrite(encoder0PinA, HIGH); pinMode (13,OUTPUT); } void loop (){ } void comptage () { sens = digitalRead (3); if (sens == 1) { comp ++; } else if (sens ==0) { comp -- ; } Serial.print (comp); Serial.print(" "); Serial.print ("Sens ="); Serial.println (sens, BIN); }
Thanks
(edit : apparement ca ne vient pas du code j'ai essayé avec une led sur Q et Q/ et elle reste tout le temp allumé)
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#6
Posté 22 février 2012 - 07:48
ça m'a peut-être échappé à la première lecture mais tu utilise quoi comme capteurs pour détecter les murs ? Y'a moyen d'avoir un bout du code permettant de détecter les murs et à ton robot de se déplacer sans collision ?
À et aussi pourquoi tu as besoin de bascule, tu les utilises comment aussi ?
Sinon GG pour ton robot il a l'air cool, tu vas y mettre quoi dessus après ?
#7
Posté 22 février 2012 - 01:16
J'utilise deux capteur IR a 45°, un de chaque coté du robot, et un capteur US (urm) centrale.
Les bascule D servent a detecter le sens de rotation des moteur via les encodeur... Mais c'est pas encore au point.
Ensuite dessus, je compte rien lui metre de special. Je vais bientot lui ajouter mon capteur de temperature, une nouvelle alim de 5A et un lcd 4x20..
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#8
Posté 22 février 2012 - 01:46
Petite question qui me vient à l'esprit : Pourquoi ne pas utiliser les entrées de ton Arduino pour détecter directement le sens (direction) de ton robot ? tu fais une comparaisson au niveau soft entre ton entrée A et B qui sont reliés à ton encodeur, car j'ai de la peine à comprendre l'utilité des des bascules ?
Par contre, pour ta question si t'as une tension que tu applique qui est de l'ordre de 5V_DC, alors oui, car le niveau "haut" doit être supérieur à <3.5V_DC (selon le type de VCC avec lequel tu alimentes ce circuit (Vcc pas plus grand que 6V_DC)).
Bien à vous - Amiclement - philou
#9
Posté 22 février 2012 - 02:15
D'un coté elle me sort le sens (0 ou 1) et de l'autre le comptage.
Tout mes montage sont en 5V.
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#10
Posté 27 février 2012 - 09:30
Quelque petite nouvelle de mon Robot, pour commencer, il a été rebatiser (j'avais un probleme avec son nom...) maintenant il s'apelle.... R3-D8 (je vous laisse deviner d'ou sa vient )
Il possedent un ecran LCD 4x20 (acheter ICI) sur lequel il affiche la temperature d'un des regulateur de tension, la vitesse (ajustable via un potar) et son nom....
J'ai bien d'autre projet pour cet ecran, par exemple activé un mod ou on peut 'discuté' (via des textes pre-enregistré) avec lui.
J'ai testé un nouveaux composant que Yves m'a fait decouvrir : un PCF8574, il permet de rajouter 8 sortie/entré en I²C avec la possibilité d'en ajouté plusieure autre.
Quand a mon probleme de detection de sens, j'ai un peu avancer, maintenant je detecte le sens dans un sens, (1) mais la marche arriere pose encore probleme : je devrai recevoir que des 0, or j'ai des 0 et des 1 melangé...
Il y a aussi un autre truc qui m'embete.... La position de mes servo (tourelle IR) est defini a 45° dans void setup, mais il font que bougé lors de la lecture de la boucle. J'ai penser a un probleme de sous alimentation, car mes regulateur chauffe beaucoup (d'ou la necaissité de la changé, je disposerai de 25w contre 15w actuellement fourni par deux 7805cv et ct).
Et j'ai une question: est il possible d'eteindre l'Arduino via du Soft ?
Merci, d'avoir lu ce paté !
Cdlt, Fabien
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#11
Posté 03 mars 2012 - 07:31
Voila, apres plusieur recherche (semi infructueuse) sur le traitement du signal en quadrature des encodeurs. J'en suis arrivé a ecrire ce bout de code (pour le principe)
if (chanel_a ==0 && chanel_b == 0) { if (chanel_a==0 && chanel_b == 1) {sens=1; }} else { sens = 0; }
Si j'integre ce bout de code dans une interuption, est ce que ca marchera ??
Je ne suis servis de ça :
J'espere que quelqu'un me dise oui !
Ou que quelqu'un repondra ...
Ou est passé Yves et Luj?
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#12
Posté 05 mars 2012 - 08:26
Non ca marchera pas !
Ah bon ? pourquoi ?
Parce qu' j'ai essayé...
Ha.....ok..
J'ai essayé un code plus poussé mais marche pas non plus
volatile int dernierfront_a = 1; volatile int dernierfront_b = 0; volatile int compteur ; volatile int Sens; void setup() { pinMode (2,INPUT); pinMode (3,INPUT); digitalWrite (2, HIGH); digitalWrite (3,HIGH); Serial.begin (115200); attachInterrupt (0, sens, RISING); } void loop () {} void sens () { Serial.print(Sens); Serial.print(" "); Serial.println(compteur); int C_a =digitalRead (2); int C_b =digitalRead (3); if ( dernierfront_a==1 && dernierfront_b ==0) { if (C_a ==0 == C_b ) { Sens =1 ; // cw compteur ++; dernierfront_a =0; dernierfront_b=1; } else if (C_a == 1 == C_<img src='http://www.robot-maker.com/forum/public/style_emoticons/<#EMO_DIR#>/cool.gif' class='bbc_emoticon' alt='B)' /> { Sens= 0; //ccw compteur -- ; dernierfront_a =0; dernierfront_b=1; } } else if (dernierfront_a==0 != dernierfront_<img src='http://www.robot-maker.com/forum/public/style_emoticons/<#EMO_DIR#>/cool.gif' class='bbc_emoticon' alt='B)' /> { if (C_a ==0 == C_<img src='http://www.robot-maker.com/forum/public/style_emoticons/<#EMO_DIR#>/cool.gif' class='bbc_emoticon' alt='B)' /> { Sens = 0; //ccw compteur --; dernierfront_a =1; dernierfront_b=0; } else if (C_a ==1 == C_<img src='http://www.robot-maker.com/forum/public/style_emoticons/<#EMO_DIR#>/cool.gif' class='bbc_emoticon' alt='B)' /> { Sens = 1 ; compteur ++; dernierfront_a =1; dernierfront_b=0 ; }} else{} }
Toujours en suivant le signal carré.....
(parle a un mu*, depuis un certain temps...)
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#13
Posté 06 mars 2012 - 01:51
Ca y est j'ai reussi (sans bascule) donc je met mon code :
volatile long compteur ; volatile int Sens; volatile boolean update = false; void setup() { pinMode (2,INPUT); pinMode (3,INPUT); Serial.begin (115200); attachInterrupt (0, detection_sens, RISING); } void loop () { if (update) { Serial.print(Sens,BIN); Serial.print(" "); Serial.println(compteur, DEC); update = false;}} void detection_sens () { int C_a =digitalRead (2); int C_b =digitalRead (3); if ( C_b ==1) { Sens =1; // compteur++; } else if ( C_b==0) { Sens=0; compteur--; } update = true ; }
J'ai verifié, j'ai bien 360 incremantation par revolution de l'axe !
Miracle !
Donc, j'ai trouvé le beug, si j'essai avec la bascule maintenant ca devrai maché !
Et un grand merci a tout ceux qui mon pas aider !
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#15
Posté 06 mars 2012 - 02:03
http://sitelec.org/cours/abati/captvit.htm
Une video ??!!
A par voir une roue tourné et les donné defiller sur le serial monitor, ya pas grand chose a voir ...
Je verai.
J'ai changé l'alim, ca chauffait toujours beaucoup (trop a mon gout) alors j'ai carrement debranché les servo !!Il y a aussi un autre truc qui m'embete.... La position de mes servo (tourelle IR) est defini a 45° dans void setup, mais il font que bougé lors de la lecture de la boucle. J'ai penser a un probleme de sous alimentation, car mes regulateur chauffe beaucoup
Et j'ai une question: est il possible d'eteindre l'Arduino via du Soft ?
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#16
Posté 06 mars 2012 - 03:38
A la fin de cette video il tape dans un meuble, car theoriquement il passe dessous, mais avce les tige fileté,il peut pas !
Donc, j'ai integré le code de lecteure des codeur/sens, il m'affiche maintenant une moyenne de la distance parcouru (compte moteur 1 + compte moteur 2 /2 *xxx.xxxx)
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#17
Posté 06 mars 2012 - 06:30
le chat semble agacé par l'intrus...
temps de réaction hyper rapide, pas d'arrêt du bot pour mesurer les distances; je suis envieux!
Perso, j'ai juste trouvé comment transformer les valeurs analogiques de mon capteur IR en cm...
J'ai quelques questions si tu veux bien ?
Quels capteurs IR utilises-tu?
idem pour le capteur US ?
Pourquoi un régulateur de tension?
et enfin
Tu me montrerais ton code?
Amicalement
@+
#18
Posté 06 mars 2012 - 06:51
Capteur Infra-rouge Sharp, capteur US URM 37
Le regualteur me permet d'alimenté tout ce qui tourne en 5v (capteur, servo, lcd..) sans pompé sur la carte.
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#19
Posté 06 mars 2012 - 07:04
chapeaux.
Dit tu peux me passé un lien de ton régulateur , il me semble que jan et un , c'est pour ça que je te demande un lien de ton
régulateur pour voir si j'ai le même ou pas.
En tout cas bravo pour ton robot.
#20
Posté 06 mars 2012 - 07:08
J'ai les mêmes...
Pour le capteur IR, tu passes par une équation avec un "float volts = analogRead(pinIR)... " ou par un map(####,####) ?
Edit : merci, j'ai la réponse! c'est cool!!
pour le capteur IR, j'ai :
float volts = analogRead(IRpin)*0.0048828125; // valeur du capteur multipliée par (5/1024) - si 5V
float distance = 65*pow(volts, -1.10); // 65 à tester suivant le modèle de capteur Sharp, pour moi c'est 27
Répondre à ce sujet
0 utilisateur(s) li(sen)t ce sujet
0 members, 0 guests, 0 anonymous users