カテゴリー別アーカイブ: ハードウェア

USB オーディオアダプタでサウンド機能をアップグレード

サウンド機能を追加されたハウスローバーは、毎日のようにBGMとしてインターネットラジオ受信機になっています。 デスクトップPCで聞けばいいようなものですが、専用機(?)はいいものです。 最初から音質に期待はしていないとはいうものの、さすがにRaspberryPiの標準音声出力では、ノイズの多さが気になってきました。 そこで、USB オーディオアダプタを試してみることにしました。 ハウスローバー内部に組み込んでも邪魔にならない小型の製品を比較し、Plugable USB オーディオ変換アダプタ を、購入しました。

Plugable USB オーディオ変換アダプタ

Plugable USB オーディオ変換アダプタ

3センチ角程のコンパクトな筐体で、つくりもしっかりしています。 形状から事前に予想していましたが、USBポート直挿しの為 RaspberryPiに装着の際には他のポートと干渉します。 近所の店で、ちょうどいいものがありましたので、予め購入。

USB方向転換アダプタ

USB方向転換アダプタ

あらゆる方向にグリグリ回ってしまう便利な USB方向転換アダプタ です。 実際に組み込むとこんな感じになりました。

IMG_0389

スッキリ収まりました。

設定については、メーカーのブログを参考に行いました。 私の環境では、 cat /proc/asound/modules で装着前に確認した時に、すでに snd_usb_audio が表示されていました。 USBカメラのマイク(?)のようですが、 /etc/modprobe.d/alsa.base.conf には以下のように記述しました。 (存在しませんでしたので新規に作成)

options snd slots=snd_usb_audio,snd_usb_audio,snd_bcm2835
options snd_usb_audio index=0
options snd_usb_audio index=1
options snd_bcm2835 index=2

snd_usb_audio が2行になってしまい、どちらがどちらかわかりませんが、これでUSB オーディオアダプタを再優先とすることができました。

さて、使用感ですが、感動レベルの改善に驚きです。 耳障りだったホワイトノイズは無くなり、サーボやDCモーターなどからの影響も低減しました。 ヘッドホンやデスクトップ用スピーカーを繋いでみましたが、RspberryPiとは思えない音の厚みを感じられるようになりました。 また、アンプの特性と諦めていた、起動後最初の再生時に発生する大きなポップノイズも消滅したのです。 何もかも良いこと尽くめ。 もはや、音楽再生機レベルに到達している感じです。(絶賛!)

今回は、マイク入力などは試していませんが、サウンド機能の向上により、今後、音声認識機能なども実験してみたいと思います。

参考にさせて頂いたサイト

RASPBERRY PI で PLUGALBE USB オーディオ変換アダプタを使用する方法
http://plugable.com/jp/how-to-switch-to-usb-audio-on-raspberry-pi

ALSA使用時のデフォルトサウンドカード設定法のまとめ(&同時再生問題の解決法)
http://d.hatena.ne.jp/gin135/20140502/1399022358

 

サウンド機能の追加とインターネットラジオの受信

アラートを発報するために赤色LEDを4ヶ所に配置し、回転発光、フラシュ発光ができるようになりました。 これにあわせ、サイレン音を発生させるサウンド機能を追加します。 RaspberryPiの標準音声出力を利用しますが、スピーカーを直接駆動することはできないので、アンプが必要です。

HT82V739使用ミニモノアンプ基板

秋月電子通商製のHT82V739使用ミニモノアンプ基板を使用しました。 小型でありながら、半固定抵抗などもセットされているので、事前の実験にも都合が良さそうです。 また、このデバイスにはCE端子があり、動作のON、OFFコントロールが可能です。

実験の様子

実験の様子

スピーカーは実験に使用したヤザワ プラグインスピーカー VRS202Wの4cmスピーカーを利用しました。 ケースごと使うことも検討しましたが、デザイン的にちょっと浮いてしまうので、アルミのパンチング板で製作することにしました。

IMG_0379  IMG_0380  IMG_0381

0.5mmのパンチング板をシャーシの上部に合う形状に曲げ、内側に1mmのゴムシートを貼り付けました。 中央にはアンプ基板を配置し、フチにもゴムシートを貼り、音漏れしないよう考慮しました。 スピーカーの裏側に当たるシャーシは穴をあけ、車体全体がスピーカーボックスになる仕組みです。

IMG_0383

そして、このように仕上がりました。 アンプの半固定抵抗は取り外してバイパス。出力部には標準の10K抵抗のみの状態としました。 サイレン音のMP3ファイルを再生しましたが、実験の時よりもはるかに大きくしっかりとしたサウンドとなりました。 音質はそれなりですが満足の結果です。 mpg321で、幾つかの音楽ファイル等を再生しているうち、インターネットラジオも鳴らしてみたくなりました。

インターネットラジオの受信については、先人の情報が多くありますので、手順は簡単に。

mplayerのインストール
apt-get install mplayer
apt-get install rtmpdump swftools libxml2-utils

radiko、らじる★らじる用スクリプト
https://gist.github.com/ihsoy-s/5292735 より、play_radiko.sh play_nhk-radio.sh をダウンロード
/usr/bin に配置し、パーミッションを755に設定

