ラズパイで音量検知して光るガジェット作った
ラズパイで大きい音量を検知すると、光って知らせるガジェットを作っていたんだけど、連休に仕上げよう、とがんばって、やっと完成した。
やりたかったことは、うちの子供たちが大声で騒いでしまったとき、自分たちでそれを気づけるようにすること。興奮して騒いでくると、自分の声の大きさに気づけなくなるじゃないですか。居酒屋でみなさん経験してますよね。
それで連日のようにマイクラしながら大声で騒ぐんだけど、大声を出してる自覚がないので親が指摘するのも気疲れする。なので、自分たちで気づけるように状況を見える化しよう、と思って作ってみた。一通りやりたかったのが完成した状態がこれです。
テレビの前で騒ぐと赤く光って知らせる仕組みできあがった!初ラズパイです。 pic.twitter.com/BFAJVUD8QK
— Yoshihiro Kameda (@kmdsbng) December 23, 2018
開発当初はラズパイのセットアップ方法とかもしらなかったので、どのラズパイを買えばいいのかというところから結構迷った。
初期の構想ではGrovePi+っていうパーツアダプターとGrovePi+用のマイク、LEDを付けて作ろうと思ったんだけど、ラズパイ経験者の矢野くんからUSBマイクとディスプレイ付けたほうがいいんじゃないかとアドバイスを受けて、その構成で作ることにした。
マイクはこれ。
500円くらいだけど十分な性能だった。
https://t.co/BKLxKkk465 この小型ディスプレイも買った。付属のHDMIアダプターでラズパイと接続する。特に設定など不要で画面が映る。タッチパネルを使うには、付属のソフトをラズパイにインストールする必要がある。
ディスプレイは買っておいてよかった。別途ディスプレイとつなげる必要がないし、これ自体が通知インターフェイスにもなる。ラズパイと合わせて10000円弱程度になってしまうが、なかったら開発は大変そう。
ラズパイ本体もどれを買っていいのかわからなかったので、矢野くんと相談してRaspberry Pi 3B+ っていうやつにした。RSコンポーネンツとElement14という2個の製造元があるが、Element14は品質が悪いってネットに書かれてたのでRSコンポーネンツの方を買った。https://t.co/h498R5hAnC
SDカードが相性悪いと、ラズパイが起動しないみたいな情報もあった。東芝製のSDカードなら大丈夫らしいので、東芝製の16GBのSDカードを買った。SDカードも4GBだとOSの容量が足りないので16GB以上くらいがいい。1000円くらいで買えた。https://t.co/oUwuINCCLw
ラズパイのOSは、本家サイトからダウンロードしてSDカードに書き込んでおく。この記事とかを参考にしてインストールした。https://t.co/IYONbjhwbL
ラズパイのOSにはpythonが初めから入ってるので、それを使ってプログラムを作った。はじめてのpythonだったけど、シンタックスちょっと違うなー、くらいで特につまづかずにプログラミングはできた。USBマイクから音量を取ってきて、それを画面にグラフとして描画する。画面への描画はpygameっていう2Dゲーム用のライブラリを使った。
pixe.laを使って、大音量を検知した回数を記録するようにもした。pixe.laはリリースされたときからぜひ使ってみたいと思ってたので、いい機会だった。curlだけでユーザー登録、グラフ作成、グラフ更新ができるのですごく便利ですね。
作ったプログラムはgithubに上げました。
これで子どもたちが自分自身で音量調節できるようになるといいんですけど。どうなるかしばらく様子を見てみます。