So-net無料ブログ作成
検索選択

Raspberry Pi 2 AirPlayサーバーのインストール [Raspberry Pi]

ラズパイをAirPlayサーバーにしてみる。
AirPlayサーバーにすると、
iPhone-->WiFi-->RaspberryPi-->オーディオケーブル-->ミニコンポ
iTunes-->WiFi-->RaspberryPi-->オーディオケーブル-->ミニコンポ
のように、iPhoneにある音楽データをWiFi経由でRaspberryPiに繋いであるミニコンポ
から再生出来るようになる。

まずは、前に停止したデーモンの中で、必要なものを起動する。
% sudo chkconfig dbus on
% sudo chkconfig avahi-daemon on

ラズパイの音はデフォルトだとHDMIに出力するが、
オーディオケーブルを繋いでミニコンポから音を出すように設定する。
% sudo vi /boot/config.txt
  hdmi_drive=2
% amixer cset numid=3 1
再起動
sudo reboot

Volumeの設定
% alsamixer
  ボリュームを80%くらいに設定しておく。
テスト
% speaker-test
% aplay /usr/share/sounds/alsa/Noise.wav
などとして、ミニコンポから音が出ることを確認した。

AirPlayに必要なソフトをインストールする。
% sudo apt-get install libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils libmodule-build-perl

perl-net-sdpをコンパイル&インストールする。
% cd /mnt/hdd1/data/src
% git clone https://github.com/njh/perl-net-sdp.git
% cd perl-net-sdp/
% perl Build.PL
% ./Build
% ./Build test
% sudo ./Build install
% cd ..

shairportをコンパイル&インストールする。
% git clone https://github.com/hendrikw82/shairport.git
% cd shairport
% make
% sudo make install
% cd ..

お試し
% sudo shairport.pl -a AirPi
この状態でiPhoneを確認すると、AirPlayアイコンが出て選択できるようになった。
AirPlayアイコンを押すと iPhone の他に AirPi が選択できるようになる。
AirPiを選択後に 音楽アプリから適当な音楽を再生すると、
iPhoneとミニコンポが有線で繋がってないのにミニコンポから音が出た。
このままだとshairport.pl が実行したままなので、一度CTRL+Cで止める。

ラズパイを起動したときからデーモンとして起動するように設定する。
% cd shairport
% sudo cp shairport.init.sample /etc/init.d/shairport
% cd /etc/init.d/
% sudo vi shairport
  # Required-Start: $network avahi
  DAEMON_ARGS="-w $PIDFILE -a AirPi"
% sudo update-rc.d shairport defaults

そして再起動してみる。
% sudo reboot
起動後にiPhoneからAirPlay->AirPiを選択して音楽再生すると、
ちゃんとミニコンポから音が出た。

副作用?
ラズパイを起動すると、TV画面が勝手にラズパイに切り替わるようになった。
/boot/config.txt を変更したせいかな?

タグ:Raspberry Pi

Raspberry Pi 2 DLNAサーバー [Raspberry Pi]

ラズパイに動画ファイルや写真、音楽ファイルを置いて、
PS3とかテレビからラズパイにあるファイルをネット経由で再生するために、
DLNAサーバーを立ち上げる。

DLNAサーバーであるminidlnaをインストールする。
% sudo apt-get install minidlna

minidlnaの設定を変更
% vi /etc/minidlna.conf
  media_dir=V,/mnt/hdd1/data/samba/movies
  inotify=yes
  notify_interval=1200

minidlnaの再起動
% sudo service minidlna restart

動画ファイルの用意
適当な動画ファイルを /mnt/hdd1/data/samba/movies に置いておく。
前回 sambaを立ち上げたので、PCから共有をかけて、ファイルをラズパイにコピーしてもいい。

PCのブラウザから http://ラズパイのIPアドレス:8200 でアクセスしてみると、
  MiniDLNA status
  Audio files: 0
  Video files: 2
  Image files: 0
とりあえずファイルを2つ置いたのが認識されていることが分かった。

動作確認
TV(BRAVIA) から、
[ホーム] -> [メディア] -> [ビデオ]
と選択すると、画面に "raspberrypi: minidlna" と表示されたので、それを選択
さらに [Video] -> [All Video] と選択すると、
置いておいたファイルが表示されたので、1個目のファイルを選択すると
動画が再生された。

これでラズパイにある動画ファイルをテレビからネットを通して直接再生できた。

タグ:Raspberry Pi

Raspberry Pi 2 Windowsのファイルサーバー [Raspberry Pi]

前にRaspberry Pi にUSB HDDを繋げた ので、それをファイルサーバー化して
Windowsマシンから共有できるようにしてみる。

sambaをインストールする。
% sudo apt-get install samba

Windowsから共有するディレクトリを作る。
% mkdir /mnt/hdda1/data/samba

sambaの設定をする
% sudo vi /etc/samba/smb.conf
  [global]
   interfaces = 192.168.0. 127.0.0.0/8 wlan0
   bind interfaces only = yes
   hosts allow = 192.168.0.
   max log size = 100
   security = user
  [public]
   comment = Public
   path = /mnt/hdd1/data/samba
   ;public = yes
   read only = no
   browseable = yes
   valid users = (username)
  ネットワークからのアクセスをローカルネットからのアクセスだけを許可して、
  Windowsからはpublicという名前で共有がかけられるようにする。

