메뉴 전체보기

회원메뉴

Q - Mac을 위한 작은 데스크 동반자 > 게시판

본문 바로가기

쇼핑몰 검색

NO. 3542
제목 : Q - Mac을 위한 작은 데스크 동반자
2026-10-09 10:31

소개: Q - Mac을 위한 작은 데스크 동반자


소개: Q - Mac을 위한 작은 데스크 동반자


소개: Q - Mac을 위한 작은 데스크 동반자


소개: Q - Mac을 위한 작은 데스크 동반자


컴퓨터에서 계속 확인해야 하는 대부분의 정보는 다른 창 안에 있습니다. AI 에이전트가 작업을 완료했는지, 집중 타이머가 얼마나 남았는지, 회의 마이크가 음소거 상태인지 알아보려면 탭을 확인하거나 앱을 열거나 다른 알림을 기다려야 합니다.

Q는 이러한 정보를 책상 위로 가져옵니다. Q는 Mac을 위한 작고 선인장 모양의 동반자로, RGB 조명 3개와 물리 버튼 1개로 구성되어 있습니다. 조명은 현재 상황을 보여 주고, 버튼으로 응답할 수 있습니다. 창을 뒤질 필요 없이 AI 에이전트의 확인 요청을 알아보고, 집중 세션을 시작하고, 현재 상태를 변경하거나, 마이크를 제어할 수 있습니다.

이 Instructable에서는 전체 제작 과정을 다룹니다. 맞춤형 PCB, ESP32-C3 펌웨어, 케이스 설계, 3D 프린팅 및 조립, 네이티브 macOS 동반 앱까지 모두 포함합니다. 하드웨어 파일, 케이스 모델, 펌웨어, 앱 소스가 공개되어 있으므로 직접 Q를 만들고 자신의 책상에 맞게 수정할 수 있습니다.

소스 · 데모 동영상

기능

  1. 한눈에 확인하는 AI 에이전트 상태: 색상 조명으로 Codex와 Claude Code의 활동을 확인하고, Q를 눌러 관련 작업을 앞으로 가져옵니다.
  2. 물리식 포모도로 타이머: 보라색 조명은 집중 시간을, 초록색 조명은 휴식 시간을 나타내며, 시간이 줄어들수록 3개의 창이 점차 어두워집니다.
  3. 한 버튼으로 회의 제어: 지원되는 회의 앱에서 음소거를 전환하거나, 버튼을 길게 눌러 일시적으로 음소거를 해제합니다.
  4. 수동 상태 신호: 버튼을 누르면 사용 가능, 집중, 바쁨 상태를 차례로 전환합니다.
  5. 사용자 지정 색상 및 애니메이션: 나만의 조명 장면을 만들거나 천천히 변하는 앰비언트 그라데이션을 사용할 수 있습니다.
  6. 작고 직접 제작할 수 있는 설계: Seeed Studio XIAO ESP32-C3, 맞춤형 PCB, 3D 프린팅한 선인장 케이스로 구성되며 USB를 통해 Mac에 연결됩니다.
  7. 네이티브 macOS 동반 앱: 메뉴 막대에서 모드, 밝기, 통합 기능 및 조명 장면을 설정합니다.

Q를 개발하면서 제가 탐구하고 싶었던 여러 분야를 한데 경험할 수 있었습니다. 제작을 의뢰한 첫 맞춤형 PCB 설계, 첫 네이티브 macOS 애플리케이션 작성, 마이크로컨트롤러 프로그래밍, Fusion 360을 이용한 케이스 설계가 그것입니다. 이 Instructable에서는 콘셉트와 각 부분을 결정한 이유, 그리고 전자 장치·소프트웨어·출력한 케이스가 어떻게 하나로 결합되는지 설명하겠습니다.




STEP 1. 준비물


준비물


준비물


준비물


준비물


준비물


준비물


준비물


준비물


준비물


