본문 바로가기

로봇 만들기 - AVR/마이크로 마우스

DC Mouse 1. DC Motor 를 이용한 마이크로 마우스 제작

알리 익스프레스에서 작은 로봇 프레임을 구입

꼭 마이크로마우스를 만들려고 샀던 것은 아닌 것 같으나 로봇의 지름이 10cm 정도로 마우스하기 적당하다

다만, 모터에 엔코더가 없다.

2wd 2layer robot으로 검색하면 어딘가에 나옴

 

그런데 이 프레임은 dfr robot 사의 miniq라는 로봇 키트와 모터와 바퀴가 같다

그래서 아래 그림과 같은 엔코더를 구입했다.

사진을 보면 바퀴에 튀어나온 하얀 부분을 안쪽에 적외선 센서로 감지하는 방식이고

옆에 있는 십자 모양의 나사를 돌려서 감도를 조정한다.  왠지 좋아보여서 구입했는데 별로 좋지 않다.

우선 바퀴 한바퀴에 슬릿이 12개이므로 최대로 해도 48 펄스에 한바퀴이다

그리고 센서 감도를 맞춰야 하는데 오실로스코프가 필요할 듯 하다. 센서값을 출력하면서 모터를 회전시켜 펄스가 나오게 하긴 했는데 정확한지 알수가 없다.

또 바퀴를 너무 깊이 끼우면 센서에서 펄스가 나오지 않는다. (내 바퀴가 정품이 아니어서 일지도)

저 로봇 회사의 키트 전체를 사용한다면 조립이 편리할지는 모르겠는데,  내 로봇의 프레임에는 맞지 않고, 감도 맞추는 것이나 펄스의 개수가 부족한 것이나 큰 장점은 없어보인다. 

 

어쨋든 저 센서를 쓸대 PID 제어가 문제였는지, 엔코더가 문제였는지 동작이 잘 되지 않았다

엔코더가 잘 된다고 해도 펄스가 너무 적은 것 같으므로 다시 알리 익스프레스를 뒤져서

엔코더가 달린 모터를 구입한다.

 

n20 motor로 검색후 엔코더 달린 것을 찾아, DC 6V 100pm (기어비 1:150) 으로 구입했다. 로봇의 배터리와 무게, 원하는 속도등을 고려해야 할듯.  300rpm 정도도 좋을것 같지만, 

이 모터는 엔코더(모터 뒤에 검은 원통 같은 것)가 모터 축에 있고, 모터 한바퀴당 7개의 펄스가 나오는데 센서가 두개니까 4배가 되고 기어비가 1:150 이므로 7*4*150하면 한바퀴당 4200 펄스...

 

아두이노 나노에서 저 모터 2개의 엔코더 입력을 받아 속도와 각도 제어가 어느 정도 잘 되었다

나중에 따로 작성하겠지만, 아두이노 나오는 외부 인터럽트가 2개 뿐이므로 외부 인터럽트를 사용하지 않고,

PCINT (Pin Change Interrupt?)를 사용하여 PCINT 가 발생하면 어떤 핀이 변경되었는지 체크하는 방식으로

엔코더 입력을 처리하는 방식으로 구현함. 

 

대략적인 DC 모터 마이크로 마우스 모습

프레임 아래쪽에는 샤프 적외선 센서가 있고, 모터가 있고, 그 뒤쪽에 드론에서 사용하던 2셀 리포 배터리를 사용

위쪽 모터 드라이버, L298N, 아두이노가 있음