아두이노 우노 Q 시작하기

Arduino UNO Q를 처음 사용하세요? 이 단계별 가이드는 개봉부터 첫 프로그램 업로드까지 Arduino UNO Q를 시작하고 실행하는 데 필요한 모든 것을 안내합니다.

이 튜토리얼에서 배우게 될 내용:

getting started with Arduino UNO Q

필요한 하드웨어

1×Arduino UNO Q 아마존
1×USB Cable for Arduino Uno Q 아마존
1×(추천) 아두이노 우노용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) Sensors/Servo Expansion Shield for Arduino Uno 쿠팡 | 아마존
1×(추천) 아두이노 우노용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

Arduino UNO Q 정보

Arduino UNO Q는 단일 보드에 두 개의 강력한 프로세서를 결합한 차세대 Arduino 보드입니다:

  • STM32U585 MCU — Zephyr OS에서 실행되는 Arduino 스케치(C/C++)를 실행하고 디지털 I/O, PWM, SPI, I2C, UART 등 실시간 하드웨어 제어를 담당하는 160MHz까지 실행되는 ARM Cortex-M33 마이크로컨트롤러입니다. 표준 Arduino UNO 핀 레이아웃과 호환됩니다.
  • Qualcomm QRB2210 MPU — 2.0GHz에서 실행되는 쿼드코어 ARM Cortex-A53 프로세서로 완전한 Debian Linux를 실행합니다. Wi-Fi, Python, Telegram, REST API 및 클라우드 연결을 지원합니다. 내부 Bridge를 통해 MCU와 통신합니다.

이러한 듀얼 프로세서 설계를 통해 Arduino UNO Q는 하드웨어 제어와 인터넷 연결을 모두 처리할 수 있습니다. 이는 IoT 프로젝트, 원격 제어 및 Linux 기반 자동화에 이상적입니다.

주요 특징:

  • Arduino UNO 호환 핀 레이아웃 (디지털, 아날로그, PWM, SPI, I2C, UART)
  • 내장 Wi-Fi
  • MPU 측에서 Debian Linux 실행
  • Arduino App Lab (데스크톱 IDE - USB 또는 Wi-Fi를 통해 연결)을 사용한 프로그래밍 가능
  • Arduino_RouterBridge를 통한 MCU와 MPU 간의 Bridge 통신
  • USB-C 커넥터
Arduino UNO Q board overview

개발 환경

Arduino UNO Q를 프로그래밍하는 방법은 세 가지가 있습니다:

  • Arduino IDE를 사용하여 PC에서: 컴퓨터에 Arduino IDE를 설치하고 USB를 통해 STM32 MCU에 스케치를 업로드할 수 있습니다. 그러나 이 방법은 MCU 측만 프로그래밍합니다. 이 방법으로는 Linux 측을 프로그래밍하거나 상호작용할 수 없습니다. Arduino UNO Q 프로젝트에는 이 접근 방식이 권장되지 않습니다.
  • Arduino App Lab을 사용하여 PC에서 (권장): Arduino App Lab은 PC에 설치하는 데스크톱 애플리케이션입니다. USB 또는 Wi-Fi를 통해 보드의 Linux 측에 연결하고 STM32 MCU에 Arduino 스케치(C/C++)를 작성하고 업로드하며, Linux 측에서 Python 스크립트를 작성하고 실행하고, 라이브러리를 관리하고, 양쪽 프로세서의 출력을 모니터링할 수 있습니다. 이것이 권장되는 접근 방식입니다.
  • PC 없이 Arduino UNO Q에서 직접: Arduino UNO Q는 Debian Linux를 실행하므로 독립형 컴퓨터로 취급할 수 있습니다. 보드에 USB 허브를 연결하고 키보드, 마우스 및 모니터를 연결합니다. 그러면 별도의 PC 없이 보드에서 직접 프로그램을 개발하고 실행할 수 있습니다.

이 튜토리얼에서는 두 번째 접근 방식을 사용합니다. PC의 Arduino App Lab입니다.

Arduino App Lab 설정

다음 단계에 따라 Arduino App Lab을 설치하고 Arduino UNO Q에 처음 연결합니다.

