pas un arduino mais un simple 12F675 (petite carte faite maison)c'est vrai que c'est plus facile de modifier et vérifier le signal par programme, la balise ne répond au robot que si le robot le demandeAh tu le faisais avec une arduino... parceque si il y a environ 40 periodes dans une salve pour 50ms de pose, ça fait un rapport cyclique de environ 2% et donc c'est impossible à réaliser avec un 555 astable!
je vais retourner voir le post de Bennurre pour tester

PPE recharge autonome
#21
Posté 02 avril 2012 - 08:32
http://hmnrobots.blogspot.fr/
#22
Posté 08 avril 2012 - 06:02
Voici l'algo concernant l'émission du signal infrarouge (j'ai choisi des salves de 200 cycles avec une pause de 25ms entre chaque salve):

et le code:
char FCLV_LOOP1; void main() { //Initialisation ansel = 0; cmcon = 0x07; //Code d'initialisation d'Interruption option_reg = 0xC0; //Connection Point //Point de Jonction: [A]: A FCC_Main_A: //Loop //Boucle: Boucle 200 fois for (FCLV_LOOP1=0; FCLV_LOOP1<200; FCLV_LOOP1++) { //Output //Sortie: 1 -> B0 trisb = trisb & 0xfe; if (1) portb = (portb & 0xfe) | 0x01; else portb = portb & 0xfe; //Delay //Pause: 11 us delay_us(11); //Output //Sortie: 0 -> B0 trisb = trisb & 0xfe; if (0) portb = (portb & 0xfe) | 0x01; else portb = portb & 0xfe; //Delay //Pause: 11 us delay_us(11); } //Delay //Pause: 25 ms delay_ms(25); //Goto Connection Point //Aller au Point de Jonction: [A]: A goto FCC_Main_A; mainendloop: goto mainendloop; } void interrupt(void) { }
J'avais rencontré des problèmes avec la compilation en .hex de Flowcode (voir ici) mais j'ai pu compiler en utilisant un compilateur externe.
Voici les captures d'écran de la simulation (avec ISIS):
schéma du circuit:

signal (oscillo):

zoom sur une salve:

#23
Posté 08 avril 2012 - 09:03
Bref, voici le schéma:

#24
Posté 09 avril 2012 - 07:13
http://hmnrobots.blogspot.fr/
#25
Posté 09 avril 2012 - 10:25
que donne la réception ?
Je n'ai pas encore testé, le PIC n'est même pas programmé... Je suis en bac blanc cette semaine et apres c'est les vacances donc ça va être chaud mais je vais essayer de me trouver un heure...
Au pire je me debrouille sans oscillo
#26
Posté 09 avril 2012 - 12:01

schéma:

Signal: (en rouge le signal à la sortie du PIC, et donc avant le collecteur du transistor; et en jaune le signal juste devant la LED)

Si quelqu'un pouvait m'éclairer...
EDIT: En fait j'ai trouvé le problème (il faut que j'arrête de poster aussi vite sans réfléchir beaucoup


Le signal est bon, mis-à-part un étrange pic de tension négative sorti de je ne sais où mais qui ne devrait pas poser de problème:

de plus, j'ai fait le calcul pour dimensionner la résistance mais je ne sais pas si il est juste:
V led=1.35V
I led=100mA
Vcc = 5V
4 LEDs en parallèle donc
V totale=1.35V
I total=100^-3 * 4 = 400mA (je sais, c'est beaucoup...)
R=(Vcc-Vtotale)/I total
=(5-1.35)/400*10^-3
=9.125 Ohms...

Je me suis trompé?
#27
Posté 10 avril 2012 - 06:34

aussi je pense remplacer ces même résistances par des résistances variables pour pouvoir faire varier la puissance d'émission (et aussi parce que des résistances de 36.5Ohms, ça n'existe pas

schéma:

Je vais sûrement faire un pause parce que cette semaine c'est bac blanc et que je serais crevé, mais les vacances qui arrivent juste après seront intensives pour le projet (réception de toutes les pièces qui manquent, PIC programmé et surtout temps libre

Je vous tiens au courant!
p-s il y a toujours les quelques questions posées précédemment qui restent en suspend, je ferais peut-être un récapitulatif...
#28
Posté 10 avril 2012 - 06:42
Je vais sûrement faire un pause parce que cette semaine c'est bac blanc et
bon courage man !!!
...................................................
Mon premier projet arduino...
Blog de ma Tondeuse RC...
...................................................
#29
Posté 10 avril 2012 - 06:43
bon courage man !!!
merci, j'en aurai besoin

#30
Posté 10 avril 2012 - 07:24

algo:

schéma:

code:
//Déclarations de Variable char FCV_CHARGE; char FCV_MICRORUPTEURS; char FCLV_LOOP1; //Implémentations Macro void main() { //Initialisation ansel = 0; cmcon = 0x07; //Code d'initialisation d'Interruption option_reg = 0xC0; //Connection Point //Point de Jonction: [A]: A FCC_Main_A: //Entrée //Entrée: A0 -> charge trisa = trisa | 0x01; FCV_CHARGE = ((porta & 0x01) == 0x01); //Décision //Décision: charge? if (FCV_CHARGE) { //Sortie //Sortie: 0 -> B1 trisb = trisb & 0xfd; if (0) portb = (portb & 0xfd) | 0x02; else portb = portb & 0xfd; } else { //Sortie //Sortie: 1 -> B1 trisb = trisb & 0xfd; if (1) portb = (portb & 0xfd) | 0x02; else portb = portb & 0xfd; //Loop //Boucle: Boucle 200 fois for (FCLV_LOOP1=0; FCLV_LOOP1<200; FCLV_LOOP1++) { //Output //Sortie: 1 -> B0 trisb = trisb & 0xfe; if (1) portb = (portb & 0xfe) | 0x01; else portb = portb & 0xfe; //Delay //Pause: 11 us delay_us(11); //Output //Sortie: 0 -> B0 trisb = trisb & 0xfe; if (0) portb = (portb & 0xfe) | 0x01; else portb = portb & 0xfe; //Delay //Pause: 11 us delay_us(11); } //Delay //Pause: 23 ms delay_ms(23); } //Goto Connection Point //Aller au Point de Jonction: [A]: A goto FCC_Main_A; mainendloop: goto mainendloop; } void interrupt(void) { }
#31
Posté 11 avril 2012 - 07:17
- est-ce que l'algo principal vous semble bon?
- est-ce que quelqu'un peut m'expliquer les bases de la création d'un typon ou me filer le lien d'un bon tuto parce que tous ceux que j'ai trouvé sont trop vaques, trop spécifiques ou emploient des notions que je ne connais pas... Ce ne sera pas forcement nécessaire pour le projet mais j'aimerais quand même apprendre
- formule qui permet de calculer l'angle d'un cône de réception/émission après passage dans un tube (voir post #13)
- si les durées de salve et de pause vous paraissent corrects
- Le truc bizarre du transistor (#26), j'ai trouvé la solution mais je ne comprends toujours pas!
- si les schémas, idées etc (bref un peu tout) vous semblent corrects
- De manière générale votre avis sur les choix faits, c'est le dernier moment pour changer des trucs

Merci d'avance
#32
Posté 11 avril 2012 - 07:18
#33
Posté 12 avril 2012 - 08:04
le montage npn avec emetteur à la masse est meilleur car tu es sur que le transistor (ici en simple ampli de courant) sera bien saturé; avec les charges dans l'émetteur la commutation sera moins bonne voire mauvaise;Je viens de me rendre compte d'un truc super bizarre (enfin peut-être pas mais en tout cas je ne comprends pas pourquoi
): à la sortie du PIC le signal est exactement comme je voudrais mais ensuite si je place un transistor comme amplificateur pour commander la LED, le signal en sortie du transistor est complètement différent!
schéma:![]()
Signal: (en rouge le signal à la sortie du PIC, et donc avant le collecteur du transistor; et en jaune le signal juste devant la LED)![]()
Si quelqu'un pouvait m'éclairer...
EDIT: En fait j'ai trouvé le problème (il faut que j'arrête de poster aussi vite sans réfléchir beaucoup): il aurait fallu que j'utilise un PNP au lieu d'un NPN, sinon il faut que je modifie le schéma comme ceci:
![]()
Le signal est bon, mis-à-part un étrange pic de tension négative sorti de je ne sais où mais qui ne devrait pas poser de problème:![]()
de plus, j'ai fait le calcul pour dimensionner la résistance mais je ne sais pas si il est juste:
V led=1.35V
I led=100mA
Vcc = 5V
4 LEDs en parallèle donc
V totale=1.35V
I total=100^-3 * 4 = 400mA (je sais, c'est beaucoup...)
R=(Vcc-Vtotale)/I total
=(5-1.35)/400*10^-3
=9.125 Ohms...c'est minuscule!
Je me suis trompé?
en mettant les diodes en parrallèle, le courant se répartit à peu près en fonction des caractéristiques des diodes, de plus si une se met OFF alors les autres vont souffrir, il est généralement péconisé de les mettre en série car on impose alors l'intensité qui les traverse (c'est le paramètre qui nous intéresse) même si dans ce cas avec 1 OFF plus rien ne marche mais on ne crame pas les autres
http://hmnrobots.blogspot.fr/
#34
Posté 16 avril 2012 - 08:46
le montage npn avec emetteur à la masse est meilleur car tu es sur que le transistor (ici en simple ampli de courant) sera bien saturé; avec les charges dans l'émetteur la commutation sera moins bonne voire mauvaise;
en mettant les diodes en parrallèle, le courant se répartit à peu près en fonction des caractéristiques des diodes, de plus si une se met OFF alors les autres vont souffrir, il est généralement péconisé de les mettre en série car on impose alors l'intensité qui les traverse (c'est le paramètre qui nous intéresse) même si dans ce cas avec 1 OFF plus rien ne marche mais on ne crame pas les autres
Je ne comprends pas trop pourquoi les mettre en parallèle est dangereux, l'intensité s'adapte à la "demande" non? Ca m'embêterai de devoir les mettre en série mais si tu dis que c'est préférable...
Sinon j'ai fait le "filtre" de la sortie du récepteur avec la (précieuse) aide de hmnrobots et Black Templar (http://www.robot-mak...signal-continu/) qui me permet d'avoir un signal logique (0 ou 1) dans le cas de l'absence/présence de détection de la balise ; à l'aide d'un monostable. Ainsi je peut très facilement gérer les infos des capteurs (pour le capteur en "T" de devant: 00=pas de signal, 01=signal à droite, 10=signal à gauche et 11=signal tout droit).
schéma du montage du monostable (la sortie du TSOP est représentée par un signal carré de 35.33568905Hz avec un rapport de 18.72791519% ; et la présence/absence du signal est faite avec un inverseur permettant d'alterner entre un signal continu ou le signal carré):

et le résultat:

Je ne sais pas si je vous l'ai déjà dit mais pour les capteurs du robot, on va mettre en plus du T un système avec un "cône" réfléchissant permettant une détection à 360° de la balise: dès que le signal est détecté par ce cône et pas par le T, le robot tourne sur lui-même jusqu'à ce que le capteur plus précis, c'est à dire le T le reçoive. C'est pas très fluide mais ça comporte plusieurs avantages par rapport aux autres solutions (on a détaillé tout ça dans notre compte rendu donc si vous voulez plus d'infos, pas de problème!)
#35
Posté 16 avril 2012 - 10:00
Bon parallele/série, du pour du contre mais dans les 2 cas dans le collecteur du transistorJe ne comprends pas trop pourquoi les mettre en parallèle est dangereux, l'intensité s'adapte à la "demande" non? Ca m'embêterai de devoir les mettre en série mais si tu dis que c'est préférable...
http://hmnrobots.blogspot.fr/
#36
Posté 17 avril 2012 - 07:15
#37
Posté 17 avril 2012 - 08:21
Mais du coup ça va me refaire le problème du signal inversé non? (Ou alors c'est l'oscillo qui est mal branché)
Je ne pense pas,lorsque le signal de commande est au niveau haut, le transistor sature et les LEDs que ce soit dans l'émetteur ou dans le collecteur doivent s'allumer: voir sur circuitlab
http://hmnrobots.blogspot.fr/
#38
Posté 17 avril 2012 - 09:33
merci
#39
#40
Posté 19 avril 2012 - 03:33
est-ce que quelqu'un peut m'expliquer les bases de la création d'un typon ou me filer le lien d'un bon tuto parce que tous ceux que j'ai trouvé sont trop vaques, trop spécifiques ou emploient des notions que je ne connais pas... Ce ne sera pas forcement nécessaire pour le projet mais j'aimerais quand même apprendre
http://www.ferdinandpiette.com/blog/les-dossiers/dossier-concevez-vos-pcb-avec-kicad/
++
Black Templar
Mon site internet : http://ferdinandpiette.com/
Répondre à ce sujet

1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users