- Robot Maker
- → Contenu de babylone_59
Contenu de babylone_59
Il y a 28 élément(s) pour babylone_59 (recherche limitée depuis 09-juin 13)
Par type de contenu
Voir pour ce membre
#11210 Programme 16F877A
Posté par babylone_59 sur 21 mai 2008 - 05:44 dans Electronique
merci
#11208 Programme 16F877A
Posté par babylone_59 sur 21 mai 2008 - 05:07 dans Electronique
Il faut le faire sous Mplab avec un compilateur C comme Hi Tech Picc mais je n'arrive pas a configurer Mplab avec HI tech Picc donc je fais d'abord mon prog en attendant de trouver un PC ou sa tourne bien avec un prog de PIC.voila voila
#11206 Programme 16F877A
Posté par babylone_59 sur 21 mai 2008 - 03:32 dans Electronique
--Déclaration
#define IN1 pin_A0
#define capteur_Dr RB1
#define capteur_Ga RB2
#define capteur_Ha RB3
#define moteur_Ga_s1 RB4
#define moteur_Ga_s2 RB5
#define moteur_Dr_s1 RB6
#define moteur_Dr_s2 RB7
#define moteur_Ha_s1 RC0
#define moteur_Ha_s2 RC1
#define tt_droit()
{
moteur_Ga_s1(av,100);
moteur_Dr_s1(ar,100);
}
#define a_gauche()
{
while (capteur_Dr!=0)
{
moteur_Ga_s2(av,100);
moteur_Dr_s1(ar,100);
}
}
#define a_droite()
{
while (capteur_Ga!=0)
{
moteur_Ga_s1(av,100);
moteur_Dr_s2(ar,100);
}
}
#define demi_tour()
{
while(capteur_ga!=0) and (capteur_ga!=0)
{
moteur_Ga_s2(av,100);
moteur_Dr_s1(ar,100);
}
}
--initialisation (pour configurer les bits des ports en entrée/sortie, etc):
void Init(void)
{
ADCON1 = 0x07;
GIE=1; PEIE=1; // Autorise les interruptions
OPTION=0b10000001; // Configure tmr0 pour 64µs par bit
TRISB=0b11100000;
TRISC=0b00111111;
TMR0=0; // Confiqure la valeur de départ du registre TMR0
T0IE=1; // Active l'interruption de débordement du registre TMR0
capteur_Dr =0 ;
capteur_Ga =0 ;
capteur_Ha =0 ;
moteur_Ga_s1= 1;
moteur_Dr_s1= 1;
moteur_GA_s2= 0;
moteur_Dr_s2= 0;
moteur_Ha_s1=0 ;
moteur_Ha_s2=0 ;
}
-- prog principal:
main()
{
Init();
while(1) // Répéter toujours
{
if(capteur_Dr==1)and(capteur_Ga==1)demi_tour();
else if(capteur_Dr ==1)a_gauche();
else if(capteur_Ga==1) a_droite();
else tt_droit();
}
}
Par contre je ne suis pas sur qu'avec (av, 100) sa fonctionne.
Je doit mettre quoi (1, 100) non ?
Juste ce petit bout se code peut me faire éviter les obstacles?
#11203 Programme 16F877A
Posté par babylone_59 sur 21 mai 2008 - 12:43 dans Electronique
Ou et comment sont elles définies?
De meme il faut définir que pre==1 et abs==0?
Pour commencer j'aimerai juste que mon robot évite les obstacles.
#11199 Programme 16F877A
Posté par babylone_59 sur 20 mai 2008 - 10:06 dans Electronique
--Déclaration
#define IN1 pin_A0
#define capteur_Dr RB1
#define capteur_Ga RB2
#define capteur_Ha RB3
#define moteur_Ga_s1 RB4
#define moteur_Ga_s2 RB5
#define moteur_Dr_s1 RB6
#define moteur_Dr_s2 RB7
#define moteur_Ha_s1 RC0
#define moteur_Ha_s2 RC1
--initialisation (pour configurer les bits des ports en entrée/sortie, etc):
void Init(void)
{
ADCON1 = 0x07;
GIE=1; PEIE=1; // Autorise les interruptions
OPTION=0b10000001; // Configure tmr0 pour 64µs par bit
TRISB=0b11100000;
TRISC=0b00111111;
TMR0=0; // Confiqure la valeur de départ du registre TMR0
T0IE=1; // Active l'interruption de débordement du registre TMR0
capteur_Dr =0 ;
capteur_Ga =0 ;
capteur_Ha =0 ;
moteur_Ga_s1= 1;
moteur_Dr_s1= 1;
moteur_GA_s2= 0;
moteur_Dr_s2= 0;
moteur_Ha_s1=0 ;
moteur_Ha_s2=0 ;
}
-- prog principal:
main()
{
Init();
while(1) // Répéter toujours
{
action1();
action2();
...
}
}
j'ai quelques petites questions:
Au niveau des déclarations, je suis obligé de mettre tout sa:
ADCON1 = 0x07;
GIE=1; PEIE=1; // Autorise les interruptions
OPTION=0b10000001; // Configure tmr0 pour 64µs par bit
TRISA=0b00000011; //en entree c 1
TRISB=0b11111111;
TRISC=0b11011111;
TMR0=0; // Confiqure la valeur de départ du registre TMR0
T0IE=1; // Active
ou alors je n'en ai pas l'utilité?
Aussi au niveau du programme principal
je laisse mon while(1) pour boucler a l'infini mais au niveau ds actions 1 ... je fais quoi?
si je veux faire un :
while capteur_Ga=1 then moteur_Ga_sens_2=1 and moteur_Ga_sens_1=0
or while capteur_Dr=1 then moteur_Dr_sens_2=1 and moteur_Dr_sens_1=0
or while capteur_Ha=1 and capteur_Ga=1 and capteur_Dr=1 then moteur_Ha_sens_1=1
...
comment l'integrer a mon programme principal?
Merci
#11194 Programme 16F877A
Posté par babylone_59 sur 19 mai 2008 - 10:04 dans Electronique
En tout cas merci de votre aide
A bientot
#11192 Programme 16F877A
Posté par babylone_59 sur 19 mai 2008 - 09:05 dans Electronique
Pour l'instant j'ai tout ce qui faut mais rien n'est connecté au pic.
L'utilisation d'un port et mieu qu'un autre port?
#11188 Programme 16F877A
Posté par babylone_59 sur 18 mai 2008 - 10:35 dans Electronique
J'ai 2 capteurs a l'avant et 2 moteurs.
#11183 Programme 16F877A
Posté par babylone_59 sur 16 mai 2008 - 05:22 dans Electronique
J'aimerai utiliser un PIC 16F877A pour rendre autonome mon robot.
Quelqu'un aurait t'il un programme a m'envoyer ( en C si possible car l'assembleur n'est pas ma tasse de thé) afin que je vois comment il est fait et essayer un peu de comprendre le fonctionnement?
Merci d'avance
Cordialement
Julien
#10865 probleme PIC 16F877A
Posté par babylone_59 sur 15 avril 2008 - 09:48 dans Programmation
En tout cas merci de votre aide.
A bientot
Julien
#10858 probleme PIC 16F877A
Posté par babylone_59 sur 14 avril 2008 - 07:58 dans Programmation
Mais des que j'en ai j'essai. Vous pensez que c'est a cause de sa??
Sinon qu'es ce que ça pourré etre d'autre?
Le PIC ne possede pas une horloge interne?
Que faire pour la mettre en oeuvre ( au niveau programme et au niveau montage)?
Merci
#10855 probleme PIC 16F877A
Posté par babylone_59 sur 14 avril 2008 - 06:44 dans Programmation
Pourquoi l'absence de fusible peut creer un probleme?
voici mon montage:
Seule les valeurs des resistances change un petit peu.
#10847 probleme PIC 16F877A
Posté par babylone_59 sur 14 avril 2008 - 11:22 dans Programmation
Par contre j'ai bien mon quartz de 20Mhtz avec ses condo de 33pF.
Et j'ai bien mes 2 condo pour mon régulateur.
Comment verifier si mon quartz fonctionne correctement?Normalement il est neuf donc il doit etre bon mais bon on ne sais jamais.
Merci
#10845 probleme PIC 16F877A
Posté par babylone_59 sur 14 avril 2008 - 10:17 dans Programmation
J'aimerai programmer un PIC 16F877A.
Tout d'abord pour verifier si mon programmateur fonctionne correctement je veux essayer de programmerle pic pour faire clignotter des leds sur les ports B et D.
Donc j'ai fais mon programme, j'ai programmer mon pic.Jusque la pas de problemes.
Ensuite je mets mon PIC sur ma plaque d'essai et la rien ne se passe, on dirai que mon PIC n'est pas programmer.Pourtant mon programme est bien dessus.
Donc soit mon montage ou soit mon programme n'est pas bon .
Ou alors derniere solution je crois que mon PIC est programmer est ce n'est pas le cas.
Voici mon programme.Si quelqu'un peut l'essayer et me dire si sa fonctionne chez lui, ce serai un probleme de moin a verifier. Merci
;********************************************************************** ; * ; Test led sur un 16F877A - 20 Mhz * ; * ; * ; * ;********************************************************************** ; * ; Filename: led.asm * ; Date: 25/06/00 * ; File Version: 1 * ; * ; Author: Julien * ; Company: Fribotte * ; * ; * ;********************************************************************** ; * ; Files required: rien * ; * ; * ;********************************************************************** ; * ; Notes: Quartz 20 Mhz * ; * ; * ;********************************************************************** list p=16F877A ; list directive to define processor #include <p16F877A.inc> ; processor specific variable definitions __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC ; Pas de code protege, pas de watch hdog timer, delai de demarrage, horloge HS. ;********************************************************************** ; * ; Variables * ; * ; * ;********************************************************************** ; Variable de temporisation tempo50µ EQU 0x20 ; Variable tempo 50 µs tempo10ms EQU 0x21 ; Variable tempo 10 ms tempo1s EQU 0x22 ; Variable tempo 1s ;**************************************************************** DEBUT ORG 0x000 ; processor reset vector GOTO main ; go to beginning of program ;********************************************************************** ; * ; Interruption Timer * ; * ; * ;********************************************************************** ORG 0x0005 ; interrupt vector location ; Ici on s'en sert pas ! RETFIE ; return from interrupt ;********************************************************************** ; * ; Programme Main * ; * ; * ;********************************************************************** main ;***** initialisations CALL InitIO ; On intialise les ports d'E/S (A et B) ;***** boncle infinie boucle MOVLW D'255' MOVWF PORTD MOVLW D'255' MOVWF PORTB CALL Wait1s CLRF PORTD CLRF PORTB CALL Wait1s GOTO boucle ;***** Attente de 1 s (exactement 1.00204 s) Wait1s MOVLW D'99' ; 99 fois MOVWF tempo1s ; stockage dans la variable tempo50µ T1sboucle CALL Wait10ms DECFSZ tempo1s,1; décremente et test GOTO T1sboucle; on boucle tant que <>0 RETURN ;***** Attente de 10 ms (exactement 10.02 ms) Wait10ms MOVLW D'198' ; 198 fois MOVWF tempo10ms; stockage dans la variable tempo50µ T10msboucle CALL Wait50µs DECFSZ tempo10ms,1; décremente et test GOTO T10msboucle; on boucle tant que <>0 RETURN ;***** Attente de 50 µs (exactement, en comptant le temps d'appel) Wait50µs NOP NOP MOVLW D'81' ; 81 fois MOVWF tempo50µ; stockage dans la variable tempo50µ T50µsboucle DECFSZ tempo50µ,1; décremente et test GOTO T50µsboucle; on boucle tant que <>0 0.2*3=0.6 µs en tout RETURN ;********************************************************************** ; * ; Initialisation des ports d'E/S * ; * ; * ;********************************************************************** InitIO CLRF PORTD ; Initialise le port D CLRF PORTB ; Initialise le port B BSF STATUS, RP0; Bank 1 selectonnee MOVLW 0x0 ; Port RD7-RD0 en sortie MOVWF TRISD ; / MOVLW 0x0 ; Port RB7-RB0 en sortie MOVWF TRISB ; / BCF STATUS, RP0; Bank 0 selectonnee RETURN ;********************************************************************** ; * ; Fin * ; * ; * ;********************************************************************** END ; directive 'end of program'
et voici le code HEX
0000: 2806 3FFF 3FFF 3FFF 3FFF 0009 2023 30FF .ÿÿÿÿ.#ÿ 0008: 0088 30FF 0086 2010 0188 0186 2010 2807 ˆÿ†.ˆ†.. 0010: 3063 00A2 2016 0BA2 2812 0008 30C6 00A1 c¢.¢..Æ¡ 0018: 201C 0BA1 2818 0008 0000 0000 3051 00A0 .¡....Q 0020: 0BA0 2820 0008 0188 0186 1683 3000 0088 ..ˆ†ƒ.ˆ 0028: 3000 0086 1283 0008 3400 3400 3FFF 3FFF .†ƒ...ÿÿ 0030: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF ÿÿÿÿÿÿÿÿ
J'espere que vous pourez me donner un petit coup de main
Merci d'avance
Julien
#10598 Probleme configuration IC-prog
Posté par babylone_59 sur 11 mars 2008 - 01:22 dans Programmation
Pour windows XP/2000/NT il faut rajouter un fichier dans le meme repertoire que IC-prog.
Ce fichier est en fait le driver.
Voila, mais bon maintenant c'est une autre probleme on dirait que mon PIC ne se programme pas, pourtant tout ce passe correctement.
Si quelqu'un peut m'aider
#10597 Probleme configuration IC-prog
Posté par babylone_59 sur 10 mars 2008 - 09:07 dans Programmation
Voila je débute en programmation de PIC et j'aimerai utiliser IC-prog.
Je l'ai donc télécharger mais impossible de le configurer.
erreur1: une erreur est survenue (le fichier spécidier est introuvable) Pendant le lancement du driver
erreur2: Privileged instruction
Faut t'il installer un drivers ou autres composant pour windows XP?
Si quelqu'un peut m'aider a résoudre ce probleme.
Merci d'avance
Julien
#10469 Bien choisir ses capteurs
Posté par babylone_59 sur 07 février 2008 - 06:55 dans Electronique
Je pense que je vais m'orienté vers une del et recepteur infrarouge, beaucoup moins cher que le telemetre.
Ensuite j'aurais une question a poser en ce qui concerne le quartz? 20MHz ça va poser un probleme??
#10468 Une question
Posté par babylone_59 sur 07 février 2008 - 06:25 dans Electronique
J'ai une petite question sur les quartz moi aussi
Vous dites que les PIC possede un quartz interne!Je travail avec le 16F877a.
Comment effectuer mon branchement??
Que me conseillé comme fréquence de quartz pour mon robot?
Merci
#10461 Bien choisir ses capteurs
Posté par babylone_59 sur 06 février 2008 - 09:21 dans Electronique
cliquez ici
Le probleme c'est qu'il n'y a pas la liste des composant et l'implantation;
Si quelqu'un a le magazine peut -il me donner un coup de main
SVP
Merci
#10449 Bien choisir ses capteurs
Posté par babylone_59 sur 05 février 2008 - 09:17 dans Electronique
J'ai trouvé ça comme capteur, un peu cher pour ce que c'est effectivement mais bon:
Voici le lien :
capteur SHARP
C'est de celui-ci que vous parlez précedement??
Combien m'en faudra t'il ?A l'avant un seul suffit ou deux c'est mieux??Ensuite a l'arriere c'est necessaire??
#10443 Bien choisir ses capteurs
Posté par babylone_59 sur 05 février 2008 - 07:44 dans Electronique
J'aimerai utiliser des capteurs pour éviter des obstacles mais je ne sais pas quoi choisir.
Que me conseillez vous, capteur infrarouge ou télémetres infrarouge??
Quel est le plus facile a mettre en place, le plus efficace ...
MERCI
#10415 Les moteurs pas à pas
Posté par babylone_59 sur 31 janvier 2008 - 11:06 dans Electronique
#10412 Les moteurs pas à pas
Posté par babylone_59 sur 30 janvier 2008 - 10:13 dans Electronique
Voila j'ai trouvé ce type de moteur pour mon robot.Ce sont des moteurs pas a pas bipolaire et voici les spécifications données:
100 pas/tour - 5 Volts - 5Watts.
Résistance : 3 Ohms.
Pensez vous qu'il seront assez puissant pour déplacer mon robot (Poids max 1 Kg)?
Avec un moteurs pas a pas, un réducteurs est t'il encore necessaire pour faire tourner les roues??
#10401 Les moteurs pas à pas
Posté par babylone_59 sur 29 janvier 2008 - 01:52 dans Electronique
Je dois controler 2 moteurs pas à pas bipolaire (4fil)
J'ai fais un petit tour sur le net et j'ai vu qu'il était possible de faire un carte de commande avec un MC3479.
Par contre je n'est pas trouver de schéma éléctrique alros si quelqu'un a de bonne adresse a me donner??
Par la suite j'aimerai automatiser mon robot a l'aide d'un 16f877a. J'aimerai savoir si ma carte de commande va contenir le pic ou si alors se sera 2 cartes séparées?
Merci d'avance
#10396 Les moteurs pas à pas
Posté par babylone_59 sur 28 janvier 2008 - 04:35 dans Electronique
Voila j'aimerai avoir quelques renseignements sur les moteurs pas à pas;
j'aimerai construire un robot a l'aide de 2 moteurs pas a pas que j'ai récupérer dans une imprimante.
J'aimerai par la suite programmer se robot a l'aide d'un PIC 16F877A mais tout d'abord j'ai quelques questions.
Que faut t'il pour controler ce type de moteurs (carte d'alimentation, variateur de vitesse ...)???
Si quelqu'un peut m'expliquer rapidement ou à des schémas electrique pour ce type de moteur?
Merci d'avance
julien
- Robot Maker
- → Contenu de babylone_59
- Privacy Policy