タルコンガで作ったラズパイ音楽プレイヤー with Pirate Audio

Raspberry Pi Zero /W/WH

友人に頼まれた音楽プレイヤーを作りました。お子さんが音楽にハマるお年頃のようです。今時の子らしくボカロが大好きらしい。ハイレゾでも聴けるプレイヤーが欲しいと聞いた時、ちょうどPirateAudioが発売されたので、それで作ろうとなりました。

タイトル通りなのですが、タルコンガって知ってます?

ゲームのコントローラーです。知ってはいても使ったことはありませんでしたので、実物がどの程度の大きさなのか見当も尽きませんでした。

友人はスピーカーが収まるような形で連想したようです。そのまんまですが。

追記 マウント時にファイル名が日本語文字化けしていたのを修正しました

音楽プレイヤーとしての仕様

最初にどういった仕様にするのか決めました。

お子さんはあまりPCには詳しく無い。タブレットの操作はできるので、タブレットで操作させるにはMopidyでも充分です。

また、音楽ファイルは予めmicroSDカードへ転送しておくこととし、追加削除したいとのこと。

追加削除はUSBメモリーを指して読み込ませることにしました。スクリプトを書いてそれを何かトリガーで実行させる方法です。読み込ませるタイミングは再起動などか、物理ボタン、またはUSBメモリーが接続されたら?などいくつかありますが、今回は別途にBluetoothボタンと連携して終了と再起動をさせます。

今回の仕様
〜PCが使えない子供のために〜

  • 音楽ファイルはmicroSDカードへそのまま保存する
  • 曲の追加/削除はUSBメモリーを接続して行う
  • 読込はスクリプトで再起動時に行う
  • Bluetoothボタンで電源のオフと再起動

本当はクラウド経由とかにしておくとラクチンですし、Spotifyならサービス利用だけですから簡単なんですが、どうしてもローカルの手持ちファイルを聴きたいとのことでしたので、このようにしました。

前回の記事のようにPirateAudioをセットアップして、あとは入れ物を考えます。

タルコンガをスピーカーにする

そのお子さんが使っていたタルコンガをスピーカーにしたらどうかと友人が持ってきました。

これがタルコンガです。

確かにスピーカーみたいです。

スピーカーが小さいのでこれだとだいぶ大きな入れ物になります。それならRaspberry Pi Zero Wだって仕込めますから面白そうです。

そしてこれ、かなり良く出来ていて衝撃に強いように作られています。破壊してみて任天堂のこだわりが感じられました!叩く物だから強度は必要ですからね。

どこからもアクセスできない作りなので破壊することにしました。

バラバラにしないと取り外せなかった。小一時間かかります。とにかくバラしてもどうやって組み立てているのか皆目見当も付かない程に良く出来ています。

スピーカーを仕込む

画像のように仕込みました。4cmくらいのスピーカーなのでかなり余ります。

スピーカーを取り付けている黒い半透明の物はプラ板です。100円ショップで購入しました。同じく黒いL字金具も100円ショップで購入し、ケースとナイロンネジ(M2.5)で止めています。

穴は家にドリルがあったのでそれでチマチマと開けました。

切り取りなどは汚いですが、そういったツールも持っていないのでPカッターとハサミで加工です。

想像通りで取りあえず動かないようにキチンと収まりました。道具が欲しいですね・・・。

さて、Raspberry Pi Zero Wを何処に配置するか?

\ Raspberry Pi 4はメモリー8GBが最新 /

【セット概要】「データーベース」「Webサーバー」「NAS」「AI処理」「4K画像での2画面処理」などの高負荷がかかる処理を、長時間稼働させるのに必要な負荷テスト行い、当社で厳選した高品質なパーツを組み合わせたセットです。高品質なAnker製USB電源の採用、トラブルの原因になりやすい電源周りをデジタルモニターリングできるをType-Cケーブル、Raspberry財団認定モデル 高速タイプ 100MB/sec 128GB MicroSD、静音FANによる強制冷却など、高負荷運用でも長期に渡る安定稼働が可能です。また単品でご購入いただくよりお得です。

