개요
개요
Insect Bot이란 긴 다리를 움직여서 앞으로 전진하는 로봇을 말한다.
긴다리로 앞으로 가는 모습과 완성한 모습이 곤충과 생김새가 비슷하여 Insect bot이라 부른다.
로봇이라고 하면 보통 제작하기 힘들어 보이고 제어하기도 어렵다고 생각할지 모르겠지만 이번에 만들 곤충로봇은 서보모터 2개만 있다면 만들 수 있는 간단하고도 쉬운 로봇이다.
물론 준비물이 간단하고 제작이 간단한 만큼 전진밖에 못하는 멍청한(?)로봇이지만 뒤뚱뒤뚱 전진하는 모습이 귀여운 곤충 로봇을 만들어 보자!
완성하여 작동 시킬수만 있다면 로봇은 어렵고 복잡하다는 선입견을 조금은 버릴 수 있지 않을 까 생각한다.
(이번 프로젝트를 만들어 보기 위해 소요한 시간은 재료 준비 시간 포함 약 3시간 정도이다. 정말 쉽게 만들 수 있다.)
나는 이번 곤충 로봇의 이름을 처음으로 만든 발이 4개 달린 곤충 로봇이기 때문에 사발이1호(!)라고 지었다.
앞으로 다른 로봇을 만들어 2호 3호 만들어 나간다면 이 보다는 좀 더 근사하고 다양한 기능을 가진 봇이 탄생할 수 있지 않을까 희망한다.
동영상
필요한 사전지식
서보모터부품 목록
NO |
부품명 |
수량 |
상세정보 |
1 |
아두이노 보드 |
1 |
Mini, UNO |
2 |
브레드 보드 |
1 |
|
3 |
서보 모터 |
2 |
|
4 |
케이블 |
6~10 |
|
5 |
굵은 철사 |
1~2m |
아두이노Mini같이 소형보드를 쓰지 않을 경우 굵은 철사 선호 |
부품명 |
아두이노 보드 |
브레드 보드 |
서보 모터 2개 |
케이블 |
굵은 철사 |
부품 사진 |
|
|
|
|
|
하드웨어 making
브레드보드
전자회로도
만드는법
다음과 같이 서보모터를 연결한다. 테이핑을 해도 되고 케이블타이를 써도 된다. 오른쪽에 있는 서보모터가 앞다리의 역할을 하고 왼쪽에 있는 서보모터가 뒷다리의 역할을 한다.
서보모터 날개에 철사나 다른 프레임을 이용하여 다리를 만든다.
몸통부분에 들어갈 부품을 고려하여 지탱할 수 있는 강도를 가진 프레임으로 만든다.
서보모터와 아두이노를 연결한다. 사진에서는 우노와 우노크기만한 브레드보드를 사용하여 서보모터와 아두이노를 연결하였지만, 이보다 작은 부품을 가지고 있다면 충분히 작은크기로 만들 수 있다.
서보모터 위에 아두이노와 브레드보드를 얹힌다.
사진에서는 우노와 브레드 보드가 크기가 크기 때문에 충분히 버틸 수 있는 굵은 철사를 이용해 다리를 만들었다.
꾸미기 실력이 부족하여 엉성하게 꾸몄지만 능력이 된다면 얼마든지 로봇처럼 그럴싸하게 꾸며서 완성시킬 수 있다.
발부분은 사포와 같이 마찰력이 큰 재료를 사용하여 만들면 좋다.
소프트웨어 coding
#include <Servo.h>
Servo frontLeg; //앞다리 서보모터
Servo rearLeg; //뒷다리 서보모터
int pos = 0;
void setup()
{
//각 서보모터의 핀번호 설정
frontLeg.attach(9);
rearLeg.attach(10);
//서보모터의 초기각도를 90도로 설정
frontLeg.write(90);
rearLeg.write(90);
}
//각각의 다리는 for문을 통해 반복적으로 앞뒤앞뒤 순서대로 움직이게 된다.
//for문의 각도 조절(pos)은 균형에 맞게 각각 사용자가 지정한다
//delay를 조절하여 전진하는 속도를 지정한다
void loop() {
for(pos = 50; pos <80 ; pos += 1) {
frontLeg.write(pos);
delay(10);
}
delay(80);
for(pos = 75; pos <115 ; pos += 1) {
rearLeg.write(pos);
delay(10);
}
delay(80);
for(pos = 80; pos>=50; pos-=1) {
frontLeg.write(pos);
delay(10);
}
delay(80);
for(pos = 115; pos >=75 ; pos -= 1) {
rearLeg.write(pos);
delay(10);
}
delay(80);
}
프로그램이 실행해야 할 명령은 서보모터를 반복적으로 움직이는 일 밖에 없다. 그렇기 때문에 예제소스를 불러와서 수정을 해도 충분히 작성할 수 있는 난이도 이다.
스케치에서 코드를 작성할 때의 주의점은 앞다리와 뒷다리의 움직임 각도를 크게 주어서 너무 크게 움직이지는 않는지, 적당한 딜레이를 주어서 모형에 큰 무리가 가지 않는지 유의하면서 코드를 작성한다.
delay()부분과 for()안의 pos값은 각각 지정하여 사용하면 된다.