스위치봇 제어 프로그램은 <여기>를 통해 공개 배포되는 오픈 소스 프로젝트를 이용하였습니다. 이 프로젝트는 Raspberry Pi 또는 기타 Linux 기반 보드에서 스위치봇을 제어하는 응용프로그램 입니다. 배포되는 파이썬 코드 실행을 위한 필수 라이브러리는 다음과 같으며, 패키지 관리 툴인 apt 명령을 통해 설치할 수 있습니다.
- python-pexpect
- libusb-dev, libdbus-1-dev, libglib2.0-dev
- libudev-dev, libical-dev, libreadline-dev
- bluepy
배포되는 파일 중 스위치봇 동작 제어를 위한 파이썬 코드는 switchbot.py이며, 실행 명령의 첫 번째 전달인자로 제어하고자 하는 스위치봇 장치의 MAC 주소를 받으며, 두 번째 전달인자로 스위치봇의 동작을 입력받습니다. 지원되는 동작은 누르기(Press), 켜기(Turn On), 끄기(Turn Off) 입니다.
- 실행 명령 예) sudo python switchbot.py 12:34:56:78:90 Press
Motion Gestures의 SDK는 .deb 파일로 배포되며 버전에 따라 libsgre-hand-gestures-VERSION.deb의 형태로 배포됩니다. dpkg 명령을 통해 시스템에 SDK를 설치할 수 있으며 설치 명령 및 경로는 다음과 같습니다.
- 설치 명령: sudo dpkg –I libsgre-handgestures-VERSION.deb
- (샘플 프로그램 설치) 경로: /usr/share/doc/hand_gestures/hand_gestures_sample
SDK에 포함된 샘플 프로그램을 컴파일 하기 위해서는 시스템에 boost(1.60 이상) 및 opencv 라이브러리 설치가 필요합니다. 패키지 관리 툴인 apt 명령을 통해 다음의 라이브러리를 설치합니다.
- libboost-all-dev
- libopencv-dev
- libv4l-dev
또한, 빌드 시에 cmake를 사용하므로 cmake(3.8 이상의 버전)를 시스템에 설치합니다. 샘플 프로그램 빌드는 프로그램 경로(또는, 특정 작업 경로로 hand_gestures_sample를 복사하여 사용 가능)에 build 디렉토리를 생성하여 생성한 build 디렉토리에서 다음과 같이 cmake를 사용하여 빌드합니다.
- ../hand_gestures_sample/build/$camke ..
- ../hand_gestures_sample/build/$make
카메라로 사용자가 입력하는 여러 제스처 중 문 열림 위한 제스처로 OK 사인을 사용했으며, 스위치봇 누르기 동작에 대한 파이썬 코드를 실행하는 switchbot_press라는 쉘 스크립트를 작성하였습니다. 제공되는 API를 통해 카메라로부터 입력받은 제스처 인식 결과를 받아와 감지된 제스처 유형이 OK 사인일 경우 쉘 스크립트(switchbot_press)를 실행하는 코드를 추가함으로써, 제스처 인식 기반 자동문 스위치 인터페이스를 구현했습니다.