STM32

[STM32] 스마트 RC 카

썽우디 2021. 12. 8. 14:25

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 : 초음파 센서로서 수신부, 송신부로 구성.

              송신부에서 초음파를 쏘고 물체에 반사된 초음파를 수신부에서 인식.

              이 때 반사되어 돌아온 시간을 측정하여 거리를 계산.

 

HC-SR04 Datasheet 참고

- 동작 원리

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. 작품 사진 및 동작 영상

 

RFID 동작

 

Bluetooth UART통신으로 DC motor 제어

 

Bluetooth RC카 제어