Pic16f84 controle moteur tête pano maison

Pour présenter et discuter de vos astuces de bricoleur sur tout le matériel utile aux panoramiques
Répondre
tbthierry
Messages : 57
Inscription : 5 nov. 2010, 20:35 33

Pic16f84 controle moteur tête pano maison

Message par tbthierry »

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
phil12
Messages : 117
Inscription : 23 mars 2010, 12:56 37

Re: Pic16f84 controle moteur tête pano maison

Message par phil12 »

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 ...
tbthierry
Messages : 57
Inscription : 5 nov. 2010, 20:35 33

Re: Pic16f84 controle moteur tête pano maison

Message par tbthierry »

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
tbthierry
Messages : 57
Inscription : 5 nov. 2010, 20:35 33

Re: Pic16f84 controle moteur tête pano maison

Message par tbthierry »

Bonjour,
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;
	}
}


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 :pleur4:
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 :amen:
Thierry
tbthierry
Messages : 57
Inscription : 5 nov. 2010, 20:35 33

Re: Pic16f84 controle moteur tête pano maison

Message par tbthierry »

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:

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÷ïÿöÿÿÿÿëûÿÿÿïßÿÿþÿ½ÿÿ¯ÿÿÿö¿ÿÿîÿÿÿïþïïÿ×ýÿÿÿÿÒ¿ÿßûÿÿÿÿÿûÿûÿÿÿÿÿ÷ûÚÿÿÿ÷ÿÿÿÿ{ÿÿÿÿÿïûßÿ÷ßÖïÿÞÿÿÿÿ¾ÿÿ{ÿ÷ïÿÿÿÿÿÿóÿÿÿÿÿÿÿÿûïÿÿ÷ÿÿûÿÿíÿÿ}ßÿýûëý¿ûþÿÿúß[ÿÿÿïÿÿýÿþÿÿß½ïÿßÿÿÿÿÿÿÿ

?????
Avatar de l’utilisateur
Amedee
Animateur KRPano
Messages : 2555
Inscription : 7 oct. 2008, 9:02 09

Re: Pic16f84 controle moteur tête pano maison

Message par Amedee »

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 ?
Tu as essayé une vitesse plus conventionnelle? (9600 bauds)
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 :rouge:
Phil.
Mes dernier panos sont sur mon blog!
tbthierry
Messages : 57
Inscription : 5 nov. 2010, 20:35 33

Re: Pic16f84 controle moteur tête pano maison

Message par tbthierry »

Merci Amedee pour ta réponse,

J'me suis cassé la tête tout le wend :hurt4: ,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
Avatar de l’utilisateur
Amedee
Animateur KRPano
Messages : 2555
Inscription : 7 oct. 2008, 9:02 09

Re: Pic16f84 controle moteur tête pano maison

Message par Amedee »

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 ?????
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...

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)
tbthierry a écrit : Sinon sur ton Arduino tu dois utiliser le même style de commande pour programmer ton AVR ?
Avec l'arduino c'est beaucoup plus simple parce que
- 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!
tbthierry
Messages : 57
Inscription : 5 nov. 2010, 20:35 33

Re: Pic16f84 controle moteur tête pano maison

Message par tbthierry »

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
Avatar de l’utilisateur
Amedee
Animateur KRPano
Messages : 2555
Inscription : 7 oct. 2008, 9:02 09

Re: Pic16f84 controle moteur tête pano maison

Message par Amedee »

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 ...?
Il faut envoyer 2 bytes.

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 :]
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 ???
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.
Phil.
Mes dernier panos sont sur mon blog!
tbthierry
Messages : 57
Inscription : 5 nov. 2010, 20:35 33

Re: Pic16f84 controle moteur tête pano maison

Message par tbthierry »

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
phil12
Messages : 117
Inscription : 23 mars 2010, 12:56 37

Re: Pic16f84 controle moteur tête pano maison

Message par phil12 »

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.
tbthierry
Messages : 57
Inscription : 5 nov. 2010, 20:35 33

Re: Pic16f84 controle moteur tête pano maison

Message par tbthierry »

il y a pas problèmes Phil, je crois que je vais suivre vos conseils ;-)

Thierry
Répondre

Revenir à « Rayon bricolage des panoramistes »