아두이노 우노 Q

아두이노 우노 Q 05강 — 두 두뇌 협업: 리눅스(파이썬)와 MCU 연동

🎯 학습 목표

  • MPU(리눅스/파이썬)와 MCU(스케치)의 역할 분담을 이해한다.
  • 둘이 데이터를 주고받는 큰 구조를 안다.
  • App Lab에서 둘을 연결하는 흐름을 잡는다.

📖 왜 두뇌를 나눠 쓰나

두 두뇌는 잘하는 일이 다릅니다. 역할을 나누면 각자 강점을 살릴 수 있습니다.

MPU (리눅스/파이썬)         MCU (스케치)
─────────────────────       ─────────────────────
· AI/영상 인식              · 핀 실시간 입출력
· 웹/네트워크/대시보드      · 센서 정밀 읽기
· 무거운 계산·파일 처리    · 모터·LED 정확한 타이밍 제어
· 느려도 되는 똑똑한 일     · 빠르고 정확해야 하는 일

예: 카메라로 “사람이 보이는지”를 파이썬(MPU)이 판단하고, “보이면 문 열어”라는 명령을 MCU에 보내면 MCU가 모터를 정확히 제어합니다.

📖 둘은 어떻게 대화하나

두 두뇌는 보드 내부 통신 경로로 메시지를 주고받습니다. 큰 그림은 이렇습니다.

[센서/카메라] → MCU가 읽음 → (값 전달) → MPU 파이썬이 분석/판단
                                              │
            ←─────── (명령 전달) ────────────┘
[모터/LED] ← MCU가 실행 ← MPU의 "이렇게 해" 명령

* Arduino App Lab이 이 "값/명령 주고받기"를 쉽게 연결하도록 도와줍니다.
  (예제 앱을 보면 파이썬 쪽과 스케치 쪽이 한 프로젝트로 묶여 있음)

💻 개념 예시 (의사코드)

# [MPU 쪽 - 파이썬] 무거운 판단
밝기값 = MCU로부터_받기()
if 밝기값 < 100:
    MCU로_보내기("LED_ON")
else:
    MCU로_보내기("LED_OFF")
// [MCU 쪽 - 스케치] 실시간 입출력
// 1) 센서값을 읽어 MPU로 보냄
// 2) MPU의 명령("LED_ON")을 받으면 핀 제어
//   (실제 송수신 API는 App Lab/공식 예제의 방식을 따른다)

ℹ️ 두뇌 간 통신의 정확한 함수·API 이름과 사용법은 App Lab 버전과 공식 예제를 따르세요.
여기서는 "누가 무엇을 맡고, 어떤 방향으로 데이터가 흐르는지"라는 구조를 이해하는 것이 목표입니다.

💡 팁

  • 처음엔 공식 예제 앱을 그대로 실행해 "파이썬↔스케치"가 어떻게 묶여 있는지 구경부터 하세요.
  • 역할 분담 원칙: "똑똑하지만 느려도 되는 일=파이썬, 단순하지만 빠르고 정확해야 하는 일=스케치".