Forum robotique : robot quadrupede, hexapode et petits robots autonomes
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-34%
Le deal à ne pas rater :
Hauck Lit Parapluie Dream N Play – jusqu’à 15 kg
32.99 € 49.99 €
Voir le deal

Pic detection objet

Aller en bas

Pic detection objet Empty Pic detection objet

Message par GiovannI Jeu 9 Avr - 18:10

voila le programe pour comander un servomoteur et donc un gp2d12 et placé desu pour savoir dans kel direction et l'objet
pour l'instant il manque une petit parti pour envoyait la distance par une frequence variable
Code:
#include "C:\Users\giovanni\Documents\robot\teterobot1.h"
  #ZERO_RAM
int i=0,t=0,C=0;
void main()
{

  setup_adc_ports(sAN0|VSS_VDD);
  setup_adc(ADC_OFF);
  setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
  setup_timer_1(T1_DISABLED);
  setup_comparator(NC_NC);
  setup_vref(FALSE);

while(1)
 
while(i<100)
{
  i++;
  output_high(pin_a5);
  delay_ms(1);
  delay_us(i);             
  output_low(pin_a5);
  delay_ms(18);
  t=999-i;
  delay_us(t);
  set_adc_channel(2);
  delay_us(20);
  c=read_adc();
      if (c<128)
        {if(c>18)
          { output_high(pin_a4);
            if ( i>0)
              {if(i<333)
              {output_high(pin_a3);}}
            if ( i>333)
              {if(i<666)
                  {output_high(pin_a2);}}
            if ( i>666)
            {if(i<1000)
              {output_high(pin_a3);
                output_high(pin_a2);}}
              }
        output_low(pin_a2);
        output_low(pin_a3);
        output_low(pin_a4);
        }
 
while(i==0)

{
  i--;
  output_high(pin_a5);
  delay_ms(1);
  delay_us(i);             
  output_low(pin_a5);
  delay_ms(18);
  t=999-i;
  delay_us(t);
  set_adc_channel(2);
  delay_us(20);
  c=read_adc();
      if (c<128)
        {if(c>18)
          { output_high(pin_a4);
            if ( i>0)
              {if(i<333)
              {output_high(pin_a3);}}
            if ( i>333)
              {if(i<666)
                  {output_high(pin_a2);}}
            if ( i>666)
            {if(i<1000)
              {output_high(pin_a3);
                output_high(pin_a2);}}
              }
        output_low(pin_a2);
        output_low(pin_a3);
        output_low(pin_a4);
 
}

}
GiovannI
GiovannI

Nombre de messages : 27
Date d'inscription : 25/03/2009

Revenir en haut Aller en bas

Pic detection objet Empty Re: Pic detection objet

Message par Nadar Ven 10 Avr - 18:40

C'est un peut compliqué ton code ... Je te conseille de faire une fonction pour contrôler ton servomoteur afin de l'appeller quand tu veut le controler.

Pourrait tu commenter ton code car j'ai un peut de mal à le comprendre svp Razz

edit :

Pour piloter ton servomoteur tu peut utiliser cette fonction :
Code:
Void servo(int8 A,int32 T)
// A l'angle voulu entre 0 et 255 et T la durée de mise en marche du servo en ms
// Attention T >=20 !!!!!
{
  float T1=0,T2=0;
  int8 i;
  //conversion de la valeur A en ms
  T1=(A*2)/255;
  T2=20-T1;
  T1=T*1000 // conversion en µs
  T=T/20;
  for(i=1;i<=T;i++){
  output_high(pin_a5);// La sortie qui pilote le servomoteur
  delay_us(T1);
  output_low(pin_a5);
  delay_ms(T2);
  }

Je pense que sa peut marcher mais je ne l'ai jamais testé ...

on peut alors utiliser le code suivant :
Code:
INT16 read_captor() // Retourne la distance avec un obstacle
{
  int16 C=0;
  set_adc_channel(2);
  delay_us(20);
  C=read_adc();
  return C;
}
Qui va permettre de retourner la distance visualisé grace au capteur

Les deux utilisé ensemble vont permettre de mesurer la distance et de controler le servomoteur

_________________
la critique est nécessaire mais l'invention est vitale, car dans toute invention il y a une critique de la convention...
Nadar
Nadar
Admin

Nombre de messages : 220
Date d'inscription : 10/07/2008

https://robotique-iut.forum-actif.eu

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser