5월 27일.

스테핑 모터, 바퀴를 비롯한 LCD모듈, 7Segment(FND), 적외선 센서 등 수없이 많은 부품을 주문한 게 이번주 월요일, 물건 도착은 며칠 전에 했으나 정보올림피아드 준비 관계로 개봉을 절대적으로 자제하고 있다가 오늘 드디어 모두 열어봤습니다.

역시 가장 눈에 띄는 것은 모터였습니다. 생각보다는 꽤 큰 크기에 무게도 묵직한 것이 힘도 좋아보였습니다. 바퀴도 가격(하나에 11,000원이라니..)에 걸맞게 마찰도 좋고 튼튼해보여 다행이었습니다. 자잘한 부품들이 잔뜩 들어있는 비닐을 뜯어보니 FND, OSC, 적외선 수/발광소자, 가변저항 등 여러 가지 부품들이 눈에 들어왔습니다. 가장 만만해보이는 FND부터 컨트롤해보자는 마음으로 멀티테스터기로 불빛이라도 내 보려고 했습니다.

제가 주문한 FND는 초록색의 Annode Common 타입이었습니다. 그렇다면 당연히 멀티테스터기의 붉은색 침에 Common Pin(3, 8번)을 대 주고 나머지에 검은색 침을 대 주면 불이 들어올 것이라고 생각했으나, 아니었습니다. 왜인지는 아직까지 미스테리입니다. 혹시나 하는 마음에 침을 바꾸어서 대 보니 선명하게 불빛이 들어오더군요. 저는 잘못해서 Cathod Common이 온 줄 알고 Eleparts에 문의글까지 올렸다지요...ㅡㅡ;

Cathod Common이어도 제어 못 하는 건 아니니 일단 Atmega128과 연결해보자라는 마음에 회로를 꾸몄습니다.
사용자 삽입 이미지

FNDTest.c (Language : c)
  1. //FND에 1부터 10까지가 순서대로 나타나는 프로그램입니다.
  2. #include <avr/io.h>
  3.  
  4. short int table[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xA7, 0xA1, 0x86, 0x8E, 0xFF};
  5.  
  6. void delay(int time)
  7. {
  8.     while(time>0)
  9.         time--;
  10. }
  11.  
  12. int main(void)
  13. {
  14.     DDRA=0xff;
  15.     PORTA=0xff;
  16.     int pp=0;
  17.     while(1)
  18.     {
  19.         PORTA=table[pp++];
  20.         delay(10000);
  21.         if(pp==17) pp=0;
  22.     }
  23.        
  24.     return 0;
  25. }

정상적으로 동작하는 것을 확인하고 모터에 도전했습니다.

구입한 스테핑 모터에는 선이 6개가 달려 있습니다. 그런데 도대체 이 녀석을을 어떻게 쓰는 것인지 알 수가 없어 각 선의 용도를 찾는데만 몇 시간이 걸렸습니다.

일반적으로 스테핑 모터의 선은 세트로 되어 있습니다. 6가닥인 경우 3선씩 두 세트입니다. 3선 중 한 가닥은 Common(이라는 말을 써도 될까?) 선이고, 나머지는 Common 선과 반대되는 선입니다. 즉, Common에 +를 접속하면 나머지 두 선에는 -를 접속하면 됩니다. 모터의 선 배치를 모식도로 그려보면 다음과 같습니다.
사용자 삽입 이미지
모터에 6선이 있을 때, 이를 순서대로 A~F라고 하면, 위와 같은 선 구조로 볼 수 있습니다. B와 E에 +를 접속하고 C, D, F에 모두 +를 준 상태에서 A에 -를 주면 A-B에만 전류가 흐르므로 그 사이에 전기장이 형성되고, 그쪽으로 모터에 토크가 걸립니다. 그 상태에서 A에 다시 +를 주고 C에 -를 주면 C-B에만 전류가 흐르므로 A-B쪽에 불어있던 회전자가 C-B쪽으로 이동합니다. 같은 원리로 A, C, D, F에 번갈아 신호를 주면 회전자가 번갈아가면서 붙기 때문에 회전을 할 수 있게 됩니다.

하지만 모터에 공급하는 전압은 정격 9.4V, 보통 11~12V정도 주기 때문에 마이컴으로는 엄두도 못내고, 외부 전원을 연결해야 합니다. 저는 외부전원으로 12V를 걸어주었습니다. 하지만 분명 모터를 돌리고 남는 전압이 있을 것이고, 그것이 마이컴으로 들어가야되는데, 어느 정도가 남는지 아직 확인이 안 되어서 확인하던 도중에 밤이 되었습니다.

휴,, 이제 다음에는 확실히 모터 돌려봐야지요.


2008년 1월 19일 이후 작성된 모든 글에 대해서 퍼가는 것을 금지합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.
Posted by Harry
5월 22일.

방과후 멀티미디어실에 모여 즐겁게(저는 젠장할 왼팔때문에 별로 즐겁지는 않았지만) 탕수육을 먹은 후 회의를 거쳐 텸명과 로봇명을 확정지었습니다.

팀명은 골리앗, 로봇명은 길치(-_-)입니다.
로봇명은 전부터 나온 아이디어라서 통과만 시키면 되었었고, 팀명 정하는 게 큰 어려움이었습니다. 스타크래프트에 미쳐있는 박모군께서 제안하신 '골리앗'이 최종 동의를 거쳐 통과되었습니다. 권모군은 계속 'Robot is black'이라는 이상한 팀명을 주장하셨으나 결국 기각,,,

선생님께서 길치를 칭찬해주셨습니다. 반어적인 표현이 재밌다면서...(사실 크게 반어적이지도 않은데..)
어쨌든 열심히 해야겠습니다..


2008년 1월 19일 이후 작성된 모든 글에 대해서 퍼가는 것을 금지합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.
Posted by Harry

5월 18일.

그래도 저주는 없었나봅니다.
드디어 ATmega128의 최강도서라고 불리는 《AVR ATmega128 마스터》- 윤덕용 저, Ohm 을 도서관에서 빌리는 데 성공했습니다. 지금까지 이녀석 빌리려고 도서관에 몇 번을 왔다갔다했는지 모릅니다.

도서 대출카드 없어서 실패.
누가 빌려가서 실패.
어린이날, 휴관일이라서 실패.
월요일, 정기 휴관일이라서 실패.

이런 실패들을 딛고 드디어 오늘 대출에 성공했습니다.

내용은 확실히 탄탄한 것 같습니다. 쭉 읽다보니 인터넷에 있는 자료들이 다 이 책에서 나왔다는 것을 알 수 있더군요.

포트 I/O 부분까지 읽다가 잠들어버렸습니다... 꾸준히 읽어야되겠습니다.




2008년 1월 19일 이후 작성된 모든 글에 대해서 퍼가는 것을 금지합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.
Posted by Harry

5월 17일.

드디어 마이컴을 이용하여 LED를 제어하는 데 성공했습니다!

어제 오늘 계속 프로그램 다운로드가 안되어서 못하고 있었는데, AVR Studio 4에서 다운로드 할 때 뜨는 펌웨어 업그레이드 메시지에서 취소를 누르니 다운로드가 정상적으로 되는군요.

연결은 매우 원시적?으로 했습니다. 아직 회로를 설계하는 기술이 없어서, 어떤 게 좋은 회로인지 감이 안잡히더군요.

사용자 삽입 이미지

사용자 삽입 이미지

처음으로 켠 LED의 모습입니다. LED에 불이 들어왔을 때 너무 기뻐 울 뻔(ㅡㅡ;) 했다는...;;

위 LED를 켠 소스코드입니다.

(Language : c)
  1. #include <avr/io.h>
  2.  
  3. int main(void)
  4. {
  5.     DDRA=0xff;
  6.     PORTA=0xff;
  7.     return 0;
  8. }

보시다시피 캐소드 커먼 방식입니다. 전구가 많아지면 빛이 약해진다는,,,

처음 LED를 켜고 이번엔 센서를 해보겠다는 마음으로 백방으로 일단 발광 소자에서는 LED와 같은 방법으로 발광을 시켰고, 수광은 VCC - 수광 - 저항 - 입력포트 순으로 연결을 하였습니다. 그런데 전혀 반응을 안하더군요. 테스터기로 찍어보니 빛의 밝기에 따라 전류의 양은 변하던데, 전압이 안 변해서 읽지를 못하는 건지 아무튼 3~4시간정도 센서와 씨름하다가 결국에는 카페에 질문 하나 올려 놓고 포기했습니다.

그래도 그걸로 끝내긴 뭐해서 LED와 슈퍼플럭스 8개를 쭉 달아서 순차적으로 불이 들어오는 것을 만들어봤습니다.

사용자 삽입 이미지

사용자 삽입 이미지사용자 삽입 이미지사용자 삽입 이미지

이번엔 애노드 커먼 방식으로 했습니다. 확실히 밝더군요.

8개의 LED 순차적으로 점등 (Language : c)
  1. #include <avr/io.h>
  2.  
  3. int table[8]={0x7e, 0xfc, 0xf9, 0xf3, 0xe7, 0xcf, 0x9f, 0x3f};
  4.  
  5. void DELAY(int time)
  6. {
  7.     while(time>0)
  8.         time--;
  9. }
  10.  
  11. int main(void)
  12. {
  13.     int i;
  14.     DDRA=0xff;
  15.     PORTA=0xff;
  16.     for(i=0;i<8;i++)
  17.     {
  18.         PORTA=table[i];
  19.         DELAY(10000);
  20.     }
  21.     return 0;
  22. }


오늘은 이것으로 만족해야겠습니다.
인터넷을 뒤져보니 센서 활용에는 ADC가 필수던데, 다음번엔 ADC 공부좀 해서 센싱에 성공해야겠습니다.



2008년 1월 19일 이후 작성된 모든 글에 대해서 퍼가는 것을 금지합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.
Posted by Harry
5월 15일.

저희 학교에서 로봇 대회에 참가하는 팀은 3팀입니다. 한 팀은 제가 속한 팀이고, 또 한 팀은 3학년인 권모군과 박모군, 2학년인 손모군으로 이루어진 팀입니다. 나머지 한 팀은 1학년 두 명으로 이루어져 있는데 이번 로봇 올림피아드에 참가하는 것은 아직 미지수입니다.

그런데 두 번째 팀에 있는 박모군이 팀에 매우 비협조적이고 대회 준비에 전혀 참여하지 않았다고 합니다. 결국 들리는 소문에 의하면 팀 해체 위기에 놓였다더군요. 반면 권모군은 엘리트로, 팀을 이끌어가려고 했지만 박모군의 비협조로 결국 포기했다고 합니다.

그런데 행운인지는 모르겠지만 오늘 도서관에 가는 길에 권모군에게 전화가 왔습니다. 자신의 팀이 해체되었다며, 제 팀에 합류하겠다더군요. 손모군은 어떻게 할 거냐고 물으니 할 수 없다고 합니다. 권모군의 프로그래밍 실력과 재능은 저희들도 탐나던 거라서 흔쾌히 받아들였습니다. 이로써 팀 인원은 3명으로 늘어났습니다. 결과적으로 경제적 부담도 줄어들겠군요.

권모군은 프로그래밍 능력이 뛰어나다고 합니다.(박모군 말이라 믿어야 할 지는 모르겠습니다만,) 그 능력으로 저희 팀에 큰 도움을 주었으면 합니다.

한 가지 더, 권모군의 삼촌의 소개로 한양대 제어공학과 교수님을 뵈어 로봇 제어 이론을 배우게 되었습니다. 일단은 목요일에 가기로 했는데, 내일 자세한 건 말해주겠다고 하더군요.

그나저나, 커리어 머신을 나가려면 로봇이 두 대 필요한데, 어쩌죠...;


2008년 1월 19일 이후 작성된 모든 글에 대해서 퍼가는 것을 금지합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.
Posted by Harry

5월 15일.

Eleparts에서 갑자기 점퍼 케이블이 눈에 띄여 주문을 했습니다. 그런데 가만히 보니 전에 분명 2번 주문을 했는데 주문 내역에는 1번밖에 없더군요. 왜 주문내역이 증발했나 의아해하며 문의를 올렸습니다. 얼마 후 오는 답변은, 시스템 오류로 주문 내역이 겹쳐서 먼저 주문한 주문서가 사라졌다고 합니다. 결국 주문서를 재작성한 후 무통장입금으로 하고 재주문이라고 통보하니 결제 처리가 되었습니다.

돈이 달린 문제가 오류가 나다니요..ㅡㅡ;




2008년 1월 19일 이후 작성된 모든 글에 대해서 퍼가는 것을 금지합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.
Posted by Harry
5월 10일.

컨트롤러를 포함한 여러 가지 부품은 모두 도착을 하였습니다. 하지만, 막상 조립을 해 보려고 하니 서로 전압이 안 맞아 연결을 할 수가 없더군요. 저항을 주문하지 않았다는 사실을 그제서야 깨닫고서 저항 주문했습니다. 확실히 어느 정도의 저항을 연결해야 될지 감이 안 잡혀서 60옴 ~ 160옴 사이의 것들을 적당히 주문했습니다.

다음은 필요한 저항의 크기를 계산하는 방법입니다.

공급되는 전압을 V, LED의 소모 전압을 v, 전류를 I라고 할 때,
(V-v)/I
 가 필요한 저항의 크기입니다.
이 때 전류를 어떤 값으로 해야 될 지 몰라서 LED의 정격 전류를 잡았습니다. 보통 20~30mA입니다.


2008년 1월 19일 이후 작성된 모든 글에 대해서 퍼가는 것을 금지합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.
Posted by Harry
5월 8일.

10시가 넘어서 택배가 오는 경우는 처음봤습니다. AVR Mall에서 시킨 물품들이 택배회사 홈페이지에는 분명 '배송중'이라고 되어 있는데 시간이 늦도록 오지 않아 내일 올 것이라고 생각하고 포기하고 있었는데 10시가 넘어서 오네요.

