Triggerhappy를 사용하여 모니터 없이 Raspberry Pi 3에 연결된 키패드에서 OSC 전송

1. 개요



Raspberry Pi 3에 순수 데이터를 넣고 놀고 있습니다.
  • Raspberry Pi 3 (Raspbian Stretch)에 Pure Data 설치 - Qiita
  • Raspberry Pi 3의 Pure Data Vanilla에서 OSC 신호 수신 - Qiita
  • Raspberry Pi 3의 Pure Data Vanilla를 명령 줄에서 시작 및 종료 - Qiita

  • 이번에는 Raspberry Pi 3에 키패드를 연결하여 Pure Data를 조작하려고 생각했습니다.
    키의 입력은 잡혔습니다만, 모니터 없이 사용하려고 해 빠졌으므로, 메모입니다.

    2. 환경·사용 기기


  • Raspberry Pi 3 (Rasbpian Stretch)
  • Pure Data Vanilla (pd-0.47.1)

  • 3. 절차



    3.1 하마루까지의 경위



    우선은 아래의 사이트를 참고로, Pure Data로 key 이나 select
  • Pure Data로 PC 키보드를 건반으로 만들기 - aa develop

  • GUI에서 잘 작동하고 있었지만 이번에는 모니터를 사용하지 않으므로 다음과 같이 Puredata를 시작하고 있습니다.
    pd -nogui test.pd &
    

    key는 Pure Data의 윈도우가 액티브한 때에 유효해, -nogui 로 기동했을 경우, 사용할 수 없는 것을 알았습니다.

    3.2 모니터 없이 키패드 정보를 받는 방법



    방법을 여러가지 조사해 보았습니다만, pd로 직접 받는 것은 어려울 것 같습니다.

    그런 방법을 두 가지 발견했습니다.

  • Headless keyboard entry - how? - Raspberry Pi Forums
  • Triggerhappy를 사용한 방법



  • Anites: USB Keyboard on Raspberry Pi
  • 파이썬을 사용하는 방법 (자세히 읽지 않음)


  • 1.에서 설명한 Triggerhappy가 Raspbian에 원래 들어있는 것 같기 때문에 여기에서 해보기로 결정했습니다.

    3.3 명령 행에서 OSC를 보내기 위해 osc-cli 설치



    (* osc-cli는 시간 지연이 있었기 때문에 마지막으로 oscer에서 시도한 방법을 추가했습니다)
    터미널에서 osc를 보내는 노드 모듈을 설치합니다.
    npm install -g osc-cli
    

    사용법은 다음 사이트를 참조하십시오.
  • osc-cli - npm

  • 예를 들어 127.0.0.1:9001에 /play 1를 보내는 경우 터미널에서 다음 명령을 입력합니다.
    osc --host 127.0.0.1:9001 /play 1
    

    3.4 키 이름 확인



    Triggerhappy의 구성 파일을 만들기 위해 다음 사이트를 참조하여 먼저 키보드의 키가 어떤 이름으로 인식되는지 확인합니다.
  • Keyboard volume controls - Raspberry Pi Forums

  • 터미널에서 다음 명령을 실행하고 키를 누르면 표시됩니다. ( ctrl + c로 종료)
    thd --dump /dev/input/*
    

    키패드 1을 눌렀다가 놓았을 때의 모습.
    EV_KEY        KEY_KP1        1        /dev/input/event0
    # KEY_KP1        1        command
    EV_KEY        KEY_KP1        0        /dev/input/event0
    # KEY_KP1        0        command
    

    3.4 .conf 파일 만들기, 저장



    아래와 같은 내용의 파일을 작성해, 확장자는 .conf/etc/triggerhappy/triggers.d/ 에 저장합니다.

    test.conf
    # キーパッドの1を押したときにoscで/play 1を、離したときに/stop 1を送る
    KEY_KP1 1 osc --host 127.0.0.1:9001 /play 1
    KEY_KP1 0 osc --host 127.0.0.1:9001 /stop 1
    

    .conf 파일을 프로젝트 폴더 (이 경우 myproject 폴더)에 저장하고 심볼릭 링크를 붙였습니다.
    sudo ln -s ~/myproject/test.conf  /etc/triggerhappy/triggers.d/
    

    다시 로드합니다. 제 경우에는 재부팅하지 않으면 잘 움직이지 않았습니다.
    sudo /etc/init.d/triggerhappy reload
    

    osc-cli의 경우 조금 시간 지연이 있다는 것이 걱정되지만, 일단 움직이게되었습니다.

    (추가) osc-cli 대신 oscer을 사용해보십시오.



    역시 osc-cli의 타임 래그가 신경이 쓰였으므로, 커맨드 라인으로부터 OSC를 보낼 수 있는 다른 oscer를 시험해 보았습니다.

    참고 사이트


  • OSC를 Mac, Windows, Linux 및 RasPi에서 보내는 간단한 도구를 만들었습니다 - aike의 일기
  • aike/oscer: simple command-line OSC messaging tool

  • 설치



    이렇게 소스나 빌드된 것이 배포되고 있는 프로젝트를 어떻게 사용하는지 모르고, 조사하면서 일단 움직이게 했으므로, 맞는지 모르겠습니다.
  • github 복제
  • git clone https://github.com/aike/oscer.git
    
  • 심볼릭 링크 만들기
  • sudo ln -s ~/oscer/build/LinuxARM/oscer  /usr/local/bin/
    

    명령줄에서 사용하는 방법


    oscer 127.0.0.1 9001 /play 1
    

    Triggerhappy의 .conf 파일 다시 쓰기



    test.conf
    # キーパッドの1を押したときにoscで/play 1を、離したときに/stop 1を送る
    KEY_KP1 1 oscer 127.0.0.1 9001 /play 1
    KEY_KP1 0 oscer 127.0.0.1 9001 /stop 1
    

    이쪽이 반응이 빠르고 행복해졌습니다.

    좋은 웹페이지 즐겨찾기