ACADEMIC DRONE KIT S/W개발 기술교육 교안

지은이 엄성용, 조영석 쪽수 180쪽
초판 2019-01-15 ISBN 979-11-6054-237-0
판형 188*257mm 기타
  • 본 교재는 ICT(정보통신기술영역) 업무의 하드웨어 및 소프트웨어 개발자, 컴퓨터·전자전기·로봇·제어시스템을 전공으로 하는 학생, 그 외 임베디드시스템 분야에 종사하시는 개발자분들께서 드론(멀티로터형 무인기) 관련 개발 기술을 습득하거나 재교육을 받고자 하는 경우를 대비하여 저술한 교재입니다.
    따라서 본 교재를 공부하시려는 독자께서는 반드시 C언어를 사용하실 수 있어야 합니다. 더불어, 전기·전자·컴퓨터·제어시스템 등에 관련된 사전 지식이 있으신 독자분들은 본 교재의 내용 습득에 매우 도움이 될 것으로 생각됩니다.
    본 교재에서 다루는 FCC의 MPU는 32bit ARM계열(STM32F103)을 사용하며, 주요 센서는 MPU9250과 BMP280 등을 포함하고 있습니다. 게재된 회로는 실제 PCB를 제작하여 검증이 완료된 회로입니다.
    S/W 개발환경은 윈도우 운영체제에서 무료 또는 유료 컴파일러를 사용하는 것을 목표로 하였습니다.
    비행제어 소프트웨어는 필자가 여러 종류의 오픈소스 S/W Stack을 분석·검증하여, 본 하드웨어에 적합하도록 소스를 재구성하였습니다.
    4차 산업혁명 시대에서의 드론산업은 단순한 개인용?레저용 드론의 제조가 아닌 ‘산업용 시스템드론’이라는 새로운 패러다임의 드론시장이 형성될 것으로 예상되며, 이는 수많은 비즈니스와 드론시스템의 융합을 통한 새로운 비즈니스모델들의 탄생을 의미합니다.
    필자는 본 교재를 통하여 드론시스템 관련 개발자의 저변이 넓어져서 이와 같은 새로운 비즈니스모델들을 선도적으로 개발하여 한국 드론산업의 경쟁력을 높이기에 미력이나마 도움이 되기를 바라는 마음입니다. 

  • Ⅰ. 드론 개요

     

    1. 드론의 역사 10
    2. 드론의 종류와 구성 요소 12
       1) 드론의 종류 12
       2) 드론의 구성 요소 13
    3. 드론의 비행 원리 18
       1) 쿼드로터 드론의 정지 비행 원리 18
       2) 쿼드로터 드론의 상하 비행 원리 19
       3) 쿼드로터 드론의 전후 비행 원리 19
       4) 쿼드로터 드론의 좌우 비행 원리 20
       5) 쿼드로터 드론의 좌우 회전 원리 20
    4. 본 교안의 타깃 시스템 22

     

    Ⅱ. 컴파일러 및 소스 코드 작성 통합 환경 구축

     

    1. 개발 환경 구성과 Tools 24
       1) 유료 버전 컴파일러 24
       2) 무료 버전 컴파일러 25
    2. 개발 S/W 설치 26
       1) STM32CubeMX 설치 - 초기화 Code 생성 도구 26
       2) TrueSTUDIO 설치 27
       3) DownLoad 29
       4) 테스트 프로그램 작성 32

     

    Ⅲ. 드론 제어 소프트웨어 개요

     

    1. 소스 파일의 구성 41
    2. 소스 코드 구성 블록도 42
    3. S/W 블록별 상세 내용 43
       1) MOTOR CONTROL 43
       2) PWM CONTROL AND THRUST 46
       3) SENSOR 53
          (1) 가속도계와 자이로 센서 데이터 취득 54
             ➊ 인터페이스 초기화 56
                Ⓐ I2C Initial 코드 생성하기 59
                Ⓑ SPI Initial 코드 생성하기 60
             ➋ 인터페이스별 READ/WRITE 함수 작성 61
                Ⓐ I2C 버스로 MPU9250 레지스터값 읽기와 쓰기 61
                   • I2C 버스로 1Byte 읽기 61
                   • I2C 버스로 1Byte 쓰기 62
                   • I2C 버스로 여러 바이트 읽기와 쓰기 63
                Ⓑ SPI 버스로 MPU9250 레지스터값 읽기와 쓰기 63
                   • SPI 버스로 1Byte 쓰기 64
                   • SPI 버스로 1Byte 읽기 65
                   • SPI 버스로 여러 바이트의 데이터 읽기와 쓰기 66
             ➌ MEMS 센서 초기화 코드 작성 66
                Ⓐ Chip ID 확인 66
                Ⓑ CHIP 리셋 68

                Ⓒ 클럭 소스 및 필터의 차단 주파수 설정 69
                Ⓓ 샘플링 주파수 세팅 70
                Ⓔ 자이로스코프 기능 지정(Full 스케일 지정 ) 70
                Ⓕ 가속도 기능 지정 71
                Ⓖ 인터럽트 세팅 73
                Ⓗ 지자기 센서 초기화 74
          (2) 배터리 체크 87
          (3) 통신 모듈 초기화 90
          (4) 필터링 처리 92
       4) 제어 알고리즘 93
          (1) PID 제어 원리 93
          (2) PID 튜닝 95
       5) 비행 제어 프레임웍 구성 97
          (1) 시퀀셜 비행 제어 프레임웍 구성 97
          (2) 실시간 운영체제와 연동한 제어 시스템 구성 98
       6) 드론의 기능 구성 100
          (1) 호버링 100
          (2) 헤드프리 101
          (3) GCS 시스템 102

     

    Ⅳ. FCC H/W 영역

     

    1. 전체 구성 블록도 104
    2. 회로도(Schematic) 파일 105
    3. 블록별 기능 설명 110
       1) 전원 및 배터리 관리부 110
       2) MPU부 110
       3) MEMS 센서부 111
       4) 모터 구동부 111
       5) 통신 및 LED부 111
    4. 사용 부품 매뉴얼 112

     

    Ⅴ. 실습용 드론 제작 실습

     

    1. 초기화 코드 생성 115
       1) System clock setting 함수 119
       2) ADC 설정 함수 121
       3) I2C 설정 함수 122
       4) SPI 설정 함수 122
       5) 타이머 초기화 함수 123
       6) USART 초기화 함수 125
       7) DMA 초기화 함수 125
       8) 범용 IO 포트(GPIO) 초기화 함수 126
    2. 기능 블록별 제어 프로그램 작성 128
       1) 모니터링 프로그램 작성 128
       2) None Blocking GPIO를 이용한 LED On/Off 132
       3) 자이로/가속도 센서 데이터 취득 프로그램 실습 135
       4) 모터 제어 프로그램 실습 144
    3. 비행 제어 프로그램 실습 146
       1) FC 프로그램 작성 및 컴파일 146
       2) Sample GCS 프로그램 작성 및 컴파일 160
          (1) MainActivity 소스 161
          (2) SettingActivity 165
          (3) JoystickView 171
    4. PID 튜닝 실습 175
       1) PITCH, ROLL 튜닝 175
       2) YAW 튜닝 176
    5. 자동비행 프로그램 작성 177
       1) 고도 유지 자동비행 FC 프로그램 작성 177
       2) 안전비행 FC 프로그램 작성 179

  • 엄성용

     

    • 세종대학교 대학원 항공우주공학 박사(재학)
    • 연세대학교 대학원 산업/정보공학 박사(수료)
    • 청주대학교 대학원 전자공학 석사
    1987.01 ~ 1998.02 기아정보시스템㈜, 시스템개발연구소 실장
    1998.03 ~ 2014.06 하이테콤시스템㈜, 부사장/연구소장
    2014.07 ~ 2015.05 ㈜씨큐로, 기업부설연구소 연구소장
    2015.06 ~ 2016.05 ㈜에이알웍스, 부사장/연구소장
    2016.06 ~ 현재 ㈜블루젠드론, 대표이사/연구소장
    2016.10 ~ 현재 한국드론협회 드론 시스템 플랫폼 개발분과위원장
    2018.03 ~ 현재 동국대학교 융합 S/W 교육원 겸임교수
    2018.04 ~ 현재 한국드론기업연합회 부회장

     

    조영석


    • 청주대학교 대학원 전자공학과 박사
    1998.03 ~ 현재 강동대학교 컴퓨터정보과 교수
    2010.03 ~ 현재 한국컴퓨터정보학회 이사(학계)
    2017.03 ~ 현재 ㈜블루젠드론 기술고문/산학협력위원 

  •