Translate Blog

EnglishFrenchGermanSpainItalianDutchRussianPortugueseJapaneseKoreanArabicChinese Simplified

May 5, 2011

Program Robot Berkaki Dengan Codevision

Hai ketemu lagi... pa kabar semua... sedikit cerita ni...... Q ikut Team Robot di kampus.Q. q ikut team robot KRCI Berkaki... pusing juga buat riset kakinya... baik mekanik, elektronik maupun softwarenya..... tapi nyari-nyari di internet akhirnya dpt juga contoh program untuk servo walaupun cuma untuk mengendalikan 2 servo. padahal robot kami ni robot dengan desain laba-laba, pake 6 kaki bro.. tiap kaki ada 3 servo. hayo ada berapa servo??? hehehehehe..... bener 18 servo.. bayangpun..... hehehehhee..... servonya pake yang dibawahni :
Hehehehe.... pake yang murahan bro...... langsung aja keprogramnya...oh ya lupa Q pake mikro atmega 32 n codevision avr buat programnya.. tapi sebelum ke program servo.. jangan lupa untuk menghitung timer overflownya dulu...coz bahaya kalo kebesaran atau kekecilan pulsa yang diberikan. bisa jebol tu servo.. untuk tutorial timer overflow ada disini . contoh robotnya kayak gini bro.. tpi bukan ni.... Rahasia donk desainnya... hehehehe canda. lom sempet motret.(g punya Camera).



trus ni dia programnya untuk robot berkaki 6.  kaki aja bro... ni program buat maju... 

#include
#include

// Timer 0 overflow interrupt service routine
unsigned int x,m_1a,m_1b,m_1c,m_2a,m_2b,m_2c,m_3a,m_3b,m_3c,m_4a,m_4b,m_4c,m_5a,m_5b,m_5c,m_6a,m_6b,m_6c;
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
 x++;
          if(x==867)        { x=0; }
        else
        {         
              if  (x <= m_1a) { PORTC.0=1; }
              else            { PORTC.0=0; }    
            if  (x <= m_1b) { PORTC.1=1; }
              else            { PORTC.1=0; }
            if  (x <= m_1c) { PORTC.2=1; }
              else            { PORTC.2=0; }
              if  (x <= m_2a) { PORTC.3=1; }
              else            { PORTC.3=0; }    
            if  (x <= m_2b) { PORTC.4=1; }
              else            { PORTC.4=0; }
            if  (x <= m_2c) { PORTC.5=1; }
              else            { PORTC.5=0; }
              if  (x <= m_3a) { PORTC.6=1; }
              else            { PORTC.6=0; }    
            if  (x <= m_3b) { PORTC.7=1; }
              else            { PORTC.7=0; }
            if  (x <= m_3c) { PORTA.7=1; }
              else            { PORTA.7=0; }   
            if  (x <= m_4a) { PORTB.0=1; }
              else            { PORTB.0=0; }    
            if  (x <= m_4b) { PORTD.0=1; }
              else            { PORTD.0=0; }
            if  (x <= m_4c) { PORTD.1=1; }
              else            { PORTD.1=0; }
              if  (x <= m_5a) { PORTD.2=1; }
              else            { PORTD.2=0; }    
            if  (x <= m_5b) { PORTD.3=1; }
              else            { PORTD.3=0; }
            if  (x <= m_5c) { PORTD.4=1; }
              else            { PORTD.4=0; }
              if  (x <= m_6a) { PORTD.5=1; }
              else            { PORTD.5=0; }    
            if  (x <= m_6b) { PORTD.6=1; }
              else            { PORTD.6=0; }
            if  (x <= m_6c) { PORTD.7=1; }
              else            { PORTD.7=0; }        
           }
}

..
..

otomatis ada source codenya dari code vision
..
..
..
while (1)
      {
     
      m_1c=43;   //motor paling luar lurus, lihat digambar kalau bingung
      m_2c=45;  
      m_3c=42;       
      m_4c=85;  
      m_5c=88;  
      m_6c=88;  
        
      m_1b=42;   //motor tengah kaki kiri naik
      m_3b=42;   //
motor tengah kaki kiri naik
      m_5b=85;   //motor tengah kaki kanan naik 
        delay_ms(30);
      m_1a=56;   //motor paling dalam kaki kiri  maju
      m_3a=64;   //
/motor paling dalam kaki kiri  maju
      m_5a=66;   ///motor paling dalam kaki kanan maju
        delay_ms(30);
      m_1b=46;   //
motor tengah kaki kiri turun
      m_3b=46;   //motor tengah kaki kiri turun
      m_5b=80;   //motor tengah kaki kanan turun
        delay_ms(30);
      m_1a=67;   //
motor paling dalam kaki kiri mundur
      m_3a=69;   //
motor paling dalam kaki kiri mundur
      m_5a=57;   //
motor paling dalam kaki kanan mundur
      m_2b=42;   //
motor tengah kaki kiri naik
      m_6b=85;   //
motor tengah kaki kanan naik
      m_4b=85;   //
motor tengah kaki kanan naik 
        delay_ms(15);    
      m_2a=64;   //
motor paling dalam kaki kiri maju
      m_6a=71;   //
motor paling dalam kaki kanan maju
      m_4a=63;   //
motor paling dalam kaki kanan maju  
        delay_ms(30);
      m_2b=46;   //
motor tengah kaki kiri turun
      m_6b=80;   //
motor tengah kaki kanan turun
      m_4b=80;   //
motor tengah kaki kanan turun
        delay_ms(30);
      m_2a=71;   //
motor paling dalam kaki kiri mundur
      m_6a=60;   //
motor paling dalam kaki kanan mundur
      m_4a=57;   //
motor paling dalam kaki kanan mundur     
      };
}



Cara berjalan nya 3 kaki 3kaki bro... 2 kanan 1 kiri trus ganti 2 kiri 1 kanan, biar seimbang gitu... klao nanti buat robot pulsa yang diberikan pasti beda coy... karenan waktu pemasangan gigi atau gear servonya nanti beda pastinya.... jadi ya di setting dulu aja dicoba satu2 tiap kaki nya untuk lihat sudutnya dimana.. jangan lupa dicatat pulsanya berapa tiap sudut yang pas... biar mudah. gitu aja semoga bermanfaat  wassalam....





7 comments:

  1. wah masnya anggota tim robot ya?? kalo boleh tau dari tim mana mas... soalnya saya juga tim robot 2011..

    ReplyDelete
  2. kalo menggunakan arduino Uno sudah ada kah programnya?? smohon dishare ya,,,

    ReplyDelete
  3. kalo yang programnya menggunakan Arduino UNo sudah ada kah?? mohon dishare ya,,

    ReplyDelete
    Replies
    1. maaf sis. sampai sekarang say masih pake bahasa C dengan AT Mega32. lom pernah nyoba pake Arduino

      Delete
  4. Artikelnya bermanfaat banget mas. makasih nih udh share-share. Mg tambah sukses...

    ReplyDelete
  5. mas bro, gimana cara menggerakan 3 buah motor servo pada port B dengan arah yang berbeda 0-180drajat dengan bahasa C.?

    ReplyDelete