ふじかわ家のページ


by mmbrothers

カテゴリ:Raspberry Pi/ラズベリーパイ( 22 )

ブチっという音の対処

Raspberry Pi mpdでネットラジオ(shoutcast)を聞く際、曲の開始時や切り替え時にブチっという音が気になったので、
方法を調べていたところ、USB-DACというモノを発見。
USBコネクタから出力されるデジタル音声をアナログにD/A変換してくれるものです。
で、最近発売のとある雑誌に付録されていおり、購入してみました。
a0038328_0541862.jpg


WEBカメラやUSBハブも取り外し、ネットラジオがやっと安定して聴けるようになりました。

/etc/mpd.confの設定
pi@raspberrypi ~ $ grep -v "^#\|^$" /etc/mpd.conf
コメントアウトしていない行は下記です。
music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/mpd.db"
log_file "/var/log/mpd/mpd.log"
pid_file "/var/run/mpd/pid"
state_file "/var/lib/mpd/state"
sticker_file "/var/lib/mpd/sticker.sql"
user "mpd"
input {
plugin "curl"
}
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:1,0" # optional
}
mixer_type "software"
audio_buffer_size "4096"
filesystem_charset "UTF-8"


ただ、dmesgでメッセージを確認すると、音楽を流している間中、下記行が記録され続けます。
[ 80.048680] delay: estimated 0, actual 132
[ 80.056682] delay: estimated 0, actual 133
[ 80.064688] delay: estimated 0, actual 133
[ 80.072690] delay: estimated 0, actual 133
[ 80.080687] delay: estimated 0, actual 132
[ 80.088687] delay: estimated 0, actual 132


この対処は下記で直ります。
sudo /etc/init.d/mpd stop
sudo modprobe -r snd-usb-audio
sudo modprobe snd-usb-audio nrpacks=1
sudo /etc/init.d/mpd start


ただ、OS再起動の毎に実行させる必要があるようです。

またOS再起動させるとサウンドカードの認識順が変わる事があるようです。
pi@raspberrypi ~ $ cat /proc/asound/modules
0 snd_bcm2835
1 snd_usb_audio


この番号と/etc/mpd.confの「device "hw:1,0" # optional」が同じでないと音が出なくなるようです。

※/etc/modprobe.d/alsa-base.confに下記2行追加する事で、メッセージも出ず、サウンドカードの順番も1になるようです。
pi@raspberrypi ~ $ sudo vi /etc/modprobe.d/alsa-base.conf
options snd-usb-audio nrpacks=1
options snd-usb-audio index=1

[PR]
by mmbrothers | 2012-12-22 01:10 | Raspberry Pi/ラズベリーパイ
前回の続きですが、
Raspberry Piにmpd(Music Player Daemon)をインストールし、
WindowsPCやiPhoneにMDPクライアントをインストールすれば、
操作はクライアントで行い、音楽はRaspberry Piに接続したスピーカーから流す事が出来るようです。

mpdのインストール(念のためmpdクライアントのmpcもインストール)
pi@raspberrypi ~ $ sudo apt-get install mpd mpc


インストール後、設定ファイルを修正
pi@raspberrypi ~ $ sudo vi /etc/mpd.conf


