EBFO-QUAD REV 1.0 매뉴얼 E2BOX COMPANY http://www.e2box.co.kr E2BO X
INDEX 1. 특징 3 2. 제품구성 4 3. 주의사항 5 4. 보드구성 6 5. 쿼드콥터조립 9 6. 조종기조립 17 7. 충전/ 데이터송수신용 USB 보드조립 18 8. 비행하기 19 9. 캘리브레이션 21 10. 펌웨어다운로드및데이터통신 23 11. 소스수정하기 31 12. 라이브러리설명 33 13. Revision History 36 E2BO X 2
1. 특징 초소형사이즈의쿼드콥터 ( 모터축기준 7.2cm *6.4cm) tilting 방식의소형조종기 LIPO 1CELL 충전 / 펌웨어다운로드겸용 USB 보드제공 개발을위한라이브러리(binary), main 프로그램제공 보드별회로도제공 최대비행시간 :7~8 분(240mAh LIPO 배터리기준) 쿼드콥터본체 -Cortex-M3 32bit MCU 사용 -3 축자이로센서,3축가속도센서 -2.4GHz RF Transceiver -FET -PID 모터드라이버 자세제어 - 무게 :17.7g ( 배터리제외) 조종기 -4 채널컨트롤(roll, pitch, yaw, throttle) -Cortex-M3 32bit MCU 사용 -3 축자이로센서,3축가속도센서 -2.4GHz RF Transceiver - 조종기캘리브레이션, 쿼드콥터본체캘리브레이션기능 충전/ 데이터송수신용 USB 보드 -1Cell 리튬폴리머배터리충전 ( 기본충전전류 CC=240mA) - 펌웨어다운로드 & 시리얼데이터송수신 (VCP 지원) - 충전상태 LED E2BO X 3
2. 제품구성 쿼드콥터보드 조종기보드 쿼드콥터윙 x 4개충전/ 데이타 USB보드 모터 x 4개배터리 x2개 프로펠러CW x 2개프로펠러CCW x 2개 mini-usb 케이블 프로그램 CD E2BO X 4
3. 주의사항 3-1. 리튬폴리머배터리취급주의사항 리튬폴리머배터리의충전은반드시전용충전기(USB 보드충전회로) 로충전해야하며, 배터리용량의 1C 범위이내에서충전해야합니다. 제품에포함된리튬폴리머배터리는방전이되어있는상태이기때문에만충전을한후사용하시기 바랍니다. 리튬폴리머배터리는완전방전(2.75V 이하) 이되면회복불능상태가됩니다. 그리고과방전을자주할경우 배터리의수명이떨어집니다. 배터리잔량이부족할경우바로충전해주시기바랍니다. 고온에두거나, 단자간단락( 쇼트) 시킬경우배터리가폭발할수있습니다. 임의로분해하지마십시오. 장기보관시만충전상태로보관하지마십시오. 만충전상태로보관시온도변화에따라부풀어오르는 현상이발생될수있으며, 배터리의성능이저하될수있습니다. 장기간보관시에는용량의 50%~60%(3.7V~3.8V) 정도의잔량을남겨둔후보관하십시오. 사용온도가내려가면배터리의성능이저하될수있습니다. 3-2. 쿼드콥터운용시주의사항 비행시프로펠러는고속으로회전하여피부에상처를줄수있습니다. 특히얼굴, 눈등에가까이가지 않도록하십시오. 배터리수명을위해과방전을금하고, 가급적자주충전해서사용하시기바랍니다. 충격에의해모터, 프로펠러,PCB 등이손상될수있습니다. 쿼드콥터( 조종기) 와 USB 보드의연결시전원이차단된상태( 전원스위치OFF, USB 케이블제거) 에서 하십시오. E2BO X 5
4. 보드구성 4-1. 쿼드콥터보드구성 USB 보드연결 커넥터 상태 LED 배터리커넥터 wing 연결부 무선안테나 wing 연결부 wing 연결부 전원스위치 wing 연결부 E2BO X 6
4-2. 조종기보드구성 yaw 축보정/ 가속도캘리브레이션 상태 LED yaw 축보정/ 자이로캘리브레이션 스로틀제어다이얼 무선안테나 전원스위치 USB보드연결커넥터 배터리커넥터 E2BO X 7
4-3. USB 보드구성 충전상태 LED USB 보드연결커넥터 리셋( 다운로드) 스위치 쿼드콥터/ 조종기연결커넥터 미니USB 커넥터 E2BO X 8
5. 쿼드콥터조립 조립을위한필요공구 : 소형니퍼, 인두기, 납, 5-1. 베터리커넥터조립 제공된 2.54mm핀헤더에서 2 핀을니퍼로잘라내어납땜하여배터리커넥터를만듭니다. 5-2. wing 연결 wing pcb에서니퍼로 wing 부분을잘라낸후 ᄃ자홈에깊이결합합니다. E2BO X 9
위에서봤을때정십자(+) 모양을하고있어야합니다. 옆에서봤을때수평으로일직선이되어야합니다. E2BO X 10
결합부위를납땜합니다.1개의 wing 당 4 곳의납땜부위가있습니다. E2BO X 11
5-3. 모터결합 아래그림과같은방향으로모터를결합합니다. E2BO X 12
wing 에모터를걸친후케이블타이로고정시킵니다. 니퍼로케이블타이를단단히당긴후잘라냅니다. E2BO X 13
모터의빨간선은 +, 파란선은 - 에납땜합니다.( 아래그림참고) 프로펠러를방향에맞게연결합니다.( 아래그림참고) E2BO X 14
완성. E2BO X 15
5-4. 배터리장착 배터리를배터리단자에연결합니다.( 극성에주의) 폼양면테이프등으로붙이고고무줄로고정합니다. 큰배터리는아래쪽에장착가능합니다. E2BO X 16
6. 조종기조립 2.54mm 2 핀핀헤더를아래그림과같이납땜하여배터리커넥터를만듭니다. 배터리를배터리단자에연결합니다.( 극성에주의) 폼양면테이프등으로붙이고고무줄로고정합니다. E2BO X 17
7. 충전/ 데이터송수신용 USB 보드조립 충전용 데이터통신용 2 핀핀헤더를아래그림과같이납땜합니다. 1.27mm 소켓을잘라아래그림과같이납땜합니다. USB케이블을통해 PC와연결하고배터리를 2 핀헤더에연결하면충전이됩니다. 충전이완료되면 LED 가꺼집니다. E2BO X 18
8. 비행하기 쿼드콥터와조종기를아래그림처럼같은방향을향하게합니다. ( 쿼드콥터와조종기는전원이 ON 되는순간의 yaw 각을시작점으로판단합니다. 따라서항상같은 방향으로둔상태에서전원을 쿼드콥터의전원을먼저 ON 해야합니다.) ON 합니다. 조종기의스로틀을완전히내립니다. 조종기의전원을 ON 합니다. (1) (3) (2) E2BO X 19
조종기를수평으로두고스로틀을천천히올려호버링을연습합니다. 충분히호버링연습을하시기바랍니다. 조종기를기울이면쿼드콥터는동일한방향으로길울어집니다. pitch roll up down yaw 캘리브레이션이정상적이지않을경우나시간경과에따라조종기yaw축과쿼드콥터의 yaw축이 달라집니다. 비행시조종기의좌우스위치를눌러쿼드콥터와조종기의방향을일치시칼수있습니다. ( 비행중에설정가능) yaw축 offset 조정 E2BO X 20
9. 캘리브레이션 9-1. 조종기캘리브레이션 스위치두개를동시에누른상태에서전원스위치를 ON 합니다. LED 가두번깜박인후스위치를놓습니다.( 조종기캘리브레이션모드진입) 오른쪽스위치는자이로센서캘리브레이션, 왼쪽스위치는가속도센서캘리브레이션동작입니다. 모듈은수평으로놓고움직이지않는상태에서오른쪽스위치( 자이로센서캘리브레이션) 를누릅니다. 즉시 LED가 1 번깜박이고캘리브레이션이완료됩니다. 모듈은수평으로놓고움직이지않는상태에서왼쪽스위치( 가속도센서캘리브레이션) 를누릅니다. 즉시 LED가 2 번깜박이고캘리브레이션이완료됩니다. 캘리브레이션데이터는내부플래시메모리에저장되어전원차단후에도기억됩니다. 캘리브레이션이완료되면전원을껐다켜십시오. E2BO X 21
9-2. 쿼드콥터캘리브레이션 조종기측스위치두개를동시에누른상태에서전원스위치를 ON 합니다. LED가두번깜박이고 3초후 LED 가다시두번깜박인후스위치를놓습니다. 쿼드콥터전원을 ON 합니다. 조종기의왼쪽스위치를한번누르면쿼드콥터 진입합니다. LED가두번깜박이며쿼드콥터캘리브레이션모드로 쿼드콥터를수평으로놓고움직이지않는상태에서조종기의오른쪽스위치( 자이로센서캘리브레이션) 를 누릅니다. 쿼드콥터의 LED가 1 번깜박이고자이로캘리브레이션이완료됩니다. 쿼드콥터를수평으로놓고움직이지않는상태에서조종기의왼쪽스위치( 가속도센서캘리브레이션) 를 누릅니다. 쿼드콥터의 LED가 2 번깜박이고가속도캘리브레이션이완료됩니다. 캘리브레이션데이터는내부플래시메모리에저장되어전원차단후에도기억됩니다. 캘리브레이션이완료되면쿼드콥터와조종기전원을껐다켜십시오. E2BO X 22
10. 펌웨어다운로드및데이터통신 10-1. 커넥터조립및 USB연결 통신을위해쿼드콥터와조종기에통신용 핀이짧은쪽이 PCB 측에꽂혀야합니다. 1.27mm 핀헤더를납땜합니다. E2BO X 23
USB 드라이버설치를합니다. 제공되는CD 에해당드라이버가있습니다. 쿼드콥터( 조종기) 의전원스위치를 OFF 합니다. 쿼드콥터( 조종기) 와 USB 보드를결합합니다. 이후 USB 케이블을연결합니다.( 아래그림참조) *USB 보드와쿼드콥터( 조종기) 의결합또는분리는 USB케이블이 PC에서분리된상태여야행해야 합니다. E2BO X 24
10-2. 펌웨어다운로드 쿼드콥터( 조종기) 가 USB보드를통해 PC와연결된상태에서 Windows의장치관리자를실행하여 USB가연결된 COM 포트번호를확인합니다.(USB 드라이버가설치되어있어야합니다.) FlashLoader 를설치후실행합니다. E2BO X 25
USB드라이버의 COM포트를 PortName 에설정합니다. BuadRate 는빠른다운로드를위해최고속도로지정합니다. Next 버튼을누릅니다. Flash 사이즈와 Page별 Protect 에대해나타납니다.Next 버튼을누릅니다. Download to device 를선택합니다.... 버튼을눌러다운로드할파일을선택합니다. Jump to the user program을설정하면다운로드후자동으로 편리합니다.Next 버튼을한번더누르면다운로드가완료됩니다. user program 이실행되므로 E2BO X 26
펌웨어를다시다운로드할경우 USB보드의스위치를한번누른후 FlashLoad의 Back버튼을 누릅니다. 이후 Next 버튼을눌러다시다운로드가능합니다. 펌웨어다운로드후반드시캘리브레이션을해야합니다. E2BO X 27
10-3. 데이터통신 FlashLoader 로펌웨어를다운로드합니다. 다운로드한펌웨어가자동실행됩니다. (FlashLoader 의 'Jump to the user program' 옵션체크필요) 펌웨어가실행된상태에서하이퍼터미널을실행합니다. 시작 - 프로그램 - 보조프로그램 - 통신 - 하이퍼터미널 을실행합니다. E2BO X 28
Windows의장치관리자에서확인한 USB가연결된 COM 포트를선택합니다. 포트설정에서아래와같이설정합니다. 비트초 / :115200 데이터비트 :8 패리티 : 없음 정지비트 :1 흐름제어 : 없음 E2BO X 29
하이퍼터미널이연결된상태에서아래의 'g' : 자이로캘리브레이션 'a' : 가속도캘리브레이션 'z' : 자이로& 가속도캘리브레이션 '0'~'9' : 무선채널설정 ( 기본채널 4) command 를입력할수있습니다. 무선채널은쿼드콥터와조종기가동일한채널을가지고있어야합니다. 두대이상의쿼드콥터를동시에날릴경우반드시채널을변경해야합니다. E2BO X 30
11. 소스수정하기 IAR 컴파일러를실행합니다. File -Open -Workspce 메뉴를선택합니다. 소스가있는폴더에서 EWARMv5폴더의 main.eww 를선택하여프로젝트를불러옵니다. E2BO X 31
소스수정후 Project -Make 메뉴(F7 키) 를누르면컴파일이됩니다. 에러없이정상적으로컴파일이되었을경우 \\EWARMv5\Debug\Exe 폴더에 main.bin파일이 생성됩니다. FlashLoader 를통해쿼드콥터( 조종기) 에다운로드할수있습니다. E2BO X 32
12. 라이브러리설명 12-1. RF 관련함수 void RfSettingRcv(unsigned char rf_channel) 함수설명 RF 수신모드설정함수인자 rf_channel : 채널번호.0~125 채널설정가능. 반환없음. int RfReadData(unsigned char *rcv_data) 함수설명 RF 데이타수신함수. 한번에최대 32byte 수신할수있다. 인자 rcv_data : 수신데이타를저장할배열(32byte 이상) 의주소. 반환 수신된데이타가있을경우 1 을반환. 수신된데이타가없을경우 0을반환 void RfSettingSend(unsigned char rf_channel); 함수설명 RF 송신모드설정함수인자 rf_channel : 채널번호.0~125 채널설정가능. 반환없음. void RfWriteData(unsigned char *rcv_data) 함수설명 RF 데이타송신함수. 한번에최대 32byte 송신할수있다. 인자 rcv_data : 송신할데이타가저장된배열(32byte 이상) 의주소. 반환 없음. E2BO X 33
12-2. ARS 관련함수 #define MPU6050_GYRO_250DPS #define MPU6050_GYRO_500DPS #define MPU6050_GYRO_1000DPS #define MPU6050_GYRO_2000DPS 0x00 0x08 0x10 0x18 #define MPU6050_ACC_2G #define MPU6050_ACC_4G #define MPU6050_ACC_8G #define MPU6050_ACC_16G 0x00 0x08 0x10 0x18 #define MPU6050_LPF_256HZ 0 // delay 0ms #define MPU6050_LPF_188HZ 1 // delay 2ms #define MPU6050_LPF_98HZ 2 // delay 3ms #define MPU6050_LPF_42HZ 3 // delay 4.9ms #define MPU6050_LPF_20HZ 4 // delay 8.5ms #define MPU6050_LPF_10HZ 5 // delay 13.8ms #define MPU6050_LPF_5HZ 6 // delay 19ms signed int AccCalX,AccCalY,AccCalZ 설명 가속도센서각축의캘리브레이션값 AccCal() 함수실행시값이재설정된다. signed int GyroCalX,GyroCalY,GyroCalZ 설명 자이로센서각축의캘리브레이션값 GyroCal() 함수실행시값이재설정된다. 함수 void Mpu6050Setting(unsigned char acc_s, unsigned char gyro_s, unsigned char lpf) 함수설명 MPU6050 센서의초기설정함수. 인자 acc_s : 가속도센서의 sensitivity를설정 MPU6050_ACC_2G ~MPU6050_ACC_16G gyro_s : 자이로센서의 sensitivity를설정 의값설정가능 MPU6050_GYRO_250DPS ~MPU6050_GYRO_2000DPS lpf : 센서의 Low Pass Filter 설정 반환 없음. MPU6050_LPF_5HZ ~MPU6050_LPF_256HZ 의값설정가능 의값설정가능 E2BO X 34
void GyroCal(void) 함수설명 자이로센서캘리브레이션함수. 센서가움직이지않는상태에서함수를실행해야정상적인캘리브레이션이된다. 약 500ms 시간요소 캘리브레이션후결과값은 인자 없음. 반환 없음. GyroCalX,GyroCalY,GyroCalZ 에저장된다. void AccCal(void) 함수설명 가속도센서캘리브레이션함수. 센서를수평으로유지하고움직이지않는상태에서함수를실행해야정상적인캘리브레이션이된다. 약 500ms 시간요소 캘리브레이션후결과값은 인자 없음. 반환 없음. AccCalX,AccCalY,AccCalZ 에저장된다. int GetEulerAngle(float *euler_x, float *euler_y, float *euler_z) 함수설명 센서로부터값을읽어와 이함수는 인자 1ms 마다호출되어야함. Euler 각도값으로변환하는함수. euler_x :x축 euler 각도값이저장된변수의주소 euler_y :y축 euler 각도값이저장된변수의주소 euler_z :z축 euler 각도값이저장된변수의주소 반환 정상처리시 1 을반환. 함수초기설정시 0을반환 E2BO X 35
Revision History V1.0 Initial release E2BO X 36
이투박스 homepage : www.e2box.co.kr e-mail : e2b@e2box.co.kr E2BO X 37