Aller au contenu


dias

Inscrit(e) (le) 08 sept. 2010
Déconnecté Dernière activité oct. 13 2010 06:28
-----

Sujets que j'ai initiés

Capteur IR et programmation

08 septembre 2010 - 05:56

Bonjour,


Tout d'abord une petite presentation de la base sur laquel je travaille.
Voici mon probleme, je suis actuellement en train de développer mon robot basé sur la carte présenté par totofweb a cette adresse : totofweb
Et j'ai continué avec cette carte jusqu'a arrivé au resultat de son Servobot

Une fois arrivé la, je me suis dis cool, mais un robot filoguidé, c'est pas encore vraiment un robot, donc je me suis tourné vers le site Irbot , afin de rendre la bete un peu plus autonome et enfin coupé son fil qu'il avait a la patte, enfin roue :D

J'ai donc fait l'assemblage du radar IR en suivant le schema du site http://www.robot-mobile-irbot.com/6-radar-infrarouge-robot.htm
Malheureusement ne disposant pas du module sharp, et apres avoir ete faire un tour chez l'epicier en électronique, je me suis procuré un module TSOP1738 pour remplacer le sharp.

J'assemble le tout et test le programme, mais il ne me detecte que la led du coté droit, je reverifie schema cablage et programme et tout est ok, mais toujours que du coté droit, je me dis donc qu'a cela ne tienne et je change les pins des 2 LED IR (IR_droit relier a la led de gauche et vice versa) et la il ne detecte toujours que IR droit (donc cela marche bien avec la led gauche).Pourtant les 2 diodes passent bien émission.

Pour continuer dans mes tests, je decide donc de débrancher la led relier a la pin IR droit, afin de verifier qu'il n'y ait pas d'interference, et cela ne marche pas (aucune detection)... je decide donc de debrancher la led relié a IR gauche et cela ne marche pas non plus (aucune detection).

Je decide de tester avec une telecommande, et la le dispositif m'affiche bien une detection IR droit et IR gauche (généré par la telecommande).


Bref je ne comprends vraiment pas d'ou peut venir mon probleme?
-Probleme lié au capteur different de celui utilisé par l'auteur original?
-Problème de programme?
-Autre probleme?

Je me permets de poster le programme que j'ai modifier en c a partir de celui d'Irbot :

//*************************************
// CCS Compiler
// irb11 - Premiers pas d'irbot
// Modification Test radar
// Auteur : HEILIG Yves
//Modification Dias
//*************************************

#include <16f877A.h>
#fuses HS,NOWDT,NOPROTECT
#use delay(clock=20000000)

#use rs232(baud=115200, xmit=PIN_C6, rcv=PIN_C7)
//******************
// DEFINE
//******************

#define	TIME 4			// TIMER=3 --> 256-3=253 pas

#define VAL_18MS 360		// 360*50=18000µs
#define VAL_AV 40		// 40*50 =2000µs
#define VAL_AR 20		// 20*50 =1000µs
#define VAL_AVP 32		// 32*50 =1600µs
#define VAL_ARP 28		// 28*50 =1400µs
#define VAL_STOP_D 30		// 30*50 =1500µs
#define VAL_STOP_G 31
#define AV 1
#define TG 2
#define TD 3
#define AR 4
#define ROTG 5
#define ROTD 6
#define STOP 0
#define GA 0
#define DR 1

#define LED_IR_G PIN_B3		// led ir gauche
#define LED_IR_D PIN_B4		// led ir droite
#define REC_IR PIN_B7		// récepteur ir
#define LED_G PIN_A2		// led signalisation gauche
#define LED_D PIN_A1		// led signalisation droite

#define SIZE 7			// taille de la table tab_marche

int16 CPT_18MS;

void init_timer () {

	set_timer0(TIME);
 	setup_counters(RTCC_INTERNAL,WDT_18MS);
	enable_interrupts(INT_RTCC);
	enable_interrupts(GLOBAL);
}

int1 radar (led) { 		// émission d'un train de 50 impulsions à 38Khz
				// durée de l'émission 50*26µs=1300µs
	int i;
	int c=0;

	for (i=0;i<50;i++) {
	switch (led) {
	case 2 : // LEDG
		output_high(LED_IR_G); //eteint
		delay_us(13);
		output_low(LED_IR_G); //allume

		break;
	case 4 : // LEDD
		output_high(LED_IR_D);//eteint
		delay_us(13);
		output_low(LED_IR_D);//allume

		break;
	}
	delay_us(14);
	if (input(REC_IR)==0) c++;
	}
	if (c>45) return 1;
   	// on considère qu'il y a eu retour
	else return 0;
}



void ir () {			// radar ir
	int i;

	output_low (LED_G);	// éteint LEDG
	output_low (LED_D);	// étient LEDD

	if (radar (2)) {
	output_high(LED_G);	// allume LEDG signalisation

   printf ("Radar gauche\n");
	}
	if (radar (4)) {
	output_high(LED_D);	// allume LEDD signalisation

    printf ("Radar droite\n");
	}
//	}

}





//**********************
// Programme principal
//**********************

main()  {
init_timer();
	while (TRUE) { // boucle sans fin
	ir();
	delay_ms(10);
	}

}

Merci pour l'aide que vous pouvez me procurer

Presentation de Dias

08 septembre 2010 - 05:31

Bonjour

-Votre nom : Vivien

-Votre age : 27 ans

-La ville où vous résidez : Le Havre (76)

-Votre formation ou celle en cours si vous êtes étudiants : Bac STI electrotech, puis BTS Electrotech et enfin formation bac +4 admin reseau

-Votre travail ou celui que vous aimeriez accomplir plus tard : Admin reseau

-Vos passions : Informatique, Electronique, Radiocommunication et autre Geekerie

-Le robot ou les robots que vous possedez : en cours de realisation

-Les concours robotique auxquels vous participez : Aucun, et j'en ai pas vu dans le nord de la france :'(

-Qu'est ce que vous aimez dans la robotique : le melange d'informatique, electronique et truc de geek :D

-Qu'est ce que vous n'aimez pas : les tomates.


-Divers, tout ce dont vous voulez nous faire partager de vos passion et de votre vie, uniquement si vous êtes bavard!


Bon alors je ne suis pas trop bavard, mais j'adore lire, c'est pour cela que depuis quelques temps je fouine sur ce forum a la recherche d'informations utiles. Comme je suis en rade sur un point pour la construction de mon robot en ce moment je me suis decider a m'inscrire afin de poser ma question et pourquoi pas faire beneficier les autres de ma modeste experience.

Sinon il manque je trouve une question sur le formulaire d'inscription, a savoir quel robot vous a marquer (cinema, serie, ou livre), pour ma part je repondrais bleuet de FX effet speciaux, meme si les star wars, ainsi que d'autres series m'ont marqué, je pense que le petit bleuet reste mon preferé :D

A bientot sur le forum