준비물


준비물


Q 장치를 제작하려면:

  1. Seeed Studio XIAO ESP32-C3 마이크로컨트롤러 모듈, 1개
  2. 펌웨어 핀 맵에 맞는 Q PCB, 1개
  3. TUOZHAN P4-1615G2B2R4TS2-06T-001-24 공통 애노드 RGB LED, 3개; LCSC C7496855
  4. 330 Ω 0603 저항, 9개; LCSC C279996
  5. TS3320A 택트 스위치, 1개; LCSC C2681475
  6. USB-C 데이터 케이블, 1개.
  7. 출력한 선인장 본체, 새싹 2개, 화분, 버튼 캡, 조명 확산판 3개.
  8. 선인장용 녹색 필라멘트와 화분용 테라코타색 또는 벽돌색 필라멘트.
  9. 확산판 창에 사용할 빛 투과성 소재.
  10. 케이스 접합부에 적합한 접착제 또는 체결 부품.


PCB를 조립 포함으로 주문하는 경우 어떤 부품이 이미 포함되어 있는지 확인하세요. LED, 저항 또는 스위치를 중복해서 구입하고 납땜할 필요는 없습니다. 다만 XIAO는 별도로 장착해야 할 수 있습니다.

이런 제작에 사용하는 도구는 3D 프린터와 슬라이서, 디지털 캘리퍼스, 납땜 인두, 납, 핀셋, 멀티미터, 고운 사포입니다. 케이스에는 Fusion 360을, 펌웨어에는 PlatformIO를, Mac 애플리케이션에는 Swift와 SwiftUI를 사용합니다.

소프트웨어 소스와 기술 문서는 Q 저장소에 있습니다. 하드웨어를 재현할 때는 동일한 리비전의 보드 및 케이스 파일을 사용하세요. 부품 위치는 전기적 연결만큼 중요합니다.




STEP 2. 콘셉트 정의


콘셉트 정의


콘셉트 정의


콘셉트 정의


기본 아이디어는 RGB LED 3개가 여러 색상을 구현하고 함께 또는 독립적으로 작동할 수 있다는 것입니다. 버튼 하나로 사용자가 물체에 여러 조작부를 추가하지 않고도 응답할 수 있습니다. 여기에는 두 가지 요구 사항이 있습니다. 조명은 라벨을 읽지 않아도 이해할 수 있어야 하며, 버튼은 표시되는 정보와 관련된 동작을 수행해야 합니다. 주의를 요청하는 조명은 물체를 눌렀을 때 필요한 작업이 열리면 훨씬 더 유용해집니다.

개별 부품을 살펴보기 전에 Q를 어떻게 사용하는지 설명하면 도움이 됩니다. 주요 순서는 네 부분으로 나눌 수 있습니다.

1. 모드 선택

사용자는 Mac 애플리케이션에서 Q가 전달할 내용을 선택하거나 버튼으로 모드를 차례로 전환합니다.

2. 작업 계속하기

Q는 관련 상태를 표시하고, 컴퓨터는 실제 작업을 계속 담당합니다.

3. 변화 인지하기

다른 색상이나 애니메이션으로 진행 상황, 완료 또는 주의가 필요한 상태를 나타냅니다.

4. 응답하기

버튼을 누르면 현재 모드와 상태에 연결된 동작이 실행됩니다.


예를 들어 AI 에이전트가 작업을 시작하면 Q는 황색 애니메이션을 표시합니다. 작업에 입력이 필요해지면 Q가 파란색으로 바뀝니다. 버튼을 누르면 Mac에서 관련 대화가 열립니다.

회의에서는 같은 물체를 다른 방식으로 사용합니다. Q는 지원되는 통화 및 마이크 상태를 표시하고, 버튼으로 마이크를 제어합니다. 버튼을 누르고 있으면 선택한 회의 제공업체의 음소거를 일시적으로 해제할 수 있으며, 버튼을 놓으면 다시 음소거됩니다.

