아두이노 우노 Q 터치 센서
터치 센서는 디지털 버튼처럼 작동합니다 — 터치할 때 HIGH, 터치하지 않을 때 LOW를 출력합니다. Arduino UNO Q에서는 MCU에서 로컬로 터치를 모니터링하거나, Bridge를 사용하여 Linux 측에서 터치 이벤트를 감지하고 Telegram을 통해 작동할 수 있습니다.
이 튜토리얼에서 배울 내용:
- 터치 센서란 무엇인지, 어떻게 작동하는지
- Arduino UNO Q MCU에 터치 센서를 배선하는 방법
- MCU(C/C++ Arduino 코드)를 프로그래밍하여 터치 센서 상태를 읽는 방법
- Bridge를 통해 Linux 측(Python)과 MCU 측(C/C++)에서 터치 이벤트를 감지하는 방법
- Arduino UNO Q에서 터치 센서가 활성화될 때 Telegram 알림을 받는 방법
- Arduino UNO Q에서 터치 센서를 포함한 OpenClaw를 사용하는 방법

필요한 하드웨어
| 1 | × | Arduino UNO Q | 아마존 | |
| 1 | × | USB Cable for Arduino Uno Q | 아마존 | |
| 1 | × | 터치 센서 (Touch Sensor) | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 스크루 터미널 블록 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Sensors/Servo Expansion Shield for Arduino Uno | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 브레드보드 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 케이스 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 | 아마존 |
터치 센서 정보
핀아웃
터치 센서에는 세 가지 핀이 있습니다:
- GND: GND(0V)에 연결
- VCC: 3.3V 또는 5V에 연결
- SIGNAL: 디지털 출력 — 터치하지 않을 때 LOW, 터치할 때 HIGH를 출력합니다. Arduino UNO Q MCU의 디지털 핀에 연결하세요.

작동 원리
- 센서가 터치되지 않으면 SIGNAL 핀은 LOW입니다
- 센서가 터치되면 SIGNAL 핀은 HIGH입니다
터치 센서는 정확히 일시적 푸시 버튼처럼 작동합니다 — digitalRead()로 읽을 수 있으며 라이브러리가 필요하지 않습니다.
배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
| 터치 센서 핀 | Arduino UNO Q MCU |
|---|---|
| GND | GND |
| VCC | 3.3V |
| SIGNAL | D7 |
터치 센서 프로그래밍 방법
- Arduino UNO Q MCU 핀을 디지털 입력으로 설정합니다:
- 센서 상태를 읽습니다:
- 확인 및 응답:
Arduino UNO Q 코드
Arduino UNO Q는 함께 작동하는 두 개의 프로세서를 가지고 있습니다:
- STM32 MCU는 디지털 핀을 통해 터치 센서를 직접 읽습니다 — 모든 감지는 MCU에서 실행됩니다
- Qualcomm MPU는 Debian Linux를 실행하고 Wi-Fi, Python 및 클라우드 연결을 처리합니다
- 이 섹션에서는 MCU만 프로그래밍됩니다 — Linux 측은 유휴 상태입니다. 나중 섹션에서는 두 프로세서가 Bridge를 통해 함께 작동하는 방법을 보여줍니다.
MCU는 500ms마다 터치 센서를 읽고 상태를 Serial Monitor에 출력합니다.
빠른 단계
Arduino UNO Q를 처음 사용하나요? 진행하기 전에 아두이노 우노 Q 시작하기 튜토리얼을 따르세요.
- 연결: 배선도에 따라 터치 센서를 Arduino UNO Q MCU에 연결합니다.
- Arduino App Lab 열기: Arduino App Lab을 실행하고 Arduino UNO Q를 감지할 때까지 기다립니다.
- 새 앱 만들기: Create New App 버튼을 클릭합니다.

- 앱에 이름을 지정합니다. 예: TouchSensor
- Create를 클릭하여 확인합니다.

- 스케치 붙여넣기: 위의 MCU 코드를 복사하여 sketch/sketch.ino에 붙여넣습니다. 다른 파일은 기본값으로 유지합니다.
- 라이브러리 불필요 — 터치 센서는 digitalRead() 함수만 사용합니다.
- 업로드: Arduino App Lab에서 Run 버튼을 클릭합니다.

