목차(클릭하세요)
피지컬AI는 아두이노Q로 시작하기
초소형·고성능 엣지 디바이스 AI(Edge AI) 플랫폼
아두이노 UNO Q로 리눅스의 지능과 MCU의 행동력을 결합한 하이브리드 코딩의 신세계
1. 참고사이트
1-1. 아두이노 공식 사이트
1-2.공식 사이트 한글번역본
•
현재 2분의 개발자분께서 공식사이트의 설명을 한글로 번역해주심
1-3.개발자분들
•
실제 사용을 바탕으로 한 재구성
1-4.대망의 사용자 까페
•
역시 아두이노 하면 네이버 까페: 아두이노 스토리
•
에 있는 우노 관련 게시글
2. 우노Q를 시작하는 이유
2-1. 기존아두이노와 무엇이 다른가?
"제어(Control)"와 "연산(Computing)"을 한 보드에서 해결
•
UNO Q는 단순한 마이크로컨트롤러가 아님??
•
기존 아두이노: MCU만 탑재 (단일 프로세서)
•
UNO Q: MPU(QRB2210) + MCU(STM32U585) 이중 구성
핵심 3가지 차이
구조
•
MCU: CPU + 메모리 + 입출력 모두 한 칩에 통합
◦
올인원 패키지, 외부 부품 최소화
•
MPU: CPU만 있음 → 외부 메모리/장치 필요
◦
RAM, 저장장치 별도 연결
운영체제
•
MCU: 운영체제 없이 작동 (베어메탈)
◦
코드 업로드하면 바로 실행
◦
예: LED 켜기, 센서 읽기
•
MPU: Linux, Android 같은 OS 필수
◦
여러 프로그램 동시 실행 가능
◦
예: 웹브라우저 + 음악 재생 + 파일 다운로드
사용 목적
•
MCU: 실시간 제어
◦
정확한 타이밍이 중요한 작업
◦
자동차 에어백, 세탁기, 드론 제어
•
MPU: 복잡한 연산/멀티태스킹
◦
AI 추론, 영상 처리, 네트워크 통신
◦
스마트폰, 라즈베리파이, 드론 영상 처리
MPU (리눅스) MCU (아두이노)
┌─────────────┐ ┌─────────────┐
│ AI 추론 │ │ LED 제어 │
│ 웹서버 │ RPC │ 센서 읽기 │
│ 카메라 처리 │◄────►│ 모터 구동 │
│ 네트워크 │ │ 실시간 응답 │
└─────────────┘ └─────────────┘
(두뇌/판단) (손발/행동)
Plain Text
복사
•
역할 분담
◦
MPU: "카메라에서 컵이 보이네!" (인식)
▪
실제로는 리눅스(Debian) 구동, AI 연산, 이미지 처리, 고성능 네트워킹 담당
◦
MCU: "그럼 LED 켜자!" (즉각 반응)
▪
실제로는 센서 제어, 모터 구동 등 실시간성(Real-time) 작업 담당
2-2.우노Q 핵심 성능
1.
중요 체크 포인트
•
독자적인 컴퓨터: PC 연결 없이 모니터와 키보드를 연결해 리눅스 데스크톱처럼 사용 가능.
•
강력한 AI 성능: 내장 GPU(Adreno 702)와 NPU를 통해 별도 장비 없이 비전(Vision) AI 및 머신러닝 모델 구동 가능
•
내장 메모리: SD 카드 없이 16/32GB eMMC 저장소와 2/4GB RAM 탑재로 안정적인 OS 구동
2.
기타
•
무선 통신 기본 탑재: Wi-Fi 5 (2.4/5GHz) 및 Bluetooth 5.1 내장 (별도 모듈 불필요)
•
USB-C: 전원 공급, 데이터 전송, 디스플레이 출력(DP Alt Mode) 동시 지원
•
고속 헤더(JMEDIA/JMISC): MIPI 카메라나 고해상도 디스플레이 직결 가능
2-3.우노Q의 확장성
1.
AI/머신러닝
•
온보드 AI 추론 가능 (객체인식, 이미지 분류 등)
•
사전 학습된 모델 바로 사용 가능
2 .네트워크 기능
•
내장 Wi-Fi로 웹서버 구축 즉시 가능
•
IoT 프로젝트에 최적화
3.
SBC(Single Board Computer) 모드
•
모니터 연결해 독립적인 컴퓨터로 사용
•
리눅스 환경에서 자유로운 개발
4.
Bricks 시스템
•
웹서버, AI 모델 등 미리 패키징된 기능 블록
•
클릭 몇 번으로 복잡한 기능 구현
3. 설치 및 사용 준비
3-1. 우노Q의 사용모드
•
왼쪽 그림은 SBC모드, 오른쪽은 PC 호스티드 모드
1. SBC 모드 (단독 컴퓨터)
•
USB-C 허브를 통해 모니터, 마우스, 키보드 연결.
•
전원 인가 시 자동 부팅되며 리눅스 데스크톱 환경 진입.
•
단독 사용을 위해서는 4GB RAM 모델 권장
2. PC-Hosted 모드 (개발 보드)
아마도 이 모드에서 가장 많이 활용할 것으로 예상됨
•
PC에 USB로 연결하여 Arduino App Lab을 통해 제어
•
PC 성능을 활용해 개발, 보드는 실행·I/O만 담당
3. 네트워크 모드
•
같은 LAN에 있는 UNO Q를 App Lab 데스크톱 앱에서 Network 태그로 인식
•
USB‑C 없이도 앱 업로드·실행·모니터링 가능 (SSH 비슷한 개념)
◦
같은 Wi-Fi 망에 있으면 무선으로 접속 및 코드 업로드 가능
3-2.설치
•
Arduino App Lab: MPU(리눅스)와 MCU를 동시에 개발하는 통합 툴 (보드에는 내장됨, PC에는 추가 설치필요)
•
app lab을 사용해야 하는 이유?
◦
아두이노 스케치, 파이썬 스크립트, 컨테이너화된 리눅스 애플리케이션을 단일 워크플로로 원활하게 통합
◦
◦
참고로 기존 Arduino IDE 2.x도 사용가능하지만 제한적: MCU(STM32) 단독 제어가 필요할 때만 사용 (Zephyr OS Core 설치 필요)
•
설치가 완료되서 실행하면 다음 화면을 볼 수 있음
•
연결완료되면 화면이 이렇게 바뀜
•
아두이노Q 보드에 설치된 소프트웨어가 구버전일 경우 업데이트 필요
•
‘Get Flasher Tool’을 선택하여 보드 업데이트를 진행할 수 있으나 나중에 할 수 있으니 일단 Skip
3-3.사용준비 및 예제1
•
보드 설정은 사용자 입맛에 맞게, 보드네임도 본인이 원하는 영어로 진행
•
기본적인 네트워크 설정도 진행
◦
무선 설정을 한번 해두면 나중에 USB-C없이도 앱 업로드 실행 가능
◦
앞으로 사용할 무선네트워크 설정
•
설정이 완료되면 몇가지 업데이트 사항을 체크해줌
•
버전 관리까지.. 기가 막힘
•
마지막으로 리눅스계정 설정까지 완료하기
•
드디어 만난 첫 실행 화면
[예제]Blink 실행하기
•
아두이노 시작할때 지구상 국롤인 Hello World 예제격인 Blink 를 선택하기
•
기존 아두이노 IDE와는 사뭇 다른 느낌, 특히 blink예제를 선택했을 때, README가 화면에 나오고, python폴더와 sketch폴더가 따로 관리되고 있음을 볼 수 있음
•
예젱의 경우 readme파일을 생성형AI에게 던져주고 번역 및 메뉴얼을 확인할 수 있을 듯
[파일구조가 복잡한 이유]
◦ sketch/sketch.ino: MCU(STM32)에서 실행될 아두이노 스케치 파일
◦ main.py: MPU(리눅스)에서 실행될 파이썬 스크립트
◦ app.yaml: 앱의 설정 파일
•
PC에 설치된 Arduino App Lab 프로그램은 보드 내부에 있는 파일을 원격으로 보여주고 편집할 수 있게 해주는 '뷰어'역할을 하는 것임
[당신의 PC] [UNO Q 보드]
┌─────────────┐ SSH ┌─────────────┐
│ App Lab │◄────────►│ 실제 파일 │
│ (원격 접속) │ or USB │ 실제 실행 │
│ │ │ 실제 빌드 │
│ - 파일 보기 │ │ │
│ - 코드 편집 │ │ ~/ArduinoApps/│
│ - 명령 전송 │ │ ├─ app1/ │
│ - 로그 확인 │ │ ├─ app2/ │
└─────────────┘ └─────────────┘
(리모컨) (본체)
Plain Text
복사
[실행하기]
•
거두절미하고 바로 우측 상단의 실행버튼 클릭
•
이렇게 Console창에서 해당 MPU의 작업 상황과 터미널 명령어를 확인할 수 있음
•
첫 실행시 터미널에서 많은 업데이트 및 설치 과정이 반복될 수 있음
•
앱 설치 및 업데이트가 모두 끝나면 아까 보이지 않았던 시리얼 모니터 탭과 파이썬 탭이 생기고, 터미널의 명령어 색깔이 녹색으로 바뀌게 됨
•
결과: 내장된 3번핀(=RGB LED)의 빨간색 LED가 1초 동안 켜지고, 1초 동안 꺼지는 것을 반복하는 것을 볼 수 있음
[수정하기]
•
현재 예제 코드는
Read-only code. Create your own app from this example to edit.
•
즉 수정하려면 우측 상단의 복사후 편집앱 버튼을 클릭해야 한다는 의미
•
복사 후 깜빡이는 시간을 수정하고, 다시 실행했을때, 역시나 첫 시작에 많은 시간이 소요됨
•
이렇게 수정된 앱, 또는 내가 직접 만든 앱은, APP LAB의 ‘MY Apps’에 저장됨
3-4.[예제2] 이미지 드로잉 및 LED매트릭스가지고 놀기
•
이 예제는 LED 매트릭스에서 사용자 정의 프레임 , 특히 Arduino 로고를 그리는 것
•
‘create new app’을 선택해서 이미지 작업을 위한 프로젝트를 준비하기
•
main.py는 건드리지 말고 바로 sketch.ino만 수정하기
#include <Arduino_LED_Matrix.h>
uint8_t logo[104] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,1,1,1,0,0,0,1,1,1,0,0,
0,1,0,0,0,1,0,1,0,0,0,1,0,
1,0,0,0,0,0,1,0,0,1,0,0,1,
1,0,1,1,1,0,1,0,1,1,1,0,1,
1,0,0,0,0,0,1,0,0,1,0,0,1,
0,1,0,0,0,1,0,1,0,0,0,1,0,
0,0,1,1,1,0,0,0,1,1,1,0,0
};
Arduino_LED_Matrix matrix;
void setup() {
matrix.begin();
// display the image
matrix.setGrayscaleBits(1);
matrix.draw(logo);
}
void loop() {
}
Plain Text
복사
•
1과 0으로 구성된 행렬 형식(8x13)의 배열을 만들어 자신만의 프레임을 만들 수 있음
[LED매트릭스의 숫자 순서 확인]
[행렬 프레임 예시]
[응용]밝기 조절 가능한 LED
•
LED 매트릭스는 8단계 회색조(3비트)또는 흑백 변환 도구는 256단계(8비트)를 사용하므로 이 범위를 사용해도 자동으로 매핑 됨
•
아래 코드를 사용하면 LED 밝기를 개별적으로 조절할 수 있음
◦
8단계: 밝기 값을 0부터 7 사이의 정수로 입력해야 함. 이는 하드웨어가 지원하는 기본 모드
◦
255단계: 밝기 값을 0부터 255 사이의 정수(표준 그레이스케일)로 입력
#하드웨어적으로 표현되는 최종 밝기 단계는 동일
matrix.setGrayscaleBits(3); // 3 bits result on 8 brightness levels (0 to 7)
matrix.setGrayscaleBits(8); // 8 bits result on 256 brightness levels (0 to 255)
Plain Text
복사
[RBG LED]
•
UNO Q에는 4개의 RGB LED가 존재
•
이 중 두 개는 Qualcomm 마이크로프로세서에 의해 연결 및 제어되고, 나머지 두 개는 STM32 마이크로컨트롤러에 의해 제어됨
•
그림속 왼쪽 2개의 LED는 MPU에 의해 제어됨
1.
MPU로 LED제어하기
•
Linux OS에는 이러한 LED를 제어하기 위한 전용 LED 인터페이스가 있으며, 명령줄에서 /sys/class/leds를 통해 제어하거나, SSH를 사용하거나, PC 터미널에서 ADB 연결을 사용하거나, 단일 보드 컴퓨터 모드에서 사용할 경우 Linux 내장 터미널 애플리케이션을 사용하여 제어할 수 있음
•
일단 어렵지만 개념을 정리해보면, 현재 작업중인 로컬 컴퓨터에서 아두이노 우노Q의 본체에 있는 MCP를 제어하는 터미널과 “연결”하는 방삭이 2가지 존재 하는 것
3-5. MPU연결하는 2가지방식(ADB vs SSH)
1.
쉘과 터미널의 개념부터 짚고 가기
사용자 → [전화기] → 상담원 → 회사 시스템
(터미널) (쉘) (운영체제)
Plain Text
복사
•
터미널 (Terminal)
◦
화면/창 그 자체
◦
입력과 출력을 보여주는 디스플레이
◦
명령어를 타이핑하고 결과를 보는 창문
•
쉘 (Shell)
◦
명령어를 해석하는 프로그램
◦
당신이 입력한 명령어를 운영체제가 이해할 수 있게 번역
◦
실제로 일을 처리하는 두뇌
2. MPU에 연결하는 2가지 방식
USB로 연결하는 방식 vs 무선 네트워크를 활용하는 방식
•
보통 라즈베리파이의 경우 무선 네트워크 연결로 했으나, 아두이노 우노Q를 USB를 더 자주 활용하게 될듯
•
아래 그림에서 보면 App Lab을 실행했을 경우 2가지 선택지가 나오고
3.
무엇을 선택하는가에 따라 아래쪽에 위치한 ‘’connect to the board shell”을 선택해서 나오는 터미널창이 달라짐
•
'Connect to the board shell'을 선택했을 때 나타나는 터미널 창은 현재 PC와 UNO Q가 어떻게 연결되어 있느냐에 따라 두 가지 다른 방식을 사용한다는 이야기
•
ADB (Android Debug Bridge)방식 사용
•
방식: 원래 안드로이드 스마트폰 디버깅을 위해 만들어진 도구이지만, UNO Q에 탑재된 퀄컴 프로세서(QRB2210)가 이를 지원하기 때문에 사용됨
•
SSH (Secure Shell)방식 사용
•
방식: 리눅스 서버에 원격 접속할 때 사용하는 표준 프로토콜
•
동일한 터미널 창이 실행된거 같지만, 실행된 터미널에 SSH라는 글자가 보임
4.
둘의 차이점은 어디서 확인 가능 하는가?
5.
SSH와 ADB비교
SSH 통신 방식
[당신의 PC] SSH [UNO Q 보드]
(암호화 통신)
┌──────────┐ ◄────────► ┌──────────┐
│ App Lab │ │ Debian │
│ 터미널창 │ │ Linux │
│ │ │ Shell │
└──────────┘ └──────────┘
ADB연결이란?
ADB(Android Debug Bridge)는 원래 안드로이드 스마트폰을 개발할 때 PC와 연결해서 디버깅하는 도구
왜 아두이노에서 쓰나요?: UNO Q에 탑재된 퀄컴(Qualcomm) 칩이 모바일 기기 기반의 기술을 사용하기 때문에, 이 도구를 통해 보드 내부의 리눅스(Debian)에 접속할 수 있도록 만들어졌
•
SSH연결 초기에 터미널에서 확인가능한 메시지
The authenticity of host '192.168.0.14 (192.168.0.14)' can't be established.
ED25519 key fingerprint is SHA256:QrQGWl6jsGIOOZhZ9WGDB93vGpQzL8X60bVyjUgXhXk.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Plain Text
복사
•
•
입력하고 나면 ‘접속 시 보드의 비밀번호(기본값: arduino)를 입력해야 함
6.
MPU로 LED제어하기를 진짜 시작해보기
6-1. 터미널 창에서 실행하기
echo 1 | sudo tee /sys/class/leds/red:user/brightness # LED 켜기
echo 0 | sudo tee /sys/class/leds/red:user/brightness # LED 끄기
Plain Text
복사
[명령어 해석]
•
echo숫자 를 지정해줘야 하는 이유: 리눅스 운영체제가 하드웨어를 제어하는 방식(Sysfs) 때문
◦
리눅스는 LED 같은 하드웨어 장치를 ‘파일’처럼 취급
◦
메모장에 글씨를 쓰듯이 특정 파일에 숫자 1을 기록하면 LED가 켜지고, 0을 기록하면 꺼지도록 설계되어 있음
◦
echo 뒤에 붙은 숫자는 크게 의미없는 숫자 :0,1,2,3 등
◦
echo 1 (데이터 생성): 표준 출력(화면)으로 숫자 "1"과 줄바꿈 문자를 보냅니다. 여기서 "1"은 LED의 밝기 값(Data)
▪
0: 꺼짐 (OFF)
▪
1 ~ 254: 밝기 조절 (숫자가 클수록 밝음)
▪
UNO Q의 리눅스 제어 LED는 부드러운 색상 전환을 위해 약 2kHz 주파수의 PWM으로 구동됨
▪
해당 LED가 지원하는 최대 밝기 값 확인하기: 아래 명령어를 터미널에서 실행하기
cat /sys/class/leds/red:user/max_brightness
JavaScript
복사
◦
| (파이프): echo가 화면에 뿌리려던 데이터("1")를 가로채서, 뒤에 오는 명령어(tee)의 **입력(Input)**으로 연결해줌
◦
sudo (권한 상승): tee 명령어를 관리자(Root) 권한으로 실행
▪
/sys/ 폴더 안의 파일들은 시스템 핵심 영역이라 일반 사용자(arduino)는 수정할 수 없기 때문
◦
tee (기록 및 출력): 파이프로 받은 데이터("1")를 지정된 파일에 쓰고(Write), 동시에 화면에도 출력(Echo)
◦
/sys/class/leds/red:user/brightness (대상 파일): 리눅스 커널이 하드웨어(빨간색 LED)를 제어하기 위해 만든 가상의 파일 인터페이스
6-2. sketch에서 실행하기
•
파이썬 스크립트로 실행하기
•
main.py 파일을 수정하기
import time
# LED 파일 경로 정의 (Linux sysfs를 통한 LED 제어)
LED1_R = "/sys/class/leds/red:user/brightness" # LED1 빨강
LED1_G = "/sys/class/leds/green:user/brightness" # LED1 초록
LED1_B = "/sys/class/leds/blue:user/brightness" # LED1 파랑
LED2_R = "/sys/class/leds/red:panic/brightness" # LED2 빨강
LED2_G = "/sys/class/leds/green:wlan/brightness" # LED2 초록
LED2_B = "/sys/class/leds/blue:bt/brightness" # LED2 파랑
def set_led_brightness(led_file, value):
"""LED 밝기 설정 함수"""
try:
with open(led_file, "w") as f:
f.write(f"{value}\n") # 0(끄기) 또는 1(켜기) 값 쓰기
except Exception as e:
print(f"Error writing to {led_file}: {e}") # 오류 발생 시 메시지 출력
def main():
# 모든 LED 끄기
set_led_brightness(LED1_R, 0)
set_led_brightness(LED1_G, 0)
set_led_brightness(LED1_B, 0)
set_led_brightness(LED2_R, 0)
set_led_brightness(LED2_G, 0)
set_led_brightness(LED2_B, 0)
while True:
# LED1의 빨강 세그먼트 깜빡이기
set_led_brightness(LED1_R, 1) # 빨강 LED 켜기
time.sleep(1) # 1초 대기
set_led_brightness(LED1_R, 0) # 빨강 LED 끄기
time.sleep(1) # 1초 대기
if __name__ == "__main__":
main() # 프로그램 실행
Python
복사
6-3. MCP로 RGB Led제어하기
•
LED #3과 #4는 MCU에 의해 제어됨
•
각각의 GPIO 상태를 digitalWrite 설정하여 제어할 수 있음
•
MCP로 실행하기 위해 스케치 파일에 작성
•
sketch.ino 파일을 수정하기
void setup() {
// 핀들을 출력 모드로 설정
pinMode(LED3_R, OUTPUT);
pinMode(LED3_G, OUTPUT);
pinMode(LED3_B, OUTPUT);
// Active Low 방식이므로 HIGH로 설정하여 초기에는 꺼진 상태로 만듦
digitalWrite(LED3_R, HIGH);
digitalWrite(LED3_G, HIGH);
digitalWrite(LED3_B, HIGH);
}
void loop() {
digitalWrite(LED3_R, LOW); // 빨강 LED 켜기
digitalWrite(LED3_G, HIGH); // 초록 LED 끄기
digitalWrite(LED3_B, HIGH); // 파랑 LED 끄기
delay(1000); // 1초 대기
digitalWrite(LED3_R, HIGH); // 빨강 LED 끄기
digitalWrite(LED3_G, LOW); // 초록 LED 켜기
digitalWrite(LED3_B, HIGH); // 파랑 LED 끄기
delay(1000); // 1초 대기
digitalWrite(LED3_R, HIGH); // 빨강 LED 끄기
digitalWrite(LED3_G, HIGH); // 초록 LED 끄기
digitalWrite(LED3_B, LOW); // 파랑 LED 켜기
delay(1000); // 1초 대기
}
Arduino
복사
•
제어 결과
•
LED 색상 세그먼트
[LED 3]
빨간색: LED3_R
녹색: LED3_G
파란색: LED3_B
[LED 4]
빨간색: LED4_R
녹색: LED4_G
파란색: LED4_B
Plain Text
복사
3-6.사용전 주의사항
[실행시 시간이 오래 걸리는 이유]
•
컴파일과 실행 환경 구성이 PC가 아닌 우노Q 보드 내부에서 이루어지기 때문
•
반적인 아두이노 IDE는 PC의 강력한 CPU로 코드를 컴파일한 후 결과물(바이너리)만 보드로 보내지만, 우노Q의 경우는 다름
◦
실제 컴파일 작업은 UNO Q 보드 내부의 MPU(리눅스)가 수행함
◦
Zephyr OS 빌드: UNO Q의 MCU 코드는 단순한 펌웨어가 아니라 Zephyr RTOS 위에서 돌아감
이 OS를 빌드하는 과정이 상당히 무거운데, 리뷰에 따르면 이 과정이 싱글 코어로 진행되어 PC에서 컴파일 하는 것보다 훨씬 시간이 오래 걸린다고 함
•
UNO Q의 앱(App)은 단순한 코드가 아니라 리눅스 환경 위에서 돌아가는 복합적인 프로그램이며, 컨테이너도 구현되어 있음
◦
컨테이너 구동: 특히 AI 기능이나 복잡한 브릭(Brick)을 사용하는 경우, 도커(Docker) 컨테이너나 파이썬 가상 환경을 띄우는 데 시간이 소요
4. 아두이노 우노Q 사용시 주의점& 낯선개념2가지
4-1.시리얼 모니터 변경사항
[시리얼 모니터]
•
Serial은 D0/D1 UART 하드웨어에 연결되며, App Lab의 Serial Monitor에 직접 표시되지 않음
•
대신 Arduino_RouterBridge 라이브러리의 Monitor 객체를 사용하면 MCU의 출력이 Bridge를 통해 Linux → App Lab Serial Monitor로 전달됨
#include <Arduino_RouterBridge.h>
void setup() {
Monitor.begin();
}
void loop() {
Monitor.println("Hello UNO Q");
delay(1000);
}
C++
복사
•
기존: Serial.println("Hello");를 쓰면 USB 케이블을 통해 PC 모니터에 글자가 표시되었지만,
•
App Lab: Serial 명령어는 보드의 물리적인 핀(D0, D1)으로 데이터를 보내버리기 때문에 App Lab 콘솔 화면에는 아무것도 뜨지 않음
•
해결책: Monitor 객체를 사용해야 함. 내부의 Bridge를 타고 리눅스를 거쳐 App Lab 화면에 출력됨
4-2.브릿지 기능
[브릿지 기능] 파이썬과 아두이노의 역할 분담
•
App Lab의 가장 큰 장점은 Python(지능)과 C++(반사신경)을 동시에 코딩할 수 있다는 것
•
구조: 하나의 App 안에 main.py (파이썬)와 sketch.ino (아두이노)가 함께 들어있음
•
통신: 두 코드는 **Bridge*라는 기능으로 대화함
◦ 파이썬: "사람 얼굴이 보였어! (데이터 전송)"
◦ 아두이노: "알겠어, 빨간 불 켤게! (하드웨어 제어)"
◦ 이 과정을 App Lab이 알아서 연결해 주므로, 복잡한 통신 코드를 짤 필요 없이 함수 호출하듯(RPC) 사용할 수 있음
•
그래서 blink 예제 코드를 볼때, main.py와 sketch.ino에 기존에 없던 Bridge라는 명령어가 있음을 볼 수 있음
4-3.브릭 기능
'Bricks(브릭)'으로 AI와 웹 기능 날로 먹기
복잡한 코딩 없이 기능을 블록처럼 갖다 쓸 수 있는 것이 바로 Bricks
•
기능: 얼굴 인식, 사물 감지 같은 AI 모델이나, 스마트폰으로 제어할 수 있는 웹 대시보드를 클릭 몇 번으로 프로젝트에 추가할 수 있음
•
장점: 파이썬 코드를 처음부터 짤 필요 없이, 브릭을 추가하면 필요한 코드가 자동으로 생성되거나 라이브러리가 연결됨
5. 아두이노 우노Q에 최적화된 노트북LM
•
위 자료를 박박 긁어모아서 만든 우노Q 전용 노트북LM
•
양파고 제작













































