자유게시판

새로운 보조기기나 개조/제작 방법 및 기술, 뉴스 등을 전반적인 정보를 자유롭게 공유하는 게시판입니다.
※ 플랫폼의 성격에 어긋나거나 문제가 있는 게시물은 삭제될 수 있습니다.

자유게시판

DIY 호흡 스위치(Sip-and-puff)로 조작하는 장난감 만들기
  2025.11.19  |   경기도재활공학센터  |   40
DIY 호흡 스위치(Sip-and-puff)로 조작하는 장난감 만들기
  • 경기도재활공학센터
  • 2025-11-19
  • 40
첨부파일

Sip-and-puff 방식은 손을 사용하지 않고도 기기를 조작할 수 있는 여러 방법 중 하나이며, 특정 장애가 있는 분들에게 매우 유용한 조작 방식입니다.
puff는 튜브에 바람을 “불어 넣는 것”, sip은 튜브로 “빨아들이는 것”을 의미합니다.


두 경우 모두, 사용자에게 맞춰 필요한 압력을 조정할 수 있으며 아주 약한 힘으로도 동작하도록 설정해 피로를 줄일 수 있습니다.

시중에는 이러한 sip-and-puff 방식의 다양한 제품이 있지만, 가격이 비싸거나 원하는 대로 맞춤 제작하기 어려운 경우가 많습니다.


여기에서는 아주 저렴하고, 제작이 간단하며, 완전히 사용자 맞춤으로 변경 가능한 sip-and-puff 방식을 소개합니다.
이 장치는 서로 조작 방식이 전혀 다른 두 종류의 무선 장난감을 제어하는 데 사용되었습니다.

 

우선 첫 번째 예시에서는 ‘puff(불기) → 장난감이 앞으로 이동’, ‘sip(빨기) → 장난감이 뒤로 움직이며 왼쪽으로 회전’하도록 설정했습니다.

 

 

두 번째 예시에서는 조작 방식을 더 다양하게 설정했습니다.

- puff → 오른쪽 회전

- sip → 왼쪽 회전

- 두 번 puff → 앞으로 가기 시작하거나 정지

- 두 번 sip → 뒤로 가기 시작

 

 

