프로젝트

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

밸런싱 로봇 만들어 보기(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
profile

이세영 2015-10-19 18:08:04

오옷~ 궁금해 하던 내용이었습니다.

profile

제임스짱 2015-10-20 12:37:16

드디어 홈메이드 세그웨이를 만들 수 있는 건가요? ^^

profile

송덕원 2015-11-10 15:45:40

추후 I제어와 D제어가 추가된 영상도 보고 싶네요 ㅎㅎ

profile

신명민 2016-01-06 11:15:58

죄송하지만 혹시 소스를좀 얻을수는 없을까요? myeongmin089@naver.com 혹시 괜찮으시면 여기로좀 보내주시면 감사합니다!

profile

모모 2016-02-01 21:46:16

이거 정말 궁금했었습니다. 이번에 샤오미에서 나온 거 살까 고민했는데 좋은 내용이네요.

profile

김정우 2016-02-20 01:39:27

이야 멋진 프로젝트하셨네요.

profile

구본휘 2016-02-20 02:37:58

재미있는 프로젝트였어요 좋은 정보 감사합니다.

profile

김수현 2016-03-15 19:55:53

잘 봤습니다 ^^

profile

이또리 2016-05-06 12:14:31

Gyro를 이용하여 D제어만 넣어도 훨씬 안정적일 겁니다. I를 넣으면 칼같이 서있을거구요.

profile

우팡 2016-06-03 20:53:20

잘 봤습니다

profile

박진호 2016-07-21 02:36:21

좋은 정보 감사합니다.

profile

김지훈 2016-11-15 12:31:32

오 재밌게 잘봤습니다. 저도 스텝모터로 밸런싱 만들려는데 혹시 소스좀 얻을수 있을까요??
jabong111@naver.com 부탁드립니다...

profile

고준태 2016-12-09 11:47:34

죄송한 부탁입니다만 저도 소스 부탁 드립니다. kohjt@naver.com입니다. 부탁드립니다.

profile

chapa 2017-05-23 17:38:37

죄송합니다만 저도 혹시 소스좀 부탁드려도 될까요? 제가 만든 소스의 에러사항이 어디부터인지 알고싶습니다 ck9764@naver.com 부탁드립니다

profile

ckckckck 2017-11-09 18:40:21

실례지만 Aduino uno r3로 가능하다면 소스 코드 부탁드립니다.
cwp124578@naver.com 입니다. 제발 부탁드립니다.ㅠㅠ

profile

gugugu0 2018-01-12 17:59:46

저도 밸런싱 만들려는데 혹시 소스좀 얻을수 있을까요??
rjsdud5635@naver.com 부탁드립니다... ㅜㅜ

profile

oasis7080 2018-08-06 16:54:55

이번에 self balancing 로봇을 제작해볼려는 학생입니다.
이와 같은 제품을 주문하고 싶은데 아무리 찾아봐도 부품이 없어서....
혹시 어디서 주문하셨는지 여쭈어봐도 될까요?

profile

장초반 2019-10-08 22:06:01

안녕하세요 혹시 소스코드 볼수 있을까요?
chinhee1006@naver.com 부탁드립니다.