아두이노 우노 Q 내장 LED 매트릭스
Arduino UNO Q에는 보드에 내장된 8×13 LED 매트릭스가 있습니다 — 추가 하드웨어가 필요하지 않습니다! 이 튜토리얼에서는 매트릭스에 숫자와 문자를 표시하는 방법을 단계별로 배웁니다.
이 튜토리얼에서 배울 내용:
- Arduino UNO Q의 내장 LED 매트릭스가 무엇이고 어떻게 작동하는지
- MCU(C/C++ Arduino 코드)를 프로그래밍하여 매트릭스에 숫자와 문자를 표시하는 방법
- Linux 측(Python)과 MCU 측(C/C++)을 모두 프로그래밍하여 Bridge를 통해 매트릭스를 원격으로 제어하는 방법
- Arduino UNO Q에 Telegram 메시지를 보내 LED 매트릭스에 콘텐츠를 표시하는 방법
- Arduino UNO Q에서 내장 LED 매트릭스와 함께 OpenClaw를 사용하는 방법

외부 LED 매트릭스 모듈 사용에 대해서는 아두이노 우노 Q - LED 매트릭스 튜토리얼을 참조하세요.
필요한 하드웨어
| 1 | × | Arduino UNO Q | 아마존 | |
| 1 | × | USB 케이블 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 스크루 터미널 블록 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Sensors/Servo Expansion Shield for Arduino Uno | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 브레드보드 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 케이스 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 | 아마존 |
내장 LED 매트릭스 정보
Arduino UNO Q에는 온보드 8×13 LED 매트릭스가 포함되어 있습니다 — 13개의 열과 8개의 LED 행(총 104개의 LED)으로 구성된 그리드입니다. STM32 MCU가 Arduino_LED_Matrix 라이브러리를 통해 직접 제어합니다.
주요 특징:
- 크기: 13개 열 × 8개 행(총 104개 LED)
- 배선 필요 없음: Arduino UNO Q 보드에 직접 납땜되어 있습니다
- 제어: STM32 MCU에 의해 제어됨; Linux MPU는 직접 접근할 수 없습니다
- 라이브러리: Arduino_LED_Matrix — 프레임 기반 렌더링 제공
- 글꼴 지원: fonts.h 헬퍼 파일은 숫자 0–9 및 문자 A–Z에 대한 비트맵을 정의합니다
작동 방식:
- 평면 frame[104] 배열이 픽셀 값(0 = 꺼짐, 1 = 켜짐)을 보유하며, frame[row * 13 + col]로 인덱싱됩니다
- 프레임을 물리적 디스플레이에 전송하려면 matrix.draw(frame)을 호출합니다
- fonts.h의 문자는 add_to_frame(char c, int pos)를 사용하여 프레임에 그려집니다. 여기서 pos는 시작 열(0–12)입니다
- 단일 5픽셀 너비의 문자는 중앙 정렬을 위해 열 위치 4에 맞습니다; 두 문자는 위치 0과 7에 맞습니다

MCU 코드 - 숫자 또는 문자 표시
아래 스케치는 숫자 0–9를 순차적으로 표시한 후 LED 매트릭스의 중앙에 문자 A–Z를 하나씩 표시합니다.
빠른 단계
Arduino UNO Q를 처음 사용하나요? 계속하기 전에 아두이노 우노 Q 시작하기 튜토리얼을 따라 개발 환경을 준비하세요.
- 연결: USB-C 케이블을 Arduino UNO Q에 연결하세요 — 추가 배선이 필요하지 않습니다.
- Arduino App Lab 열기: Arduino App Lab을 시작하고 Arduino UNO Q를 감지할 때까지 기다리세요 — 첫 번째 시작 시 몇 분이 걸릴 수 있습니다.
- 새 앱 만들기: 새 앱 만들기 버튼을 클릭하세요.

- 앱에 이름을 지정하세요(예: BuiltInLedMatrixCharacter)
- 만들기를 클릭하여 확인하세요.
- 새 앱 내에서 생성된 폴더 및 파일 세트가 표시됩니다.

- sketch/sketch.ino 파일을 찾으세요 — MCU 스케치를 붙여넣을 위치입니다.
- 또한 sketch/fonts.h 파일 위치를 찾으세요 — 이 이름으로 새 파일을 만들 것입니다.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- 업로드: Arduino App Lab에서 Run 버튼을 클릭하여 STM32에 컴파일하고 업로드하세요.

LED 매트릭스는 숫자 0–9를 순환한 후 문자 A–Z를 표시합니다!
코드 설명
제공된 코드에서는 add_to_frame(char c, int pos) 함수에 초점을 맞추는 것이 중요합니다. 이 함수는 두 개의 인수를 허용합니다:
- char c: 표시할 문자입니다. 유효한 값의 범위는 0부터 9까지이며 A부터 Z까지입니다.
- int pos: 문자가 표시되어야 할 열 위치입니다. 유효한 값의 범위는 0부터 12까지입니다.
MCU 코드 - 동시에 두 개의 문자 표시
다음 MCU 스케치는 LED 매트릭스에 동시에 두 개의 문자를 표시합니다.
빠른 단계
- 이전 섹션의 동일한 fonts.h 파일을 사용하세요.
- 위의 스케치를 앱의 sketch/sketch.ino에 붙여넣고 Run 버튼을 클릭하세요.

