프로젝트

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

[Dotduino] Drone Project

2015-08-20 13:36:51

안녕하세요. Sabo입니다.

요즘 아이디어 고갈로 인해 프로젝트를 정말 오랜만에 작성하게 됬습니다. 튜토리얼도 역시 왠만한 내용은

전부 Kocoafab 페이지에 전부 들어있기 때문에 무엇을 포스팅해야 할지 고민하던 찰나, 현재 진행 중인

드론 보드 개발기를 작성해보기로 했습니다~

 

 

바로 요런 모양으로 소형 드론을 개발하는 중에 있는데요~

마침 출시를 앞두고 있는 "초소형 아두이노 Dotduino"의 프로토타입이 있어, 요 녀석을 탑재해서

드론을 만들어 보고 있습니다.

 

제가 만드는 드론의 가장 하이라이트는 바로 '소형'인데요, 소형으로 만들기 위해서는 기존의 완제형 모듈과 센서를

사용하는데 상당히 제한적입니다. 따라서 필요한 IC 또는 센서를 하나의 PCB 기판에 내장시켜 One-Board 형태로

만들기 위해 처음 회로 설계부터 진행을 하게 되었습니다.

 

 

일단 간단하게 필요한 것들을 점검해볼까요?!

 

MCU - 우리는 초소형 아두이노 Dotduino를 사용하여 드론을 제어하게 되겠죠~

Gyro Sensor - 9축 자이로 센서 모듈인 MPU9250 칩을 사용하여 주변회로를 구성합니다.

Motor Driver - 소형 드론이기 때문에 BLDC가 아닌 소형 DC 모터를 사용해야 합니다. DC모터의 정역제어와 변속제어는 모터 드라이버 IC를 사용하면 되겠죠~ 요즘 나오는 모터드라이버 IC는 추가 회로 구성없이 바로 사용할 수 있어 편리합니다.

POWER - 사실 이 부분은 하드웨어 디버깅을 하며 조금씩 수정해야 하지만, 일단 3.3V제어를 하기 위해 LM1117-3.3 제품을 사용했습니다.

             (*MPU9250 칩의 동작전압이 3.3V 표준으로 되어있어 닷두이노(및 아두이노)를 5V 동작 시키게 되면 레벨 쉬프트 또는 컨버터 회로가 추가적으로 필요합니다.)

BLUETOOTH - 흔히 사용하는 HC-06을 사용할까 고민을 많이 했지만, HC-06의 부피가 드론 보드에 비해 상당히 크기 때문에 오렌지보드 BLE 버전에 탑재되는 블루투스 회로를 사용하기로 하였습니다.

 

 

 

개요는 간단합니다~ 자이로 센서 값을 읽어 PID제어를 이용하여 모터드라이버에 PWM신호를 조절해줌으로써 4개의 모터 속도를 독립적으로 제어합니다. 그리고 블루투스를 이용해 스마트 폰으로 부터 신호를 받아 방향 및 속도를 제어합니다. 생각은 참 완벽합니다.

 

자 그럼 본격적으로 H/W 구성부터 하게 될 텐데요~ 나름대로의 완벽한 회로도를 작성하고, 아트웤을 하여 PCB를 완성하였습니다.

 

 

뭐... 이렇게 생겼습니다 ㅎㅎ 회로도는 아직 수정해야 할 사항이 많을 수 있기 때문에 공개는 나중으로 미루도록 하죠.

 

좀 더 구체적으로 설명을 드리자면

 

이런식으로 나누어져 있습니다. PCB 각 모서리 부분에 있는 작은 솔더 마스크가 모터에 연결되는 부분이 됩니다.

중요한 점은 BLE CIRCUIT과 MPU9250의 배치입니다. MPU9250의 경우 정확한 기울기, 가속도를 측정하기 위해서는 정중앙에 배치하여야 합니다.

BLE CIRCUIT은 이미 회사에서 개발완료한 회로를 그대로 사용했는데, 안테나 회로 부분에서 임피던스 매칭 등의 문제로 최초 개발했을 때의 구조와 

최대한 동일하게 구성하였습니다.

뭐...나머지는 아트웤하기 편한대로 배치를 하게 되었습니다.

 

현재까지는 부품 실장을 완료하고 하드웨어 디버깅 작업을 하고 있습니다.

예상과는 다르게 참 여러가지 문제점이 많더군요... 씨리얼통신과, 모터, MPU9250과의 I2C 통신 등 여러가지가 먹통인 바람에...

설계단계의 문제도 있지만 아트웤 과정에서 부품을 잘못 그리는 바람에 생기는 문제점도 보이네요 ㅎㅎ

 

요약하자면

1. 전원 공급 불 안정 : 레귤레이터의 PCB DECAL을 잘못 그려 연결이 꼬인 문제....

2. 씨리얼 통신 불가 : Dotduino Connector 납땜 문제....

3. 모터 제어 문제 : 회로에서 일부 결선으로 인해 제어 불가.... 이 부분은 점퍼를 여러개 날려서 수정을 했습니다;;

4. I2C 통신 문제 : MPU9250의 레퍼런스 회로에서 일부 누락된 내용으로 인해 동작 불가...<수정중>

이렇게 네가지 에러사항이 있습니다.

 

1~3까진 80% 해결이 되었고, I2C의 경우 수정 중에 있습니다~ 하지만 MPU9250은 패키지가 너무 작기 때문에 점퍼로 추가회로를 구성하는데 시간이 많이 소요 될걸로 보입니다...

 

다음 시간엔 좀 더 디버깅된, 그럴 듯한 하드웨어를 가지고 개발기 2부를 작성하겠습니다 ^^

 

SaBo

드론,닷두이노,오렌지보드,모터,모터드라이버,I2C,자이로,자이로센서,MPU9250,블루투스,BLE