아두이노 드론 코딩 소스 - adu-ino deulon koding soseu

아두이노 드론 코딩 소스 - adu-ino deulon koding soseu

캐미(라는 말 심심찮게 들어봤을텐데요. 이성사이의 화학반응을 지칭하는 신조어로 캐미스트리, Chemistory)에서 유래된 말입니다. 주로 드라마 주인들이나 광고 기타 등등 잘어울려서 좋은 반응을 일으킬때 사용하곤 합니다. 이번에 소개할 책도 바로 그 캐미가 무척이나 잘 어울리는 조합입니다.

아두이노 드론 코딩 소스 - adu-ino deulon koding soseu

작가서민우출판앤써북발매2017.01.10.

이제 뭐 드론 동작 영상이야 흔하게 봐왔고 영화나 드라마뿐만 아니라, 언론사의 보도 촬영에도 이용되고 있죠. 그런 드론을 구입해서 조정하는데 그치는게 아니고 직접 드론킷을 이용해서 만들고 내가 직접 프로그램을 하면 얼마나 재미있을까요?

<​아두이노 드론 만들고 직접 코딩하기 - 300줄의 소스 코드로 구현해 보는 아두이노 드론, 최신개정판>에 담긴 이 내용들 물론 어렵기도 하겠지만 한번 따라가 볼까요?

아두이노 드론 코딩 소스 - adu-ino deulon koding soseu

Chapter 01 아두이노 드론 준비하기
01 아두이노 드론이란?
02 아두이노 드론, 어떤 것들이 있나요?
03 드론으로 무엇을 할 수 있나요?
04 어디서 날릴 수 있나요?
05 드론, 소프트웨어, 컨트롤러, 프레임 이해하기
05-1 대중적인 공개 드론 소프트웨어와 컨트롤러
05-2 기타 공개 드론 소프트웨어와 컨트롤러
05-3 DIY 드론 제작하기
- 완제품 DIY 드론 만들기
- 반 완제품으로 DIY 드론 만들기
- 시제품 드론으로 만들기
- 3D 프린트로 드론 만들기

Chapter 02 아두이노 드론 개발환경 구축하기
01 아두이노 스케치 IDE 설치하기
02 프로세싱 스케치 IDE 설치하기

Chapter 03 아두이노 드론 개발환경 구축하기
01 아두이노 드론 조립하기
01-1 AIR COPTER 아두이노 드론 부품 살펴보기
01-2 드론 날개와 모터 지지대 조립하기
01-3 드론 날개와 몸체 연결하기
01-4 GY-521 센서 고정용 지지대 조립하기
01-5 베이스 보드와 드론 몸체 결합하기
01-6 아두이노 프로 마이크로, GY-521, 블루투스 조립하기
01-7 드론 몸체와 베터리 연결하기
01-8 모터와 베이스 보드 연결하기
02 아두이노 드론 어플 사용하기
02-1 드론 어플 설치하기
02-2 드론 어플 사용법 익히기
02-3 드론 배터리 충전하기
03 AIR Copter 소스 업로드하기
03-1 아두이노 프로 마이크로 USB 드라이버 설치하기
03-2 AIR Copter 소스 업로드하기

Chapter 04 아두이노 드론 살펴보기
01 HM-10 BLE 통신 모듈 설치하기
01-1 HM-10 BLE 회로 연결 구성하기
01-2 MSP 입력 받기
01-3 MSP 프로토콜 살펴보기
- MSP 프로토콜이란?
- 드론 앱 전송 메시지 살펴보기
01-4 메시지 확인해하기
01-5 메시지 분석해 하기
01-6 명령 메시지 전송 주기 알아내기
01-7 명령 메시지 전송 시간 알아내기
01-8 Roll, Pitch, Yaw, Throttle 값 추출하기
01-9 checkMspPacket 함수 작성하기
02 드론용 모터 이해와 테스트
02-1 드론용 모터와 일반 모터 이해하기
02-2 드론 모터 회로 이해하기
02-3 아두이노 스케치로 4개 모터 돌려보기
02-4 모터 속도 테스트하기
- 아두이노 스케치 프로그램 작성하기
02-5 드론 수평 회전 테스트하기
03 MPU6050 가속도 자이로 센서
03-1 MPU-6050 살펴보기
03-2 Roll, Pitch, Yaw
 03-3 MPU6050 회로 이해하기
