SeolLab
언어
테마 시스템
← 아카이브포트폴리오 선정

반복 동작을 편집하는 무선 모터 제어

모터 동작 시퀀스와 앱·통신·저장 기능을 구성한 임베디드 제어 개발.

코드 기록 · 2025.02–2025.04 (수정일 기준)

반복되는 모터 동작을 명령 시퀀스로 구성하고, 무선 입력과 앱 연동을 연결하는 펌웨어를 개발했다. 스텝모터 구동, 원점 복귀와 이동·대기 명령, 설정과 전원·표시 상태를 함께 다뤘다. 움직임을 처리하는 부분과 사용자의 조작을 처리하는 부분을 나눠 구성한 제어 프로그램이다.

원자료의 제어 구성을 단순화한 설명도 — 원본 코드의 동작을 정리한 구성도

원자료의 제어 구성을 단순화한 설명도 — 원본 코드의 동작을 정리한 구성도

반복 동작을 명령 단위로 구성

시퀀스에서는 이동, 대기, 원점 복귀와 종료를 서로 다른 명령으로 다뤘다. 동작을 하나의 긴 처리문에 넣기보다 명령 배열과 실행 위치를 관리하는 방식으로 구성했다. 정해진 동작의 순서를 반복하고 다음 단계로 넘어가는 흐름을 프로그램 구조로 표현한 것이다.

남아 있는 버전에서는 정해진 명령 배열을 불러와 실행한다. 시퀀스를 다루는 인터페이스와 실제로 실행하는 기본 배열을 구분해, 구현된 반복 동작과 명령 처리 구조를 중심으로 소개한다.

모터 갱신을 별도 태스크로

스텝모터의 갱신은 별도 태스크에서 처리하고, 통신과 버튼·상태 처리는 다른 프로그램 흐름으로 구성했다. 모터를 계속 갱신하는 부분과 사용자가 요청을 보내는 부분이 서로 다른 역할을 갖도록 나눈 구조다.

시퀀스에는 실행 중인 단계와 정지·원점 복귀 상태를 포함했다. 정지 요청을 받았을 때 현재 동작을 정리하고 복귀 단계로 이어지는 흐름을 별도로 다뤘다. 동작을 시작하는 명령만큼 멈추고 다음 상태로 넘어가는 처리도 개발 범위에 들어갔다.

무선 입력과 설정·상태 처리

Bluetooth·Wi-Fi 통신과 앱 연동을 구성하고, 장치에서 입력 명령과 설정을 다루는 부분을 모듈로 나눴다. 무선 연결은 모터 제어의 입력 경로이며, 실제 움직임은 모터·시퀀스 모듈에서 처리하는 관계다.

동작 중의 속도 조정과 현재 단계·상태를 함께 다뤘다. 통신 기능을 모터 구동 코드에 모두 섞기보다, 외부 입력과 내부 실행 상태가 만나는 구조를 정리했다.

전원 버튼과 종료 흐름까지

전원 버튼의 누름 상태, 배터리 표시와 LED 반응을 장치의 활성·비활성 흐름에 연결했다. 활성화 시 통신과 구동을 준비하고, 비활성화 시 시퀀스와 관련 기능을 정리하도록 구성했다.

사용 중의 모터 동작뿐 아니라 전원을 켜고 끄는 단계도 프로그램의 상태로 다뤘다. 작은 구동 장치의 펌웨어에서 반복 동작, 통신, 설정과 전원 관리가 함께 필요했던 프로젝트다.

구동·통신·사용자 조작을 묶은 코드

직접 맡은 범위는 스텝모터·시퀀스 처리, 무선 통신과 앱 연동, 설정·전원·상태 표시다. 구성도는 원본 코드에서 확인되는 입력·실행·모터 갱신 관계를 설명하기 위한 자료다.

결과는 반복 동작과 사용자 조작을 분리하면서 하나의 장치 동작으로 연결한 펌웨어다. 각 기능을 모듈로 구성하고 상태를 주고받도록 만든 임베디드 제어 경험으로 정리했다.