프로젝트

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

PID제어로 공의 균형을 잡기 프로젝트(1. 프로젝트 이해하고 시작하기)

2015-03-12 10:33:30

안녕하세요! 

계속 하나짜리의 프로젝트로 글을 쓰다가 여러 설명들이 하나의 글에 쓰기에는 부족한거 같아 여러개로 나누어서 써보려고 합니다^___^

글이 길어지는 것보다 짧게 짧게 읽기 쉽게 설명하는것이 저나 모두에게 좋다고 생각합니다!!ㅎ

 

밑에 모형주택에 LED를 달아 좀 더 아름답게 꾸밈 프로젝트가 끝나고 이번에는 다른 프로젝트가 해보고 싶어서 PID제어쪽을 찾아보다가 시도해보게 되었습니다!

사실 PID제어를 찾아봤는데 이거는 제어공학이라고 따로 배우는 전공이 있는거 같았습니다.(더 찾아보니 전자공학쪽에 하나의 분야인듯 하였습니다.)

 

사실 저도 공대를 나왔지만 전공이 이쪽은 아니기 때문에 상당히 생소한 분야이기도 합니다.

저뿐만 아니라 대다수의 아두이노를 처음 접하거나 조금 만져보신분들이라도 제어공학이라는 분야는 생소하실거라 생각해요.

저도 이쪽 분야는 아직 처음 접하는 분야이기 때문에 열심히 공부하고 있습니다!!ㅎ_ㅎ

 

공학이라는 내용을 들으면 일단 듣는사람들은 모두 지루해 하기 때문에(특히 인문계 계열이라면 더.....)

 

이번 글에서는 바로 내용 설명에 들어가면 지루해 할 수 있기 때문에 간단하게 PID제어와 아두이노를 사용하게 된다면 어떤것들을 할 수 있는지! 적어보려고 합니다.

저도 항상 아두이노로는 LED가 너무 아름다워서 LED쪽을 주로 해왔지만 이번에 검색하면서 정말 신기하면서 새로운 프로젝트들을 많이 봤습니다!

역시 공학도의 힘은 정말 위대하고 대단한거 같습니다....................(공학도에게 축배를)

 

아두이노로도 이런저런 프로젝트들이 끊임없이 나오는거 보면 아두이노의 잠재력 또한 무궁무진한듯 합니다.

 

그럼 밑에서 부터 한번 어떤 것들을 만들 수 있는지 간단히 살펴 보겠습니다!

(최대한 지루하지 않게 영상은 짧은것으로 검색해서 올렸습니다!ㅎㅎ)

 

 

 

1. 드론 만들기

 

 

 

일단은 가장 대표적으로 드론(쿼드콥터)를 만들 때, PID제어가 들어갑니다!

위 영상에서 보듯이 4개의 날개 중 두개를 묶어두고 균형을 테스트 하고 있는데요. 이 쿼드콥터의 균형을 맞추는 과정에서 PID제어가 들어간다고 합니다.

일반인들이 저렇게 날아다니는 쿼드콥터나 헬기를 보면 그냥 "뭐 대충 프로펠러만 돌리면 날아가는거 아니었나?" 이렇게 생각 하실 수 있는데요.

똑같은 모터 4개를 사용한다 하더라도 그 4개의 모터가 정확히 똑같은 힘 똑같은 환경을 받으며 날아가는 것이 아니기 때문에 무턱대고 모터만 돌리고 날리게 되면 날리자마자 바로 추락하거나 엎어지는 비행물체를 보실 수 있을겁니다-_-..

 

 

2. 밸런싱 로봇 만들기(Segway)

 

 

 

두 번째로는 밸런싱 로봇입니다! 역시나 무지하게 신기방기!!

흔히는 아니지만 한번쯤은 길거리에서 보셨을 세그웨이를 생각하시면 됩니다.(재밌어 보이네요ㅎ 저도 한번 타보고 싶습니다ㅠ)

 

