STM32 8

STM32 자동차 제어하기(3) - 모터 제어하기

이번 과정은 STM32 보드와 추가로 제작된 확장보드 및 RC카 구동체를 이용해서 자동차를 제어하기 위한 간단한 프로그램을 만드는 과정의 세 번째로 확장보드의 모터 드라이버를 이용해 모터를 제어하는 과정입니다. 아래 과정은 이전 과정을 완료 후 진행하시길 추천드립니다. STM32 자동차 제어하기(1) - 기본환경 설정 STM32 자동차 제어하기(2) - LED / BUZZER 제어하기 모터를 제어하기 위해서는 아래 그림과 같이 12V 전원과 모터 구동체가 확장보드에 연결되어 있어야 합니다. 1. 통신규격 추가하기 기존에 정의한 통신 규격에 모터제어를 위한 명령을 추가합니다. 우선 아래 코드와 같이 bsp_uart.h 에 COMMAND 및 RESULT를 정의합니다. 0x03 CMD_MOTOR이 추가됐습니다..

로봇/STM32 2023.03.20

STM32 자동차 제어하기(2) - LED / BUZZER 제어하기

이번 과정은 STM32 보드와 추가로 제작된 확장보드 및 RC카 구동체를 이용해서 자동차를 제어하기 위한 간단한 프로그램을 만드는 과정의 두 번째로 확장보드의 LED와 BUZZER를 제어하는 과정입니다. 아래 과정은 이전 과정을 완료 후 진행하시길 추천드립니다. STM32 자동차 제어하기(1) - 기본환경 설정 1. 통신규격 정의하기 우선 STM32 보드를 제어하기 위한 프로토콜을 아래와 같이 정의하였습니다. ◦ START FLAG: 명령의 시작을 의미하는 flag (0xFF 고정 값) ◦ LENGTH: START FLAG와 LENGTH를 제외한 나머지 데이터의 길이 ◦ SEQUENE NO: 1 ~ 0xFE 사이의 명령 일련번호, 0xFF에 도달하면 다시 1부터 시작 ◦ COMMAND: 수행할 명령어 (..

로봇/STM32 2023.03.19

STM32 UART로 보드 제어하기

이번 과정은 UART 통신을 이용해 STM32 보드에 명령을 보내고 명령을 실행하는 기능을 구현하는 과정입니다. 아래 과정은 아래 환경과 보드를 이용했습니다. Windows 11 Home STM32CubeIDE-1.11.2 STM32 NUCLEO-F103RB 보드 1. 프로젝트 생성하기 STM32 프로젝트를 생성합니다. 다음과 같이 동작하는 프로그램을 작성하도록 하겠습니다. ◦ 사용자는 UART를 이용해 STM32에 명령을 보냅니다. (1 ~ 9 사이의 숫자) ◦ 이때 Interrupt가 발생합니다. ◦ Interrupt Cabllback에서 명령에 해당하는 기능을 수행합니다. (1: LED 끄기, 2: LED 켜기) ◦ STM32는 명령 수행 결과를 UART를 이용해 출력합니다. 2. 핀 설정 및 소스..

로봇/STM32 2023.03.01

STM32 Button을 누르면 UART로 메시지 출력하기

이번 과정은 Button이 눌렸을 때 Interrupt를 발행하고 이때 메시지를 UART 통신을 이용해 출력하도록 하는 기능을 구현하는 과정입니다. 아래 과정은 아래 환경과 보드를 이용했습니다. Windows 11 Home STM32CubeIDE-1.11.2 STM32 NUCLEO-F103RB 보드 1. 프로젝트 생성하기 STM32 프로젝트를 생성합니다. 다음과 같이 동작하는 프로그램을 작성하도록 하겠습니다. ◦ 사용자는 Button (PC13)을 누릅니다. ◦ 이때 Interrupt가 발생합니다. ◦ Interrupt Cabllback에서 UART_TX (PA2)로 메시지를 전송합니다. ◦ Teraterm과 같은 터미널에서 메시지를 확인합니다. 2. 핀 설정 및 소스코드 생성하기 UART 통신을 하기 ..

로봇/STM32 2023.02.28

STM32 Button Interrupt를 이용한 LED 제어

STM32 Button을 이용해서 LED 깜빡이기 과정에서는 while 문 안에서 Button의 상태를 확인하고 상태에 따라서 LED를 켜거나 끄도록 했습니다. 이번에는 Button이 눌렸을 때 Interrupt를 발행하고 이때 LED를 제어하도록 구현하는 과정입니다. 아래 과정은 아래 환경과 보드를 이용했습니다. Windows 11 Home STM32CubeIDE-1.11.2 STM32 NUCLEO-F103RB 보드 1. 프로젝트 생성하기 STM32 LED 깜빡이기 (NUCLEO-F103RB)의 '1. 프로젝트 생성하기'와 동일한 방법으로 STM32 프로젝트를 생성합니다. 단, 프로젝트 이름만 기존과 다르게 입력합니다. 2. 핀 설정 및 소스코드 생성하기 버튼에 해당하는 'PC13' 핀을 'GPIO_E..

로봇/STM32 2023.02.28

STM32 Button을 이용해서 LED 깜빡이기

STM32 LED 깜빡이기 (NUCLEO-F103RB) 다음으로 버튼을 누르면 LED에 불이 들어오고 버튼을 누르지 않으면 LED에 불이 꺼지는 프로그램을 구현하는 과정에 대한 설명입니다. 아래 과정은 아래 환경과 보드를 이용했습니다. Windows 11 Home STM32CubeIDE-1.11.2 STM32 NUCLEO-F103RB 보드 1. 프로젝트 생성하기 STM32 LED 깜빡이기 (NUCLEO-F103RB)의 '1. 프로젝트 생성하기'와 동일한 방법으로 STM32 프로젝트를 생성합니다. 단, 프로젝트 이름만 기존과 다르게 입력합니다. 아래그림과 같이 프로젝트가 생성됩니다. 2. GPIO 핀 설정 및 소스코드 생성하기 'Pinout view' 화면에서 다음 순서대로 진행합니다. ◦ 좌측 상단의 '..

로봇/STM32 2023.02.22

STM32 LED 깜빡이기 (NUCLEO-F103RB)

STM32 입문 프로그램에 해당하는 'LED 깜빡이기' 프로그램을 구현하는 과정에 대한 설명입니다. 아래 과정은 아래 환경과 보드를 이용했습니다. Windows 11 Home STM32CubeIDE-1.11.2 STM32 NUCLEO-F103RB 보드 1. 프로젝트 생성하기 STM32CubeIDE 프로그램 메뉴에서 'File >> New >> STM32 Project'를 선택합니다. 아래와 같이 실행된 화면에서 다음 순서대로 진행합니다. ◦ 'Board Selector' 탭을 선택합니다. ◦ 'Commercial Part Number'에 'LUCLEO-F103RB'를 입력합니다. ◦ 아래쪽 'Board List'에서 'LUCLEO-F103RB'를 선택합니다. ◦ 'Next' 버튼을 눌러서 다음단계로 이동..

로봇/STM32 2023.02.21

STM32 개발환경 설정하기

STM32 프로그램 개발을 위해 필요한 환경을 설정하는 과정에 대한 설명입니다. 아래 과정은 다음 환경에서 진행했습니다. Windows 11 Home 1. Java 설치하기 STM32 CubeIDE는 Eclipse 프로그램에 플러그인 형식으로 만들어진 개발 프로그램입니다. CubeIDE를 실행하기 위해서는 java를 설치해야 합니다. https://www.oracle.com/kr/java/technologies/downloads/#java11에 접속하면 아래와 같은 화면을 확인할 수 있습니다. (이때 오라클 계정에 로그인이 필요합니다. 회원 가입 후 로그인 하면 됩니다.) 'jdk-11.0.18_windows-x64_bin.exe'를 다운로드합니다. 다운로드한 설치파일을 실행해서 설치합니다. (모두 기본..

로봇/STM32 2023.02.21