프로젝트

나도 메이커! 메이커스 여러분들의 작품/프로젝트를 공유하는 공간입니다.

밸런싱 로봇 만들어 보기(1)

2015-10-19 15:38:06

개요

 

 

예전에 한번 PID제어로 공의 균형을 잡는 프로젝트를 올린적이 있었는데요.

 

 

 

이번에는 난이도를 올려서 2발로 균형을 잡는 밸런싱 로봇을 만들어보려고 합니다. 

구글에서 밸런싱 봇, 밸런싱 로봇, Balancing robot등으로 검색하면 다양한 프로젝트를 볼 수 있습니다. 

그 중에서도 아두이노로 만든 프로젝트를 쉽게 찾아 볼 수 있습니다.

 

 

 

사실 2족 밸런싱 로봇은 유투브나 여러 해외 프로젝트 사이트에서 오래전부터 심심찮게 볼 수 있는 프로젝트였는데 저는 아두이노를 접하고 최근에서만 알수 있었습니다.

이미 실생활에서도 2족 밸런싱 로봇은 세그웨이(Segway)라는 제품으로 쓰이고 있습니다.

 

아래 사진이 세그웨이인데요. 사람이 몸의 중심을 앞 뒤로 옮길때마다 거기에 맞게 바퀴가 돌아가게 됩니다. 또 항상 사람이 타 있는 발판은 지면과 평행을 유지합니다.

 

 

 

사실 PID제어에 대해서는 아직까지도 문외한이라 만져보면서도 이것을 어떻게 처리해야 할지 난감합니다

하지만 이왕 시작한만큼 할 수 있는데 까지는 해보려고 노력하고 있습니다.

 

이번글에서는 현재까지 완성된 분량까지 작성해 보겠습니다.

 

 

 

필요한 부품 목록

 

 

NO 부품명 수량 상세설명
1 오렌지 보드 1 아두이노 호환보드 
2 바이폴라 스테핑 모터쉴드 1 A4988드라이버 2개 포함
3 바이폴라 스테핑 모터 1 SM-42byg011-25(4선 스텝모터 사용)
4 중력가속도 센서 1 BNO055
5 8v-35v DC 어댑터 1 전원공급장치
6 2발 밸런싱 로봇 키트 1  
7 브레드 보드 1 Mini breadBoard
부품명 오렌지 보드 바이폴라 스테핑 모터쉴드 바이폴라 스테핑 모터 중력가속도 센서
사진
부품명 8v-35v DC 어댑터 밸런싱 로봇 키트 브레드 보드  
사진  

 

 

 

하드웨어 Making

 

 

사실 키트를 이용해서 프레임을 제작했기 때문에 외부 틀 제작쪽에서는 딱히 만드는데는 문제가 없었습니다.

 

 

 

다만 일반 DC모터가 아닌 스텝 모터를 사용해서 제작을 하다보니 그 부분에 있어서 애로사항이 있었습니다.

이번에 사용한 스텝모터의 드라이버는 A4988드라이버를 사용하였고 스텝모터 쉴드로는 DFrobot의 쉴드를 사용하였습니다.(쉴드 안에 A4988칩이 2개가 내장)

이 쉴드의 경우에는 바이폴라 쉴드이고 2개의 선으로 하나의 스텝모터를 제어하게 됩니다.(보통은 3개 4개의 선을 사용하여 스텝모터를 제어합니다.)

 

 

 

스텝 모터의 제어 방법이 stepper.h 라이브러리를 사용하는 것이 아닌 상을 직접 HIGH, LOW입력으로 제어하다 보니 정밀도 면에서 떨어지게 되었습니다.

이 부분이 현재 가장 어려운거 같습니다.

 

※참고 스텝 모터 제어하기(튜토리얼) - http://kocoafab.cc/tutorial/view/226

 

또 가장 흔히 쓰이는 mpu6050 중력가속도 센서가 아닌 Adafruit의 BNO055센서를 사용하였습니다.

(부품을 찾다보니 mpu6050은 보이지 않고 눈에 보이는데 BNO055센서라 이것을 사용............)

 

 

 

현재까지는 간단하게 항상 수평을 유지하도록 바퀴를 계속적으로 돌리고 있습니다.

어떻게 보면 시소와 같다고 보면 됩니다. 한쪽으로 기울어지면 다시 반대쪽으로 달리고, 반대쪽으로 기울어지면 다시 반대쪽으로 움직이고 무한반복이죠~

 

 

 

지금 현재로써는 PID제어 중에 P제어만 사용한다고 보시면 됩니다.

P제어는 목표값과 현재값을 비교하여 오차의 크기 만큼 제어량의 크기를 변화시키는 방법입니다.

 

 

 

앞으로의 목표는 이 P제어에 I제어와 D제어를 추가시키는 것입니다.

어쨌거나 언제 될지는 모르겠지만 차근차근 진도가 나갈때마다 조금씩 업데이트하면서 글을 올리겠습니다!!

(밑의 영상을 보시면 아시겠지만 균형은 나름 잡습니다. 다만 오차 기울기에 따른 제어량의 변화가 없다보니 진동이 엄청나게 심합니다.ㄷㄷㄷㄷㄷ)

 

 

동영상

 

 

 

 

 

 

 

수박쨈

arduino, 아두이노, balancing, PID, Stepper, motor, Gyro