선택한 모드가 계속 제어권을 유지합니다. 즉, 사용자가 의도적으로 선택한 포모도로 타이머가 실행 중일 때 백그라운드에서 시작된 회의가 이를 대신하지 않습니다. 버튼을 눌렀을 때의 의미가 예측 가능하게 유지되므로 이러한 일관성이 중요합니다.

조명은 색상과 움직임을 함께 사용합니다. 기본 제공 모드에서 일반적으로 초록색은 사용 가능 또는 성공, 황색은 활성 상태, 파란색은 참여 또는 주의, 빨간색은 문제 또는 방해 금지, 보라색은 시간 제한 집중을 의미합니다. 지속 점등은 안정된 상태를, 흐르는 점등은 진행 중인 활동을, 느린 페이드는 주의를 환기해야 하는 상태를, 깜박임은 문제를 나타냅니다. 이를 통해 세 개의 출력이 서로 다른 용도에서도 공통된 언어를 사용하게 됩니다.




STEP 3. 가치 제안


상호작용을 정의했으므로 프로젝트를 다음과 같은 간단한 전제로 설명할 수 있습니다.


컴퓨터 활동을 빛으로 바꾸고 버튼 하나로 사용자가 응답할 수 있게 하는 작은 책상 동반자.


이를 위해 설계는 다음과 같은 여러 조건을 충족해야 합니다.

  1. 읽기 쉬운 색상과 애니메이션으로 유용한 상태를 한눈에 전달해야 합니다.
  2. 전원과 데이터는 하나의 USB-C 케이블을 사용해야 합니다.
  3. 동일한 전자 장치가 여러 모드를 지원해야 합니다.
  4. 인클로저는 보드, 광창, 버튼, 커넥터를 수용하면서 책상 위에서 방해물이 되지 않아야 합니다.
  5. 이 물체는 활성 상태와 비활성 상태 모두에서 알아볼 수 있는 특성을 지녀야 합니다.




STEP 4. 부품 설계


부품 설계


부품 설계


부품 설계


무엇보다 먼저 모든 부품을 설계해야 합니다. 우리는 다음을 사용하기로 했습니다: 선택한 소프트웨어로 Fusion360. Fusion360은 실제 제품 설계뿐 아니라 렌더링과 애니메이션도 지원하므로 이 프로젝트에 매우 적합합니다.

또한 이 프로젝트의 과제 중 하나는 주로 사용될 제조 기술이 3D 프린팅이라는 점을 고려해 모든 부품을 설계하는 것입니다. 이를 DfAM(Design for Additive Manufacturing)이라고 합니다. 3D 프린팅의 한계를 염두에 두고 그에 맞춰 설계하는 것이 중요합니다.

gen3D 웹사이트에서 인용: "적층 제조를 위한 설계(Design for Additive Manufacturing)란 적층 제조의 공정상 한계를 준수하면서 그 자유도를 활용하는 부품 또는 제품을 설계하는 작업입니다. 모든 설계자의 목표는 기능성과 부품 품질을 극대화하는 동시에 생산 시간, 비용 및 제작 중 실패 위험을 최소화하는 것이어야 합니다. 당사는 적층 제조를 위한 설계의 네 가지 핵심 원칙을 바탕으로 교육과 컨설팅을 제공합니다. 이러한 원칙을 이해하면 설계자는 적층 제조의 이점을 최대한 활용하는 새로운 설계를 만들 수 있으며, 부품이 상업적으로 성공할 가능성을 높일 수 있습니다."




STEP 5. PCB 설계


PCB 설계


PCB 설계


맞춤형 PCB를 사용하면 부품을 반복 가능한 배치로 구성할 수 있습니다. 이는 Q에서 특히 중요합니다. 세 개의 LED와 스위치가 인클로저의 개구부와 정확히 맞아야 하기 때문입니다.

