<< OLED, LCDスクリプト | main | LCR-T4 >>

2016/11/03 木

ボタンで再生停止、ラズパイのシャットダウンなど

ラズパイにボタンを3個つけて、再生、停止、曲送り、戻し、音量などを操作できるようにしました。
ボタン操作スクリプト

2016/11/3 更新
シャットダウン時、OFFにするOLED、液晶のアドレスを指定できるようにした

2016/10/9 更新
短押で、ボリュームアップダウンを、曲送り戻しに入れ替えると、再生、停止の動作も
入れ替わってしまうバグを修正。
動作としては、

ボタン1
 短押しで音量ダウン
 長押しで前の曲へ

ボタン2
 短押しで再生、一時停止のトグル
 長押しで停止

ボタン3
 短押しで音量アップ
 長押しで次の曲へ

いずれかのボタンを2つ同時押し
 シャットダウン

導入方法は以下の通りとなります。
(moode audio用)

以下を参考に、ボタンをつけましょう。
押したらGNDに落ちるようにすればOK
btn2.gif

・puttyをダウンロード
windowsな人はputtyをダウンロード
macな人はsshでつなげられると思う。

・puttyを起動して、ホスト名を moode.local で 「開く」をクリック
なんかいわれたら、OKとかYESとか押して続行
ユーザ pi
パスワード raspberry

#ちょっとしたこと
#putty上で右クリックすると、コピーした文字列がペーストされるので
#手打ちする必要はない

・スクリプトを入れる

wget http://www.telnet.jp/~mia/btn.bin

さらに

mv btn.bin btn.pl


つづけて

chmod 755 btn.pl


・自動起動に登録


sudo nano /etc/rc.local

一番最後の行に

exit 0

があるので、その上に以下を追加

/home/pi/btn.pl & > /dev/null 2>&1

保存して閉じる。
CTRL + x を押す
さらに y を押す
そのまま enter を押す

緑色LEDのために以下を

sudo bash -c "echo dtparam=act_led_trigger=heartbeat >> /boot/config.txt"

さらに

sudo reboot

として、再起動後 ボタンが動けばOK

カスタマイズ
nano btn.plで編集

液晶、OLEDを使っている場合、以下のアドレスを使っている品に合わせて指定すると、シャットダウン時、OFFになる。

# akizuki SO1602AW
#$LAdr = '0x3c';

# Aitendo GVLCM1602G
# Aitendo F1602YG1812P7032
$LAdr = '0x3e';


#GPIOポート番号を設定

# 戻る、ボリュームダウン
$btn_1 = '17';

# 再生、停止
$btn_2 = '27';

# 進む、ボリュームアップ
$btn_3 = '22';

# シャットダウン
$btn_4 = '25';

# ボリューム変更時、1プッシュでの増減値
$volStep = 1;


# 短押しボリューム、長押し曲送りを入れ替える
# 0は、短押しボリューム
# 1は、短押し曲送り

$invLongPress = 0;

##################################

シャットダウンについて
 マイクロUSBケーブル引っこ抜いて入れ直しも面倒だろうから、
 2つ以上のボタンを同時押しするとシャットダウンするようになっている。
 シャットダウンできているか判別は、ラズパイの緑色LEDの点滅がとまっているか。
 OLEDがつながっていれば、そちらの電源もOFFにしている。

 電源を入れるときはどうするか。
 ラズパイ2、3ならば、基板上の「RUN」というパターンがあるので、そこにスイッチを付ける。
 このスイッチはリセットとして動作するが、シャットダウン後に押すと起動する。
 通常動作中に押すと、リセットがかかるので注意。

 電源引っこ抜き運用は、イメージを壊しかねないし、あまりお勧めしない。