2025-2ํ๊ธฐ ์ธ์ฒ๋ํ๊ต ์๋ฒ ๋๋์์คํ ๊ณตํ๊ณผ ์บก์คํค๋์์ธ โ ์์จ์ฃผํ ๋ก๋ด ๋๋ฆฌ๋ด
์ด ๋ ํฌ์งํ ๋ฆฌ๋ ๋๋ฆฌ๋ด์ MCU(๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ) ํ์จ์ด ์ฝ๋๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
๋๋ฆฌ๋ด์ ์บ ํผ์ค ๋ด ์์จ์ฃผํ์ ๋ชฉํ๋ก ํ๋ ๋ก๋ด ํ๋ก์ ํธ์
๋๋ค.
์ด ๋ ํฌ์งํ ๋ฆฌ๋ ๊ทธ์ค ๋ชจํฐ ์ ์ด, ์ผ์ ์ธํฐํ์ด์ค, SBC์์ ํต์ ์ ๋ด๋นํ๋ MCU ์ธก ์์ค ์ฝ๋๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- ์์จ์ฃผํ ๋ก๋ด: Dillybot (๋๋ฆฌ๋ด)
- ์ญํ : ๋ชจํฐ ์ ์ด, ์ ์์ค ํ๋์จ์ด ์ ์ด, ํต์ ์ฒ๋ฆฌ ๋ฑ
- ๋ณด๋: Nucleo-F446RE (STM32)
.
โโโ Core/
โ โโโ Inc/
โ โ โโโ motor_driver.h
โ โโโ Src/
โ โโโ main.c
โ โโโ motor_driver.c
โโโ README.md
- MCU โ SBC ๊ฐ ์๋ฐฉํฅ UART ํต์
- SBC (์: Raspberry Pi, Jetson ๋ฑ)์์ ์์ฑํ ์ ์ด ๋ช ๋ น ์์
- ์๋, ๋ฐฉํฅ, ์ ์ด ๋ชจ๋ ๋ฑ์ ์ ๋ณด๋ฅผ ๊ตฌ์กฐ์ฒด ํํ๋ก ์์ ๋ฐ ์ฒ๋ฆฌ
- STM32 HAL ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ธฐ๋ฐ ํ๋์จ์ด ์ ์ด
- ์ฃผ์ HAL ํจ์ ์ฌ์ฉ:
HAL_UART_Transmit,HAL_UART_Receive_IT๋ฅผ ์ด์ฉํ ๋น๋๊ธฐ UART ํต์HAL_TIM_PWM_Start๋ฑ์ ํ์ฉํ PWM ๊ธฐ๋ฐ ๋ชจํฐ ์ถ๋ ฅ ์ ์ด
- GPIO ํ ์ ์ด
- ์ํ LED ์ ์ด
- ๋ชจํฐ ๋๋ผ์ด๋ฒ Enable ํ ์ ์ด ๋ฑ
- STM32CubeMX๋ก ์์ฑํ ์ด๊ธฐํ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋์
- ๋ชจํฐ ๋๋ผ์ด๋ฒ (Cytron MDD10A)์ ์ฐ๊ฒฐ๋ PWM + ๋ฐฉํฅ ์ ์ด ํ ์ ์ด
- ์ฃผ์ ๊ธฐ๋ฅ:
- ์ข/์ฐ ๋ชจํฐ ์๋ ์ ์ด (์ ์ง / ํ์ง / ์ ์ง)
- ํ์ ๋์ (์ขํ์ / ์ฐํ์ )
- ์ ์ด ๋ช ๋ น์ ๋ฐ๋ฅธ ์๋ ๋น์จ / ๊ฐ์ค์น ์ ์ฉ
- ์ฝ๋ ๊ตฌ์กฐ:
motor_driver.cmotor_driver.h
โ ๋๋ผ์ด๋ฒ ๋ ๋ฒจ ์ฝ๋๋ฅผ ๋ณ๋ ๋ชจ๋๋ก ๋ถ๋ฆฌ
+-----------------------+ UART +----------------------+ PWM / DIR +----------------------+
| Single Board Computer| <----------------> | MCU | ----------------> | Motor Driver |
| & Sensors | | | +----------------------+
+-----------------------+ +----------+-----------+
- MCU: STM32 Nucleo-F446RE
- IDE: STM32CubeIDE
- ๋๋ฆฌ๋ด MCU ๋ณด๋์ ์ฃผ๋ณ์ฅ์น(UART, ๋ชจํฐ ๋๋ผ์ด๋ฒ)์ ํ ์ฐ๊ฒฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
| MCU ํ | ๊ธฐ๋ฅ | ์ค๋ช |
|---|---|---|
| PA9 | USART1_TX | MCU โ SBC ๋ฐ์ดํฐ ์ ์ก |
| PA10 | USART1_RX | SBC โ MCU ๋ฐ์ดํฐ ์์ |
ํ์ฌ ํ์จ์ด๋
USART1์ ๊ธฐ์ค์ผ๋ก ์์ฑ๋์ด ์์ผ๋ฉฐ, ๋ณด๋ ํ๋ก ๊ตฌ์ฑ ์ ์ ํ์ UART๋ฅผ ๋งค์นญํด์ผ ํฉ๋๋ค.
UART๋ 115200 Baud, 8N1์ผ๋ก ์ค์ ๋์ด ์์ต๋๋ค.
| MCU ํ | ๊ธฐ๋ฅ | ์ค๋ช |
|---|---|---|
| PB12 | ๋ชจํฐ ๋๋ผ์ด๋ฒ DIR1 | ๋ชจํฐ 1 ๋ฐฉํฅ ์ ์ด (DIR1) |
| PA6 | ๋ชจํฐ ๋๋ผ์ด๋ฒ PWM1 | ๋ชจํฐ 1 ์๋ ์ ์ด (PWM1, ํ์ด๋จธ ์ฑ๋) |
| PB13 | ๋ชจํฐ ๋๋ผ์ด๋ฒ DIR2 | ๋ชจํฐ 2 ๋ฐฉํฅ ์ ์ด (DIR2) |
| PA7 | ๋ชจํฐ ๋๋ผ์ด๋ฒ PWM2 | ๋ชจํฐ 2 ์๋ ์ ์ด (PWM2, ํ์ด๋จธ ์ฑ๋) |
motor_driver.c์์ ์ ํ๋ค์ ๊ธฐ์ค์ผ๋ก PWM ๋ฐ ๋ฐฉํฅ ์ ์ด ๋ก์ง์ด ๊ตฌํ๋์ด ์์ต๋๋ค.
ํ๋์จ์ด ๋ณ๊ฒฝ ์, ํด๋น ํ ์ ์์ CubeMX ์ค์ ์ ํจ๊ป ์์ ํด์ผ ํฉ๋๋ค.
- SBC / ์์จ์ฃผํ ๋ก์ง: https://github.com/embedded-ddookddaks/SBC