sambaの再起動
% sudo service samba restart

パスワードの設定
Windowsとラズパイでユーザー名は同じだけど、パスワードが違うので、
sambaにWindowsのパスワードを設定しておく。
% sudo pdbedit -a (username)
 Windows上のパスワードを設定


Windowsマシン上で、Explorerを起動して、
\\(ラズパイのIPアドレス)
にアクセスすると、"public" が見えるので、そこをFドライブとして割り当てて共有する。
これで、Windowsからファイルサーバーとして見れるようになった。


アクセステスト
Windowsマシン上でffmpegを使って動画変換をして、速度が問題ないかをみてみた。
変換前のファイルは 3分25秒 の動画。
まずは、WindowsのローカルディスクでMP4ファイルへ変換してみる。
-> 変換時間 3分59秒
動画ファイルをラズパイのドライブに置いて、変換後ファイルもラズパイのドライブに出力してみた。
-> 変換時間 4分40秒
ラズパイは無線LAN使ってるのに、思ったほど遅くなかった。
ネットワークドライブとして十分使える感じ。
(ファイルアクセスより変換処理の方が重いのかも知れないが・・・)

これでUSB HDDのNAS化に成功。

タグ:Raspberry Pi

Raspberry Pi 2 赤外線 KURO-RS [Raspberry Pi]

USBで繋ぐ赤外線学習リモコン 玄人志向のKURO-RS が手元にあったので、
Raspberry PI 2に繋いで遊んでみた。

まずPERLでシリアルポートを使うためのモジュールをインストールする。
% sudo apt-get install libdevice-serialport-perl

そしてRaspberry PI 2に直接繋いでみる。
lsusb コマンドを使って繋がってるかを見てみたが、それらしいデバイスが見つからない。
繋ぐと /dev/ttyUSB? というファイルが出来るはずなのに、それもない。
どうやら認識していない。

やっぱり、消費電力の問題で動かないのかを疑ったので、この前買ってきたセルフパワーの
USB-Hubを経由して繋いでみると、lsusbコマンドでデバイスが見えるようになった。
やっぱりラズパイのUSBには消費電力が大きいものは直接使えない感じ。
デバイスが見えるようになったけど、まだ /dev/ttyUSB? は見つからない。

どうやらベンダIDなどの設定が必要らしい。
% sudo modprobe ftdi-sio vendor=0x0411 product=0x00b3
すると、"vendorオプションやproductオプションなど知らん" と怒られる。
どうやらカーネルが新しくなってから使い方が変わったらしい。
% sudo modprobe ftdi_sio
% sudo echo "0411 00b3" > /sys/bus/usb-serial/drivers/ftdi_sio/new_id
そしてシステムのログを見る
% dmesg
  ftdi_sio 1-1.5.3:1.0: FTDI USB Serial Device converter detected
  usb 1-1.5.3: Detected FT232BM
  usb 1-1.5.3: FTDI USB Serial Device converter now attached to ttyUSB0
お~
ttyUSB0にアタッチしたって出てる。
% ls -l /dev/ttyUSB0
するとファイルがあることが確認できた。
やっとこれで使える状態になった。

ということで、付属の irrc.pl で動作確認してみる。
% ./irrc.pl -r
として、ミニコンポのリモコンの電源ボタンをKURO-RSの受信部に向かって押すと、
受信したデータが表示された。
その表示されたデータを irrc.pl のファイルのvPowerという名前で書き込んでやる。
そして、KURO-RSの送信部をミニコンポに向けて、
% ./irrc.pl vPower
これでミニコンポの電源がONになったりOFFになったりした。
ちゃんと学習リモコンとして動くようになった。

今度は、irrc.pl を改良して、2つのファイルを作った。
赤外線から受信したデータをファイルに保存するコマンド irlearn.pl
ファイルのデータを読み込んで赤外線から送信するコマンド irsend.pl
同じように、ミニコンポの電源ボタンを覚えさせた。
% mkdir onkyo
% ./irlearn.pl onkyo/power.dat
そして、そのデータを送信してみる。
% ./irsend.pl onkyo/power.dat
うまく動きました。

TVのリモコンを覚えさせてみようと思ったんだけど、
調べてみると赤外線じゃなくて無線方式だったことが判明。
どうりでリモコンをTVに向けなくても反応してるなと思ってたさ・・・
うちのTVには使えないのか・・・

エアコンのリモコンを覚えさせてみた。
覚えるのは問題ないけど、それをエアコンに向かって送信してみたが、反応なし。
エアコンはリモコンと本体の間でたくさんの情報を送ってるようなんだけど、
KURO-RSは240バイトまでしか送受信出来ない。
うちのエアコンには使えないみたい・・・

ここで、気づく。
他に赤外線リモコンで操作するものがない・・・
うちではミニコンポにしか使えないのか~
あまり意味ないなー

最近息子にプラレールを買ってあげたら、毎日遊んでいるんだけど、
プラレールの片側だけを使って走らせるアドバンスってのがあって、
それを赤外線リモコンを使って前後に動かせる
プラレールアドバンス IRコントロール ってのがあることを知った。
Engadgetの記事参照
買って遊んでみたいな~

大人のおもちゃだな~

タグ:Raspberry Pi
メッセージを送る