1.ROBOT KOLU İLE 2. ROBOT KOLUNU UZAKTAN YÖNETME

Başlatan emak_2284, 29 Kasım 2012, 18:27:39

emak_2284

merhaba arkadaşlar ben  "1.ROBOT KOLU İLE 2. ROBOT KOLUNU UZAKTAN YÖNETME " projesi yapacağım. projeyi anlatmak gerekırse 2 tane robot kolu olacak karşılıklı ,birinci robot kolun 30 dercece sağ veya sola cevirdiğimde karşıdakı kolda 30 derece  simetrik olarak  o hareketı yapacak sağa sola dönecek  ve bu ıkı robot kablosuz (wireleesle) haberleşecekler . şimdilik bir eksen yeterli benim sağ ,sol ekseni  olmak uzere,  robot kolu için step motor kullanmayı ve pıc entegrelerını kullanmayı düşünüyorum. bu konuda kısaca projenın nasıl yapılacağı hakkında bilgi almak istiyorum? hangi materyallerı kullanmalıyım. ? bu konuda yardımlarınızı bekliyorum.

eistain_54

Stepde işler ne kadar değişir bir tecrübem yok ancak servo motorla yapmak istersen gayetbasit.Gerçi yazından mcu programlama ile ilgili çok bilgin olmadığını düşünüyorum.Mekanik tasarım anlamında ve elektronik anlamda hangi düzeydesin önce onları söyle ona göre öneride bulunabilirim.
http://muhammetyldz.blogspot.com/2012/11/bir-robot-kol-hikayesi.html
Benim yaptığım kol.Bütün eksenler için hareket edebilirliğini sağladım.Ancak video eski.Yenisini eklemeye fırsat bulamadım.İşini görecek gibiyse hallederiz benzeriyle...
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

emak_2284

proje yi tam anlatmak gerekırse robot  kolundan kastım  bir vites kolu olacak sen vitesi ileri aldın mı diğer vites kolu da ileri gidecek geri hareket ettirdiğindede geri hareket edecek ve bu ıkı kol kablosuz haberleşecek . hassas ve derecelı olacağı için step motor kullanmayı tercih edıyorum.servo motorlar geri gitmiyor bu benım için dezavantaj. mcu programlama ile ilgil olarak picler uzerinde c dilinde şimdi çalışıyorum pıcı öğreniyorum daha basit olduğu için ve pıc16f877 serisini kulllanmayı düşünüyorum. Mekanik tasarım anlamında ve elektronik anlamda fazla bir bilgim yok teorik olarak bilgiye sahibim okulda öğrendimiz kadarıyla uygulama fazla geliştirme fırsatı bulamadım. şimdi uzaktan robot kontrolı hakkında araştırma yapıyorum. sizin video benımkıne göre daha komplex benım sadece bır eksen olarak hareket edecek sağa sola yada geri ileri olarak. umarım açıklayabılmışımdır ,yardımlarınız için şimdiden teşekkurler :)

eistain_54

Alıntı yapılan: emak_2284 - 29 Kasım 2012, 20:09:11
servo motorlar geri gitmiyor

Her şey tamam da bu kısmı anlayamadım?Step ilede yapılabilir elbette.Ancak servo olsaydı şimdi aklıma gelen yöntem;
Serdar ÇİÇEK'in kitabındaki örnek kodları incelersen daha rahat kavrarsın.Step ilede aynı mantıkla halledebileceğini sanıyorum.

#include <16f877a.h>
#device adc=16



#FUSES NOWDT                    //No Watch Dog Timer
//#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES HS                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOBROWNOUT               //No brownout reset
//#FUSES NOSTVREN                 //Stack full/underflow will not cause reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O


#use delay(clock=20000000)

#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#use fast_io(e)


//#priority int_ext,timer0




const int8 servo_derece_1[]={8,9,10,11,12,13,14,15,16,17,18};
const int8 servo_derece_2[]={17,17,16,15,14,13,12,11,10,9,8};
const int8 servo_derece_3[]={8,13,18,8,13,18,8,13,18,8,13};

int i=0,pwm=0,duty_0=0,duty_1=0,duty_2=0;
int16 zaman=0;

