2015년 7월 28일 화요일

2015 / 07 /28 코그모 제작기







오늘은 꼬리를 만들어 보았습니다
생각보다 간단히 만들어지네요?
이제야 알았는데

포맥스는 가위랑 칼로도 잘 잘리더라구요.....

괜히 톱으로..,,, 드릴로.... 가루만 많이 먹었네요


휘어지게 하기위해서 판을하나 덧대서 나사로 연결해주었습니다



꼬리를 좌우로 움직이게 하기위해 3T판을 작게 잘라 구멍을 내고 전선으로 연결했습니다

아직 끝부분은 못만들었어요 ㅎㅎ



끝부분이 살짝 뜨게 하려고 판을 하나 더 덧댔는데

너무 휘었네요.... 다시 해야겠습니다


허벅지랑 종아리 부분인데

움직이는 부분이 접히면서 상판이랑 간섭이 생겨 못움직이길래 잘라주었습니다

이건 설계 미스..... 동그랗게 자를껄 그랬네요


동작하는걸 보면서 아두이노를 켰다 껏다 해야하는데

선을 뽑아야 해서

중간에 + 선만 뽑아서 푸쉬버튼을 달았습니다

완전 편해요!


그렇게.... 뭔가 다리는 다된거 같은데

몸체가 있어야 동작하는걸 알수 있겠네요...




걷는거 처럼 보이나요;;?

2015년 7월 23일 목요일



인텔 에디슨

led strip제어가 안되네요?

컴파일 도중 오류가 납니다. SoftwareSerial.h 헤더를 인식 못한다는데

아무리 호환이 잘된다고 해도.... 호환일뿐인가...












LED Strip 입니다

코그모 등쪽에 불 들어오는거 표현해주려고 구매했습니다

makeblock 라이브러리를 받아서 켜봤습니다

라이브러리를 넣은후 불러오는 방법

파일->예제->makeblock->me-rgbled-ColorLoop

int ledCount = 13; led 켜는 개수입니다 한줄에 30개이므로 최대 30개 까지 가능합니다

근데 문제는 여러개를 사용할껀데

포트 13번 제외하고 다른데서 작동을 못하네요....

다른 소스를 찾아봐야겠습니다




















이제 조금씩 모양이 잡히기 시작합니다

근데 또 문제점이 보이는게

무게 중심이 뒤로 쏠려서 서있질 못하네요.... 서보모터를 뒤집어서 무게중심을 앞으로 당겨

야겠습니다


#include <Servo.h>

Servo myservo1;
Servo myservo2;
Servo myservo3;// create servo object to control a servo
Servo myservo4;
Servo myservo5;
Servo myservo6;// twelve servo objects can be created on most boards

void setup()
{
  myservo1.attach(3);
  myservo2.attach(5);
  myservo3.attach(6);
  myservo4.attach(9);
  myservo5.attach(10);
  myservo6.attach(11);
}

  int pos = 130;

  int pos1 = 130;
  int pos2 = 90;

  int i=0;

void loop()
{

  for ( i = 0; i <= 181; i++)
  {
 
    if (i<=90){
 pos -= 1;
  pos1 += 1;
  pos2 -= 1;
   
  myservo1.write(pos);
  myservo2.write(pos1);
  myservo3.write(pos2);

    delay(10);
  }

  else if (90 < i < 180){
 

pos += 1;
pos1 -= 1;
  pos2 += 1;

myservo1.write(pos);
myservo2.write(pos1);
myservo3.write(pos2);

    delay(10);
  }


  else {
 i=0;
 pos=130;
 pos1=130;
 pos2 = 90;
  }

}

}

걷는 모션을 위해서 코드를 짜봤는데

생각보다 쉬운거 같네요

분주기를 좀더 쪼개면 세밀한 동작이 가능할거 같습니다

일단 3개만 동작시켜봤는데

무게중심 옮기고 다시 짜봐야겠습니다

2015년 7월 21일 화요일

2015 06 21


오늘 부터 자료 조사 시작



어느날 유투브에 올라온 코그모 로봇 영상을 보며

와.... 정말 만들고 싶다는 생각을 많이 했습니다

그래서 기회가 된김에




인텔 경진대회 신청 하였습니다

기간안에 만들수 있을지는 모르겠지만;


2015 06 22


물품들을 고르고 있는데

뭐가 필요한지 모르겠네요


일단 1차로 스텝모터, 인텔 에디슨, 포맥스를 주문하고


몸이 뱀처럼 유선형으로 움직여야하는데

어떻게 연결하지;

최대한 분해 연결이 간단하게… 내푸프레임이 없도록 만들어야 겠습니다


보행 로봇 원리




2015 07 04




장바구니에 담을때가 제일 신나는거 같네요

포맥스는 지마켓으로 구매

드릴날은 포맥스 자르기 위해서 구매하였고

에디슨 패키지는   단품이 없어서 패키지를 사고 확장쉴드를 구매하였습니다.




2015 / 7 / 15 수요일




처음에 크기를 가늠하고자 박스로 만들었으나 박수의 강도가 높지않아 포맥스로 바로 제작을 하였

