ラズパイ3 + リモートシャッター(Remote Shutter Control)


ラズパイをVNC Viewerやsshを開くことなく、ボタン1つで遠隔操作してみようという、ものぐさな発想です。


RemoteShutter(リモートシャッター)とはなにかというと……

これ(まぁ、よくできたガジェットです)

 

iOSやAndroidのカメラをBluetooth経由で操作して撮影しようというもの。

送られる信号はAndroidならスマホ本体のキー(音量ダウン)のクリックに対応するもので、別にカメラじゃなくても、アプリでこのキーに準じた機能を持っていれば操作できます。

例えば、青空文庫のページめくりなど。

なんでこんなものをというと。

ラズパイではこのリモートシャッターの4つのキーイベントを拾うことができます。

UP・DOWN・LONG DOWN・LONG UP

これを使ってラズパイのアプリを操作してみよう…..と。

VNC ViewerやSSHだと都度スマホを開かいないといけないが、その手間を省きます。


BluetoothのドライバーとGitHubにあったBluebuttonをインストール。

Bluetooth の接続

[bluetooth]$ power on
[bluetooth]$ scan on

[NEW] Device XX:XX:XX:XX:XX:XX AB Shutter3
[bluetooth]$ pair XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX Paired: yes
Pairing successful

[AB Shutter3 ]$ trust XX:XX:XX:XX:XX:XX
[CHG] Device FF:FF:1D:14:79:80 Trusted: yes
[AB Shutter3 ]$ quit

trustを実行しておけば、次回からは電源ON(場合によっては、もう1回キークリック)でペアリングされます。

ボタンが押されたときの処理を記述

設定ファイルを作成

#以下を記述
keyup=echo UP
keydown=echo DOWN
longup=echo LONG UP
longdown=echo LONG DOWN

動作確認
以下を実行するとShutter3からのキーイベントの待ち受け状態になります。
これは、ペアリングしていなくてもOK

Try to find device Shutter3…
Device Shutter3 find at /dev/input/event0
Unable to connect to X server
Reading events from /dev/input/event0…
DOWN #押した
UP
DOWN #長押しした
LONG DOWN
UP
LONG UP

以下でもOK

で、ペアリングされるとキーイベントを拾ってくれます。

#普通にキーアップ・ダウン
DWON
UP

#長押しのキーアップ・ダウン
DOWN
LONG DOWN
UP
LONG UP

普通のキーアップ・ダウンと長押しのキーアップ・ダウンで2つのシェルスクリプトを操作する場合

DOWNでshell-1起動

LONG DOWNの前にDOWNが発行されるが、shell-1に二重起動禁止を入れておけば、shell-1は2度目のDOWNに反応しない。
次のLONG DOWNでshell-2を起動するようにすればOK

———————————————————————————-

リモートシャッターのキーダウンでアプリ起動(/home/pi/appli.sh)

ボタンイベントとアプリ起動を紐づけます。

bluebuttonの設定

#以下を記述
keyup=echo UP
keydown=/home/pi/appli.sh
longup=echo LONG UP
longdown=echo LONG DOWN

キーイベントの待ち受け状態にしておく

リモートシャッターの電源ON(or キーダウン)でペアリング。

リモートシャッターのキーダウンでアプリが起動します。


WisteriaHillが遭遇したエラーと対処

[bluetooth]# scan on
Failed to start discovery: org.bluez.Error.InProgress

sudo apt remove blueman
sudo apt update
sudo apt upgrade
sudo apt-get install blueman


起動するPython内でメッセージボックスにeasyguiライブラリーは使えない
代わりにtkinterのmessageboxを使用


起動するshell内で壁紙書き換え用に

pcmanfm –set-wallpaper /home/pi/wallpaper/nya-ing.png

は使えない(原因調査中)

Error -> デスクトップマネージャーはアクティブではありません(Desktop manager is not active)

pcmanfmの再インストールが必要らしい(まだ試していない)
reinstall pcmanfm through synaptic

 


運用

Cronに自動起動記述

シェルスクリプトに10秒後起動を記述(おまじない、即時実行だとbluebuttonがペアリング対象のShutter3を見失うことがある)

#!/bin/bash

sleep 10
sudo bluebutton -d=”Shutter3″ -c ~/.config/bluebutton

bluebuttonでキー待ち受け状態になっている
リモートシャッターをキークリック

最初のクリックでペアリングされます。

 


リモートシャッターのキーはどちらでも使えるようですが、機能は一緒です。

で、キーに別の信号を送るように改造された方がいらっしゃいます。

このページ参照

 


不具合例

QuimatのタッチスクリーンディスプレイをHDMIケーブルで接続時

リモートシャッターを検出できない事例がありました。

bluetoothctlでTouch screenを検出していたが、影響があるのか不明。

もしかしてイレギュラーな現象かもしれないが…….。

こういうこともあるってことか?


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*