AVR Mall에서는 LED와 적외선 센서, 그리고 MCU와 ISP Board를 샀습니다. LED가 생각보다 무식하게 크길래 불은 얼마나 밝을까 궁금하여 전선을 이어 건전지에 대 보았습니다. 그런데 불이 안 들어 오더군요. 왜일까 의아해하며 1.5V * 4짜리 배터리 홀더에 건전지 4개를 넣고 연결해 보았습니다.

3mm짜리 초록색 고휘도 LED와 10mm짜리 빨간색 LED는 아주 멋지게 불이 들어옵니다. 그런데 10mm짜리 노란색 LED를 연결한 순간, '피직'하는 소리와 함께 타는 냄새가 났습니다. 놀래서 LED를 분리하고 보니 LED가 나간 것 같더군요. 더이상 그 LED에서는 불빛을 볼 수 없었습니다...;;

LED의 정격 전압을 전혀 모른 상태에서 6V나 줬으니 탈 만도 하지요. 이참에 LED의 전압을 조사해보았습니다.

종      류

최소전압

최대전압

일반전류

최대전류

Red

1.8V

2.3V

20 ㎃

50 ㎃

Orange

2.0V

2.3V

30 ㎃

50 ㎃

Real yellow

2.0V

2.8V

20 ㎃

50 ㎃

Emerald green

1.8V

2.3V

20 ㎃

50 ㎃

Real green

3.0V

3.6V

20 ㎃

50 ㎃

Sky blue

3.4V

3.8V

20 ㎃

50 ㎃

Real blue

3.4V

3.8V

20 ㎃

50 ㎃

Pink

3.4V

3.8V

20 ㎃

50 ㎃

white

3.4V

4.0V

20 ㎃

50 ㎃



잘 알고 씁시다.ㅠ


2008년 1월 19일 이후 작성된 모든 글에 대해서 퍼가는 것을 금지합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.
Posted by Harry
TAG LED, 로봇, 전압
5월 8일.

4군데에 나누어서 주문한 여러 가지 로봇에 관련한 물품들 중 아크릴이 제일 먼저 오늘 오후에 도착하였습니다. 아크릴은 가장 나중에 필요한 것인데 제일 먼저 오다니요...;

아크릴은 투명색과 스모그로 두 장을 샀습니다. 두께는 가장 가벼운 2T로 했습니다. 크기는 280mm정도 됩니다. 오늘 온 것을 보니 왠지 연습을 하기 위해서는 넉넉히 몇 장 더 샀으면 하는 아쉬움을 줄 만큼 작습니다. 딱 만들 것만 만들라는 것 같네요.

며칠 전 MLB 매장에서 두꺼운 아크릴을 구부려서 그 위에 신발을 디스플레이 해 놓은 것을 보았습니다. 생각해 보건대, 열을 이용하여 구부리지 않았나 합니다. 그러한 방법으로 가공하는 방법을 조금 더 찾아보고, 연습해보아야겠습니다. 그나저나, 그러려면 가열을 위한 장치도 사야 된다는 것인가...;;


2008년 1월 19일 이후 작성된 모든 글에 대해서 퍼가는 것을 금지합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.
Posted by Harry

[5/7]헛고생

Robots/Log 2007/05/07 22:54
5월 7일.

왜 이렇게 하는 일마다 꼬이는지 모르겠습니다.
며칠동안 AVR Atmega128 마스터(윤덕용 著)를 빌리기 위해 도서관을 뒤져왔는데, 오늘 또 못 빌리게 되었습니다.

6시 30분 정도, 먼저 빌린 책을 반납히기 위해 북구도서관으로 향했습니다. 오늘은 월요일이기 때문에 북구도서관이 휴관을 하는 관계로 책만 반납하고 대여는 부평 도서관에서 하기로 했습니다.

먼저 15분 정도 자전거를 몰아 북구도서관에 도착해 무인반납기에 책을 넣고, 부평도서관으로 향하는 길.

갑자기 눈에 뜨인 롯*마트. 평소 갖고 싶던 마우스패드를 거기에서 판다는 얘기를 듣고 바로 들어가서 지르고 나왔습니다. 다시 부평도서관으로 출발했습니다. 그런데 가는 길은 죄다 오르막이라 땀을 뻘뻘 흘려가며 페달을 밟았습니다.

드디어 부평 도서관 도착. 시간은 7시 55분이었습니다. 자전거를 묶어두고 자료실에 도착한 순간 발견한 것은 모든 사람들이 갈 준비를 하고 있다는 것이었습니다. 암담한 심정을 누르고 직원에게 물어봤습니다.

"몇 시에 폐관하나요?"
"지금 문 닫는데요. 8시에 끝나요."

!!!

왜, 그런 것도 확인하지 않고 일을 진행한단 말인가.
먼저 빌리고 반납 했으면 되었을 것 아닌가. ㅡㅡ;


2008년 1월 19일 이후 작성된 모든 글에 대해서 퍼가는 것을 금지합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.
Posted by Harry