03-4 MPU-6050 가속도 자이로 값 읽어보기
03-5 MPU-6050 가속도 자이로 값 해석하기
- 가속도 센서 값 해석하기
- 자이로 센서 값 해석하기
03-6 센서와 상보필터 테스트 동영상 시청하기
03-7 센서와 상보필터 테스트하기
03-8 센서 특성과 상보필터의 구조
03-9 Roll, Pitch, Yaw 각도 출력 루틴 구현하기
- 기본 함수 구현하기
- 센서 보정 함수 구현하기
- 단위 시간 계산 함수 구현하기
- 가속도 센서 처리 함수 구현하기
- 상보필터 함수 구현하기
- 가속도 센서 모터 진동 테스트
03-10 가속도 센서 각도 공식 이해하기

Chapter 05 PID 제어로 아두이노 드론 띄우기
01 PID 제어 이해와 역사적 배경
01-1 PID의 역사적 배경
02 PID 원리 이해하기
02-1 비례 항 : P
 02-2 적분 항 : I
 02-3 미분 항 : D
 02-4 PID 튜닝 방법
03 PID 제어기 구현하기
03-1 표준 PID 제어기 구현하기
- 표준 PID 제어기 알고리즘 구하기
- 표준 PID 제어 함수 구현하기
- 모터 속도 분배 함수 구현하기
- 모터 속도 계산하기
- 사용자 입력 함수 구현하기
- 모터 회전 함수 구현하기
- PID 튜닝하기
03-2 이중 루프 PID 제어기 구현하기
- 이중 루프 PID 제어기 알고리즘 구하기
- 이중 루프 PID 제어기 스케치 구현하기
- 모토 속도 보정
- 드론 원격 조종 기능 구현하기
03-3 Smart throttle, roll, pitch 기능 구현하기
- smart throttle 알고리즘
- smart roll, pitch
 03-4 마무리하면서

APPENDIX 아두이노 우노 R3 포팅

5개의 챕터로 구성되어 있으며 앤써북에서 나온 아두이노와 같이 참고해서 보면 좋은 드론 & 아두이노 학습서가 될것 같네요. 단순한 조정보다는 아두이노 기반의 프로그램적인 부분에 주안점을 둬서 독자가 직접 코딩하면서 드론의 제어를 어떻게 터득할 수 있는지 책에 담았습니다.

아두이노 드론 코딩 소스 - adu-ino deulon koding soseu

<​아두이노 드론 만들고 직접 코딩하기>첫장에서는 늘(!) 그렇듯이 아두이노 드론은 무엇이라고 왜 흥미를 가지고 만들어야 하는지...그리고 하늘에 띄우는 특성상 어디서 날릴 수 있는디도 짚어줍니다.

드론 킷을 만들기전에 드론과 소프트웨어, 컨트롤러, 프레임에 대한 이해를 먼저 다루고 기판부터 뼈대까지 모두 만들는 방법뿐만 아니라 기성품까지 다뤄주네요. 요즘 각광받는 3D프린팅으로의 드론 제작법도 있어서 요긴할것 같네요.
 

아두이노 드론 코딩 소스 - adu-ino deulon koding soseu

<​아두이노 드론 만들고 직접 코딩하기> 두번째 장에서는 아두이노 스케치 IDE설치와 프로세싱 스케치 IDE설치를 설명해줍니다.

기본적으로  아래와 같은 과정을 밟게 됩니다.

- 아두이노 스케치를 작성하고

- 작성한 스케치를 컴파일하고 

- 컴파일한 스케치를 아두이노 드론 보드상에 업로드하고

- 시리얼 모니터를 통해 결과를 확인

하는 과정을 밟게 됩니다. 프로세싱은 MIT에서 개발되었고 아두이노로부터 시리얼을 통해 전달되는 데이터를 시각적으로 표현해 주는 프로그램입니다.

아두이노 드론 코딩 소스 - adu-ino deulon koding soseu

자 이제 본격적으로 아두이노 드론 개발 환경 구축에 나서볼까요. 우선, 아두이노 드론 킷을 조립합니다. 앞서 얘기한대로 다양한 킷이 있지만 기본적인 구조의 프레임을 비슷하기 때문에 이번 챕터의 내용을 참고하세요.

가령 드론 날개와 모터 지지대의 조립이라던가, 몸체와의 연결, 그리고 센서를 고정하는 방법 등등 말이죠. 이렇게 베이스 보드와 연결하고 모터까지 조립이 완료되면 소프트웨어적인 세팅을 위해 아두이노 드론 어플을 설치합니다. AIR Copter 소스를 업로드하기위애 USB드라이버를 설치하고 소스를 넣으세요.