이것은 제작을 의뢰한 첫 번째 맞춤형 PCB였습니다. 회로는 비교적 작지만 레이아웃이 전체 물체에 영향을 줍니다. 부품 간격, XIAO 방향, 보드 깊이, USB 접근 위치가 모두 인클로저와 맞아야 합니다.




STEP 6. PCB 조립


PCB 조립


PCB 조립


저는 JLCPCB를 사용해 조립된 PCB를 주문했습니다. JLCPCB에서 주문하는 데 필요한 모든 파일을 github 저장소에 첨부했습니다. 다음을 수행해야 합니다:

  1. PCB에 손상된 배선, 누락된 부품, 납땜 브리지가 있는지 검사합니다.
  2. 베어 보드인 경우 조립도를 사용해 저항기, LED, 스위치를 장착합니다.
  3. 전원을 분리한 상태에서 3.3 V와 접지 사이에 단락이 없는지 확인합니다.
  4. 완성된 선인장의 아래쪽을 향하도록 USB-C가 배치되게 XIAO를 놓습니다.
  5. 모듈 패드 하나를 임시 납땜하고 정렬 상태를 확인한 다음 나머지 연결부를 납땜합니다.
  6. USB를 연결하기 전에 납땜부를 검사합니다.

먼저 인클로저 밖에서 보드를 테스트합니다. 부품을 선인장 안에 넣기 전에 납땜부를 검사하거나 신호를 확인하는 것이 훨씬 쉽습니다.




STEP 7. 펌웨어 업로드


펌웨어 업로드


PlatformIO를 설치하고 USB-C 데이터 케이블로 XIAO를 연결합니다. 다음을 실행합니다:


git clone https://github.com/frozono9/Q.git
cd Q/Firmware
pio run
pio run --target upload


이 프로젝트는 `seeed_xiao_esp32c3` 보드 대상을 사용합니다. 여러 직렬 장치가 연결되어 있다면 XIAO의 업로드 포트를 지정합니다. 수동 업로드를 하기 전에 Q 애플리케이션을 종료해 연결을 해제하도록 합니다.

시작 후 Q는 빨간색 대기 펄스를 표시합니다. 애플리케이션이 핸드셰이크를 완료하면 장치는 녹색 확인 펄스 세 번을 표시한 다음 선택한 장면을 표시합니다.

직렬 출력을 확인하려면 `pio device monitor`를 사용할 수 있습니다. Mac 앱을 통해 연결하기 전에 이를 닫으십시오. 두 프로그램이 동일한 직렬 포트를 사용하기 때문입니다.




STEP 8. 컴패니언 앱


컴패니언 앱


애플리케이션은 물리적 물체를 컴퓨터의 활동과 연결하는 부분입니다. 저는 이를 네이티브 Swift 및 SwiftUI 메뉴 막대 앱으로 개발했으므로 별도의 창을 계속 열어 두지 않아도 제어 기능을 사용할 수 있습니다.

Q 아이콘을 클릭하면 선택한 모드, 현재 상태, 장치 제어 기능이 열립니다. 애플리케이션은 USB 직렬을 통해 호환되는 장치를 검색하고, 장치의 식별 정보를 확인한 뒤 해당 LED 장면을 전송합니다. 버튼 제스처도 동일한 연결을 통해 반환됩니다.


활동 모니터링

AI Agents 모드에서 Q는 로컬 Codex 세션 활동을 읽습니다. 선택 사항인 Claude Code 지원은 별도로 활성화해야 하는 수명 주기 훅을 사용합니다. Claude 수명 주기 메타데이터에는 프롬프트나 대화 내용이 저장되지 않습니다.

회의 감지는 공급자에 따라 로컬 로그 또는 접근 가능한 통화 제어 기능을 사용합니다. 지원되는 공급자는 Discord, Zoom, Google Meet, Microsoft Teams입니다. Availability, Pomodoro, Relaxing 및 사용자 지정 상태는 Q 자체에서 관리합니다.