Sip과 Puff 동작을 감지하는 방식은 압력 센서를 사용합니다. 이번 프로젝트에서는 MPXV7007G 센서를 사용했습니다.
(※데이터시트: http://cache.freescale.com/files/sensors/doc/data_sheet/MPXV7007.pdf)

 

이 센서는 입력 압력 −1psi부터 +1psi까지를 5V 전원에서 구동했을 때 출력값 0.5V ~ 4.5V 범위로 변환합니다. 즉, 강한 Sip부터 강한 Puff까지 전체 범위를 안정적으로 감지할 수 있으면서, 부드럽고 약한 Sip·Puff도 구분해낼 수 있습니다. 프로토타이핑을 쉽게 하기 위해 센서에 4핀 수헤더를 납땜한 뒤, 기계적 지지를 위해 글루건으로 고정했습니다. 아래 사진은 그 모습입니다.

 

 

아래는 첫 번째 구성에서 사용된 조종기 사진들입니다.
마이크로컨트롤러가 이 조종기를 제어할 수 있도록 내부 회로의 몇몇 지점에 직접 납땜해 연결했습니다.

 

이 조종기는 약 3.3V(AAA 배터리 2개) 로 동작하며, 버튼을 동작시키려면 해당 버튼 라인을 3.3V로 풀업해야 했습니다.
그래서 3.3V 기반 마이크로컨트롤러 보드를 사용하는 것이 가장 간단했습니다.

 

이를 위해 저는 3.3V Adafruit Trinket(ATtiny85) 을 선택했지만, 사실 어떤 3.3V 보드라도 사용할 수 있습니다.

 

추가 작업을 조금 더 한다면 5V 보드도 사용할 수 있으며, 장난감 조종기의 회로 설계에 따라서는 조종기 자체를 5V로 구동하는 것도 가능할 수 있습니다.

이 조종기는 버튼이 눌리지 않은 상태에서 해당 버튼 라인이 반드시 부동(floating) 상태여야 정상적으로 작동합니다. 그래서 Trinket의 두 개 제어 핀을 open-source(오픈 소스 출력) 방식으로 설정했습니다.

 

총 4개의 지점(GND, Vcc, Forward(전진), Reverse-Turn(후진/좌회전))에 납땜했습니다

 

여기서 Vcc는 조종기와 추가 회로를 같은 배터리 전원으로 함께 구동하기 위해서만 연결했습니다.

 

 

아래는 두 번째 구성의 사진들입니다.
마이크로컨트롤러가 조종기를 제어할 수 있도록, 조종기 내부의 필요한 지점에 납땜해 연결한 모습도 포함되어 있습니다.

 

이 조종기 역시 약 3.3V(AA 배터리 2개) 로 동작하지만, 이번 조종기는 버튼을 활성화하려면 버튼 라인을 그라운드(GND) 쪽으로 끌어내리는(pull-down) 방식이었습니다.
그래서 이 경우에는 5V로 동작하는 마이크로컨트롤러를 사용해도 문제가 없었습니다. 

 

저는 아두이노를 사용하면서, 조종기를 제어하기 위해 필요한 4개 핀을 오픈 드레인(open-drain) 방식으로 설정했습니다.

 

6개의 지점(GND, Vcc, Forward(전진), Reverse(후진), Left(좌회전), Right(우회전))을 이 조종기에 납땜했습니다:

 

Vcc는 조종기와 추가 회로(마이크로컨트롤러)를 같은 배터리로 함께 구동하기 위해서만 연결했습니다.

 

 

이러한 모든 커스터마이징 과정에서 가장 중요한 것은 사용자가 어떤 방식이 가장 편하고 선호하는지 파악하는 것입니다.
Sip과 Puff의 조합은 어떤 형태든 가능하며, 각 기능에 대해 ‘길이’, ‘강도’, ‘패턴' 등 원하는 방식으로 자유롭게 설정할 수 있습니다.

 

또한 각 기능은 순간형(momentary) 또는 토글형(toggle) 중 하나로 동작하도록 설정할 수 있습니다.

 

- 순간형(momentary): Sip 또는 Puff를 하는 동안에만 기능이 활성화됨

- 토글형(toggle): Sip 또는 Puff를 한 번 하면 동작이 시작되고, 또 한 번 하면 동작이 멈춤(마우스의 더블클릭 토글과 유사)

 

저는 이 장치를 사용할 때 회전 동작을 시작·정지 동작보다 더 자주 사용할 것이라는 점을 알고 있었기 때문에, 회전은 단순한 Sip 또는 Puff 1회로 바로 작동하도록 설정했습니다.
또한 회전은 정확하지만 비교적 짧은 시간 동안만 이루어지기를 원했기 때문에, Sip 또는 Puff의 시작과 끝에 맞춰 그대로 동작하는 순간형(momentary) 으로 구성했습니다.

 

반면, 전진/후진 시작·정지 기능은 그보다 조금 덜 정밀해도 되므로 각각을 더블 Puff 토글(toggle) 로 설정했습니다.(마우스 더블클릭과 비슷한 방식)

물론 반대로, 강한 Puff를 “전진 시작”, 가벼운 Sip·Puff를 “조향(좌/우)” 기능에 매핑하는 것도 충분히 가능합니다.

 

 


🔗 아두이노 코드

두 가지 버전에서 사용한 아두이노 코드는 아래에서 확인할 수 있습니다:
https://github.com/bobparadiso/SipPuffToyCar

 

 

출처: BOB'S ELECTRONICS PROJECTS(https://bobparadiso.com/2016/05/31/diy-sip-and-puff-controlled-toys/)

다음글
2025.11.19

댓글

 

댓글 0

    댓글이 없습니다. 첫번째 댓글을 등록해 주세요.