[STM32] 스마트 RC 카
MCU : STM32F411RE
Tool : STM32CubeIDE 1.7.0
Language : C
수행기간 : 21.11.22 ~ 21.11.28
1. 프로젝트 개요
- 프로젝트 목적
- STM32F411RE MCU에 대한 이해 및 C 프로그래밍
- 초음파 센서를 이용한 거리 측정
- I2C, SPI, UART통신과 프로토콜에 대한 이해 및 활용
- 프로젝트 목표
- STM32F411RE MCU와 주변 장치들의 연결 및 제어, STM32CubeIDE 환경 제어
- RC카 동작 및 기능 구현1) RFID를 이용한 사용자 카드 식별2) Bluetooth UART통신으로 RC카 제어3) 초음파센서를 이용한 장애물 감지 및 RC카 제동4) 조도센서를 이용한 LED ON/OFF
2. 동작 요구 사항
1) Bluetooth UART통신으로 RC카 제어 (Motor Driver, DC Motor)
: Forward, Left, Right, Backward, stop 5가지 동작 제어
2) 초음파 센서로 장애물 감지
: 초음파 센서로 전방 장애물 감지 거리가 10cm 이내 이면 RC카 자동정지, 경고음 발생
3) RFID로 사용자 카드 식별
: 등록된 카드와 등록되지 않는 사용자 카드 식별
4) 조도센서를 이용한 LED ON/OFF
: CDs value > 1200 이면, LED(Headlight 역할) ON
3. 주요 부품
4. 개발 환경
- MCU : STM32F411RE
- Tool : STM32CubeIDE 1.7.0
1) System Core
GPIO : 여러 장치들의 GPIO 설정을 위해 사용 ( GPIO 활성화 )
SYS : systick 함수를 사용하기 위해서 사용 ( HAL_Delay() 를 사용하지 않기 위해서 systick 활성화)
2) Analog
ADC1 : 조도센서가 측정한 아날로그 신호를 디지털 신호로 변환하기 위해서 사용 ( ADC1 활성화 )
3) Timers
TIM1, TIM11 : 초음파센서 동작을 위한 Timer Interrupt 사용
TIM3 : RC카 동작 제어를 위한 DC-motor - PWM channel 사용
4) connectivity
I2C1 : I2C LCD 의 I2C 통신 동작을 위한 I2C1 활성화
SPI1 : RFID의 SPI통신 동작을 위한 SPI1 활성화
UART1 : Bluetooth UART통신으로 RC카의 동작을 제어 하기 위한 UART1 활성화
5. 동작 구현 설명
1) Motor Driver, DC Motor
2) Ultrasonic
- 초음파(Ultrasonic) : 인간이 들을 수 있는 가청 주파수(20kHz) 이상의 주파수를 가진 소리
- HC-SR04 : 초음파 센서로서 수신부, 송신부로 구성.
송신부에서 초음파를 쏘고 물체에 반사된 초음파를 수신부에서 인식.
이 때 반사되어 돌아온 시간을 측정하여 거리를 계산.
- 동작 원리
1) Trig 핀으로 10us의 펄스를 주면 초음파가 발생
2) Echo 핀에서 반사된 초음파를 수신
3) 초음파가 송수신된 시간을 측정하여 거리를 계산
※ 거리값 구하기
소리 속도 : 340m/s
us 단위 변환 : 0.034cm/us ( 1us동안 0.034cm 이동)
초음파가 1cm 이동 소요시간 : T = 2 x 0.01 / 340 = 58.824us (왕복 시간)
6. 작품 사진 및 동작 영상