乗っけてしまえ

100円ショップで以前にも使ったコレクションケースが良いあんばいの大きさだったので購入。

上に載せてしまえ!ということになりました。

透明なケースなので埃から守ってくれます。

取り付けはこれまたL字金具を使い、差し込むことで取り外しできるようにしました。位置取りが上手くいって良かったです。
L字金具の片方が長かったので思い付きました。

配線は裏に元々穴が空いていたので、そこを拡張して使いました。

本当は既存のボタンも何とか使いたかったのですが、なにせ2つに割らないとならないので諦めました。やるとしたらBluetoothボタンを仕込んで電源にするくらいかな。(GPIOが埋まってますので)

完成!

とりあえず完成です。作るより、どうするか考える方が時間がかかりました。

これが全貌です。

下の台に箱などを用意し、クッション性のある敷物だと、より一層重低音が締まります。

シャカシャカにはなりません。スピーカーの裏もそれなりに距離があります。今回は底にフェルトを入れるの忘れました。

前面はこのままの方がいいかなーと思いましたが、1枚の紙を通すとより安定した音になります。

まさに太鼓のように見えます!

ケーブルの根元は紙粘土で固定

音楽ファイルを読み込むスクリプト

さて、中身は基本はmopidyです。

USBメモリーから音楽を追加、削除するためにスクリプトを簡単に書きました。

以下のようなスクリプトを作成しUSBを差してから実行します。

sh-cp_music
#!/bin/bash

# mount usb
sudo mount -r -o uid=pi,iocharset=utf8 /dev/sda1 /mnt/usbram

# copy music
sudo rsync -av --delete /mnt/usbram/music/ /home/pi/media

# unmount
sudo umount /mnt/usbram

# service reboot
sudo systemctl restart mopidy

echo "Scan..."

sudo mopidyctl local scan

echo "All done!"

実行させるトリガーは、起動時に読み込ませまることにします。

ポイント

マウントのオプションで -o uid=pi,iocharset=utf8 を付けてマウントします。日本語ファイル名の文字化けがあったので追加しました。ただ、ST7789のディスプレイ表示は化けます・・・。なぜ?

rsync -av --delete で同期元にないファイルを削除させます。他にもオプションがありますのでrsyncで検索してみてください。

適当なスクリプトですみません。これでも一応動いていますが、不要な物を省いたりしてください。

※scanのコマンドを実行してもライブラリが更新できない場合は、Irisのsettingにあるボタンからスキャンしてみてください。

今回は自動実行に/etc/rc.localとしました。スクリプトは/usr/local/bin/へコピーしておき、/etc/rc.localへshファイルを追記します。

sudo cp cp_music.sh /usr/local/bin/
sudo nano /etc/rc.local

最後に追記(今回のファイル名はcp_music.sh)

cp_music.sh
exit 0

再起動のさせかた

問題は再起動をどうやらせるか、ということです。使うのはお子さんなので遠隔で操作できませんから、ややこしくなりますが、やはりBluetoothボタンに割り当てようと思います。

いつものアレ

AB-shutterボタンは便利です。安いのに。色もお子様らしいし。

2つのボタンは使えません。1つを長押しか1回押しかで2つの機能を割り当てます。(ボタンを別々に制御するやり方もありますが今回はパス!)

これまでも何回か記事にしています。そちらをご覧ください。

1回押しに割り当てる再起動用

#!/usr/bin/python
import os
os.system("sudo shutdown -r now")

長押しに割り当てるシャットダウン用

#!/usr/bin/python
import os
os.system("sudo shutdown -h now")

それぞれ名前を「saikido.py」と「owari.py」などPythonファイルで保存します。

実行権を与えます。

sudo chmod +x saikido.py && sudo chmod +x owari.py