위 영상에서 보시면 이해가 빠르실텐데 두 바퀴로 균형을 잡아 쓰러지지도 않고 가만히 서있습니다. 역시 이때 두 바퀴로도 균형을 잡게 도와주는 과정에서 PID제어가 들어가게 됩니다!

물론 두바퀴와 DC모터만 들어가는것이 아니고 3축 중력 가속도 센서가 들어가서 3축 중력 가속도 센서의 값을 칼만필터와 PID제어를 통해 균형을 잡게 도와주는 값으로 변환시키게 됩니다.

칼만 필터(Kalman filter)라는 또 어려운말이 들어갔는데 이건 나중에 기회있을때 다시 설명하겠습니다!!

 

 

3. 공 균형잡는 기계 만들기

 

 

 

 

그나마 위에서 소개한 프로젝트보다는 재료도 간단해 보이고 만들기도 간단해 보입니다!(그래서 제가 선택한 프로젝트이기도 합니다. 저는 이것을 만들어 볼거에요~_~)

밑에 모터가 있고 위에 긴 막대에는 초음파 센서가 있어서 초음파 센서를 이용해 공과의 거리를 계속적으로 측정하여 그 거리가 긴 막대의 중앙에 위치하도록 계속 PID연산을 하게 됩니다. 

 

 

4. 공 균형잡는 기계2 만들기

 

 

 

또 공의 균형을 잡는 기계(2!)입니다. 이번 프로젝트는 위의 프로젝트보다는 더 어려워 보이는데요. 

일단 위에 프로젝트는 1차원적으로 선위에서 움직이는 거라면 이번 프로젝트는 2차원으로 면 위에서 공이 움직입니다.

위에 캠을 달아 공의 위치를 계속적으로 추적하면서 나무 판자 옆에 달린 모터로 공이 항상 중앙에 오도록 만드는 거 같습니다.

만들어 보고 싶지만 지금 당장은 쿨하게 Pass하겠습니다!!(공부 더 하고 올게요..ㅠ)

 

 

5. Line Tracking Car 만들기

 

 

 

일반적인 Line tracking car는 간단하게 센서 몇 개와 바퀴가 달린 자동차 키트로 제작이 가능한데요.

보통 만드는 Line tracking car도 잘 굴러갑니다. 천천히......

사실 그냥 만드는 Line tracking car도 만들어보면 정말 달팽이나 나무늘보처럼 느린속도는 아닙니다. 정말로 잘 굴러가요.

 

근데 위 영상을 보시면 PID제어와 같이 쓰게 되면 차가 라인을 따라 거의 날아다니는 수준으로 돌아다니게 됩니다(헐...)

라인을 다 입력시켜놓은것도 아니고 직접 운전하는 것도 아닌데 저렇게 자율주행으로 움직이는것을 보면 정말 신기합니다.

 

사실 저 정도는 거의 대회급에서 나오는 수준이고 우리는 Line tracking car가 어떻게 돌아가는지 원리만 알고 있으면 되기 때문에 욕심은 부리지 않아요!

그래도 한번쯤은 만들어보고 싶은 프로젝트이기도 합니다.

 

 

마치며..

간단하게 PID제어를 통해 할 수 있는 프로젝트 5가지 정도를 소개시켜 드렸는데요. 아마 다 보시면 조금이나마 '이게 뭐지?' 라는 흥미가 드실거라고 생각합니다.

위의 프로젝트 모두는 아두이노를 통해 전부 다 구현이 가능하기 때문에 이쪽 지식이 정말 풍부하다면 시도도 해볼만한 프로젝트라도 생각이 듭니다.

아두이노는 단독적인 코딩으로 사용하기 보다 여러 분야의 다양한 기술과 접목시켜 사용할 때 엄청난 시너지를 내는듯 합니다.

다음 글에서는 PID가 어떤것인지 간단하게 설명하는 글을 써보도록 하겠습니다!

감사합니다^___^

수박쨈

아두이노, Arduino, PID제어, 제어공학, Balancing robot