Thumbnail
하드웨어 임베디드 · IoT

바닥부터 시작하는 STM32 드론 개발의 모든 것 대시보드

(5)
73개의 수강평 ∙  1,342명의 수강생

무료

지식공유자: ChrisP
총 53개 수업 (31시간 21분)
수강기한: 
무제한
수료증: 미발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

초급자를 위해 준비한
[임베디드 · IoT] 강의입니다.

※ 본 강의는 22년9월부터 전면 무료화 되었습니다. 무료 컴파일러인 STM32CubeIDE를 이용한 STM32F4 고성능 자작 드론의 FCC 비행제어 시스템을 처음부터 끝까지 모두 직접 개발하는 유일한 강좌입니다. ArduPilot이나 Pixhawk등 드론 오픈소스를 사용하지 않고 센서 인터페이스부터 PID 제어까지 모두 직접 구현하기 때문에 드론 제어시스템 및 임베디드 시스템의 모든 개발 과정들을 경험하고 학습할 수 있습니다. 비전공자, 초보자도 쉽게 따라할 수 있도록 수업에서 모든 소스코드와 하드웨어 조립 방법에 대해 천천히 설명드립니다. 천천히 따라만 하시면 내가 직접 개발한 자신만의 드론으로 상용제품보다 안정적인 비행을 경험하실 수 있습니다.

✍️
이런 걸
배워요!
STM32F4 기반 고성능 드론 비행제어시스템 개발
STM32CubeIDE 사용법
CubeMx 사용법
STM32F4 HAL 및 LL 드라이버 사용법(주로 LL 사용)
임베디드 시스템 개발 프로세스
자작드론 FC 개발
9축(BNO080) 및 6축(ICM-20602) 센서, 기압센서(LPS22HH) 인터페이스
UBLOX NEO M8N 인터페이스 및 데이터 파싱 (u-center 사용)
FlySky FS-iA6B 수신기 인터페이스(iBus) 및 데이터 파싱, FS-i6 송신기 설정
쿼드로터 드론 기체 셋팅하는 방법
TIM을 이용한 PWM 생성방법
ESC 캘리브레이션 및 ESC 프로토콜 종류(Standard PWM, Oneshot, Multishot, Dshot 등)
3DR Telemetry 설정 (3DR radio config 사용)
드론 상태 정보 송수신 (센서 데이터, FS-i6 조종기 데이터, 배터리 전압, PID 제어 게인 등)
부가 기능 - EEPROM에 PID게인 저장, 배터리 전압 체크(ADC) 및 저전압 알람
안전을 위한 기능 - 부팅 시 센서 상태 검사, Fail-safe 등
드론의 자세 제어 기법 - PID 제어
싱글 PID 제어 이론과 실험
더블 PID 제어 이론과 실험

※ 본 강의는 22년9월부터 전면 무료화 되었습니다. 꼭 강의평가 및 엠하이브 유튜브 채널 구독과 좋아요 부탁드려요!

※ 강의용 드론 키트는 이곳에서 구매하실 수 있습니다. (클릭)

※ 소스코드는 깃허브에서 다운받으실 수 있습니다. (클릭)

 

안녕하세요 M-HIVE ChrisP 입니다.

본 강좌는 STM32F4 Micro Controller를 이용한 자작드론 개발하기 강좌로서, 드론의 비행제어시스템(Flight Control System) 개발을 위한 센서 인터페이스부터 PID 제어까지 전 과정을 다룹니다.

다른 드론 개발 강좌와 다르게 STM32F4를 이용하여 센서 인터페이스부터 시작해서 PID 제어까지 모든 소스코드를 직접 하나씩 다 작성하는 강의입니다. 오픈소스를 사용하지 않고 모든 기능들을 직접 하나씩 구현하기 때문에 드론을 개발하는 과정과 임베디드 펌웨어 개발 과정을 쉽게 이해하실 수 있습니다.

게다가 본 강의에서 개발한 드론은 pixhawk, ardupilot같은 상용품에 비해 성능이 전혀 뒤떨어지지 않기 때문에 단순 교육용 드론을 넘어 연구용, 산업용으로도 응용 가능합니다. 또한 본 강좌에서 사용하는 MH-FC V2.2는 드론 뿐 아니라 움직이는 모든 무인이동체에 적용 가능하니 무인 자동차같은 시스템에도 응용될 수 있겠죠!

강의에서 사용하는 드론 부품들 완성된 드론의 모습

 

PID 제어 이론 및 코드 구현 센서데이터 수신 및 데이터 시각화

                     

1축 PID제어 테스트 최종 비행

 

 

강의는 총 3개의 파트, 12개의 챕터로 구성되어 있습니다.