아두이노 드론 코딩 소스 - adu-ino deulon koding soseu

<​아두이노 드론 만들고 직접 코딩하기> 네번째 장입니다. 아두이노 드론의 센서를 좌지우지하기 위한 과정이라고 보면 됩니다.

 HM-1- BLE 회로 연결을 구성하고  MSP 프로토콜을 세팅하며고 각종 메시지를 확인하면서 분석하는 선행과정이 필요해요. 명령어들이 제대로 전송되고 받아들여지는지 확인하고 구동을 위한 모터의 회로를 테스트합니다. 가장 기본적인 동작은 수직상승과 수평이동에 따른 가속도와 자이로 센서의 해석을 잘 해야 컨트롤이 자연스럽게 됩니다. 센서를 보정하는 함수의 이해가 좀 난이할 수도 있지만 책을 잘 읽고 구현해보세요.

아두이노 드론 코딩 소스 - adu-ino deulon koding soseu

<​아두이노 드론 만들고 직접 코딩하기> 5장에서 말하는 PID이론은 쉽게 말해서 드론의 Roll, Pitch, Yaw의 각도를 정확히 맞추기 위해 4개의 모터의 속도를 조절하는 방법을 어떤 상황에서도 해결하기 위해 PID이론이 필요합니다. 역사적의 배경까지 다뤄주고 있으니 한번 쭈욱 읽어보세요.

이런 비례 항(P), 적분 항(I), 미분 항(D)을 어떻게 튜닝하느냐에 따라 고수가 되느냐, 하수가 되느냐로 나뉘게 됩니다. 겁내시지 마시고 차근차근 책을 따로 오세요. 우선, 표준 PID제어기 구현과 이중 루프 PID 제어기 구현을 설명해줍니다.

아두이노 드론 코딩 소스 - adu-ino deulon koding soseu

아두이노 드론 코딩 소스 - adu-ino deulon koding soseu

아두이노 드론 코딩 소스 - adu-ino deulon koding soseu

<​아두이노 드론 만들고 직접 코딩하기> 는

1. 누구나 손쉽게 아두이노 드론을 만들 수 있도록 제작 방법과 조립 과정을 따라하기로 설명하였다.
2. 소스를 코딩하여 아두이노 드론을 제어할 수 있다.
3. 직접 코딩하고 기능을 추가하면서 드론 동작 원리를 이해할 수 있도록 구성하였다.
4. 드론의 핵심 부품의 동작 원리를 직접 실습을 통해서 습득할 수 있도록 쉽게 설명하였다.
5. HM-10 BLE 블루투스로 통신하는 방법, 자이로센서로 가속도제어, PID제어로 중심잡기, 모터 속도 분배, PID 튜닝 테스트, 아두이노 우노 R3 포팅 등 드론의 핵심 원리를 이해하기 쉽게 직접 코딩하면서 배울 수 있도록 설명하였다.
6. 학교, 단체 교육과정의 맞춤형 인기 교재로 드론 제작 입문부터 핵심 알고리즘까지 드론의 하드웨어와 소프트웨어를 모두 설명하였다.
 

드론을 실제 본 사람들은 적지 않겠지만 실제로 날려본 사람은 그렇게 많지 않을겁니다. 하물려 직접 드론을 만들어서 자기가 직접 프로그래밍을 한 사람들 거의 드물겠죠?

그래서 이 책은 위와 같은 6가지의 특징을 담고 있어 누구나 손쉽게 아두이노 드론을 만들 수 있도록 지도해줍니다. 물론, 비전문가나 코딩의 코자도 모르는 분들이야 어렵겠지요? 솔직히 그래요. 너도 비전문가인데 뭐 말해 뭐하겠어요.

그러나 세상 모든 것들이 다 모르는 상태에서 새로운 것을 배우듯 드론 아두이노도 그렇게 취미삼아서 조금씩 도전해 보시면 어떨까요!

​"이 책 얼마나 하나요?"

http://blog.yes24.com/document/9249789

아두이노 드론 코딩 소스 - adu-ino deulon koding soseu

아두이노 드론 코딩 소스 - adu-ino deulon koding soseu

처음 아두이노를 시작하면 이런 책들이 도움이 될것 같아요