오늘은 조종기 신호를 수신하는 SBUS 리시버의 output data를 이용하여 드론의 PWM을 생성해보는 방법에 대해서 알아보겠습니다. STM32 MCU를 이용하여 설명하겠습니다. 오늘 이 포스팅을 통해 어떤 하드웨어가 출력하는 PWM의 주기와 Duty Cycle을 MCU Timer 세팅을 통해 그대로 구현해 볼 수 있을 것입니다. 최근 진행했던 드론 프로젝트의 구성을 예로 설명하겠습니다. SBUS 리시버가 출력하는 PWM 파형 분석프로젝트에 사용했던 SBUS 리시버에서 출력하는 PWM을 오실로스코프를 통해 확인해보니 다음과 같은 결과가 있었습니다. PWM 주기 : 15msHIGH duration(한 펄스에서 HIGH가 차지하고 있는 시간) : 1.1ms ~ 1.94ms HIGH duration 범위를..
터미널 프로그램 중 하나인 Tera Term을 이용하여 터미널에 출력되는 데이터들을 파일에 저장하는 방법에 대해서 알려드리도록 하겠습니다. 매트랩이나 파이썬(matplotlib)을 이용하여 센서나 혹은 그 별개의 데이터들의 변화를 그래프로 표현하고자 할 때 보통 텍스트 파일이나 csv 파일에 저장된 데이터를 읽어와 그래프에 읽어온 데이터들을 추가하는 것이 일반적인 방법입니다. 그래프로 데이터를 표현하려면 일단, 데이터를 파일에다가 저장해놓는 것이 먼저인데, 실시간으로 값이 갱신되어 들어오는 센서 데이터 같은 경우에는 그때 그때 터미널 프로그램에서 ctrl+c, ctrl+v해서 텍스트 파일에 일일이 저장시킬 수도 없으니... 참 어려운 일입니다. 하지만 Tera Term을 이용하면 데이터들을 바로바로 텍스..
현재 프로젝트에서는 고도를 측정하기 위해 기압 센서를 사용하여 기압을 고도로 변환하여 실제 비행에서 고도를 파악하려고 합니다. 하지만 워낙 노이즈가 심해서 필터 없이는 도저히 사용할 수 없는 수준이기에 고도 필터를 구현하기로 했습니다. 제가 가장 큰 도움을 받고 있는 멘토분에게 여쭤가며 얻어낸 소중한 지식을 여러분과 공유하고자 이렇게 포스팅을 하게 되었습니다. 고도필터의 전체적인 구현 시퀀스는 다음과 같습니다. 1. 가속도계의 z축 값에서 중력 가속도 성분을 제거합니다.(보상한다라고도 표현하는 것 같습니다.) 2. 중력 가속도 성분을 제거한 값(벡터)을 DCM을 이용(오일러각 이용)하여 관성 좌표계(고정 NED 좌표계) 벡터로 분해합니다.(벡터를 표현하는 좌표계를 옮기는 것이라고 이해하시는 게 쉬울 것 ..
- Total
- Today
- Yesterday
- PID
- teraterm
- Effective C++
- DCM
- 오실로스코프
- 칼만필터
- 초기화 리스트
- pwm
- 컴퓨터구조
- 드론
- SPI
- STM32
- 로그
- 드론개발
- computer_science
- C++
- UART
- compile
- c
- 터미널
- 고도필터
- 멤버 초기화 리스트
- DMA
- 컴파일
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |