로봇 34

ESP32, STM32를 이용한 WiFi-Serial Bridge 만들기

이 포스트는 ‘ESP32를 이용한 WiFi-Serial Bridge 만들기‘ 과정을 통해 프로그래밍된 ESP32에 STM32를 추가해서 WiFi – ESP32 Serial – STM32 Serial #1 – STM32 Serial #2 – PC로 명령어를 전달하는 WiFi-Serial Bridget 기능을 만들어 보는 과정에 대한 설명입니다. 이 포스트는 다음 과정을 완료한 후에 참고하시길 바랍니다. ESP32를 이용한 WiFi-Serial Bridge 만들기 이전 과정에 추가된 환경은 다음과 같습니다. STM32CubeIDE-1.12.0 STM32 NUCLEO-F103RB 보드 Tera Term-4.106 1. WiFi-Serial Bridge 설명 WiFi-Serial Bridge는 ESP32 WiF..

로봇/ESP32 2023.07.11

ESP32를 이용한 WiFi-Serial Bridge 만들기

이 포스트는 ESP32의 WiFi를 통해 수신한 데이터를 serial을 이용해 출력하는 기능을 만들어 보는 과정에 대한 설명입니다. 이 과정은 다음 환경에서 구성했습니다. Windows 11 Arduino IDE 1.8.19 ESP32-CAM ESP32-CAM-MB Visual Studio Code Python-3.7 1. WiFi-Serial Bridge 설명 ESP32에 포함된 WiFi를 이용해서 원격으로 데이터를 주고 받을 수 있습니다. WiFi-Serial Bridge는 ESP32 WiFi를 통해서 수신한 명령을 Serial 통신을 이용해 다른 MCU 장비에 전달하고 그 결과를 다시 WiFi를 통해 전달하는 기능입니다. WiFi to Serial Bridge는 다음과 같이 동작합니다. ◦ PC에서..

로봇/ESP32 2023.07.11

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 자동차 제어하기(1) - 기본환경 설정

이번 과정은 STM32 보드와 추가로 제작된 확장보드 및 RC카 구동체를 이용해서 자동차를 제어하기 위한 간단한 프로그램을 만드는 과정입니다. 과정이 복잡하고 길어질 수 있어서 몇 편이 될지는 알 수 없지만 시리즈로 작성할 예정입니다. 아래 과정은 아래 환경과 보드를 이용했습니다. Windows 11 Home STM32CubeIDE-1.11.2 STM32 NUCLEO-F103RB 보드 자체제작 확장보드 자체제작 자동체 구동체 Anaconda Vscode 1. 구성품 소개 위 그림의 오른쪽 흰색 보드는 STM32 NECLEO-F103RB 보드입니다. 왼쪽의 초록색 보드는 확장보드로 IMU, 모터드라이버, 12 볼트 전원장치 등 RC카 구동을 위해 추가로 필요한 부품을 구성했습니다. 확장보드의 구성은 다음과..

로봇/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