2022年 たいチャレ日誌 ~オーディオプレイヤー開発~
はじめに
ソフト担当Tです。
私が2022年の活動として取り組んでいるオーディオプレイヤー開発についてご紹介したいと思います。
オフィスではBGMを流しています。現状、PCから音楽を流し続けているだけなの、同じ音楽ばかり流れていて飽きるなど改善要望が出ていました。そこで、たいチャレの活動としてオーディオプレイヤーの開発に取り組みました。
基本的な機能は以下の通りです。
- 勤務日、勤務時間のみ音楽が再生される
- 時間帯によって再生する音楽を変える
- 時報を鳴らす
また、OSの都合上、開発しやすいという理由でプログラム言語はPythonを選択しました。
今回の記事では開発環境の準備までを説明いたします。
システム構成
システムの構成としては下図の通りです。
Raspberry Piから音声データがDACに送られ、DACがスピーカーを鳴らします。Raspberry Pi とは、小型のコンピュータです。略して、「ラズパイ」呼ばれることも多いです。また、DAC(ダック)とはデジタルアナログコンバーターの略で、デジタル音声信号をアナログ音声信号に変換する基板です。今回はデジタルの音楽データをアナログのデータに変換して、スピーカーを鳴らすために使います。いずれもネットショップなどで入手できます。
また、Raspberry PiのOSですが、音楽再生に特化した、VolumioというLinuxベースのOSを利用します。Volumioには自作プログラムなどから音楽再生状態を制御するインタフェース(API)が用意されており、今回はそれを利用して音楽の再生や停止などを制御します。
なお、音楽データはUSBフラッシュメモリに保存します。
会社で余っていた部品を使ったため正確な金額はわかりませんが、すべての部品をそろえるのに1万~1万5千円程度かかりました。また、Raspberry PiとDACで音楽を再生すると音が良いと評価されている方が多いようです(私は聞き分けできるほど耳が良くないのでよくわかってませんが、、、)。総合して考えると、割とリーズナブルな値段なのかな(?)と思います。
ハードウェア作成
市販されているRaspberry Piのケースに穴をあけRaspberryPi、電源ボタン、DACを一体にしました。
上記はケースのふたを開けた状態の写真です。ケース側(左)にRaspberry Pi、蓋側(右)にDACと電源ボタンを取り付けています。
DACや電源ボタンはRaspberry PiのGPIOとケーブルで接続しています。
上記はケースとふたを組み立てた後の写真です。
左側の写真は天面の写真で、黄色い部品が電源ボタンです。右側の写真は側面からの写真で、ジャックにはスピーカーのケーブルを差し込みます。
写真には蓋が閉まり切っていないように見えますが、放熱の空気の流入口としてこのように使うケースです。改造の仕方を失敗したわけではありません。(笑)
OS起動
RaspberryPiのSDカードにVolumioをインストールし、起動します。
起動すると、PCのWebブラウザより、Raspberry Piにアクセスできるようになります。 以下のような画面です。(初回起動時の各種設定を終わらせた後の画面です)
このままでも、音楽を再生停止、再生リストを作るといった音楽プレイヤーの基本機能は利用可能です。
OSをインストールするだけで、このようなオーディオプレイヤーとして利用でき、今回のオーディオ開発にうってつけだと思い、このOSを採用しました。
開発環境の準備
上記で説明した通り、何もしなくても音楽再生や停止といった機能は実装されていますが、今回は「はじめに」で説明した機能を追加するためプログラム作成が必要です。
さあ、プログラムを作ろう!!となるところなのですが、まず初めに開発環境を準備をしなくてはいけません。
まず、Webブラウザより設定画面を開き、SSH接続を許可します。こうすることで、PCよりRaspberry Piへアクセスすることができるようになります。
また、プログラムを書き込むエディタですが、Visual Studio Codeを利用します。Visual Studio Codeの拡張機能を利用すれば、リモートでRaspberry Piへプログラムを書き込み、デバッグすることが可能です。ここの詳細な説明については、今後別記事にて紹介する予定です。
下図は設定完了後の画面で、Raspberry Piの中にあるプログラムを直接編集しています。
ここまで設定できれば、後はプログラムを作成するのみです。
あとは少しプログラムを作るだけで、自分だけのオリジナル機能を搭載したオーディオプレイヤーが作れます。そう考えるとなんだかワクワクしてきませんか??
最後に
現在、プログラム作成中のため、今回の記事はここまでになります。
記事を読んでいただき、開発の様子はイメージが付いたでしょうか?
今回の課題は組込機器のため、ソフト開発だけでなく、ハードウェアの知識も必要になってきます。ハードウェアのことが分からない。。。となることもありますが、ハードウェア開発担当に質問し、理解しながら作業を進めています。
また、PCからリモートでプログラムを作成することをご紹介しました。慣れていないと、開発環境を整えるには時間が掛かりますが、一度環境を整えてしまえば、開発が非常にやりやすくなります。
これらのことは、実際の案件でもよくあることです。IT業界で働くときのイメージとしてとらえてもらえるとよいかと思います。
この記事の続きは、課題が完了次第、別記事で報告したいと思います。
投稿者プロフィール
- メインはソフト担当ですが、筐体設計も担当します。プログラミング言語はPythonやC言語の経験が多いです。また、たいチャレ(詳細は右バーナー参照)にも参加しており、日々、様々なことを学びながら業務に取り組んでいます。
最新の投稿
- 技術コラム2022年12月26日技術コラム(第29回)3Dプリンタについて ~部品強度について~
- 技術コラム2022年12月26日技術コラム(第28回)Raspberry Pi 3B+の使い方 ~ROM化編~
- 技術コラム2022年12月22日技術コラム(第27回)Raspberry Pi 3B+の使い方 ~セキュリティー設定編~
- たいチャレ2022年12月22日2022年 たいチャレ日誌 ~オーディオプレイヤー開発前編>~