Raspi Zero(w)でWebラジオ(プログラム開発の準備)

Raspi Zero-Wと Raspi Zero-2W を買い、Raspi Zero-Wで遊んでいます。

びっくりするのはその大きさ。板ガムくらい(巷ではフリスク位って言うみたい)の大きさです。性能的にはRaspi b+(OSインストールの時にいちごマークが1個しか出ないやつ)と同じ位。試しにGUIのOSをインストールしたのですが、Raspi b+同様レスポンスが遅くとても使う気になれませんでした。そこでOSをCUIに変えてWebラジオを作って見ることにしました。

Raspi Zero-WにHTTPサーバーを上げ、PCのブラウザからサーバのHPにアクセス。そのHPでラジオをコントロールします。サーバーのHPにはラジオ管理用に下記の3画面が有ります。

  • Player: メイン画面。基本はラジオ局を選択しそれを聞く。この画面からRecorder/Editorを実行する
  • Recorder: ラジオ放送を録音する。 録音出来るのはRadikoのみ。 録音した放送の再生とDownloadが出来る。
  • Editor: 聞きたいラジオ局を追加する。 

1.OSのインストール

最近は Raspberry Pi imagerが有るのでOSのインストールは簡単です。

  1.  Raspberry Piデバイスの選択
    • リストから Raspberry PI Zero を選ぶ
  2.  OSの選択
    • リストから Raspberry PI OS(Legacy, 32−bit)Liteを選ぶ
  3.  ストレージ選択
    • 今回は32GのSDカードを使用しました。
  1.  ストレージ選択の下の 次へ をクリック
  2.  OS customization?が表示されます。ここで設定を編集する を選択
  3.  OS customization 一般
    • ホスト名:”rasp” としました。
    • ユーザー名:”pi” としました。
    • WiFiを設定する。
      • WiFiを使ってDeskTop_PCとSSHで接続します。
      • WiFiのデータを入力します
    • ロケールは
      • タイムゾーン:Asia/Tokyo
      • キーボード: jp
  4.  サービスのタブで 
    • SSHを有効化するにチェック
    • パスワード認証を使うにチェック
    • 最後に保存をクリック
  1.  ここで ”はい” を押す
  2.  ここでも ”はい” を押す
  3.  書き込みが始まりました。しばらく待っていると
  4.  書き込み終了の画面が表示されます。SDカードを取り出します。

この後はSDカードをRaspi Zero-Wにセットします。今回はWiFiを使ってSSH接続を行うのでRaspi Zero-Wには、キーボード、マウス、LCD等は接続していません。Raspi Zero-WのUSBに電源を供給してOSのインストールが始まります。

LCDをつないでいないのでインストールの状況が分かりません。Raspi Zero-Wの本体に実装されている緑のLEDが頼り。こまめに点滅している間はインストール中です。しばらくすると(10分位待つと)LEDの点滅が無くなり、点灯(点きっぱなし)となります。これがインストール終了の目安です。

  1.  PC側でモニターを上げて ssh pi@rasp.local と入力します
  2.  実はこのインストール前に違うPCとSSH接続を行っていた為、接続が変わった旨のメッセージがでました。
    • 今回が初めての場合はこのメーッセージと下記の14,15は表示されないはずです。
    • ssh-keygen -f “/home/op7060/.ssh/known_hosts” -R “rasp.local” を入力して仕切り直し
  3.  改めて ssh-keygen -f “/home/op7060/.ssh/known_hosts” -R “rasp.local” を入力
  4.  コマンドプロンプトが帰って来た所で、再度 ssh pi@rasp.local を入力
  5.  今度は続けるか聞いているので yes と入力 
  6.  ここでパスワードを入力すると
  7.  Raspi Zero-Wにつながりました。

ひたすらLEDを見てるだけのインストールでしたがOSは正常にインストールされいる様です。

2.OSの日本語化

OSインストールの”OS customization?”で日本語の設定にしたのですが、モニターに表示されるメッセージが英語表示になっています。これを日本語表示に変更します。Raspberry PI の日本語表示を参考にして下さい。Webラジオプレーヤーに日本語はいらないかもしれませんが取り敢えず日本語表示にして置きます。

3.スピーカーの接続

今回スピーカにSANWAのUSBスピーカーを使用したのですが、これ接続にかなり苦労しました。ALSAで音は出せるのですがCUIから音量調整が出来無いのです。このスピーカーにはボリュウムが付いているのでそれを回せば音量の調整は出来ますがRaspi Zero-Wからも調整したい所です。ALSAの代わりにPulseAudioを使用するとCUIから音量を調整出来る事が分かりました。詳細はここを参照下さいー>Soundの設定

4.Sambaのインストール

Raspi Zero-WにSambaをインストールしてDesk_Top_PCとの間でファイルを共有します。プログラムの開発はPC。Raspi Zero-Wは実行のみ。Raspi Zero-WのEditorはDesk_Top_PCのそれに比べ非力なのでこの方法で開発効率が上がります。Sambaのインストールはここを参照下さいー>Sambaのインストール

Sambaインストールにあたり、

  • 共有ファルダーとして、Raspi Zero-Wのホームディレクトリの下に ユーザー権限で ”radio” を作製しています。
  • /etc/samba/smb.confの最後に今回の設定に合わせて下記を追加しています。
    • path = /home/pi/radio  => 今回作製したフォルダー
    • force user = pi  => OSのインストールでユーザーを ”pi” としています。違うユーザーでインストールした場合はそれに合わせて下さい。

[raspberry_pi]
comment = Share
path = /home/pi/radio
public = yes
read only = no
browsable = yes
force user = pi

5.メディアプレーヤーのインストール

ラジオの録音に ffmpeg 。 再生にmplayerを使います。予めこれらをインストールして置きます。モニター画面で

ffmpegのインストール: sudo apt install ffmpeg

mplayerのインストール: sudo apt install mplayer

を実行すればインストール出来ます。

6.ハードの追加

リセットスイッチとPilot LEDを追加しました。

  • リセットスイッチ
    • Raspi Zero-Wカメラコネクターの横に RUN と印刷された端子が有ります。
    • この端子をショートするとRaspi Zero-Wにリセットがかかります。
    • Raspi Zero-Wの立ち上げとShutDown
      • 電源コネクターから電源を供給すると少ししてRaspi Zero-Wが立ち上がる。
      • モニターでShutdownをかけるとRaspi Zero-Wが落ちてLEDが消灯
      • この状態で端子をショートすると再びLEDが点滅を初めRaspi Zero-Wが立ち上がる
    • USBコネクターの抜き差しで電源のオンオフを行っていたのでそれに比べればかなりスマート。
    • Shutdown後パワセーブモードになってこのスイッチはリセットをかけているのみと思われます。
      • Raspi Zero-W起動時にこのスイッチを押すと強制的にリセットがかかります(Rebootします)
      • このスイッチで電源のオンオフは出来ません。
  • Pilot Led
    • Raspi Zero-WにもLEDは有るのですが、ラジオの状態表示用にLEDを追加しました。
    • GPIOポートの23にLEDをつなぎ1KΩの抵抗を通してGNDに接続しています。

次回は

これでプログラム開発の準備が出来ました。次回は実際にプログラムを書いて行きます。