※ 주의:

Arduino App Lab의 다양한 버전은 UI나 단계 순서가 약간 다를 수 있지만 주요 설정 프로세스는 동일합니다.

단계 1: Arduino App Lab 다운로드 및 설치

  • 운영 체제(Windows, macOS 또는 Linux)에 맞는 Arduino App Lab 설치 프로그램을 다운로드합니다.
  • 설치 프로그램을 실행하고 화면의 지시를 따라 설치를 완료합니다.
  • 설치 후 Arduino App Lab을 엽니다. 연결된 보드가 없음을 알 수 있습니다:
아두이노 app lab - no board connected

단계 2: 보드에 전원 공급

  • USB-C 케이블을 사용하여 Arduino UNO Q를 컴퓨터에 연결합니다.
  • 보드는 MPU 측에서 Debian Linux를 부팅합니다. 첫 부팅 시 약 1~2분 소요됩니다 (때로는 10분까지 소요될 수 있습니다).
  • 부팅 후 Arduino App Lab은 자동으로 보드를 감지하고 연결됨으로 표시합니다:
아두이노 app lab - board detected
  • 보드를 클릭하여 연결합니다.
아두이노 app lab - click on board

단계 3: 보드 설정

  • 설정 마법사가 열립니다. 보드의 이름을 입력합니다 (예: Newbiely), 그리고 다음을 클릭합니다.
아두이노 app lab - board name configuration

단계 4: 네트워크 설정

  • Arduino App Lab은 사용 가능한 Wi-Fi 네트워크를 스캔합니다. 목록에서 Wi-Fi 네트워크를 선택합니다.
아두이노 app lab - wi-fi network scan

단계 5: Wi-Fi 자격증명 입력

  • Wi-Fi 비밀번호를 입력합니다, 그리고 연결 (또는 다음)을 클릭합니다.
아두이노 app lab - wi-fi credentials

단계 6: 펌웨어 업데이트

  • 보드는 펌웨어 업데이트를 검색할 수 있습니다.
아두이노 app lab - firmware update
  • 업데이트 설치 버튼을 클릭하고 프로세스가 완료될 때까지 기다립니다.
아두이노 app lab - firmware update

단계 7: Arduino App Lab 다시 시작

  • 업데이트 후 Arduino App Lab 다시 시작 버튼을 클릭합니다.
아두이노 app lab - restart 버튼

단계 8: 보드 연결 선택

  • 다시 시작한 후 앱은 보드의 사용 가능한 연결 목록 (USB를 통한 하나와 Wi-Fi를 통한 하나)을 표시합니다. 하나를 선택하여 연결합니다.
아두이노 app lab - select connection

단계 9: 두 번째 업데이트 확인

  • 앱은 다른 업데이트를 확인할 수 있습니다. 메시지가 표시되면 완료될 때까지 기다립니다.
아두이노 app lab - second update check

단계 10: Linux 자격증명 설정

  • 앱에서 Linux 측의 비밀번호를 설정하도록 요청합니다. 원하는 비밀번호를 입력하고 확인을 클릭합니다.
아두이노 app lab - linux credentials

단계 11: 환영 화면

  • 설정이 완료됩니다. 앱은 환영 메시지를 표시합니다. 확인했습니다를 클릭하여 완료합니다.
아두이노 app lab - welcome screen

이제 Arduino UNO Q가 연결되고 프로그래밍할 준비가 되었습니다.

첫 프로그램: 내장 LED 깜박이기

STM32 MCU에 첫 Arduino 스케치를 업로드해 봅시다. 내장 LED를 켜고 끄는 클래식 blink 프로그램입니다.

Arduino UNO Q에는 MCU로 제어되는 내장 RGB LED가 있습니다. 표준 Arduino UNO와 달리 이 LED는 능동 LOW입니다. 즉, LED를 켜려면 LOW를 작성하고 끄려면 HIGH를 작성합니다.

MCU 코드

아래 스케치는 내장 LED를 500ms마다 켜고 끕니다:

/* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-getting-started */ #define LED_PIN LED_BUILTIN // Built-in RGB LED on Arduino UNO Q (LED3 on the board, lights up RED, active LOW) void setup() { pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, HIGH); // HIGH = off (active LOW) } void loop() { digitalWrite(LED_PIN, LOW); // turn the built-in LED on delay(500); // wait for 500 milliseconds digitalWrite(LED_PIN, HIGH); // turn the built-in LED off delay(500); // wait for 500 milliseconds }

빠른 단계

  • 연결: USB-C 케이블로 Arduino UNO Q를 컴퓨터에 연결합니다.
  • Arduino App Lab 열기: Arduino App Lab 데스크톱 애플리케이션을 실행하고 보드가 감지될 때까지 기다립니다.
  • 새로운 앱 만들기: 새 앱 만들기 버튼을 클릭합니다.
create new app in 아두이노 app lab on Arduino UNO Q
  • 앱의 이름을 입력합니다, 예: Newbiely
  • 만들기를 클릭하여 확인합니다.
  • 새 앱 내에서 폴더 및 파일 세트가 생성된 것을 볼 수 있습니다.
아두이노 app lab app folders and files on Arduino UNO Q
  • sketch/sketch.ino 파일을 찾습니다. 여기에 MCU 스케치를 붙여넣습니다.
  • 스케치 붙여넣기: 위의 MCU 코드를 복사하고 그 스케치 파일에 붙여넣습니다. 다른 파일은 기본값으로 유지합니다.
    • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
    add sketch 라이브러리 in 아두이노 app lab on Arduino UNO Q
    • Search for Arduino_RouterBridge created by Arduino and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    Arduino_RouterBridge Arduino

    This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

    0.4.1
    Install
    More Info
    • 업로드: Arduino App Lab에서 Run 버튼을 클릭하여 컴파일하고 STM32에 업로드합니다.
    click run 버튼 in 아두이노 app lab on Arduino UNO Q
    • 결과 확인: 내장 RGB LED는 500ms마다 켜고 꼽니다 (빨간색으로 켜집니다).

    축하합니다. Arduino UNO Q에 첫 프로그램을 성공적으로 업로드했습니다!

    듀얼 프로세서 아키텍처 이해

    Arduino UNO Q에는 Bridge를 통해 함께 작동할 수 있는 두 개의 프로세서가 있습니다:

    기능 STM32 MCU Qualcomm MPU (Linux)
    언어 C/C++ (Arduino sketch) Python
    역할 실시간 하드웨어 제어 인터넷, 클라우드, Wi-Fi
    제어 대상 디지털 핀, 센서, 액추에이터 REST API, Telegram, MQTT
    통신 방식 Bridge.provide_safe() Bridge.call()
    • ⚠️ 예약됨: /dev/ttyHS1 (Linux) 및 Serial1 (MCU)는 Arduino Router에서 내부적으로 사용되므로 코드에서 절대 열지 마십시오.
    • 두 프로세서는 Arduino_RouterBridge 라이브러리를 통해 RPC를 사용하여 통신합니다.

    첫 Bridge 프로그램: Linux에서 LED 제어

    이제 Linux 측(Python)Bridge를 통해 MCU 측(STM32)의 LED를 제어하는 프로그램을 작성해 봅시다. 이는 모든 Arduino UNO Q IoT 프로젝트에서 사용되는 핵심 패턴을 보여줍니다.

    MCU 코드 (Bridge)

    MCU 스케치는 Linux 측의 Bridge 호출을 기다리고 내장 LED를 켜거나 끕니다:

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-getting-started */ #include "Arduino_RouterBridge.h" #define LED_PIN LED_BUILTIN // Built-in RGB LED on Arduino UNO Q (LED3 on the board, lights up RED, active LOW) void set_led(int state) { // Active LOW: state 1 = on (LOW), state 0 = off (HIGH) digitalWrite(LED_PIN, state ? LOW : HIGH); Monitor.println(state ? "LED ON" : "LED OFF"); } void setup() { Bridge.begin(); Monitor.begin(); pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, HIGH); // start with LED off Bridge.provide_safe("set_led", set_led); Monitor.println("Bridge ready"); } void loop() {}

    Python 코드 (Bridge)

    Python 스크립트는 Linux(MPU) 측에서 실행되고 Bridge 명령을 MCU로 전송합니다:

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-getting-started */ from arduino.app_utils import * import time def loop(): response = Bridge.call("set_led", 1) print(f"Sent: ON → Response: {response}") time.sleep(1) response = Bridge.call("set_led", 0) print(f"Sent: OFF → Response: {response}") time.sleep(1) App.run(user_loop=loop)

    빠른 단계

    • Arduino App Lab 열기: Arduino App Lab 데스크톱 애플리케이션을 실행합니다.
    • 새로운 앱 만들기: 새 앱 만들기를 클릭하고, GettingStartedBridge라고 이름을 지정한 다음 만들기를 클릭합니다.
    • MCU 스케치 붙여넣기: 위의 MCU Bridge 코드를 복사하고 sketch/sketch.ino에 붙여넣습니다.
    • Python 코드 붙여넣기: 위의 Python Bridge 코드를 복사하고 앱의 Python 파일에 붙여넣습니다.
    • 업로드: Arduino App Lab에서 Run 버튼을 클릭합니다.
    click run 버튼 in 아두이노 app lab on Arduino UNO Q

    App Lab 콘솔 출력

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    [2026-04-29 09:00:01] LED ON [2026-04-29 09:00:02] LED OFF [2026-04-29 09:00:03] LED ON [2026-04-29 09:00:04] LED OFF
    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 09:00:01] Sent: ON → Response: OK [2026-04-29 09:00:02] Sent: OFF → Response: OK [2026-04-29 09:00:03] Sent: ON → Response: OK [2026-04-29 09:00:04] Sent: OFF → Response: OK

    홈 Wi-Fi에 연결

    초기 설정 후 Arduino UNO Q를 가정 또는 사무실 Wi-Fi 네트워크에 연결할 수 있습니다. 설정 마법사 중에 이미 수행했을 수도 있습니다. 그렇지 않은 경우:

    • Arduino App Lab을 열고 보드에 연결합니다.
    • App Lab 인터페이스의 우측 상단 모서리에 있는 네트워크 아이콘을 클릭합니다.
    • 목록에서 Wi-Fi 네트워크를 선택하고 비밀번호를 입력합니다.
    • 보드는 네트워크에 연결됩니다.

    연결되면 Arduino App Lab은 Wi-Fi(네트워크 모드)를 통해 보드를 감지하고 연결할 수 있습니다. 더 이상 USB 케이블이 필요하지 않습니다.

    다음 단계

    이제 Arduino UNO Q가 설정되었으므로 다음과 같은 훌륭한 튜토리얼을 탐색해야 합니다:

    문제 해결

    Arduino UNO Q가 Device Manager (Windows)에서 감지되지 않음:

    • 3A 이상 규격의 USB 케이블을 사용하고 있는지 확인하세요. 3A 미만의 케이블은 다른 Arduino 보드 (예: UNO R4)에서는 작동할 수 있지만 Arduino UNO Q에 안정적으로 전원을 공급할 수 없습니다.

    보드가 Arduino App Lab에서 감지되지 않음:

    • 연결한 후 1~2분 기다리세요. Linux를 완전히 부팅해야 시간이 걸립니다.
    • USB-C 케이블을 분리했다가 다시 연결하고 감지될 때까지 기다리세요.
    • Windows에서 Windows Defender가 mdns-discovery.exe에 대해 묻는 경우 허용을 클릭하세요. 이는 보드를 발견하는 데 필요합니다.

    스케치 업로드 실패:

    • Arduino_RouterBridge 라이브러리가 Arduino App Lab에 설치되어 있는지 확인하세요.
    • 업로드 전에 보드 상태 표시등이 준비됨을 표시하는지 확인하세요.

    내장 LED가 업로드 후 깜박이지 않음:

    • 스케치를 sketch/sketch.ino에 붙여넣었는지 확인하세요 (다른 파일이 아님).
    • Run 버튼을 다시 클릭하여 다시 업로드하세요.