즉, 장치 자체에 클라우드 연결이 필요하지 않습니다. 다만 각 통합 기능은 해당 애플리케이션을 사용할 수 있고 Q가 사용하는 로컬 정보나 제어 기능을 제공하는지에 따라 달라집니다.


애플리케이션 설치

패키지 릴리스의 경우 DMG를 열고 Q를 Applications로 드래그한 다음 실행합니다. 공증되지 않은 비공개 빌드의 경우 macOS에서 프로젝트에서 받았거나 직접 빌드한 복사본에 대해 ‘Open Anyway’ 옵션을 사용해야 할 수 있습니다.

소스에서 빌드하려면 macOS 14 이상과 Swift 6 툴체인을 사용합니다. 저장소 루트에서 다음을 실행합니다:


swift build
sh Scripts/install-app.sh


이 프로젝트는 로컬 Swift 컴파일러와 SwiftPM 런타임 간 불일치에 대비한 대안으로 `Scripts/build-local.sh release`도 제공합니다. 설치 스크립트가 실제 애플리케이션 번들을 생성합니다.

Q를 연결하고 최초 실행 확인 화면 또는 장치 설정을 엽니다. 앱에 Connected가 표시되고 펌웨어 버전과 장치 ID가 나타나며 RGBW 조명 테스트와 물리적 버튼 테스트를 모두 인식하는지 확인합니다.

지원되는 회의 제어 기능과 Codex 상호 작용을 사용하려면 System Settings → Privacy & Security → Accessibility에서 Q에 손쉬운 사용 권한을 부여합니다. Q에는 마이크가 없습니다. Q의 받아쓰기 동작은 Mac에서 Codex를 제어합니다.




STEP 9. 부품 출력


부품 출력


설계 과정에서 제조 방법을 고려해야 합니다. 이를 적층 제조를 위한 설계(Design for Additive Manufacturing)라고 합니다. 형상은 돌출부, 적층 방향, 개별 부품 간 맞춤을 고려하면서 3D 프린팅의 장점을 활용해야 합니다.

Q에서 중요한 부분은 PCB 캐비티, 디퓨저 개구부, 움직이는 버튼, USB 채널입니다. 이러한 기능 주변을 슬라이스 미리보기에서 주의 깊게 확인합니다. 보드 캐비티 내부의 서포트 구조나 막힌 케이블 통로는 다른 부분이 잘 출력되었더라도 조립을 어렵게 만들 수 있습니다.

장식 본체와 화분에는 적합한 녹색 및 테라코타색 필라멘트를 사용할 수 있습니다. 창에는 빛을 투과하는 재료가 필요하므로, 세 개 모두 출력하기 전에 실제 LED 위에 작은 확산판을 씌워 테스트하세요.




STEP 10. 전체 조립


전체 조립


조립할 때 보드, 확산판, 버튼이 정렬된 상태를 유지해야 합니다. 접착제를 사용하거나 케이스를 완전히 닫기 전에 USB를 분리하고 부품을 가조립해 보세요.




STEP 11. 기능


기능


물리 장치를 조립하고 연결하면 Q를 출고 시 설정된 다섯 가지 모드로 사용할 수 있습니다. 각 모드는 동일한 인터페이스를 사용하지만 조명과 버튼의 기능은 서로 다릅니다.


AI 에이전트

이 모드는 Codex 작업과 선택적으로 연결된 Claude Code 활동을 따릅니다. 황색은 작업 진행 중, 파란색은 입력 필요, 녹색은 완료, 빨간색은 오류를 나타냅니다.

진행 중인 작업이 하나라면 세 조명이 모두 황색 추적 패턴을 표시합니다. 관련 작업이 여러 개이면 각 LED가 서로 다른 세션을 나타낼 수 있으며, 한 번에 최대 세 개까지 표시합니다. 계속 진행 중인 작업은 LED 위치를 유지하므로 표시가 불필요하게 바뀌지 않습니다.

