All pastes #486429 Raw Edit

Mine

public c v1 · immutable
·published 2007-05-13 21:56 UTC
rendered paste body
//OS permettant l'axxage de Hemisson face à un objet noir sur fond blanc et le suivi de celui ci#include "hemisson.h" //Inclusion de l'header permettant l'acces aux fonctions basiques de Hemisson#include "hemlincam.h" //Inclusion de l'header permettant l'acces aux fonctions de la caméravoid main(void){int i, DebutNoir = 0;   // Initialisation du Hemisson   hemisson_init();   // On arrète ci-dessous tous les fonctionnement par défaut inutile   // Arrêt de la lecture automatique des IRs	hemisson_config_auto_refresh_sensors(MANUAL);   // Arrêt de la lecture automatique de la télécommande TV	hemisson_config_auto_refresh_tv_remote(DISABLE);   // Arrêt de la gestion par RS232 du robot    hemisson_config_rs232_contro²   l(DISABLE);   // Arrêt de la gestion par télécommande du robot	hemisson_config_tv_remote_control(DISABLE);   // Initialisation module, attente apres la mise sous tension du robot	HemLinCam_Init();   // On teste la presence du module HemLinCam sinon on sonne 2s   if (HemLinCam_Read_Version() != 255)      {      // Procedure de reglage de la durée d'exposition      // Placer un fond clair devant la caméra à 10cm      HemLinCam_Set_Exposition_Time(1);         while(1)            {            // Lecture des pixels            HemLinCam_Read_Pixels();            DebutNoir = 0;            // Recherche du début de la Zone noir            for( i = 0 ; i < 34 ; i++ )               {               if (HemLinCam_Pixels_Zone2[i] < 100)                  {                  DebutNoir = i;//                  printf("Pixel de debut zone noire : %d\r\n", DebutNoir);                  break; // on sort de for                  }               }            // Debut de la zone noire au centre de la caméra            if ((DebutNoir >= 12) && (DebutNoir <= 20))  // Noir au centre               {               hemisson_led_frontright(1);               hemisson_led_frontleft(1);               hemisson_set_speed(0, 0);               }            // Sinon on tourne en fonction de la détection de cette zone noire            else if (DebutNoir > 20)				{				hemisson_led_frontleft(0);				hemisson_led_frontright(1);				hemisson_set_speed(4, -4);				}			else if ((DebutNoir < 12) && (DebutNoir > 0))               {               hemisson_led_frontright(0);               hemisson_led_frontleft(1);               hemisson_set_speed(-4, 4);               }			else			   {			   hemisson_set_speed(0, 0);			   }            }         }   else  // Module non détecté ?      {      hemisson_beep(1);		        // Buzzer On		hemisson_delay_s(2);			  // Attendre 2s      hemisson_beep(0);		        // Buzzer Off      }}