皆様の情報を統合し、shoutcast、radiko、らじる★らじる を、自由に切り替えられるPHPスクリプトを作成(いえ、編集追加)。 インターネットラジオを楽しんでいます。

<?php
$com = $_GET['com'];
$st = $_GET['st'];
exec("sudo killall mplayer");
if($com == "rad"){exec("sudo play_radiko.sh ".$st." > /dev/null &");}
if($com == "nhk"){exec("sudo play_nhk-radio.sh ".$st." > /dev/null &");}
if($com == "sho"){exec("sudo mplayer -playlist http://yp.shoutcast.com/sbin/tunein-station.pls?id=".$st." > /dev/null &");}
?>
<html>
<head></head>
<body>
<p><a href="radio.php?com=stop">停止</a></p>
<p>radiko.jp</p>
<ul>
<li><a href="radio.php?com=rad&st=TBS">TBSラジオ</a></li>
<li><a href="radio.php?com=rad&st=QRR">文化放送</a></li>
<li><a href="radio.php?com=rad&st=LFR">ニッポン放送</a></li>
<li><a href="radio.php?com=rad&st=RN1">ラジオNIKKEI第1</a></li>
<li><a href="radio.php?com=rad&st=RN2">ラジオNIKKEI第2</a></li>
<li><a href="radio.php?com=rad&st=INT">InterFM897</a></li>
<li><a href="radio.php?com=rad&st=FMT">TOKYO FM</a></li>
<li><a href="radio.php?com=rad&st=FMJ">J-WAVE</a></li>
<li><a href="radio.php?com=rad&st=JORF">ラジオ日本</a></li>
<li><a href="radio.php?com=rad&st=BAYFM78">bayfm78</a></li>
<li><a href="radio.php?com=rad&st=NACK5">NACK5</a></li>
<li><a href="radio.php?com=rad&st=YFM">FMヨコハマ</a></li>
<li><a href="radio.php?com=rad&st=HOUSOU-DAIGAKU">放送大学</a></li>
</ul>
<p>らじる★らじる</p>
<ul>
<li><a href="radio.php?com=nhk&st=r1">NHKラジオ第1</a></li>
<li><a href="radio.php?com=nhk&st=r2">NHKラジオ第2</a></li>
<li><a href="radio.php?com=nhk&st=fm">NHK FM</a></li>
</ul>
<p>SHOUTcast</p>
<ul>
<li><a href="radio.php?com=sho&st=1017331">Japan-A-Radio</a></li>
<li><a href="radio.php?com=sho&st=172098">SmoothJazz.com Global Radio</a></li>
<li><a href="radio.php?com=sho&st=709809">ABC Lounge</a></li>
<li><a href="radio.php?com=sho&st=209680">ABC Jazz</a></li>
<li><a href="radio.php?com=sho&st=190282">Jazzradio</a></li>
<li><a href="radio.php?com=sho&st=98600" >TheJazzGroove.com</a></li>
</ul>
</body>
</html>

取り敢えずは、使えるスクリプトですが、局名表示やプリセット機能など、さらに使い易くしたいと思います。 なんだか、メインストリームから外れてしまいそうな感じですが、こんなこともありなのです。

 

参考にさせて頂いたサイト

IT女子のラズベリーパイ入門奮闘記
http://deviceplus.jp/hobby/raspberrypi_entry_013/

RaspberryPiフォーラム
https://www.raspberrypi.org/forums/viewtopic.php?f=82&t=45424

鍋風呂
http://blog.ahh.jp/?p=6385

 

新型シャーシ用インターフェースボード

新型シャーシには、2つの白色LEDと4つの赤色LEDを新設しました。 その信号線を引き出すために、インターフェースボードを再構成しました。 少々高価ではありますが、今回はサンハヤトのRaspberry Pi B+ 用ユニバーサル基板 UB-RPI02 を使用し、RTC、バックアップ用バッテリー、LEDドライバー等を搭載。 それ以外のモータードライバーを中心とした回路を、14Pフラットケーブルで接続する構成です。

インターフェースボード

インターフェースボード

モータードライバーボード

モータードライバーボード

実装した状態

実装した状態

RaspberryPi2のリセット端子

RaspberryPi2のリセット端子

RTCのアラーム出力をRaspberry Pi本体のRUN端子(リセット端子)と接続するため、インターフェースボード側にもピンヘッダを設けました。 RUN端子との位置が微妙にずれているので、若干角度をつけ、なんとか接続できています。 RTCのアラーム出力(INT)の回路も一部変更し、安定して動作しています。

 

 

そして回路はこのようになりました。

インターフェースボード

インターフェースボード

モータードライバーボード

インターフェースボードに使用したサンハヤトのRaspberry Pi B+ 用ユニバーサル基板は、両面スルーホールで大変品質もよく、基板上にGPIOのピンアサインが表示されているので、ちょっとした回路の作成にはぴったり、お薦めです。 お安くはありませんが、複数用意しておきたいですね。 (かなりの宣伝?)

↑ さらに宣伝!!