파트1 에서는 FC(Flight Controller)의 기초

  • CH1. 임베디드 시스템 개발을 위한 디버그 환경 구축
  • CH2. 센서 인터페이스 (BNO080 9축 센서, ICM-20602 6축 센서, LPS22HH 기압 센서)
  • CH3. GPS 데이터 수신 및 파싱 (M8N)
  • CH4. 리시버 데이터 수신 (FS-i6송신기, FS-iA6B수신기)
  • CH5. 기체 셋팅 (QAV210)
  • CH6. 모터 구동 (Oneshot125 PWM)

파트2 에서는 통신 및 부가기능

  • CH7. 부가기능 (EEPROM, 배터리 전압 체크, 자이로 오프셋 제거, BNO080 캘리브레이션)
  • CH8. 무선 데이터 송수신 (기체 상태 정보 송신 및 제어 파라미터 수신, 강의용 GCS 사용법)
  • CH9. 안전기능 (Fail-safe 등 안전을 위한 기능)

파트3 에서는 비행 제어(PID Control)

  • CH10. PID 제어 준비
  • CH11. 롤, 피치 제어 (더블 PID)
  • CH12. 헤딩 제어 (싱글 PID)

의 순서로 진행됩니다.

본 강의에서는 STM32F405RGT Cortex M4 마이크로 컨트롤러를 메인 프로세서로 사용하고, 자세제어를 위한 BNO080 9축 센서, ICM-20602 6축 센서와 고도제어를 위한 LPS22HH 기압센서를 사용합니다. 또한 실외 자동 비행을 위한 UBLOX M8N GPS 데이터 수신까지 다룹니다. (단, 고도제어와 GPS 제어는 본 강의에서는 다루지 않음)

본 강좌의 목적은 고성능 드론을 개발하는 것이지만, 그 개발하는 과정에 대해 더 심도있게 다룹니다.

드론 비행을 위한 가장 기초단계인 센서 데이터 인터페이스 부터 자세제어를 위한 PID Control 까지 다룹니다.

임베디드 어플리케이션을 개발하기 위한 과정들을 집중적으로 설명드리고, 그것들이 합쳐져 드론비행제어 시스템이 완성됩니다.

유익한 동영상 강의 되도록 항상 노력하겠습니다.

 

- M-HIVE ChrisP

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
고성능 드론의 기초부터 비행제어까지 하나씩 직접 개발하고 싶으신 분
STM32를 이용하여 심도있는 응용프로그램을 개발해보고 싶으신 분
전자, 통신, 제어, 기계, 항공 등 전공 학생
드론 관련 종사자
임베디드 시스템 개발 프로세스를 경험해보고 싶으신 분
아두이노나 8bit MCU에서 32bit MCU로 넘어가려고 하시는 분
PID제어의 기초개념 학습과 동작을 직접 구현하려고 하시는 분
고수준 임베디드 프로젝트를 실습해보고 싶으신 분
드론 관련 연구기관 및 교육기관
무인이동체에 관련된 프로젝트를 진행하는 분
📚
선수 지식,
필요할까요?
본 강좌에서 사용하는 MH-FC V2.2 Flight Controller 필수!! (없으면 진행 불가능!! M-HIVE 스마트스토어에서 구매 가능)
드론 구성품 (BLDC 모터, ESC, 프로펠러, 프레임, 배터리 등. M-HIVE 네이버 카페에서 목록 확인 필수)
Windows 계열 PC 및 STM32CubeIDE
C언어 중급 이상 요구됨
기초 회로 지식 요구됨
STM32F4 또는 마이크로 컨트롤러 (MCU) 개발 경험 필수