Q를 누르면 관련 작업이나 최근 대화가 열립니다. 이는 원래 사용 시나리오에서 핵심적인 상호작용입니다. 물체가 사용자의 주의가 필요하다는 것을 알리고, 버튼을 누르면 해당 항목으로 이동합니다.


상태

상태 모드는 조명 색상으로 Available, Focus, Busy, Away 또는 Offline을 표시합니다. 일반적으로 한 번 누르면 일반 상태가 순환합니다. 이를 통해 책상에서 현재 상태를 수동으로 표시할 수 있습니다.


회의

회의 모드는 Discord, Zoom, Google Meet 또는 Microsoft Teams에서 지원되는 통화 및 마이크 상태를 표시합니다. 사용 중인 서비스는 활성 통화를 자동으로 따라가게 하거나 수동으로 선택할 수 있습니다.

제어 가능한 활성 통화 중에 버튼을 누르면 마이크가 전환됩니다. 버튼을 누르고 있는 동안에는 서비스의 음소거가 일시적으로 해제되고, 손을 떼면 다시 음소거됩니다. 감지 및 확인 방식은 해당 서비스에서 제공하는 제어 기능에 따라 달라지므로 실제 통화 중에 동작을 테스트하세요.


뽀모도로

뽀모도로 모드에서는 집중 시간에 보라색을, 휴식 시간에 녹색을 사용합니다. 각 LED는 해당 단계의 3분의 1을 나타냅니다. 시간이 지나면 다음 구간이 점차 어두워지다가 꺼집니다.

이렇게 세 LED가 진행 상황 표시 역할을 합니다. 현재 상태에 따라 버튼을 누르면 타이머가 시작되거나 일시 정지되거나 다시 시작되거나 다음 단계로 넘어갑니다.


휴식

휴식 모드에서는 느린 색상 그라데이션을 표시합니다. 특별히 추적할 활동이 없을 때 선인장에 주변 장식과 같은 역할을 부여합니다. 일반적으로 버튼을 누르면 그라데이션이 다시 시작됩니다.




STEP 12. 결론


Q는 작은 책상 위 물체에 물리적 인터페이스와 Mac 네이티브 애플리케이션을 결합합니다. 세 개의 조명이 활동을 전달하고, 버튼 하나로 응답할 수 있습니다. 선인장은 아무것도 표시하지 않을 때에도 책상 위에 둘 수 있는 개성을 이 기능들에 더해 줍니다.

저에게 이 프로젝트에서 흥미로웠던 부분은 전체 시스템을 개발한 일이었습니다. PCB가 부품 배치를 정하고, 펌웨어가 출력과 입력을 처리하며, 앱이 이를 유용한 활동과 연결하고, 3D 프린팅 인클로저가 결과물을 하나의 물체로 구현해 누구나 쉽게 접할 수 있게 합니다.

이 프로젝트가 직접 Q를 만들고 싶은 누군가에게 유용하거나, 전자 장치와 소프트웨어, 제품 디자인을 다른 방식으로 결합해 보도록 영감을 주기를 바랍니다. 만약 직접 만든다면 여러분의 버전을 공유해 주세요! 다른 사람들이 어떤 형태와 모드를 만들어 낼지 정말 보고 싶습니다.


원문: https://www.instructables.com/Q-Tiny-Desk-Companion-for-Your-Mac/

좋아요 0
게시판

회사명 공방유니언 주소 각 공방 주소 참조
사업자 등록번호 0000 대표 공방유니언 전화 019-60105846 팩스 0000 이메일 gongbangunion@gmail.com
통신판매업신고번호 0000 개인정보관리책임자 공방유니언
Copyright © 2017 공방유니언. All Rights Reserved.