ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示
ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示

2021年9月29日水曜日

Raspberry Piで自宅用音楽ストリーミングサーバーを作った

Raspberry PiにLibreELECというOSを載せて自宅用の音楽ストリーミングサーバーを作りました。ブラウザで開けばサーバーに用意した楽曲をストリーミングで聞くことができます。

発端


2月にリリースしたウマ娘にハマって以来、特典がついてくるウマ娘CDたちが聞けていません。
それだけでなく、妻の持っているアイマスのCDも聞けていません。ライブにも行ってるのに。

妻はYoutube Musicで手持ちの曲をアップロードして管理しているようですが、他人にはシェアできない仕組みのようです。おそらく私的用途から外れるからでしょうか。

自宅にメディアサーバーを作れば、家で気軽に好きなだけ流せそうです。
ちょうど、家には昔買って放置したRaspberry Piがあります。これでメディアサーバーを作ります。

OSのインストール


手元にあるRaspberry Pi 2 B+にメディア用OSを入れます。

Raspberry PiにはいくつかOSの種類があります。
  • 汎用OS
    • Raspberry Pi OS
    • Ubuntu
  • ゲーム用OS
    • RetroPie
    • Recalbox
  • メディア用OS
    • LibreELEC(今回使ったOS)
    • OSMC
  • その他!
Raspberry Pi Imagerを使えば簡単にSDカードにイメージを焼くことができます。
それだけでなく、32GB以上のSDカードのフォーマットをFAT32にしてくれる機能や、自前で用意したイメージを焼いてくれる機能もあります。めちゃくちゃ便利。

ただ、今回はいくらやってもImagerでLibreELECやOSMCのイメージを焼くことができなかった!(これは、なぜか分からないです...。いくつかのディストリビューションで試してもRaspberry Pi OSしか入れられなかった...。)

悲しいですが、昔懐かしいNOOBSを使いました。NOOBSを使ったOSインストールでは、一旦NOOBSをSDカードに入れて起動し、起動後にインストールするOSを選んでインストールします。ちなみに公式ではNOOBSは非推奨のようです。

NOOBSのイメージは下のQiitaの記事を参考にしました。

今回はNOOBSに入っていたLibreELECを入れました。
ちなみにLibreELECとOSMCでどちらを入れるか迷いましたが、そこまで変わらないようです。後述するKodiさえ入れられれば問題ないと思って今回はインストール可能だったLibreELECを入れています。


セットアップ


LibreELECは基本的にKodiをメインで起動します。他にもAdd-Onを追加する形でゲーム機能を追加したりできます。僕の用途は音楽ストリーミングだけなので、ファイルアップロード用にSambaとSSH、Web Interfaceを有効にしました。

基本は下のサイトを見て設定しました。

ストリーミングで楽曲を聞く


Sambaでファイル共有ができるので、手元のPCから音楽ソースに追加されているディレクトリにコピーします。

追加しただけではKodiのWeb Interfaceからはストリーミング配信できません。

右下の三点ボタンから「Scan Audio Library」を押すとMusicに並びます。



アルバムを押すとアルバムの楽曲画面に移ります。
Kodiは右の画面に「Kodi」と「Local」というパネルがあります。
「Kodi」では本体から流れる音楽、つまりRaspberry Piから流れる音楽を表しています。
「Local」はWeb Interface上から流れる音楽を表しています。ストリーミング配信では「Local」を選びます。
アルバムにある「Stream」のボタンを押せば「Local」のプレイリストにすべての楽曲が入り、再生開始します。

茜ちゃんがかわいい of the world


これで自宅内のどこでも音楽を楽しめます!

展望


いくつかやり残しがあります。
  • 楽曲自動バックアップ
    • HDDを繋いでCronで自動的にバックアップさせれば良さそうです。
  • Raspberry Piに光学ドライブを繋いでリップさせる
    • これは試したけどできなかったです。新しいRaspberry Piならできるかも?
  • Amazon Alexaから楽曲再生
    • 夢です。やり方はわかりません。教えて下さい。
というわけで、余っているラズパイを有効活用した話でした。

そして再度放置されるラズパイであった...


2016年12月28日水曜日

クリスマスイブにRaspberry Piでイルミネーションを作った話。

きっかけ


  • Raspberry Piが余っていたから
  • クリスマスまでに何かしたかったから
  • 外で見た自転車を漕ぐと点灯するイルミネーションを見たから
  • 友達に「工学部だからキーボードで点灯するようにしたら」と言われたから
  • 本屋で見たイケメンが「Raspberry Piで何か作りてーな」っていう意識高いことを言っていたのがムカついたから

参考にしたもの

やりたいことはLチカ(LEDをチカチカ点灯させること)だったので、以下を参考にしました。

さっそく

できました。

キーボードを叩くと、
点滅します。

仕組み

まず、OSの準備からですが、第8回「2皿目のラズベリーパイ!Model B+のスピード調理に書いてあるので割愛します。

次に、ブレッドボードにLEDと抵抗、導線を次のように置きます。

ちなみに置きかたについても、第9回「ラズベリーパイで電子工作!Lチカ…の前にLピカ!」に書いてあるので割愛します。

LEDを光らせる電源として利用するのはRaspberry PiのGPIOです。
GPIOはRaspberry Piからの命令を電気信号で送る部分のことです。

LEDは次のようにつなぎます。抵抗を反対につなげると光りません。

GPIOのピンは次のような配置になっています。
黄色丸は命令が来るピンで、黒丸はアース(接地)のピンです。ちなみに、濃い黄色丸や赤丸は安定して電気が流れているピンです。
使用しているのはRaspberry Pi B+なのでA+と比べ、ピンの本数が違いますが、左から26本目までは同じらしいです。

今回は、3、6、14を利用します。(14番は本当は必要ないんだけど、接地まで導線が届かなかった...。)

さて、この3番のGPIOに電気信号を流す方法です。
Raspberry Piのターミナルを開いて、次のコマンドを打ちます。
すると、/sys/class/gpio/内に、gpio2へのエイリアスが作られます。
ここで、次のコマンドを打ちましょう。

これで点灯テストは終了です。

次に、点灯させるためにキーボード入力の検出をしましょう。
とは言っても、調べてみると、キーボード入力のイベントハンドラ(キーボードで打ち込んだら動くプログラム)を検出しないといけないので、ちょっと面倒くさい。
なので、標準入力を使いましょう。

OSには標準でPython2と3が入っているので、2を使います。(3を使ったほうがいいことはわかりますが、調べた方法では3が使えなかった...。)
次にこのコードを書きます。text editerが使いやすいかも。
そして、python2 getch_test.pyで実行しましょう。(実行する前にgetchをインストールしておきましょう。pip install py-getchでできます。)

これでキーボードをカタカタすると光るはずです。

感想

目的は一応達成しました。とにかく、

「クリスマスの光は僕らのタイピングでできているんだ...。」がやりたかった。

反省点としては、
確かに光るんだけども、消えたりしないでほしい。交互に光ってほしい。反転するようにしたら良いかも。GPIOピンを2つ使えばいいかな。
あと、LEDの数が少なくてしょぼい。悲しい。
くらいです。来年もやりたいな。修論...。