습니다

사진에 나오는 부분은 종아리와 발 부분인데 연결하는 부분은 추후에 보강을 해야겠습니다.




2015 / 7 / 16 목요일




미니드릴의 회전 토크가 제 힘보다 강해서… 자꾸 직선으로 자르다가 튑니다

그래서 위험하기도 하고 정확한 결과물을 얻기 힘들어 선반을 제작하였습니다

선반치고는..... 많이 허졉하죠 수평이 맞는지도 모르겠네요

드릴 날의 크기가 작아 기울여서 본체랑 부딪히지 않게 하였는데

기울어진만큼 단면을 직각및 대각선으로 제작하기가 어려워 졌습니다

이전보다는 깔끔한 결과물과 안정성을 얻었지만

추후에 날을 다시 구매해야겠습니다




2015 / 7 / 20 월요일


오른 다리 완성하였습니다

허벅지 제외하고...

서보모터를 각도 0도로 셋팅하고

기어부분 각도를 일정하게 맞춰 주었습니다




2015 / 7 / 21 화요일




왼다리까지 완성

분해 가능하게 만들려고 했는데

나사부분이 안빠지네요.... 드릴로 좀더 크게 뚫어야겠습니다

설계할줄 모르다 보니 안맞는곳이 너무 많네요

3D로 설계 할줄알면 참 좋을텐데.... 시간이 없으므로 일단 진행합니다




서보모터를 제어하기 위한 아두이노 나노입니다

다리에 3개씩 총 6개가 들어가고

아두이노에서 쓸수있는 pwm단자가 6개이므로 딱맞습니다

4개이상 꽂으면 나노가 다운되므로 서보모터는 외부전원으로 동작을 시키고

서보모터 외부전원 -극을 나노에 GND에도 물려줘야 서보모터가 정상적으로 동작하게 됩니다



다리에 사용될 서보모터입니다

생각보다 힘도 좋고 스피드도 좋은데.... 크기가 좀 크네요


이건 선물받은 외장배터리입니다

저는 삼성 휴대폰을 쓰는지라 써본적이 없네요 (노트라서 배터리도 크고.... 여분 배터리도 있고...)

이거는 아두이노의 전원으로 쓰일겁니다

단점은 자꾸 절전모드로 들어가네요.... 아두이노가 전원을 많이 안쓰는건가....

LED하나 붙여줘서 해결했습니다

5V에 물리니 LED가 타버려서... 3.3V단자에 물려줬습니다


주요 보드가 될 인텔 에디슨입니다

다른 소형 보드들과는 달리 mcu와 확장쉴드가 분리된다는 사실

지원되는것도 이것저것 많은데 가격이 비싼게 함정

이 보드는 pwm단자가 모자라서 나노로 서보모터 제어를 할겁니다

신호를 받아서 나노를 제어하는 방식으로...

아두이노 스케쳐랑 호환됩니다

코드도 똑같이 짜면 되고요

대신에 라이브러리 설치하는게 좀 복잡했습니다

그냥 이것저것 다 깔다보니 인식 됬더라구요...;;; 어떻게 했는지는 아직도 모릅니다


아두이노 우노입니다

쓸일은 없을거 같네요.. 그냥 가지고만 있습니다



테스트를 위해 연결을 해보았습니다

서보모터를 동시에, 각각 다른 각도로 제어하려고 하니 코드짜기가 어렵네요

총 6개를 개별적으로 제어를 해야하는데 가능할려나 모르겠습니다...

검은색 네모난것은 서보모터를 위한 외부 전원이고 aa건전지 4개가 직렬로 들어가고 

1.5*4=5.5v를 직렬로 공급해줍니다

서보모터 동작 v범위 내이므로 문제없이 동작합니다


/* Sweep by BARRAGAN <http://barraganstudio.com> This example code is in the public domain. modified 8 Nov 2013 by Scott Fitzgerald http://www.arduino.cc/en/Tutorial/Sweep */ #include <Servo.h> Servo myservo1; Servo myservo2; Servo myservo3;// create servo object to control a servo Servo myservo4; Servo myservo5; Servo myservo6;// twelve servo objects can be created on most boards void setup() { myservo1.attach(3); myservo2.attach(5); myservo3.attach(6); myservo4.attach(9); myservo5.attach(10); myservo6.attach(11); } int pos = 130; int pos1 = 130; int i=0; void loop() { for ( i = 0; i <= 181; i++) { if (i<=90){ pos += 1; pos1 += 1; myservo1.write(pos); myservo2.write(pos1); delay(5); } else if (90 < i < 180){ pos -= 1; pos1 -= 1; myservo1.write(pos); myservo2.write(pos1); delay(5); } else { i=0; pos=130; pos1=130; } } }

loop문이 반복문이라고 생각하고 for문을 없애서 간단하게 하려고 했는데
동작은 하는데 연속적으로 동작하지를 않습니다.....
왜그런지 이유를 모르겠네요


코드가 여러개에 길어지다보니 모터 속도가 느려지네요
딜레이값을 좀 줄여야겠습니다