2015년 8월 11일 화요일

코그모 제작기

#include <Servo.h>

Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
Servo myservo5;
Servo myservo6;

void setup()
{
  myservo1.attach(3);
  myservo2.attach(5);
  myservo3.attach(6);
  myservo4.attach(9);
  myservo5.attach(10);
  myservo6.attach(11);
}
 
  int pos[] = {
  160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,
  140,139,138,137,136,135,134,133,132,131,130,129,128,127,126,125,124,123,122,121,
  120,119,118,117,116,115,114,113,112,111,110,
  110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,
  130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,
  150,151,152,153,154,155,156,157,158,159,160
  };
 
  int pos1[] = {
  130,129,128,127,126,125,124,123,122,121,120,119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,
99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,
  80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100
,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130
  };
 
  int pos2[] ={
  65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100
,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,
115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,
99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65
  };

/////////////////////////////////////////////////////////////////////////////////////////////////

  int pos3[] = {
  160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,
  140,139,138,137,136,135,134,133,132,131,130,129,128,127,126,125,124,123,122,121,
  120,119,118,117,116,115,114,113,112,111,110,
  110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,
  130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,
  150,151,152,153,154,155,156,157,158,159,160,
 
  };
 
  int pos4[] = {
    40,41,42,43,44,45,46,47,48,49,
50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,
  90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41
 
   };
 
  int pos5[] ={ 65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100
,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,
115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,
99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65


  }; //골반
   
void loop()
{

  for (int i = 0; i <= 100; i++)
  {
   
   
      myservo1.write(pos[i]);
      myservo2.write(pos1[i]);
      myservo3.write(pos2[i]);
      myservo4.write(pos3[i]);
      myservo5.write(pos4[i]);
      myservo6.write(pos5[i]);
         
      delay(20); //속도 조절
           
    }
}


코그모 걷는 모션 소스입니다

배열로 할당해서 for문으로 돌립니다

정말 간단하고 직관적입니다

근데 수정하기는 좀 번거롭습니다......

#include <Servo.h> 
//
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
Servo myservo5;
Servo myservo6;
 
int pos1=0,pos2=0,pos3=0,pos4=0,pos5=0,pos6=0;
//
void setup(){ 
  myservo1.attach( 3); myservo2.attach( 5); myservo3.attach( 6);
  myservo4.attach( 9); myservo5.attach(10); myservo6.attach(11);
 
void loop(){
    if(pos1=90)pos1=0else pos1++;
    if(pos2=90)pos1=0else pos2++;
    if(pos3=90)pos1=0else pos3++;
    if(pos4=90)pos1=0else pos4++;
    if(pos5=90)pos1=0else pos5++;
    if(pos6=90)pos1=0else pos6++;
    myservo1.write(pos1); myservo2.write(pos2); myservo3.write(pos3);
    myservo4.write(pos4); myservo5.write(pos5); myservo6.write(pos6);
    delay(10);
}

새롭게 참조할 코드입니다

될지 안될지는 모르겠지만....

일단 코그모 설계부터 잘못되서 

솔리드웍스 배우고 새로 설계를 한 후

만들어서 코드를 짜봐야겠습니다

지금 비율이 똥망인 애를 걷게 해봤자 걸어지나요...

설계를 완성할때까지 코그모는 잠정 보류!

댓글 없음:

댓글 쓰기