M.P.T.O 04-10-01
PART 3. 제어 소프트웨어 (Software & Setup)
CHAPTER 07. 생명 불어넣기 (Firmware)
7-1. 프로그램 준비 : FreeJoy 설치와 설정
(The FreeJoy Revolution: No-Code Development)
“엔지니어는 도구를 만드는 사람도 있고 도구를 정복하는 사람도 있다.”
과거의 소프트웨어 엔지니어들은 아두이노 IDE창에 void setup()을 코딩하며 밤을 새웠다. 하지만 우리는 메타파일럿이다. FreeJoy라는 오픈소스 도구를 사용해서 조종간에 영혼을 심을 것이다.
- GUI 기반: 검은 화면에 흰 글씨(코드)는 없다. 버튼을 눈으로 보며 마우스로 할당한다.
- 실시간 반응: 설정을 바꾸고 ‘Write’ 버튼만 누르면 즉시 적용된다.
- 고해상도 지원: 아날로그 신호를 12비트(4096단계) 이상의 초정밀 해상도로 처리한다.
7-2. 업로드 : 빈 깡통을 ‘조이스틱’ 으로 깨우기
(Soul Injection: Flashing the Firmware)
“빈 깡통인 MCU의 칩셋(Chipset)을 깨워라. ‘너는 이제부터 조이스틱이다’라고 명명하는 의식이다.”
공장에서 갓 나온 마이크로 컨트롤러(MCU)는 깡통이다. FreeJoy의 펌웨어 파일(.bin)을 MCU 칩셋에 이식하는 과정을 ‘플래싱(Flashing)’이라고 부른다.
- ST-Link 연결: 전용 업로더(ST-Link V2)를 보드의 핀(SWCLK, SWDIO)에 연결한다.
- STM32CubeProgrammer 실행: 이 프로그램은 영혼 주입기다. ‘Connect’를 누르고 펌웨어 파일을 선택한다.
- Download: 초록색 바가 차오르며 ‘Download complete’가 뜨는 순간, ‘조이스틱’ 으로 다시 태어난다.
7-3. PC 연결 확인 : 컴퓨터가 장비를 인식했는가?
(Pin Mapping & Configuration)
이제부터 FreeJoy의 Configurator 프로그램을 사용해서 조종간의 각 축과 각 종 버튼의 기능을 설정할 수 있다.
A. 축(Axis) 설정 : 아날로그의 정의
- 센서를 연결한 핀(예: A0)을 선택한다.
- 이 신호를 PC에서 무엇으로 인식할지 정한다 (예: X축, Y축, 스로틀).
B. 버튼(Button) 설정 : 디지털의 정의
- 시프트 레지스터 칩(74HC165) 확장보드가 확인되면 클릭 한 번으로 활성화된다.
- 버튼 하나를 누르거나 ‘A키’와 ‘B키’가 동시에 눌리게 하거나, ‘길게 누르기(Long Press)’ 기능을 넣을 수도 있다.
C. Save to Flash : 완료
- 모든 설정이 끝났으면 [Write to Device] 버튼을 눌러라.
- 이것으로 설정값은 조종간에 영구히 저장된다.
[티타 교관의 한마디]
“어떤가? 코딩 한 줄 없이 우리는 전문가급 조종 장비를 완성했다. 비행하기 전에 PC에서 조종간을 한번 더 점검(Calibration)하고 테스트 비행을 하자.”