LED 매트릭스는 동시에 두 개의 문자를 표시합니다!
Bridge: Linux + MCU
이 섹션에서는 Arduino UNO Q의 두 프로세서를 모두 프로그래밍하여 Linux 측이 내장 LED 매트릭스를 원격으로 제어하는 방법을 보여줍니다:
- LED 매트릭스는 MCU(STM32)에 의해 제어됩니다 — MCU가 물리적 디스플레이에 문자를 렌더링합니다
- MPU는 LED 매트릭스에 직접 접근할 수 없습니다 — Bridge.call()을 통해 MCU에 명령을 보내야 합니다
- MPU는 Wi-Fi를 사용합니다 — 완전한 Debian Linux를 실행하며 인터넷에 연결되어 원격으로 매트릭스 업데이트를 트리거할 수 있습니다
- Arduino_RouterBridge는 두 프로세서 간의 RPC 통신을 활성화합니다
- ⚠️ /dev/ttyHS1(Linux)과 Serial1(MCU)은 라우터에 예약되어 있습니다 — 사용자 코드에서 이를 열지 마세요
요약: MCU가 LED 매트릭스에 문자를 렌더링합니다 → MPU가 디스플레이 명령을 보냅니다 → MPU가 인터넷을 통해 어디에서든 매트릭스를 업데이트할 수 있습니다.
MCU 코드 (Bridge)
Python 코드 (Bridge)
빠른 단계
- 연결: USB-C 케이블을 Arduino UNO Q에 연결하세요 — 추가 배선이 필요하지 않습니다.
- Arduino App Lab 열기: Arduino App Lab을 시작하고 보드가 감지될 때까지 기다리세요.
- 새 앱 만들기: 새 앱 만들기를 클릭하고 BuiltInLedMatrixBridge라는 이름을 지정한 후 만들기를 클릭하세요.
- MCU 스케치 붙여넣기: 위의 MCU Bridge 코드를 복사하여 sketch/sketch.ino에 붙여넣으세요.
- fonts.h 생성: 스케치 폴더에 fonts.h 파일을 추가하고 이전 섹션과 동일한 글꼴 정의를 사용하세요.
- Python 코드 붙여넣기: 위의 Python Bridge 코드를 복사하여 앱의 Python 파일에 붙여넣으세요.
- 업로드: Arduino App Lab에서 Run 버튼을 클릭하세요.

App Lab 콘솔 출력
Telegram
Telegram을 사용하여 어디에서든 내장 LED 매트릭스를 제어하세요 — 전화에서 행렬에 숫자 또는 문자를 표시하세요!
MCU 스케치: 이전 Bridge 섹션의 동일한 MCU 스케치를 유지하세요.
Python 코드 (Telegram)
빠른 단계
- YOUR_TELEGRAM_BOT_TOKEN을 BotFather에서 받은 실제 봇 토큰으로 바꾸세요.
- YOUR_CHAT_ID를 Telegram 채팅 ID로 바꾸세요.
- 이 Python 코드를 앱의 Python 파일(동일한 MCU 스케치 및 fonts.h 유지)에 붙여넣으세요.
- Run 버튼을 클릭하세요. Telegram을 열고 봇에 명령을 보내세요.
App Lab 콘솔 출력
ArduinoBot
OpenClaw 통합
이 튜토리얼을 OpenClaw에 적용하려면 아두이노 우노 Q - OpenClaw 튜토리얼의 지침을 참조하세요
프로젝트 아이디어
Arduino UNO Q의 내장 LED 매트릭스를 사용하여 많은 창의적인 프로젝트를 만들 수 있습니다:
- 원격 스코어보드: Telegram을 통해 행렬에 점수 숫자를 보냅니다 — 어디에서든 현재 게임 점수를 표시하세요
- 알림 표시기: 새로운 Telegram 메시지 또는 센서 경고가 도착하면 행렬에 문자를 깜박입니다
- 카운트다운 타이머: Bridge를 통해 Python에서 제어하는 행렬에 9부터 0까지의 카운트다운을 표시합니다
- 일일 문자 봇: Linux MPU에서 cron 작업을 사용하여 매일 다른 문자를 행렬에 표시하도록 Python 스크립트를 예약합니다
- 2자 상태 표시: Telegram 명령에 의해 트리거되는 행렬에 2자 상태 코드(예: "OK", "HI", "GO")를 표시합니다
도전해보세요
Arduino UNO Q의 내장 LED 매트릭스로 더 나아가기 위해 준비가 되셨나요? 이러한 도전을 시도해 보세요:
- 쉬움: /scroll Telegram 명령을 추가하여 단어를 행렬 전체에 문자 단위로 스크롤합니다(구성 가능한 지연 포함).
- 중간: /count Telegram 명령을 생성하여 행렬에서 0부터 9까지 자동으로 계산합니다(각 숫자 사이에 500ms 지연).
- 고급: Telegram 제어 스크롤 텍스트 마퀴를 구축합니다 — 다중 문자 문자열을 수락하고 프레임 조작을 사용하여 12열 디스플레이 전체에서 한 번에 한 열씩 스크롤합니다.