- 센서에 손가락을 올려놓고 Serial Monitor를 지켜봅니다.
App Lab 콘솔 출력
Bridge: Linux + MCU
이 섹션에서는 Linux 측이 Bridge를 통해 터치 이벤트를 감지할 수 있도록 Arduino UNO Q의 두 프로세서를 모두 프로그래밍하는 방법을 보여줍니다:
- 터치 센서는 MCU 디지털 핀에 연결되어 있습니다 — MCU는 loop()에서 상태 변화를 모니터링하고 터치될 때 이벤트 플래그를 설정합니다
- MPU는 디지털 핀을 직접 읽을 수 없습니다 — Bridge 함수를 호출하여 현재 상태를 쿼리하거나 터치 이벤트를 소비합니다
- MPU는 Wi-Fi를 가지고 있습니다 — 전체 Debian Linux를 실행하면서, 터치 이벤트에 반응하고 Telegram 알림을 보낼 수 있습니다
- Arduino_RouterBridge는 RPC 통신을 두 프로세서 간에 활성화합니다
- ⚠️ /dev/ttyHS1(Linux)과 Serial1(MCU)은 라우터에 의해 예약됨 — 사용자 코드에서 절대 열지 마세요
요약하면: MCU는 loop()에서 터치 이벤트를 감지 → MPU는 Bridge를 통해 폴링 → MPU는 Wi-Fi를 통해 작업을 트리거합니다.
MCU 코드 (Bridge)
Python 코드 (Bridge)
빠른 단계
- 연결: 배선도에 따라 터치 센서를 Arduino UNO Q에 연결합니다.
- Arduino App Lab 열기: Arduino App Lab을 실행하고 보드가 감지될 때까지 기다립니다.
- 새 앱 만들기: Create New App을 클릭하고, 이름을 TouchSensorBridge로 지정한 후, Create를 클릭합니다.
- MCU 스케치 붙여넣기: 위의 MCU Bridge 코드를 복사하여 sketch/sketch.ino에 붙여넣습니다.
- Python 코드 붙여넣기: 위의 Python Bridge 코드를 복사하여 앱의 Python 파일에 붙여넣습니다.
- 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 버튼을 클릭합니다.

- 센서를 터치하고 Python 콘솔이 상태 변화를 보고하는 것을 지켜봅니다.
App Lab 콘솔 출력
Telegram
터치 센서가 활성화될 때 즉시 Telegram 알림을 받습니다.
MCU 스케치: 이전 Bridge 섹션의 동일한 MCU 스케치를 유지합니다.
Python 코드 (Telegram)
빠른 단계
- YOUR_TELEGRAM_BOT_TOKEN을 BotFather에서 받은 실제 봇 토큰으로 바꿉니다.
- YOUR_CHAT_ID를 자신의 Telegram 채팅 ID로 바꿉니다.
- 이 Python 코드를 앱의 Python 파일에 붙여넣습니다(동일한 MCU 스케치 유지).
- Run 버튼을 클릭합니다. 센서를 터치하고 Telegram에서 알림을 확인합니다.
App Lab 콘솔 출력
ArduinoBot
OpenClaw
You can adapt the OpenClaw to this tutorial by refering the instruction on 아두이노 우노 Q - OpenClaw Tutorial
프로젝트 아이디어
Arduino UNO Q와 터치 센서로 많은 유용한 프로젝트를 구축할 수 있습니다:
- 터치형 스마트 램프: 센서를 터치하여 Bridge를 통해 LED 또는 릴레이를 토글합니다 — MPU가 토글 로직을 처리하고 각 터치 이벤트를 타임스탬프와 함께 기록합니다
- 도어 초인종: 문틀 근처에 터치 센서를 배치합니다 — 터치되면, MPU가 음성 파일을 재생하거나 Telegram 알림을 보내 방문자를 알립니다
- 비밀 노크 카운터: 3초 내의 연속 터치를 Python 측 로직으로 카운트합니다 — 카운트가 사전 설정된 패턴과 일치하면, Bridge가 언락 릴레이를 트리거합니다
- 현재 감지 디스플레이: 센서를 터치하여 OLED 디스플레이를 깨웁니다 — MCU는 첫 번째 터치 시 디스플레이를 켜고 10초 동안 비활성화 후 끕니다
- 랩 안전 확인: Bridge 명령이 고전력 릴레이를 활성화하기 전에 터치 확인이 필요합니다 — Python 측이 제어 신호를 보내기 전에 get_event()를 확인합니다
도전해보세요
Arduino UNO Q의 터치 센서로 더 나아갈 준비가 되었나요? 이 도전들을 시도해보세요:
- 쉬움: 시작 이후 터치 횟수를 카운트하고 get_count(String) Bridge 함수를 통해 노출합니다 — Python 측이 카운트가 증가할 때마다 카운트를 출력합니다.
- 중간: 더블 탭 감지기를 구현합니다: MCU는 터치 타임스탬프를 기록하고 500ms 내에 두 터치가 발생하면 double_tap 플래그를 설정합니다 — Python 측이 get_event()를 통해 이를 검색하고 Telegram 알림을 보냅니다.
- 어려움: 터치 기반 모스 부호 입력을 구축합니다: MCU는 짧은 터치(점)와 긴 터치(>500ms, 대시)를 구분합니다 — Python 측이 시퀀스를 디코딩하고 디코딩된 문자를 Telegram에 보냅니다.