Aller au contenu


benjamin.b

Inscrit(e) (le) 02 juil. 2012
Déconnecté Dernière activité juin 12 2013 07:27
-----

Sujets que j'ai initiés

Programmation PIC langage C

07 juin 2013 - 07:16

Bonjour,
Dans le cadre d'un projet de robot tondeuse, je me suis lancé dans la programmation des PIC.(Je travaillais jusqu'alors sur Arduino).
Je vais conserver l'Arduino et confier la gestion des moteurs à un ou des PIC( Commande variateur brushless + odométrie et régulation vitesse moteur de coupe etc ..).
J'ai donc glané des informations sur le net et me suis lancé dans des premiers essais de programmation avec un PIC16f84(je les ai de disponibles sous la main)et le logiciel MPLAB et le compilateur CCC5x.

J'ai trouvé beaucoup d'informations sur le net mais souvent, le compilateur ou logiciel de programmation n'est pas indiqué !!! J'ai donc des soucis de compatibilité de programme !!!
exemple d'un bout de code qui fonctionne avec MPLAB et CC5xsuivi d'un bout de code qui ne fonctionne pas (logiciel ou compilateur innaproprié, j'en ai essayé plusieurs avec MPLAB):

#include "define.h"
#include "interrupt.c"
#include "timer.c"
#pragma config WDTE=off, FOSC=HS

#pragma bit P1 @ PORTB.0 // poussoir gauche
#pragma bit P2 @ PORTB.1 // poussoir droite

void main(void)
{
//TRISC=0x80;
TRISB=0x3; // port B0 et B1 en entrée ( poussoirs )
PORTB=0;
setupTMR0(); // configuration et mise en service du timer 0
nbpas=0; // nbpas = 200 x 83,5 µS = 16,7 mS
temps=0; // cette variable est incrémenté toute les 16,7 mS ( interrupt )
consigne=15; // consigne de position au départ ( milieu )
// la consigne peut varier de 6 à 25
// soit de (6x87,5 µS)=0,5 mS à (25x87,5 µS)=2,18 mS
copiecons=15; // copie pour la routine d'interruption
T0IE=1; // validation des interruptions pour timer 0
GIE=1; // mise en service globale des interruptions
while(1)


//exemple de code que je n'arrive pas à compiler//

#include <16F877.H>

#fuses HS,NOWDT,NOPROTECT, PUT, NOLVP

#use delay(clock=20000000) // A configurer en fonction de votre quartz
// il se peut que des tempos soit à revoir.

#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, parity=N, bits=8)


#define all_out 0x00; /* port en sortie*/
#define all_in 0x01; /* port en entree*/

#define SET PIN_B7 // Definition de la touche SET

robot filoguide

03 mai 2013 - 08:53

Bonjour a toutes et tous.

J'ai realise un protyte de robot avec de vieux mecano et une carte arduino .
Il se deplace actuellement de facon aleatoire avec mesure de distance a ultrason et detecteur tor.
Je souhaite rajouter la detection et suivi de fil(filoguidage).
J'ai realise un genrateur de sinusoide de 15khz et d'amplitude +/- 9v et d'une intensite de l'orde de 1A.
Je bute un peu sur la partie detection. J'ai fait des tests avec des bobines,des selfs, et j'obtiens que des signaux de faible intensite et n'ayant pas une forme sinusoidale !(via un oscillo)
J'essai de faire un detecteur de type LC en amplifiant le signal et le redressant pour obtenir une tension continue prportionnele a la distance.Je vais faire des essais avec des barreaux de ferite bobines.
me suis inspire d'un livre d'il y a 10 ans et je me demande si je ne fais pas fausse route ?(signal'frequence ,systeme de detection)
Tout ceci devra marcher en exterieur avec une longueur de fil de l'ordre de 200m(delimitation pour une future tonduse autonome)
Si quelqu'un a une idee ou une realisation fonctionnant