下記行をコメントアウト(先頭に#を付ける) これをしないと、他のPCから接続出来ないようです。
# bind_to_address "localhost"


mpdをリスタート
pi@raspberrypi ~ $ sudo /etc/init.d/mpd restart


mpcで再生してみる
pi@raspberrypi ~ $ mpc add http://s1.radio.lclhst.net:1337/
pi@raspberrypi ~ $ mpc play


再生停止
pi@raspberrypi ~ $ mpc stop


次はiphoneアプリ「MPoD」をインストール
Raspberry Piに接続でき、音楽再生操作も簡単に出来ます。
a0038328_2322776.jpg


ただ、曲を探す(ストリームのurlを探す)のが面倒です。
追加はWIndows用ソフトのGnome Music Player Clientが便利そうです。

クライアントソフトを閉じても音楽はサーバ上で流し続ける事が出来ます。
音量はalsamixerでの音量×MPoDの音量になる?ようです。
また、再生したままRaspberry Piを再起動させると、起動時に自動的に音楽が流れます。
ブチっという音はなんとかしたい。
[PR]
by mmbrothers | 2012-12-16 23:09 | Raspberry Pi/ラズベリーパイ
他の方の情報を参考にRaspberry Pi でmplayerを使用してネットラジオを聞いてみました。

スピーカーはLogicool Mini Boomboxを使用してます。
キーボード、マウス、ディスプレイを外し、別のPCからSSH接続して操作してます。
a0038328_1382928.jpg


まずmplayerのインストール
pi@raspberrypi ~ $ sudo apt-get install mplayer


次にブラウザでshoutcastを探します。
http://www.shoutcast.com
a0038328_2304084.jpg


青い文字を右クリックし、リンクアドレスをコピーし、

pi@raspberrypi ~ $ mplayer -playlist コピーしたリンクをペースト

例:Seasonal and>Christmas で今一番LISTNERが多いSTATION
pi@raspberrypi ~ $ mplayer -playlist http://yp.shoutcast.com/sbin/tunein-station.pls?id=389770


※ShoutCastのストリーミングURLは通常拡張子.plsが付くようです。

a0038328_2431032.jpg


ブチっという音と共に、音楽が再生されます。

音量は別途sshクライアントから
pi@raspberrypi ~ $ amixer set PCM ?%

で?の数値を調整するか、
もしくは
pi@raspberrypi ~ $ alsamixer

で、キーボード上下矢印キーで調整します。
a0038328_2444782.jpg


次回は音楽再生時のブチっという音をどうにか解決したいが。。
バックグラウンドミュージックとして流しっぱなしでボリュームもそこまで大きくしないのであれば十分綺麗に聞こえます。
また、ブラウザ等でもっと簡単に操作出来ると良いと思う。
[PR]
by mmbrothers | 2012-12-16 00:00 | Raspberry Pi/ラズベリーパイ

動体検知画像をWEB表示

Raspberry PiにWEBカメラを繋げ、
motionで動体検知した際、USBメモリにjpgファイルを保存するよう設定しています。

ここを参考に、最新の5枚の画像をwebで表示出来るようシェルを組み、cronで動作させてみました。

60秒間隔で、/mnt/usbmem/motion下のjpegファイルの最も新しい5枚を/var/www下に
motion01.jpg~motion05.jpgと連番でコピーするようにしてみました。

pi@raspberrypi ~ $ vi /home/pi/motionjpg.sh
#!/bin/bash

while :
do
# FILE=`ls /mnt/usbmem/motion/*.jpg | tail -1`
# sudo cp -f $FILE /var/www/motion.jpg
# sudo rm -r /var/www/*.jpg
# sleep 5
ls /mnt/usbmem/motion/*.jpg | tail -5 | awk '{ printf "sudo cp -f %s /var/www/motion%02d.jpg\n", $0, NR }' | sh

sleep 60
done


上記コマンドは”| sh”を外すとコマンドが表示されるので分かりやすいですね。
pi@raspberrypi ~ $ ls /mnt/usbmem/motion/*.jpg | tail -5 | awk '{ printf "sudo cp -f %s /var/www/motion%02d.jpg\n", $0, NR }'
sudo cp -f /mnt/usbmem/motion/20121209201413-00.jpg /var/www/motion01.jpg
sudo cp -f /mnt/usbmem/motion/20121209201721-00.jpg /var/www/motion02.jpg
sudo cp -f /mnt/usbmem/motion/20121209202458-00.jpg /var/www/motion03.jpg
sudo cp -f /mnt/usbmem/motion/20121209205030-00.jpg /var/www/motion04.jpg
sudo cp -f /mnt/usbmem/motion/20121209212717-00.jpg /var/www/motion05.jpg


/var/www/index.htmlにはmotion01.jpg~motion05.jpgを表示するよう<img src="motionXX.jpg">を5行追加しました。

画像は自動更新とは行きませんが、開いた時に最新の5枚の画像が表示されます。
[PR]
by mmbrothers | 2012-12-09 23:33 | Raspberry Pi/ラズベリーパイ

USBメモリのマウント

Raspberry Pi にUSBメモリを接続し、起動時にマウントして使用していますが、

Windowsのfatでフォーマットしたものは、マウントしたユーザ(通常はroot)でしか書き込み権限無いんですね。あまり使用しないコマンドなので備忘録として残しておこうと思います。

a0038328_22183235.jpg


下記は全てpiアカウントで実施してます。

マウント用フォルダ作成
pi@raspberrypi ~ $ sudo mkdir /mnt/usbmem
pi@raspberrypi ~ $ sudo chmod 777 /mnt/usbmem

/etc/fstabへ1行追記
pi@raspberrypi ~ $ sudo vi /etc/fstab
...
/dev/sda1 /mnt/usbmem vfat rw,user 0 0


More
[PR]
by mmbrothers | 2012-12-09 22:51 | Raspberry Pi/ラズベリーパイ
Raspberry Pi のmotionが止まった時にメール送信出来ないか調べ、
iftttなら簡単にGmail送信出来るようなので、試してみた。

この記事を参考に、手順通りでメール送信が出来ました。
pi@raspberrypi ~ $ sudo apt-get install python-pip python2.7-dev

pi@raspberrypi ~ $ sudo easy_install -U distribute

pi@raspberrypi ~ $ sudo pip install feedparser

vi send_gmail.py

#!/usr/bin/env python
import smtplib
from email.mime.text import MIMEText

USERNAME = "自分のアカウント@gmail.com"
PASSWORD = "パスワード"
MAILTO = "自分のアカウント@gmail.com"

msg = MIMEText('Closing video device /dev/video0')
msg['Subject'] = 'Motion error'
msg['From'] = USERNAME
msg['To'] = MAILTO

server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo_or_helo_if_needed()
server.starttls()
server.ehlo_or_helo_if_needed()
server.login(USERNAME,PASSWORD)
server.sendmail(USERNAME, MAILTO, msg.as_string())
server.quit()


chmod +x send_gmail.py

./send_gmail.py


gmailを開き自分からのメールを確認。
その後motionの監視用シェルに1行追加してみた。
[PR]
by mmbrothers | 2012-12-05 22:55 | Raspberry Pi/ラズベリーパイ

不安定なmotionの仮対処

Raspberry Pi (ラズベリーパイ)で不安定なmotionの仮対処
motion起動後、数時間経過後に/var/log/messagesに下記メッセージが出力され、WEBカメラストリーミングが停止してしまいます。

tail -100 /var/log/messages
...
Dec 5 10:46:36 raspberrypi kernel: [35480.224391] uvcvideo: Non-zero status (-5) in video completion handler.
Dec 5 11:02:58 raspberrypi kernel: [36462.383840] uvcvideo: Non-zero status (-5) in video completion handler.
Dec 5 11:16:25 raspberrypi kernel: [37269.068184] uvcvideo: Non-zero status (-5) in video completion handler.
Dec 5 11:54:31 raspberrypi kernel: [39555.104438] uvcvideo: Non-zero status (-5) in video completion handler.
Dec 5 12:17:25 raspberrypi kernel: [40929.384675] uvcvideo: Non-zero status (-5) in video completion handler.
Dec 5 12:18:58 raspberrypi motion: [0] Closing video device /dev/video0
...


原因良くわからないから、messagesに"Closing video device /dev/video0"が記録されたら
motionを再起動させるシェルを作成し、cronで動作させてみました。

More
[PR]
by mmbrothers | 2012-12-05 21:18 | Raspberry Pi/ラズベリーパイ

WEBカメラストリーミング

Raspberry Pi でWEBカメラストリーミングを行ってみました。
カメラはLogicool c270

Windowsと違って、すんなりとは行きませんでしたが、
apache2でWEBサーバを動作させ、
motionを使用して1fpsでストリーミングさせてみました。
また動体検知をした場合、USBフラッシュメモリにjpgファイルを書き込むよう設定してます。
このmotionですが、起動後数分は動作するのに、watchdog timeout でフリーズする現象がなかなか解決出来なかったのですが、いろいろいじって1時間以上は持つようになりました。

/var/www/index.htmlに下記1行を追加
<a href="http://192.168.11.32:8081"><img class="motion" src="http://192.168.11.32:8081" /></a>

起動直後、別のWindowsPCからhttp://192.168.11.32/にアクセスすると、ちゃんと1秒間隔で画面が切り替わります。(※Google Chromeは表示されますが、IE9はNGでした)
a0038328_115699.jpg


1時間経過しても問題なし。
a0038328_131453.jpg


この後、iphoneでも見えるか確認。ちゃんと見えました。
a0038328_16441.jpg


この直後、無線LANの調子が悪くなり、pingが届かなくなりましたが、
motion自体は動作し続けています。何時まで動作するのか朝確認することに。。。
[PR]
by mmbrothers | 2012-12-01 01:18 | Raspberry Pi/ラズベリーパイ

SDカードのバックアップ

Raspberry Piですが、色々試すと動作不安定になったり、無線LANが認識しなくなったりしました。
都度最初からインストールするのは面倒なので、定期的にSDカード内のシステムを丸ごとバックアップさせておき、動作不安定になったらバックアップから戻しています。

Raspberry Pi用のSDカードを作成する際に使用した
Win32 Disk Imagerにて、Windowsのディスク上にimgファイルとして保管できます。

a0038328_23294353.jpg

Image File:バックアップ先のimgファイルを指定
Device:バックアップ元のSDカードのドライブ名

以上を指定して、[Read]ボタンを押すと[Image File]で指定したディスクイメージファイルが作成されます。
a0038328_2337011.jpg

ファイルはSDカードのサイズになりますので、保管先に注意しましょう。
[PR]
by mmbrothers | 2012-11-17 23:36 | Raspberry Pi/ラズベリーパイ
Raspberry Pi(ラズベリーパイ)からWindows7にリモートデスクトップ接続してみました。
a0038328_22163711.jpg


More
[PR]
by mmbrothers | 2012-11-17 22:50 | Raspberry Pi/ラズベリーパイ