#int_timer0
void kesme(){

   set_timer0(131);
   
   if (pwm==0){
      
      output_high(pin_a0);
      output_high(pin_a1);
      output_high(pin_a2);
            
   }
   
   if (pwm>=duty_0) output_low(pin_a0);
   if (pwm>=duty_1) output_low(pin_a1);
   if (pwm>=duty_2) output_low(pin_a2);
   
   zaman++;
   
   if (zaman>17350){
      
      zaman=0;
      i++;
      if(i==11)
         i=0;
            
   }
   pwm++;
   
   if (pwm>173)
      pwm=0;
      
}

void main(){
      
      setup_psp(PSP_DISABLED);
      setup_spi(SPI_SS_DISABLED);
      setup_timer_1(T1_DISABLED);
      setup_timer_2(T2_DISABLED,0,1);
      setup_adc_ports(NO_ANALOGs);
      setup_adc(ADC_OFF);
      setup_CCP1(CCP_OFF);
      setup_CCP2(CCP_OFF);
      
      setup_timer_0(RTCC_INTERNAL | RTCC_DIV_2);
      
      enable_interrupts(global);
      enable_interrupts(int_timer0);
      
      set_tris_a(0x00);
      output_a(0x00);
      
      while (true){
         
         duty_0=servo_derece_1[i];
         
         putc(servo_derece_1[i]);  //motorun anlık açı değerini gönderir
         
         duty_1=servo_derece_2[i];
         
          putc(servo_derece_1[i]); //motorun anlık açı değerini gönderir
          
         duty_2=servo_derece_3[i];
         
           putc(servo_derece_1[i]); //motorun anlık açı değerini gönderir
                  
      }
      
}
/*Burada timer kesmesi yöntemi kullanıldı!*/


Step motor pinleri;
pin_b0
pin_b1
pin_b2
pin_b3 olsun.
/*Motor 1,8 derece olsun.Yani step motorun her adımı 1,8 derece olucak.Yani bir tam turunu;*/
/*360/1,8=200 adımda tamamlamış olur.*/
void aci (unsigned int aci_degeri, unsigned int16 adim_arasi_bekle){
   unsigned int i;
   for (i=0;i<aci_degeri+1;i++)
   {
      output_high(pin_b0);delay_ms(adim_arasi_bekle);
      output_high(pin_b1);delay_ms(adim_arasi_bekle);
      output_high(pin_b2);delay_ms(adim_arasi_bekle);
      output_high(pin_b3);delay_ms(adim_arasi_bekle);
   }
   
}

/*Burada önemli olan step motoru nasıl süreceksin?Bildiğim kadarıyla step motoru farklı farklı sürme yöntemleri var.
/*Yani daha hassas açılarda falan sürmek istersen diye tam adım/yarım adım olayları falan var.Ben hakim değilim o konuya
/*Tek faz uyartım iki faz uyartım vs gibi tekniklerde varmış..Neyse step ile yapacaksan Allah kolaylık versin :)
*/
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

kudretuzuner

Merhaba
Konu anlaşıldı,uzaktan normal vitesli arabayı kulanmak.Ben öyle anladım.Burada,birinci mekanik bölüm robot kolu olmuyor,kumanda kolu diyelim.İstediğimiz dataları bu kol ile RF olarak yollarız da otomobildeki vitesi kontrol edecek step motor mekanizmasına pek aklım yatmadı.Siz mekaniğin nasıl çalışacağını verirseniz motora veya motorlara dönme turu programı yazılabilir.
Amatör

emak_2284

#5
@eistain_54  => step motorlar ileri geri  gidebiliyor benim bildiğim servo motor hep ileri gider , eğer bir yanlışım varsa duzeltın lutfen. bide ille step motor kullanacağım dıye bişey yok hangisi uygunsa ve daha kolaysa onu tercih etmek isterim.  kod için teşekkurler , yardımlarınızı beklıyorum .

mesaj birleştirme:: 30 Kasım 2012, 03:02:27

@kudretuzuner =>  şimdi proje baştan anlatayım vitesli araba değil öncelikle ;
basitçe anlatacak olursam elimde ıkı karşılıklı  cubuk olacak   1. cubuğu ben manuel olarak elimle   sağa açısal olarak  alfa kadar döndürğümde(eğdiğimde) diğer karşıdaki  çubukta sağa açısal olarak alfa kadar  dönecek  aynı şekilde sola döndürdüğümde 2. çubuk sola dönecek ama bu çubuklar arasında kablo olmayacak kablosuz haberleşecekler . umarım açıklayıcı olmuştur olmadıysa daha geniş bilgi verebilirim.