Bluetoothボタンをペアリングできたらbluebuttonというファイルにイベント動作を設定します。

取りあえず/home/piにあるとして以下、設定します。

sudo nano ~/.config/bluebutton
#以下を記述
keyup=saikido.py
keydown=echo DOWN
longup=echo LONG UP
longdown=owari.py

Bluetoothボタンを待ち受け状態にします。

sudo bluebutton -c ~/.config/bluebutton

これを常にしておきたいので、cornでshファイルを実行させます。

先ずshファイルを作って

#!/bin/bash
sleep 10
sudo bluebutton -c ~/.config/bluebutton

sleep10と待たせているのは、ペアリングが失敗しないようにということです。

実行権を与えて

sudo chmod +x waiting_bluebutton.sh

以下、cornに記述します。

crontab -e

Select an editor. To change later, run 'select-editor'.

  1. /bin/nano <---- easiest
  2. /usr/bin/vim.tiny
  3. /bin/ed

Choose 1-3 [1]: 1

@reboot /home/pi/waiting_bluebutton.sh

これで完了です!

rpi x raspida

以上、タルコンガ(コントローラー)をPirateAudioとRaspberry Pi Zero Wを使って音楽プレーヤーにしてみました。

友人のお子さん、喜んでくれると良いけど・・・、実は女の子だからもっとカッコイイ方が良かったか?! 子供っぽいとか鼻で笑われそうだわ、この外観では。

備忘録(Mopidyサブコマンドなど)

以下、忘れやすいので覚え書きで置いておきます。
サービスで実行しているmopidyの場合はサブコマンドも変わってきます。そもそもconfファイルの置き場所も異なります。

ユーザーmopidyでconfigの内容を確認するコマンド

sudo mopidyctl config

変更を反映させるのにmopidyのサービスを再起動させるコマンド

sudo systemctl restart mopidy

ユーザーmopidyとしてローカルファイルを再スキャンするコマンド

sudo mopidyctl local scan

ユーザーによる相違点

特にmopidyは、この辺は本当に理解し難い。

ユーザーmopidyユーザーrootユーザーpi
/etc/mopidy/mopidy.conf/root/.config/mopidy/mopidy.conf~/.config/mopidy/mopidy.conf
sudo mopidyctl local scansudo mopidy local scanmopidy local scan

サービスで稼働させる場合は常にユーザーはmopidyなので注意が必要ですね。

m4aファイルの再生にはgstreamer1.0-plugins-badのインストールで再生可能

mp3の他、24bitハイレゾ対応なのでFlacで再生させています。これにm4aなどを追加するのにgstreamerを追加しておきましょう。

sudo apt install gstreamer1.0-plugins-bad

以上、コンガの制作現場からお送りしました!

ラズパイダ

ラズパイダ

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

関連記事

特集記事

コメント

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

最近の記事 はじめて向け
  1. Pimoriniからシンプルスーパースリムな「Audio DAC SHIM」

  2. Raspberry Pi OS のバージョンアップ方法とaptについて

  3. 遊び半分、学び半分でRaspberry Piを活用しよう!

  4. Raspberry Pi Imager更新、イメージ選択数を計測のためデータ収集も

  5. 「fre:ac」はラズパイでもmp3やFLACに変換できる無料のオーディオコンバーター

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

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

  3. Raspberry Pi OS のインストールは、公式ツール1つだけでOK

おすすめの記事

  1. ラズパイ4にも対応している軽量でクールなOS「Manjaro」はアリ

  2. ラズパイ4をデスクトップPCライクに使えるOSとして個人的に急浮上中のEndlessOS

  3. ラズパイ4で動いたOS一挙に10選とおすすめのデスクトップ代替OS

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

  5. TwisterOSで懐かしのWindows、最新macOSの見た目でラズパイを使う

  6. ラズパイで実用的な物を作るなら特化したOSから始めてみよう

今月の人気記事

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

    Raspberry Pi 4の初期設定2020年版

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

記事ランキングページ

TOP