안녕하세요
ChrisP 입니다.
ChrisP의 썸네일
커리큘럼 총 53 개 ˙ 31시간 21분의 수업
이 강의는 영상, 수업 노트가 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 2. Part1. FC 개발의 기초 - Ch2. 센서 인터페이스
섹션 3. Part1. FC 개발의 기초 - Ch3. GPS 데이터 수신 및 파싱
3-1. U-blox M8N GPS NMEA 데이터 수신 및 u-center 설치 43:07
3-2. M8N 설정 및 UBX 프로토콜 수신(u-center 사용) 22:24
3-3. UBX 메시지 프레임 분석 27:17
3-4. UBX 메시지 수신 및 파싱 47:46
3-5. M8N 설정 코드 작성 25:19
섹션 4. Part1. FC 개발의 기초 - Ch4. 송신기(조종기) 데이터 수신 및 파싱
4-1. Flysky FS-i6 송신기 설정 및 FS-iA6B 수신기 i-Bus 데이터 수신 37:50
4-2. i-Bus 메시지 분석 및 체크섬 검사 31:15
4-3. i-Bus 메시지 파싱 22:07
4-4. i-Bus Fail-safe 설정 및 파싱 33:18
4-5. FS-i6X i-Bus Fail-safe 설정 및 파싱 (보충 영상) 30:41
섹션 5. Part1. FC 개발의 기초 - Ch5. 기체 셋팅
5. 드론 기체 조립 및 셋팅 34:36
섹션 6. Part1. FC 개발의 기초 - Ch6. 모터 구동
6-1. ESC 프로토콜 설명 (Standard PWM, Oneshot, Multishot, Dshot, Proshot) 22:00
6-2. Oneshot125 PWM 생성 33:03
6-3. ESC 캘리브레이션 및 모터 구동 38:13
6-4. 선택적 ESC 캘리브레이션 모드 진입 (FS-i6 스위치 사용) 35:12
섹션 7. Part2. 통신 및 부가기능 - Ch7. 부가기능
7-1. AT24C08 EEPROM에 데이터 읽기/쓰기 46:18
7-2. EEPROM 데이터 관리 프로토콜 정의 49:52
7-3. 배터리 전압 체크 및 저전압 알람 31:12
7-4. BNO080 캘리브레이션 38:44
7-5. ICM-20602 자이로 DC 바이어스 제거 24:53
섹션 8. Part2. 통신 및 부가기능 - Ch8. 무선 데이터 통신 (FC ↔ GCS)
8-1. 3DR Telemetry 설정 및 데이터 송수신 (3DR Radio Config(Sikradio Config)사용) 49:55
8-2. M-HIVE Ground Station V0.9.6 소개 33:08
8-3. FC ↔ GCS 간 통신 프로토콜 V0.9.1 설명 27:04
8-4. FC 데이터 송신 - ID 0x10 AHRS 메시지, 딜레이 사용 (1/2) 49:52
8-4. FC 데이터 송신 - ID 0x10 AHRS 메시지, 타이머 사용 (2/2) 31:52
8-5. FC 데이터 송신 - ID 0x11 GPS 메시지 46:03
8-6. FC 데이터 송신 - ID 0x00~0x05 PID 게인 메시지 31:33
8-7. FC 데이터 수신 - ID 0x00~0x05 PID 게인 설정 메시지 42:07
8-8. FC 데이터 수신 - ID 0x10 PID 게인 요청 메시지 51:14
섹션 9. Part2. 통신 및 부가기능 - Ch9. 안전을 위한 기능
9-1. 센서 연결상태 및 PID게인 로드상태 검사 48:23
9-2. 부팅 및 아밍 시, 조종기 쓰로틀 및 SWA 상태 검사 47:32
9-3. 비행 중, Fail-safe 모터 정지 및 저전압 경고음 출력 52:10
섹션 10. 드론 시뮬레이터 소개 - FPV FreeRider
섹션 11. 시험 비행
섹션 12. Part3. 비행 제어 - Ch10. PID 제어 준비
10-1. PID 제어를 위한 1kHz 타이머 생성 및 센서 부호 일치화 53:07
10-2. 싱글 PID제어 이론 - 설명 (1/2) 미리보기 44:07
10-2. 싱글 PID제어 이론 - 구현 (2/2) 52:56
10-3. 더블 PID제어 이론 - 설명 (1/2) 미리보기 44:55
10-3. 더블 PID제어 이론 - 구현 (2/2) 22:44
섹션 13. Part3. 비행 제어 - Ch11. 롤 피치 더블 PID 제어
11. 롤 피치 더블 PID 제어 46:29
섹션 14. Part3. 비행 제어 - Ch12. 요 각도 각속도 싱글 PID 제어
12-1. 요 각속도 싱글 PID 제어 (조종기 중립 아닐 때) 22:44
12-2. 요 각도 싱글 PID 제어 (조종기 중립일 때) 47:09
섹션 15. Ch13. 강의 마무리 (완)
13. 강의 마무리 - 하드웨어/소프트웨어 리뷰, 안전수칙 및 비행 전,중,후 주의사항, 배터리 관리 요령 (1/2) 34:44
13. 강의 마무리 - 비행 공역 확인 방법, GPS 고정 방법, FPV 장비 소개, 고도제어 시연, 마무리 (2/2) (완) 19:16
강의 게시일 : 2019년 07월 26일 (마지막 업데이트일 : 2023년 12월 12일)
수강평 총 73개
수강생분들이 직접 작성하신 수강평입니다.
5
73개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
최재국 thumbnail
5
꿀잼~
2020-03-15
지식공유자 ChrisP
별점5점 감사합니다~ 하나씩 구현하면서 더욱 더 꿀잼을 느끼실 수 있을겁니다 ㅎㅎ 마지막까지 알차고 재밌는 강의 되도록 노력하겠습니다. 감사합니다!!
2020-03-15
lms thumbnail
5
준비를 참 많이 하셨을텐데 확인하는 입장에서는 순식가에 전부 들었습니다. 이해 하기 쉽게 설명해주셔서 좋구 다음 인강 빨리 주셔요~~~~~~~~~~ 기다리겠습니다.
2020-03-18
지식공유자 ChrisP
별점 5점 감사합니다 ㅎㅎ 남은 강의들도 이해하기도 쉽고 따라하기도 쉽게 준비하겠습니다. 여러 사정들에 의해 계속 딜레이 되고 있어서 죄송하다는 말씀 드립니다 ㅠㅠ 최대한 빨리 진행하겠습니다! 감사합니다~
2020-03-18
20001540 thumbnail
5
인강은 답변이 없거나 늦는 점이 가장 큰 애로점인데 여기 인강은 답변이 빠르고 답변을 100% 해줘서 최고입니다.
2020-05-16
지식공유자 ChrisP
평점 5점 정말 감사드립니다! 저도 온라인 강의의 한계를 잘 알고있어서 최대한 수강생분들 애로사항이 있으면 최대한 빠르게 해결해드리려고 노력하고 있습니다. 물론 오프라인보다야 부족하겠지만,, 앞으로도 애로사항이 있으시면 최대한 신속하게 답변해드리도록 하겠습니다. 그럼 안전하고 즐거운 드론 개발 되시기 바라겠습니다~ 감사합니다 :)
2020-05-16
최영윤 thumbnail
5
안녕하세요. 현재 강의를 듣고있는 대학생입니다. 어려울수 있는 강의내용을 잘 풀어서 설명해주시고, 어려운 부분이 있으면 질문 게시판 또는 카페를 통해 피드백을 주시는데 이부분이 정말 인터넷강의에서 답답할 수 있는 부분을 해소해주셔서 현장에서 듣는 강의처럼 들을 수 있어 너무 좋습니다. stm32를 처음 접해보았는데 강의를 보며 진도를 따라가고 실습을 하다보니 공부가 많이 된것같습니다. 앞으로도 좋은 강의 부탁드리고, 관심있는 강의가 있으면 또 찾아 보겠습니다!!!!!
2020-05-29
지식공유자 ChrisP
별점 5점에 수강평도 정말 감사합니다. 앞으로 진행하시면서도 질문 있으시면 언제든 질문 올려주시면 확인하는대로 답글 달아드리도록 하겠습니다! 그럼 안전하고 즐거운 드론 개발되시기 바랍니다~
2020-05-29
Taewan Sung thumbnail
5
평소 임베디드 제품 개발에 관심을 가지고 있었습니다. 몇 권의 C언어책과 유튜브 예제 따라하기로는 한계가 있던차에 인프런 드론 개발 강좌를 듣게 되었습니다. LED 켜기 부터 PID 제어까지 하나 하나씩 따라하면서 임베디드 제품 개발 노하우를 배울 수 있었습니다. 각종 센서 데이터를 수신, 처리하고 무선 송수신 장치와 통신하면서 제한된 시간안에 드론 자세를 조정하는 코딩 방법을 알게되었습니다. 꼼꼼한 설명을 따라서 코딩했더니 드론 비행도 무난히 성공했습니다. 통신 프로토콜 구조체 정의, 형변환, 타이머 사용법, while 루프 에서 함수 호출 요령 등 임베디드 개발에 필요한 코딩 노하우를 익히실 수 있습니다. C는 좀 알고 있는데 매번 LED 켜고 끄는 예제에서 실력이 제자리이신 분들에게 이 강좌를 강력히 추천드립니다. 강의 만드시느라 고생 많으셨습니다. 감사합니다~
2020-11-30
지식공유자 ChrisP
안녕하세요 별점 5점 정말 감사드립니다! 본 강의에서 다룬 외부장치와 통신하는 내용, 센서인터페이스하는 방법, 특정 주기대로 원하는 동작을 수행하도록 하는 방법 등은 아주 중요하고 자주 사용되는 기능들인데 다른 강의에서 잘 다루지 않는 것 같습니다. 어떤 제품을 개발하든, 위의 내용들은 반드시 알고 있어야 하고, 따라서 본 강의에서는 그런 내용들을 좀 더 깊이 다루려고 했는데 잘 전달이 되었길 바랍니다. 그럼 항상 안전한 비행하시기 바라고, 충분히 연습 후 비행을 하시기 바라겠습니다! 감사합니다.
2020-12-05