Pic16f84 controle moteur tête pano maison
Pic16f84 controle moteur tête pano maison
Bonjour,
Je recherche un programme à base de microcontroleur pic16F84. Je sais que ça devrait suffir pour controler un cervo moteur mais je ne sais pas trop programmer lol
Si quelqu'un à un programme facile à modifier(variable des angles, des temps entre PDV,...) et un petit montage simple... je suis preneur
Merci
Thierry
Je recherche un programme à base de microcontroleur pic16F84. Je sais que ça devrait suffir pour controler un cervo moteur mais je ne sais pas trop programmer lol
Si quelqu'un à un programme facile à modifier(variable des angles, des temps entre PDV,...) et un petit montage simple... je suis preneur
Merci
Thierry
Re: Pic16f84 controle moteur tête pano maison
Salut tb,
Un programme pour pic ne "tourne" que pour une application bien déterminée. Le pic ne sait piloter rien d'autre que ce pour lequel il a été programmé. Donc la moindre modification du matériel entraînera obligatoirement celle du logiciel. Il faudrai que tu précises un peu ton projet ...
Un programme pour pic ne "tourne" que pour une application bien déterminée. Le pic ne sait piloter rien d'autre que ce pour lequel il a été programmé. Donc la moindre modification du matériel entraînera obligatoirement celle du logiciel. Il faudrai que tu précises un peu ton projet ...
Re: Pic16f84 controle moteur tête pano maison
Bonjour Phil, mon projet est pas très précis, je voulais juste utiliser un simple Pic puisque j'en ai un de dispo, ainsi qu'un programmateur et que j'ai vu qu'on pouvais piloter jusqu'a 8 cervos moteurs avec un seul composant.
Un exemple ici dont je voulais m'inspirer: http://florent.bedoiseau.free.fr/Modeli ... index.html
Je pense qu'il faudrait :
0)avec un bouton en entrée, démarrer le programme + tempo de 1".
1)valider une sortie du micro pour commander le déclenchement d'une prise de vue (avec un opto-coupleur connecté à l'APN).
2)tempo de x secondes
3)commander 1 cervo A de alfa degres
4)refaire 1), 2), 3) jusqu'a faire un tour de 360°
5)commander 1 cervo B de beta degres
6)refaire 1), 2), 3) jusqu'a faire 180°
Et puis c'est tout enfin je crois
Effectivement il n'y aura qu'une config mais rapidement modifiable en reprogrammant la puce en 4secondes maxi
Thierry
Un exemple ici dont je voulais m'inspirer: http://florent.bedoiseau.free.fr/Modeli ... index.html
Je pense qu'il faudrait :
0)avec un bouton en entrée, démarrer le programme + tempo de 1".
1)valider une sortie du micro pour commander le déclenchement d'une prise de vue (avec un opto-coupleur connecté à l'APN).
2)tempo de x secondes
3)commander 1 cervo A de alfa degres
4)refaire 1), 2), 3) jusqu'a faire un tour de 360°
5)commander 1 cervo B de beta degres
6)refaire 1), 2), 3) jusqu'a faire 180°
Et puis c'est tout enfin je crois
Effectivement il n'y aura qu'une config mais rapidement modifiable en reprogrammant la puce en 4secondes maxi
Thierry
Re: Pic16f84 controle moteur tête pano maison
Bonjour,
Alors je viens d'essayer le programme servopic.c de Florent BEDOISEAU pour Pilotage de 8 servos.
Voici le code:
Premier problème: Je n'avais pas d'oscillateur de 4.6MHz, j'ai donc utilisé une capa 22pF et un potar de 5K sur la broche 16(osc2).
Sur la broche 15 (osc1) je peux récupérer la fréquence divisé par 4 (signal carré)
la résistance du potar est de 2.43K au lieu de 5Kohm théorique ! c'est déjà bizarre
Je reçois bien les signaux des commandes des servos sur RB0(pin6) et RB7(pin13) avec niveau haut de 1.8ms et une période de 16ms. RB0 et RB7 étant décalé comme sur le chronogramme indiqué sur le site.
J'avais cru comprendre qu'il fallait envoyer une commande de 2 mots de 8 bits (N°de servo et position de 0 à 255) via le rs232 d'un PC pour commander les servos.
Mais je n'arrive pas à configurer le tera term
J'ai configuré le bon port, 115200 bauds, 8 bits, pas de parité et là second problème, il parle de 1 start + 8 bits (pas de parite, pas de stop) et dans la config du tera term je n'ai que la possibilité de choisir stop (1 ou 2 bits) et pas d'info sur le start !
auriez-vous une petite idée ?
Merci
Thierry
Alors je viens d'essayer le programme servopic.c de Florent BEDOISEAU pour Pilotage de 8 servos.
Voici le code:
Code : Tout sélectionner
/* -------------------------------
File : servopic.c
Modifications : 16/01/02
Auteur : Florent BEDOISEAU
Module : Pilotage de 8 servos
------------------------------- */
#include "16f84.h"
#fuses XT, NOWDT
#use delay (clock=4608000) /* Quartz pour 115200 bds */
#use fast_io (A)
#use fast_io (B)
#BYTE porta=0x05
#BYTE portb=0x06
#BYTE rx_cnt_bit=0x0C
#BYTE rx_buffer_cmde=0x0D
#BYTE rx_buffer_data=0x0E
#define RX_READY PIN_A1 /* OUT */
#define RX PIN_A0 /* IN */
/*
Caracteristiques :
Commande 8 servos avec chaque consigne allant de 0.81ms a 2.12ms
Interface de type serie TTL (RX et DTS)
L envoi des consignes se fait a la vitesse de 115200 bauds
par polling. 1 start + 8 bits (pas de parite, pas de stop)
0 => 0.81ms
128 => 1.47ms
255 => 2.12ms
Consignes transmises sous la forme : cmde (8bits) - valeur (8bits)
Les consignes ne peuvent etre recues et traitees UNIQUEMENT lorsque
le signal RX_READY vaut 1 c-a-d au pire entre #int+2.12ms et #int+2.41ms
ce qui represente une fenetre de 290us toutes les 2.41ms.
2 octets a recevoir a 115200 bauds representent :
868ns (1 cycle PIC) * 10 (nb cycles PIC pour un bit) * 9 (1 start + 8 data) * 2 (octets)
=> 157us ce qui laisse une marge de 133us !
*/
byte cycles; /* Numero du cycle de 2.41ms (0 a 7) */
byte servo_bit; /* Bit du port B pilotant 1 servo */
byte consigne; /* Consigne du servo en cours de traitement */
byte consignes [8]; /* Consignes de position de 8 servos */
#int_rtcc
gen_pulses () {
output_low (RX_READY); /* On interdit la reception de consignes */
portb = servo_bit; /* Debut pulse Servo */
set_rtcc (84); /* On rearme le timer */
consigne = consignes [cycles];
delay_us (810);
/* Attente de la duree de la consigne*6 */
delay_us (consigne);
delay_us (consigne);
delay_us (consigne);
delay_us (consigne);
delay_us (consigne);
delay_us (consigne);
portb = 0x00; /* Fin du pulse pour tous les servos */
cycles++; /* 8 cycles de 2.41ms = 19.28ms */
servo_bit = servo_bit << 1;
if (cycles == 8) {
cycles = 0;
servo_bit = 0x01; /* Servo 0 */
}
/* On autorise la reception de consignes */
output_high (RX_READY);
}
void main () {
/* Init des ports */
set_tris_a (0xFD); /* bits 0 => IN , 1 => OUT */
set_tris_b (0x00); /* bits 0-7 => OUT */
/* On interdit la reception de consignes a l'init */
output_low (RX_READY);
/* Consignes par defaut des servos */
consignes [0] = 0;
consignes [1] = 50;
consignes [2] = 100;
consignes [3] = 130;
consignes [4] = 160;
consignes [5] = 190;
consignes [6] = 220;
consignes [7] = 255;
cycles = 0;
servo_bit = 0x01;
/* Initialisation timer/prescaler */
setup_counters (RTCC_INTERNAL, RTCC_DIV_16);
set_rtcc (84); /* 2.4ms / 0.868us => 2765 = 16 * (256 - 172) */
enable_interrupts (INT_RTCC);
enable_interrupts (GLOBAL);
/* Attente commande-valeur */
while (1) {
#ASM
while_cmde:
btfsc porta, 0
goto while_cmde
movlw 8
movwf rx_cnt_bit
movlw 0
movwf rx_buffer_cmde
goto J2
J2:
goto J3
J3:
goto rx_nxt_cmde
rx_nxt_cmde:
nop
rrf rx_buffer_cmde, 1
btfsc porta, 0
goto rx_set_cmde
bcf rx_buffer_cmde, 7
goto rx_end_cmde
rx_set_cmde:
bsf rx_buffer_cmde, 7
nop
rx_end_cmde:
decfsz rx_cnt_bit, 1
goto rx_nxt_cmde
while_data:
btfsc porta, 0
goto while_data
movlw 8
movwf rx_cnt_bit
movlw 0
movwf rx_buffer_data
goto J6
J6:
goto J7
J7:
goto rx_nxt_data
rx_nxt_data:
nop
rrf rx_buffer_data, 1
btfsc porta, 0
goto rx_set_data
bcf rx_buffer_data, 7
goto rx_end_data
rx_set_data:
bsf rx_buffer_data, 7
nop
rx_end_data:
decfsz rx_cnt_bit, 1
goto rx_nxt_data
#ENDASM
rx_buffer_cmde &= 0x07; /* Pour ne pas sortir de la table */
consignes [rx_buffer_cmde] = rx_buffer_data;
}
}
Sur la broche 15 (osc1) je peux récupérer la fréquence divisé par 4 (signal carré)
la résistance du potar est de 2.43K au lieu de 5Kohm théorique ! c'est déjà bizarre
Je reçois bien les signaux des commandes des servos sur RB0(pin6) et RB7(pin13) avec niveau haut de 1.8ms et une période de 16ms. RB0 et RB7 étant décalé comme sur le chronogramme indiqué sur le site.
J'avais cru comprendre qu'il fallait envoyer une commande de 2 mots de 8 bits (N°de servo et position de 0 à 255) via le rs232 d'un PC pour commander les servos.
Mais je n'arrive pas à configurer le tera term
J'ai configuré le bon port, 115200 bauds, 8 bits, pas de parité et là second problème, il parle de 1 start + 8 bits (pas de parite, pas de stop) et dans la config du tera term je n'ai que la possibilité de choisir stop (1 ou 2 bits) et pas d'info sur le start !
auriez-vous une petite idée ?
Merci
Thierry
Re: Pic16f84 controle moteur tête pano maison
Et avec une résistance de 5Kohm sur osc1 comme théoriquement:
voila ce que j'ai qui défile sur le téra term:
?????
voila ce que j'ai qui défile sur le téra term:
Code : Tout sélectionner
ÿÿëÿÿÿûÿûÿûÿÿïÿÿÿÿ½ïïÿÿ¿ÿûÿÿÿÿÿûÛïÿûÿÿÿÿþÿÿïïïÿþÿýoÿÿÿÿÿÿkûÿÿþÿÿ÷ÿÿ½ÿÿÿÿÿÿÿïÿÞÿúÿÿÿþâïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ýÿÿÿÿýÿúÿÿÿ÷ýýëÿûÿÿÿÿÿÿïßÿëoïÿþÿÿÿ{òÿÿÿÿýïýÿÿÿÿÿïÿó¿÷ÿÿÿÿï½ÿÿÿÿÿ¿ÿþÿÿÿÿÿÿþïïÿûÿÿûÿÿïþÿÿïÿoÿëÿÿÿÿÿßÿþÿÿÿ{ÿ¶ïÿÿÿÿÿÿþ¿ïûÿÿ÷ïþõÿÿÿúßÿÿ÷ýûÿÿÿßÿÿýþëÿoÿÿÿÿû½¯ïÿÿÿûÿÿÿo÷ïûÿÿßÿÿïÿÿÿÿÿÿ¯õþÿûÿÿïÿ÷ïÿ¯ÿþÿûÿÿûÿßÿþÿïþ¾ïÿîÿÿÿÿÿõÿÿúÿÿßûïÿÿÿÿÿßÿÿûÿÿÿ¿öÿïÿÿßÿûÿwÿÿïÿÿûûÿ¿ÿíïßÿÿÿÿ÷ÿþÿÿÿý¿·mÿÿ÷þÿ{ÿ¯ïÿÿÿëïÿÿÿÿÿ½ÿ¿ÿÿÿÓïÿþÿÿÿÿÿ{ÿÿû÷ùúÿÿÿÿûÿ¶ïÿÿÿÿûÿÿoÿÿÿýïïïïÿ÷ïýÿÿþÿ÷ÿÿÿþÿûÿßÿÿ½þýÿÓÿýÿûëïßÿûÿÿÿîkÿ÷ÿÿÿÿ¿ÿïûúÿÿ¿îíïÿïßÿÿÿÒ¿þÿ¿ßÿµëý¯ÿÿÿïïµÿïÿÿþ¾ïÿ¿ÞÿÿïÿÿÖïÿöïÿÿÿúÿÿÿ¿ÿÿÿÿÿÿÿ{ïÿÿÿÿÿ{ÿßÿßÿúÿ÷ßÿþÿûÿï÷ß½Wÿÿÿÿÿÿß÷ÿ¿ûõÿÿÿþýÿïïý÷þ¿ÿÛÞïßÿû÷ÿ[ýÞÿÿÿÿö_×ÿÿÿÿÿûþWõï÷¿ÿ÷þûÿÿÿÿþÿÿÿÿïÿïÿÿÿÿ{ÿ[ÿÿÞÿÿÿûûïÿUÿ×ÿÿßÿïÿ÷ÿÝÿÿßßÿÿïïûÿÿÿûÿïûÿÿÿÿÿÿïïÿ÷ÿþÿþÿÿïÿÿÿýÿëý÷ÿr¿¿ýÿÿÿïÞÿoÿÿÿ¯ÿ÷ÿ»ÿöþ¿ÿÿ÷Úïÿÿÿÿßûÿÿëïûûûÿº÷Ý·÷vÿ÷ÿÿý¿ÿßÿïÿïÿÿûïÿÿÿþ¿ÿÿZïÿ÷ÿÿÿïÿûïÿÿÿ÷ÿÿÿýïêÿÿÿû»ýÿÛÿÿÿ{ïÿÿÿÿÿÿÿÿÿïïÿÿÿÿßÿÞÿûÿýïþÿ¿¯õûÿÿïïÿÿýëÿÿýÿûÿÿÿÿÿïoþÿÿîÿûþÿÿßûÿ¿ÿÿÿïÿÿÿëïÝýÿëÿÿÿýÿýíÿ÷ÿ{ÿÿÿ¿ÿûïþÿÿÿÿïÿwýîÿÿ÷ÿÿkÿÿï÷ÿÿÿÿþÿkûÿÿÿûÿûÿëÿÞ÷òïÿÿÿûÿÿÿûÿÿßïÿ¯ûÿÿÿÿ¿ûþÿïÿÿÿÿßÿÿÿÿ÷ûÿÿÿ¯ÿÿë»wÿïïZÿÿÿ÷oûÿÿÿÿÿÿÛÿþ¿ßÿwîïÿëÿûÿÿÿïÿz¿÷úÿÿÝóÿoûÛÿÿ¾ûÿþïÿ£ýÿÿöÿÿÿûïþÿÿÿÿûÿÿÿÿýúþßï]ÿ»÷ûÿÿÿzÿûïÿÿÿÿöÿÿo·ÿÿÿÿÿÿÿoûïûÿ¿ÿþÿïÿþßïÿÿ·÷ÿÿßýÿûþûÿûµÿÿûþÿ¿ÿÿÿÛÿÿÿÿÿÿÿ÷ûÿßþÿÿÿûÿÿÿþÿÿýÛÿïÿïÿÿ¿ÿsïûïÿÿÿÿÿýÿûÿÿ¯ÿïÿûÒûïûÿûÿÿÿ{ïÿÿ[ÿÿÿÿÿ~ûÿÿïïÿÿÿ÷{ïõÿ¿ÿÿÿïëÿ¿ÿÿßÿÿÿÿÿÿ{ÿÿ÷ÿÿ×ÿÿîÿÿ¯ÿïïõïÿ¿ÿûÿûþÿ¿ýÿÿÝÿóûÿþýÿ¿ÿÿýû½¯ÿïÿÿÿÿßÿýÿÿïkïÿïþõÿÿ¿ÿïÿßÿÿÿû·ïÿïÿÿÿÿÿÿ½ÿÿÿ{÷ïÿÿÿïîÿÿßÿÿßß¿_ïïÿÿ®ÿïÿÿûÿÿÛjk÷ÿÿ÷ÿÿ¾ÿËûïÿÿÿÿÿÿûÿïÿÿþûÿýûïÿÿÿÿþ¿ÿÿëï½ÿ÷ÿûúÿûÿþïÿûïïÿÿÿïýÿÿ{ÿÿûÿÿÿÿ÷ÿÿÿ¯ÿÿÿÿÿïÿÿÿÚÿþÿÿþÿßÿ¿ÿÿÿÿÿÿÿÿ¿÷ÿïÿÿßÿÿßý÷ÿïóÿÿÿÿÿþÿ½ÿÿÿÿÿÿÞÿýûÿßÿëûÿîÿÿ÷ÿÿÿûÿoûû{ïÿÿÿïûïßïÿýÿÿÿ¿÷¿ÿÿÿµýïÿÿÿûûþÿÿÿúÿÿß¾»ïÿÿûÿßÿÿÙ÷ÿÿÿÿÿíoïÿoïûÿÿÿ¿ÿÿûmÿÿ÷ÿÿ¿ÿûÿÿÿÿÿþúÿïÿþÿÿÿÿûÝÿÿûû÷÷ïû÷ÿÿÿûûÿÿ»ÿÿÿûÿÿÿÿûïÿßÿûÿÿÿþû½ÿÿÿÿ½ÿéÿÿÿßïóÿÿï÷ïÿÿÿÿûîÿÿïïßÿÿÿo½ÿÿßÿÿïÿ÷ÿÿÿÿÿ~÷÷ÿÿÿÿëÿïïïoûïÿßÿÿ÷ÿÿÿßÿÿÿÿûÿÿ÷÷ÿþÿÿÿÿûÿÿÿÿÿÿïêw÷ÿ{ÿ÷ÿý¿ß{ïÿ¿ÿ{ÿÿíÿöÿûÿÿÿûïïûÿ÷ÿÿÚïÿÿõÿÿÿÿoÿÿÿÿÿïÿúÿÿ¶ïÿ÷ÿÿÝÿÿ÷o~ëïþÿÿÿÿÿûÿÿ{ÿÿ÷ÿÿÿïÿûÿÿÿÿÿwëïÿÿÿÿûÿvûÿýÿÿ[ïzõ÷ÿÿÿýßÿõÿ~ýÿÿÿïÿïÿþÿÿ[ïûÿûßÿ÷ïÿ·ÿþß{÷kkï÷ï÷ÿÿÿÿ÷ÿÿóûÿÿÿÿþÿýÿöÿ÷ÿþóëïÿÿÿÿýþ_íÿîÿÿëÿÿ{ÿ¿ïÿûÿÿÿûÿÿ¿ïÿßûÿÿÿ¿ÿÿÿÿÿÿ]Ýÿ÷ÿ÷ûúÿßÿïïÿoÿÿÿÿÿÿ{¯¿ÿÿÿÿï÷ýwÿûýþûÞÿÿ^ÿÿÿÿÿÿ«×¿ýýïÿÿÿÿÿëïÿþÿ×ýÿÿïëïÿÿûÿ÷ÿ]ëÿÿúÿûÿÿÿÿÿÿ÷ÿû÷ÿÿÿÿýÿÿÿÿÿÿ×ÿÿûþÿ×þërÿÿÿÿ÷ÿûÿzÿÿÿûÿÿÿýÿÿÿÿ÷ÿÿïýÿÿÿÿ·ÿ÷ÿÿÿÿïÿîóïÿëÿÿïûÿûû÷ÿÿÿÿ~íïï¿ÿÿÿÿÿßÿÿÞÿÿ{ïÿïÿÿ¯÷÷W÷ÿÿûûoïÿÿÿÿÿßÿþoÿûÿÿïÿ·ÿÿ÷ïÿïÿûûÿ¿ïÿÿýûÿûwþÿÿþÿ×ÿÿþþÿûïûÿÿóÿþþÿÿ½ýúûÿÿÿÿÿÿûÿÿµÿ÷ýÿÿÿÿ×ïÿÿÿïþÿ¿ïúÿÿÿïÿÿÿûÿ÷ÿþ÷ûïÿÿÿÿÿÿßÿ«ÿÿÿÿßÿkÿïûÿÿÿÿûýÿÿþÿ÷ÿïÿûÿûßÿÿÿÿûÿÿïÿÿÿïïÿïÿïÿ{ÿÿÿÿ¿oÿïÿÿÿïïÿºï÷ÿÿýoÿÿÿÿÿûÿûÿÿúßþþÿ¯ïÿÿÿÿÿëÿûöÿûÿïoïÿÿöÿÿÿû{¿ÿÿûïÿÿÿûß¿ÿÿúÿïÿíïÿÿßïÿÿÿ¿ÿÿÿÿÿÿïÿßÿÿßÿÿÿÿûÿûûÿÿÿÿßûÿûûÿûÿÿÿÿÿ¿ïïîýÿÿÿþ¿ÿûÿ¾ÿÿÿÿµû÷ÿÿÿÿÿï÷ÿï·ÿÿïÿoïÿÿÿïÿÿïÿ½ßÿîýÿÿÿÿÿúÿÿÿ½¿ýÿúÿÿ÷ÿï÷ßÿÿþþ¯ÿûýûßëÿÿÿÿÿÿß{z½ÿ¯ýÿÿÿÿÿûûÿýÿÿûÿûýïÿÿ»÷ÿÿÿÿ_ûÿÿÿßÿÿÿûïÿßÿÿïûÿÿ»õÿÿÿÿÿÿúÿÿÿßûÿÿÿïÿï½ÿÿ÷ÿÿïÿÿÿÿûÿÿÿÿ¾ÿÿÿýûÿþïþÿ¿ß÷ûõëïÿÿþÿïÿÿÚ÷ÿëþÿÿÿÚ÷ûÿûÿ¾ïÿëÿ{ÿûúþÿÿûÝßïÛÿÿÿÿÿÿÿßÿÿwÿÿßÿý÷ï÷ßÿÿþïÿïÿþÿÿ¿³ÿïïûûÿ÷Óûÿÿöÿÿÿÿÿÿÿë¿ÿï÷ÿÿëÿïûÿÿûÿÿþ½ÿïïïßÿþÿÿÿÿÿÿÿÿÿjïÛÿÿ÷ÿÿÞþÿWÝwýÿÿßÿ·ÿÿÿÿûÿ×ÿßÿVýþÿÿÿÿÿÿûÿÿÿýó·ÿßÿÿßÿÿuõÿÿ¾ÿÿÿÿÿÿíÿïÿÿþÿÿÿÿÿÿÿÿ¿ýÿï÷ïÿÿûÿÿ÷ÿ·ÿ÷ÿÿÿÿÿÿÿÿÿß½×ý¿ÿÿÿþÿÿÚ÷ïÿßÿûÿÿÿëïÿÿïþýºoïïþÿúÿÿÿûÿ½ûÿÿÿÿß÷ëïÿzÿûÿÿÿÿ×ÿïÿïÿÿÿÿïýÿÿÿÿïïïÿÿÿþÿ¿½ÿúßÿÿÿº»wÿ¾ÿÿïÿÿþïÿÿzûÿÿÿÿÿÿßÿýÿýßÿýþïïïïÞÿÿþ{®ÿÿûÿû¹wÿÿÞÿ÷ÿßÿÿÿûÿþÿßÿþ¿ÿÿÿÿÿÿÿûÿÿÿÿý·ÿÿ¿Þÿÿÿ»ÿÞûÿ÷þÿûïÿýïïõ»ÿ÷þúÿÿÿÿÿþoõýÿÿöþoÿ{ÿÿÿÿÿö÷íÿûÿÿ{ÿïïïÿÿÿÿÿòÿïÿÿÿûûÿíÿÿûÿÿ¿{ßÿïÿÿÿþ÷ßýÿßûÿÿïßïÿÿÿýÿÿúïÿÿÿ÷½ûûûÿïÿëþÿûïÿïÿþÿÿûïÚýÚëÿ_÷ÿÿ÷Óïÿÿÿÿÿÿÿûÿßÿÿÿÿÿþïÿþÿ½ÿÿ»ÿÿïþþÿÿëÿïÿÿÿïÿ·ÿÿÿþÿïïÛÿÿûÿÿ÷ÿ¿Ýwÿýÿÿÿÿïïÿÿöïþÿÿÿþßýÿÿûÿíîïµÿÿûÿûëûÿ÷ÿÿÿÿÿÿÿ«ïÿÿýûÿ¿ÿÿÿýÿÿÿÿþþëÿúÿßÿÿßÿ{ÿÿ»ÿÿÿÿÿÿÿßÿÿÿÿ«ÿýïÿÿÿûÿÿýÿýÿÿÿÿý}ÿï½ÿëÿÿÿýÿÛë÷ÿÿßÿÿÿ÷ûÿÿÿÿÿÿÿÿïïýÿßÿÿûÿÿÿÿÿßÿïÿÿÕïþÿï¯ÿïÿßÿîÿÞÿÿÿÿÿÿÿÿªûÿßÿÝÿÿÛûÿþÿßÿÿÛïÿïÿÿûÿÿÿ÷ÿÛÝÿÿßÿÿÿÿ÷ýíëÿþýßÿÿÿÿÿßÿÿÿßÿûþÿÿïÿïÿÿ¿ÿûÿþ{}ÿÿÿÿÿÿû÷w¿ÿÿýï÷ëßÿÿ÷ÿÿÿïÿîÿÿÿÿÿÿÿÿûûÿÿÿßÿÿë÷îÿÿÿßÿõÿÿÿþ{ÿÿÿûßÿßÿÿïÿÿÿÿêÿ»½ÿÿ÷ûÿÿÿþÿÿÿïÿ¿ïþÿÿÿ¿ÛûUÿßßÿÓëÿÿÿÿþ÷ÿÞó¿ïÿ{ÿÿïÿïÿÓÿûÿûúßïóÿÿ{ûÿÿÿÿÿÿû÷ÿßïÿÿÿûëÿë¿ÿëþþÿÿÿÿÿÿ÷ÿÞûo÷ýÿÿÿÿßÓ½[ûïÿÿÿßÿ}ÿ¿ÿÿÿÿÿûµïÿÿ×ÿû{þïÿÿÿÿÿÿýïÿÿûÿ~ÿï{{ïÿêÿ÷ÿÿÿêÿïÿëÿÿ{ÿÿýëïïÿ_ÿ{ïÿÿÿúÿûÿÿÿï÷ÿÿÿû·ÿýþÿÿÿÿÿûîïÿþÿÿÿ÷ÿ{ÿ×ýÿÿÿÿïÿþÿÿþßóëýïÿÿÿÿþ¿îïÿÿÿÿÿÿûûÿÿûîþÿÿÿûÿÿÿ÷ïõþÿÿÿÿÿÿÿÿÿÿÿûÿ}ÿÿúÿÿÿöçûïÿzïÿÿïÿÿ~ëÿÿÿÿÿÿÿÿÿþþÿÿÿïûÿ{ÿÿÿïïÿÿ÷ÿÿ÷ïwûÿÿßÿÿ÷ÿoÿÿÿÿ½ÿÿþÿÿÿýÿソûÿÿÿÿûÿ÷ÿ÷ÿÿÿÿîÿoïï{ÿïÿÿûÿÿ¯ÿïïßÿÿïþ·ïÿë÷ÿûúÿý×ÿûÿþï{ÿÿ¿ÿÿ÷û½ÿÿÿÿÿÿþÿûÿÿÿÿÿWÿÿûûÿÿÿï÷÷ïÿúÿýï²~ÿûÿÿÿÞÿ×¾ÿëÿûßïÛÿýÿëÿÿûÿÿÿÿûûïïÿÿÿûûë÷ÿÿÿ÷õWÿÿ÷ÿÿïÿÿÿïÿÿïÿªÿýÿûÿÿêýÿýÿÿÿÿþÿûÿÿÿÿÿÿÿÿ¿ÿûÿ_ïÿÿûûÿwÿ÷ïÿÿÿÿïÿÿÿöíÿÓÿÿÿÿÿÿß×ÿÿúÿÿÿÿÿÿÿÿÿ÷ÿÿß¿ÿÿÿÿïÿÿ¿ïÿ¿ÿÿÿ¿ÿßïÿÿÿëÿ¿ÿÿëÿÿÿÿïûÿoÿÿÿÿþÿÿÿ÷ÿïÿßÿÿÿßÿÚûÿÿÿÿÿ÷ûûÿrßïïÿÿÿï¿ÿóÿïÿßÿÿÿÿÞïÿßÿýûÿïÿÿÿÿÿÿïÿýÿÿÿÿÿóÿÿÿßÿÿþþ{½ýÿÿÿÿëïÿÿßÿÿûÿ¿ÿûÿÿÿûñûÿ÷ÿÿ{ûÿÿÿÿÿ¿ÿÿÿÿ÷ÿûïÿÿÿõþÿÿ÷ÿû¿ÿÿÿÿÿÿÿÿ÷ÿÿß÷ÿÿÿûÿÿëÿï¿ÿÿÿýÿÿ÷÷ë÷ÿÿÿÿÿ÷ÿÿßÿëëûÛÿïÿ½ÿÿÿþÿÿûÿÿÿÿÿÿûÿíÿûïÿÿÿÿÿÿºûþïÿïßÿÿûïÿÿûýÿ¿ÿõÿÿÿûÿÿÞÿÿÿÿÚÿúÿÿ÷úÿïÿoÿÿÿÿÿÿÿÿÿÿÿ÷ÿûïßûÿ÷ÿÿÿ¿¾ÿÿ÷ÿ½ÿÿûÿÿÿÿöúÿÿoïïûßÿûÿÿúÿÿÿÿÿÿÿ×ÿïÿ÷ÿ÷÷ÿÿÿ¿ÿwÿûïÿ¿ÿÿÿÿz÷ïÿöÿÿÿÿëûÿÿÿïßÿÿþÿ½ÿÿ¯ÿÿÿö¿ÿÿîÿÿÿïþïïÿ×ýÿÿÿÿÒ¿ÿßûÿÿÿÿÿûÿûÿÿÿÿÿ÷ûÚÿÿÿ÷ÿÿÿÿ{ÿÿÿÿÿïûßÿ÷ßÖïÿÞÿÿÿÿ¾ÿÿ{ÿ÷ïÿÿÿÿÿÿóÿÿÿÿÿÿÿÿûïÿÿ÷ÿÿûÿÿíÿÿ}ßÿýûëý¿ûþÿÿúß[ÿÿÿïÿÿýÿþÿÿß½ïÿßÿÿÿÿÿÿÿ
?????
Re: Pic16f84 controle moteur tête pano maison
Tu as essayé une vitesse plus conventionnelle? (9600 bauds)tbthierry a écrit : J'ai configuré le bon port, 115200 bauds, 8 bits, pas de parité et là second problème, il parle de 1 start + 8 bits (pas de parite, pas de stop) et dans la config du tera term je n'ai que la possibilité de choisir stop (1 ou 2 bits) et pas d'info sur le start !
auriez-vous une petite idée ?
Pour le format, il y a toujours un start bit, c'est sans doute pour ça que tu n'a pas l'option de config.
Pour le reste, je peux pas aider beaucoup, le peu que je connais en microcontroleurs est avec des AVR et mes conaissance en électronique sont en dessous de tout
Phil.
Mes dernier panos sont sur mon blog!
Mes dernier panos sont sur mon blog!
Re: Pic16f84 controle moteur tête pano maison
Merci Amedee pour ta réponse,
J'me suis cassé la tête tout le wend ,tout ça est un peu compliqué pour moi aussi et je pense que j'aurais du poster sur un site d'électronique lol
En fait c'est vraiment louche, avec un oscilateur R/C et en baissant la fréquence de communication du tera term à 2400bauds:
- j'avais 2 coups sur 3 la bonne valeur affiché sur l'écran du PC
- un changement de durée de l'état haut de commande des servo 1 et 7 donc de leur rotation mais je comprend pas la corrélation entre ce que je tape et ce que ça fait ?????
après j'ai dessoudé un vieux quartz à 20Mhz pour remplacer la capa de l'oscillateur et là, même phénomène.
Sinon sur ton Arduino tu dois utiliser le même style de commande pour programmer ton AVR ?
TB
J'me suis cassé la tête tout le wend ,tout ça est un peu compliqué pour moi aussi et je pense que j'aurais du poster sur un site d'électronique lol
En fait c'est vraiment louche, avec un oscilateur R/C et en baissant la fréquence de communication du tera term à 2400bauds:
- j'avais 2 coups sur 3 la bonne valeur affiché sur l'écran du PC
- un changement de durée de l'état haut de commande des servo 1 et 7 donc de leur rotation mais je comprend pas la corrélation entre ce que je tape et ce que ça fait ?????
après j'ai dessoudé un vieux quartz à 20Mhz pour remplacer la capa de l'oscillateur et là, même phénomène.
Sinon sur ton Arduino tu dois utiliser le même style de commande pour programmer ton AVR ?
TB
Re: Pic16f84 controle moteur tête pano maison
J'ai essayé de comprendre un peu le code -- en faut le baud rate est important parce qu'il lit l'entrée série en même temps qu'il génère les pulses pour les servos...tbthierry a écrit : En fait c'est vraiment louche, avec un oscilateur R/C et en baissant la fréquence de communication du tera term à 2400bauds:
- j'avais 2 coups sur 3 la bonne valeur affiché sur l'écran du PC
- un changement de durée de l'état haut de commande des servo 1 et 7 donc de leur rotation mais je comprend pas la corrélation entre ce que je tape et ce que ça fait ?????
Pour ce qui est de la correlation, effectivement il lit 2 bytes, le premier le numéro de servo et le second sa position. mais dons il s'attend à ce que tu lui envoie du binaire, donc les deux bytes "0x01,0x80" pour positionner le servo 1 au 'milieu'.
Si tu tapes quelque chose à l'écran, ça risque d'être aléatoire
Mais ça peut fonctionner dans la mesure où il ne prend que les 3 bits de poids faible pour adresser le servo ("&= 0x7" dans le code)
Avec l'arduino c'est beaucoup plus simple parce quetbthierry a écrit : Sinon sur ton Arduino tu dois utiliser le même style de commande pour programmer ton AVR ?
- ce kit de développement t'offre une interface USB pour la programmation de l'AVR, qui se mue ensuite en console série, donc on peut directement dialoguer entre l'ordi et le contrôleur
- L'ATmega328 est d'un niveau beaucoup plus élevé que le PIC que tu utilises, il est doté d'une interface série pour la communication et il a 6 ports qui font du PWM ce qui permet de piloter 6 servos avec des commandes de bases
- Enfin avec les librairies existantes, on peut faire pratiquement tout en C/C++ sans devoir mettre ses mains dans le cambouis de l'assembleur
Phil.
Mes dernier panos sont sur mon blog!
Mes dernier panos sont sur mon blog!
Re: Pic16f84 controle moteur tête pano maison
déja merci d'avoir mis les mains dans le "cambouis"
mais, tu taperais quoi sur le tératerm pour avoir le servo N°0 en position milieu ? 080 ou 010000000 ou ...?
il y a encore un truc, j'ai utilisé un pic (servopic.hex en programme)et un max232, mais je vois qu'il parle de 2 cartes, une pour recevoir et piloter les 2 servos (ce que j'ai fait) et une pour la transmission des consignes (testserv.hex)!
là je me demande si j'ai pas fait la moitié du travail ???
Bon, terminé pour ce soir ,
Bonne soirée
Thierry
mais, tu taperais quoi sur le tératerm pour avoir le servo N°0 en position milieu ? 080 ou 010000000 ou ...?
il y a encore un truc, j'ai utilisé un pic (servopic.hex en programme)et un max232, mais je vois qu'il parle de 2 cartes, une pour recevoir et piloter les 2 servos (ce que j'ai fait) et une pour la transmission des consignes (testserv.hex)!
là je me demande si j'ai pas fait la moitié du travail ???
Bon, terminé pour ce soir ,
Bonne soirée
Thierry
Re: Pic16f84 controle moteur tête pano maison
Il faut envoyer 2 bytes.tbthierry a écrit :déja merci d'avoir mis les mains dans le "cambouis"
mais, tu taperais quoi sur le tératerm pour avoir le servo N°0 en position milieu ? 080 ou 010000000 ou ...?
Pour la sélection du servo comme dit plus haut, seuls les 3 bits de poids faible sont considérés, donc n'importe quel caractère qui se termine par '000' binaire fait l'affaire, un bon candidat est '0' (code ascii 0x30)
Pour le mettre au milieu, un caractère pas trop loin de 127 est a lettre 'z' (code ascii 0x7A)
Donc en envoyant '0z' sur le terminal ça devrait le faire...
... pour autant que les timings soient respectés ce qui ne m'a pas l'air évident
J'ai été voir le site en référence (ça aide), le second module permet de faire un test a partir d'un second PIC -- c'est donc une alternative au terminal et ce n'est en soit pas strictement nécessaire.tbthierry a écrit : il y a encore un truc, j'ai utilisé un pic (servopic.hex en programme)et un max232, mais je vois qu'il parle de 2 cartes, une pour recevoir et piloter les 2 servos (ce que j'ai fait) et une pour la transmission des consignes (testserv.hex)!
là je me demande si j'ai pas fait la moitié du travail ???
Phil.
Mes dernier panos sont sur mon blog!
Mes dernier panos sont sur mon blog!
Re: Pic16f84 controle moteur tête pano maison
J'ai essayé 0z sur le tera term mais pas d'amélioration, je pense qu'il y a un problème de timming et avec mon scop 100% analogue je vais pas aller très loin .... faut que je trouve un quartz à 4.6Mhz ....
MErci et @+
Thierry
MErci et @+
Thierry
Re: Pic16f84 controle moteur tête pano maison
Salut, tbthierry excuses pour n'avoir pas pu suivre, ... je confirme Amedee, que l'Arduino est le plus simple pour piloter toutes sortes de bidouilles et que tu trouves sur le net plein d'applications et de vidéos youtube de pilotage de servos ou autres.
Re: Pic16f84 controle moteur tête pano maison
il y a pas problèmes Phil, je crois que je vais suivre vos conseils
Thierry
Thierry