Bluetoothボタンで動作と合成音声の再生

Raspberry Pi Zero /W/WH

前回の記事の続きです。前回=(Speaker pHAT 単体で音楽再生+Bluetoothボタン制御

100円ショップで売っている300円もするBluetoothボタンを使って、ボタンに機能を割り当てて、その際に喋らせるようにします。

参考

https://github.com/kinnalru/bluebutton

https://qiita.com/vimyum/items/8b7548ca8cf45383c5b0

参考サイトではシャットダウンできるようにした記事があります。
今回はこれとは別にボタンを押したら停止、もう一度押したら再生、長押ししたら電源を切るとしてみます。

ちなみに、Bluebuttonというプログラムは、ボタンは2つあるのですけど、別々には拾えないようでして(というか同じ通信?)どちらのボタンを押しても同じ動作になります。ボタンにはAndroidとiOSと記載があるので、それぞれ別に制御できるかと思ったのですけどね。(BluebuttonのGitHubには書いていなかった)

Bluebuttonの設定

前回の記事でBluetoothとのペアリングは出来ていると思います。そこから設定をします。

設定のファイルはホームディレクトリの隠しフォルダ.config内にあります。

sudo nano ~/.config/bluebutton

中身はキーを押した時の検知とそのボタンを離したときの検知、そしてその長押し版の計4つです。

keyup=echo UP
keydown=echo down; echo DOWN
longup=echo LONG UP
longdown=echo LONG DOWN

初期状態(デフォルト)でもターミナルにup、downの文字を表示させるように設定されていますので、まずはこのまま動かしてみましょう。

テストしてみる

Bluetoothボタン本体の電源(スライドスイッチ)を入れてから、検知させるbluebuttonを実行させます。以下のコマンドです。

sudo bluebutton -d="Shutter3" -c ~/.config/bluebutton

押してみると・・・。

一回押すだけで、downとupがセットで表示されます。これが正常です。押して離すので、それぞれが検知できているためです。長押しも同じです。それが確認できればOKです。

先程の通り検知は4通りしかありません。しかし、押して離すで1回なので、実際は1回押すと1回長押しするの2つのパターンしかないのです。これだと再生やら音量やら色々な機能は割り当てできません。
そこで最終的には条件文を書いたPythonプログラムで制御させようと思います。

辞めるには、ターミナルでCtrl+Cで中断させます。

テスト2 ボタンが押されたら喋る

先程の設定ファイルを編集します。

keyup=echo UP
keydown=sh /home/pi/speak.sh && echo DOWN
longup=echo LONG UP
longdown=echo LONG DOWN

keydownにsh /home/pi/speak.sh && echo DOWNと記載しました。
この場合、speak.shという別のシェルスクリプトを容易してそれを割り当てました。

では、そのspeak.shの中身は以下です。

#!/bin/sh
/home/pi/music/jvoice.sh ボタンが押されたよ

女性の声で「ボタンが押されたよ」とするシェルスクリプトです。

このshファイルを別に作成し、やはり実行権を与えておきます。

sudo chmod 755 ./speak.sh

shのあるディレクトリで行うか、絶対パスで指定してください。

絶対パス・・・アドレスをルートから全て記載する方法
/home/pi/sample/zetttai.txt

相対パス・・・起点から見たアドレス
sampleと同じ階層なら、./soutai.txt
sampleより上の階層なら、../soutai.txt

 

speak.shが用意出来たら、再び検知させるbluebuttonを実行します。

sudo bluebutton -d="Shutter3" -c ~/.config/bluebutton

押してみてください。
指定通りspeak.shが実行され、「ボタンが押されたよ」と喋ったら成功です。

テスト3 次の曲へ

今度は、ボタンが押された後、離すタイミングで再生されている曲を次へと送るようにしてみます。

mpcの再生はmpc play 
mpcの停止はmpc stop 
次の曲に送るのはmpc next

と、その前にmpcで再生できるようにmp3の音楽などを予め転送しておいてください。ディレクトリはmpdで設定したところです。→前回記事 Speaker pHAT 単体で音楽再生+Bluetoothボタン制御

同じようにnext.shを作ります。

#!/bin/sh
command="mpc next"
eval $command

こんな形で良いみたいですね。
そしてこれを同じようにbluebuttonの設定ファイルで編集します。

keyup=sh /home/pi/next.sh && echo UP
keydown=sh /home/pi/speak.sh && echo DOWN
longup=echo LONG UP
longdown=echo LONG DOWN

keyupの箇所をsh /home/pi/next.sh && echo UPにします。

試してみましょう!

まずはmpcをコマンドで再生しておきます。

mpc play

それからbluebuttonを起動します。

sudo bluebutton -d="Shutter3" -c ~/.config/bluebutton

この状態からボタンを1回押してみてください。
少しタイムラグがありますが、「ボタンが押されたよ」と喋った後に次の曲へ送られれば成功です。

ctrl+Cで中断させます。

次は・・・

これだけでは停止もできませんし、電源も切ることができません。長押しの一つしか残っていないからです。
そうなると使い勝手が悪いので、なんとか割り当てるのに、shではなくPythonプログラムで条件分岐させ、それをbluebuttonに割り当てれば状況によって動作が変えられると思います。

ちょっと手探りですけど次の記事でまとめたいと思います。

 

ラズパイダ

ラズパイダ

学べる楽しむ便利になる。小さいくせにヤケにパワフル。そんなRaspberry Pi をまだ知らない人に伝えたい。様々な場所で利用されているRaspberry Pi を知って「あっ、これもラズパイだっ!」だからラズパイダ!

関連記事

特集記事

コメント

この記事へのコメントはありません。

最近の記事 はじめて向け
  1. キーワード”ラズパイダ”をGoogleで検索しないでねって話

  2. ラズベリーパイは小さなホームサーバーに最適、自分好みはプライスレスな4選

  3. あのMX LinuxがRaspberry Pi 向けイメージMXFBPをリリース

  4. OMV5のアップデートエラー回避

  5. Raspberry Pi Pico マイコンボード、僅か4ドルで登場

  1. お掃除ルンバのアイロボットから教育用ロボット「Root」発表

  2. 【初心者向け】Raspberry Pi 4との接続方法(電源、HDMI)

  3. 【初心者向け】はじめてRaspberry Pi OS をダウンロードする人へ

おすすめの記事

  1. Raspberry Pi 4のOSをデスクトップPCとして使うためにUbuntuMATEをインストールしてみた

  2. ラズパイ(Raspberry Pi)を使ってできるメディアセンター3選

  3. ラズパイ4とOMV5(openmediavault5)で作る自宅NASサーバーの設定方法

  4. これも動く、風変わりなOS〜Raspberry Pi で動く様々なOS一覧まとめ13種類!

  5. 非公式のLinuxディストリビューション〜Raspberry Pi で動く様々なOS一覧まとめ13種類!

  6. DAZNをラズパイのLibreELECで観る方法

今月の人気記事

  1. 1

    Raspberry Pi で動く様々なOS一覧まとめ13種類!

  2. 2

    ラズパイ4をUSB接続のSSDから起動する方法(USBブート)

  3. 3

    初心者でもラズパイでNASサーバーを作ってみよう!

  4. 4

    Raspbian のWi-Fi設定(Raspberry Pi 初期設定)

  5. 5

    Raspberry Pi 4の初期設定2020年版

  6. 6

    Raspberry Pi 4を起動したのにモニターに画面が映らない対処法

  7. 7

    ラズパイ4とOMV5(openmediavault5)で作る自宅NASサーバーの設定方法

  8. 8

    ラズパイ4はPCライクな性能になったけどPCではないよという話

  9. 9

    Raspberry Pi 4のOSをデスクトップPCとして使うためにUbuntuMATEをインストールしてみた

  10. 10

    ラズパイで使うmicroSDカードの選び方

記事ランキングページ

TOP