ふじかわ家のページ


by mmbrothers

<   2012年 12月 ( 11 )   > この月の画像一覧

ラズベリーパイにOpen Jtalkをインストールし、文字情報を音声に変換してみました。

またwebサーバ(apache + php)をインストールして クライアント(Windows7やiPhone)のブラウザから文字を入力する事により、ラズベリーパイに繋がったスピーカーから音声が出るようにしてみました。




子供と暇つぶしに楽しんでみましたが、結構楽しかったです。
何かの役に立ちそうですね。
目が疲れた時にメールやニュース、本を読み上げてくれる。
目覚まし時計の代わり
センサーやカメラと連動し、玄関口に人が来たら、「ようこそ」と声を出す。
ドライブ運転中、寝そうな時に声をかけてくれる。
..
[PR]
by mmbrothers | 2012-12-31 00:00 | Raspberry Pi/ラズベリーパイ
Raspberry PiへのUSBメモリのマウントですが、
こちらのサイトを参考に、
OSが起動したままUSBメモリを抜き差ししても
自動的にマウントするように設定変更しました。

抜き差しするのにOSの電源を落とすのが面倒だったため。

pi@raspberrypi sudo apt-get install usbmount


マウントポイントが/media/usb0~usb7になるようです。
(/etc/usbmount/usbmount.confに記載あり)

なので、一旦fstabの記述を無効にしました。

pi@raspberrypi /media/usb0/motion $ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
...
/dev/sda1 15419608 953296 14466312 7% /media/usb0

抜くとマウントポイントが消え、差し込むとマウントされます。
[PR]
by mmbrothers | 2012-12-25 00:24 | Raspberry Pi/ラズベリーパイ

USB DAC ケース作成

先日購入した(LXU-OT2)ですが、そのままでは見栄えが悪いので、家にあるものを探してケースを作成してみました。

まず紙製の箱
IKEAで購入したものですが、サイズが丁度良かったので、穴を開けてケースにしてみました。
a0038328_1445810.jpg

a0038328_14451490.jpg

a0038328_14451998.jpg

これでもよかったのですが、

次に余っていたレゴでケースを作成
子供に許可をもらってます(笑)
a0038328_14452463.jpg

a0038328_14453265.jpg

a0038328_14453966.jpg

中のLEDライトも見えるようにしてます。
a0038328_14454622.jpg


クリスマスプレゼントのように飾りを付けても面白いかもです。
[PR]
by mmbrothers | 2012-12-23 14:55 | その他

ブチっという音の対処

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/ラズベリーパイ