โป ๋ณธ ๊ฐ์๋ 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 ์ ์ด ์ด๋ก ๊ณผ ์คํ
์๋ ํ์ธ์ 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)์ ๊ธฐ์ด
ํํธ2 ์์๋ ํต์ ๋ฐ ๋ถ๊ฐ๊ธฐ๋ฅ
ํํธ3 ์์๋ ๋นํ ์ ์ด(PID Control)
์ ์์๋ก ์งํ๋ฉ๋๋ค.
๋ณธ ๊ฐ์์์๋ 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) ๊ฐ๋ฐ ๊ฒฝํ ํ์
5,076
๋ช
์๊ฐ์
130
๊ฐ
์๊ฐํ
276
๊ฐ
๋ต๋ณ
5.0
์
๊ฐ์ ํ์
2
๊ฐ
๊ฐ์
์ ์ฒด
53๊ฐ โ (31์๊ฐ 21๋ถ)
๋ฌด๋ฃ