2016年5月30日月曜日

Raspbianのテキストエディタはleafpadでいい!

Raspberry PiのRaspbianで今までnanoを使っていたが日本語が使えない
コピー&ペーストができない
などと不便を感じていた。

そんな時にデフォルトでスタートメニューに入っているテキストエディタ、
これ、何?と調べてみたらleafpad
端末で使える。
日本語もコピー&ペーストもできる。
これでいい!


2016年5月29日日曜日

Raspbianのバージョン確認

現在、RaspbianにはwheezyとJessieのふたつのバージョンがあるようだ!
自分のはどっちだ!




lsb_releaseをインストールしてバージョンを確認する。



$ sudo apt-get install lsb-release





lsb_release コマンドを -a オプションを付けて実行すると、コードネームを含めて確認できる。


$ lsb_release -a


結果は古いwheezyだった。


No LSB modules are available.

Distributor ID: Debian

Description:    Debian GNU/Linux 7.8 (wheezy)

Release:        7.8

Codename:       wheezy




あとでバージョンアップしよう!


2016年5月13日金曜日

小さな高級機RiCHO DC-1S

中古で入手

2009年の歴史的カメラ10機種に選定された RICHO DC-1 の改良機 DC-1S、当時、ぜんぜん似てないけどこの高級感がデジカメのライカと言われた。

RICHOも高級機がつくれるんだ!
見た目恰好が良く、多機能、発売時10万円以上したので手が出なかったDS-1Sが中古でたったの9,800円で購入できた。

●撮影素子 1/3インチ 41万画素(有効38万画素)
●レンズ f7.1~f21.3mm(3倍ズーム)F:2.8、4群9枚
●シャッター 静止画 1/8~1/500(メカ)
●動画 1/60~1/100(CCD)
●フォーカス 位相差・三角測量方式
●露出調節 TTL CCD測光方式
●撮影範囲 オートフォーカス:約40cm~無限大
●マニュアルフォーカス:約1cm~約30cm
●広角:近距離、望遠:遠距離方向に合焦
●ホワイトバランス オート
●ストロボ 固定式、GNo.10、発光間隔4.5秒以下
●ストロボ撮影距離 約5m(強制発光時1.1~1.8m)
●ファインダー 実像式ズームファインダー
●バッテリー NiCdスリム3個(48mm×6.1mm×17mm)
●外形寸法 135mm(幅)×22mm(高)×76mm(奥)
●重さ 約255g(バッテリー含まず)


ヤフオクへ

中古を買って一度だけ使っが、バッテリーがガム電池ですぐ消耗、面倒なので保管したまま、まったく使わなかった。
ヤフオクで処分することにした。
-----------------------
2009年の歴史的カメラ10機種に選定された RICHO DC-1 の改良機 DC-1Sです。
身の回り整理のために取り出してみましたが捨てるに惜しいのでコレクションに欲しい方に送料+手数料程度でお譲りしたいと思います。
電池消耗でテストをしてませんが多分動作すると思いますが、未テストなのでジャンク扱いと致します。

JCII 日本カメラ財団が2009年の「歴史的カメラ」10機種を選定
http://www.jcii-cameramuseum.jp/museum/historicalc/2009.html


DC-1S 仕様 http://www.ricoh-imaging.co.jp/japan/dc/past/dc/1s/
商品リスト
・DC-1S(カメラ本体)
・SR41x2個(DC-1S用ボタン電池消耗)
・SRAMカード8MB
・DB-1Sx3個(DC-1S用ニッカド電池欠品)
・DC-1S使用説明書
・DP-1(再生アダプター)
・DR-1Sリモートコントローラ
・CR2025(DR-1Sボタン電池消耗)
・DU-1 for Windows(情報取り込みソフト)
・DU-1 for Windows操作説明書
・DU-1 for Macintosh(情報取り込みソフト)
・DU-1 for Macintosh操作説明書
・DM-1(液晶モニター)
・DB-1Lx3個(DM-1用ニッカド電池欠品)
・DM-1使用説明書
・AC-1(ACアダプター/チャジャー)
・AC-1取扱説明書

(追記)
結果は落札1,500-手数料100-送料1,000=340円だ!

2016年5月3日火曜日

Raspberry Piラジオを作る

自宅でラジオの電波状況が悪い。
それでインターネットラジオを物色した。
見つけたのがこれだ!

ところがradikoに対応してないようだ!
PLANEX MZK-WDPR-R01

それでRaspberry Piが遊んでいるので、それを使って作ることにした。
1.ラジオ構築のベースは私のPaspberry Pi

これには下記が設定済だ!

・Raspberry Pi model B+
・Raspbian OSインストール
・日本語環境設定
・ディスプレー設定
・サウンドの出力先設定
・ネットワーク設定
・Bluetooth設定
・無線LAN設定
・X起動設定
・自動ログイン設定


2.次にラジオに必要なmplayerとrtmpdumpをインストール
・mplayer:SHOUTcast, simulradio.jp, radiko, らじる★らじるの再生に使用
・rtmpdump:radiko.jp、らじる★らじるの受信に使用
・他に:swftools,libxml2-utils
$ sudo apt-get update
$ sudo apt-get install mplayer
$ sudo apt-get install rtmpdump swftools libxml2-utils

3.受信用スクリプト保存場所設定
ここでは/home/piに作るとして、piフォルダを開き、何もないところで右クリック→新規作成→radioと入力

4.更に、ここhttps://gist.github.com/ihsoy-s/5292735からダウンロード(右端Raw→歯車→別名保存)して/home/pi/radioに置く
・play_radiko.sh:radiko.jp受信用のスクリプト
・play_nhk-radio.sh:らじる★らじる受信用のスクリプト

5./home/pi/radio/play_nhk-radio.shはテキストエデターnanoを使ってを開き
$ sudo nano /home/pi/radio/play_nhk-radio.sh

outdirを指定する

# parameter setting
#
pid=$$
date=`date '+%Y-%m-%d-%H:%M'`
playerurl=http://radiko.jp/player/swf/player_3.0.0.01.swf
# outdir="${XDG_CACHE_HOME}/radio/"
outdir="/home/pi/radio/"

playerfile="${outdir}/player.swf"
keyfile="${outdir}/authkey.png"
auth1_fms_file="${outdir}/auth1_fms_${pid}"
auth2_fms_file="${outdir}/auth2_fms_${pid}"
channel_file="${outdir}/${channel}.xml"
mkdir -p ${outdir}

nanoを終了する ........ Ctrl +  x
ファイルを保存する .... y(yes/no)
[enter]

6.これで準備完了、下記をターミナルに入力して聞いてみる

/home/pi/radio/play_nhk-radio.sh r1NHK ラジオ第一
/home/pi/radio/play_nhk-radio.sh r2NHK ラジオ第二
/home/pi/radio/play_nhk-radio.sh fmNHK FM
/home/pi/radio/play_radiko.sh TBSTBS
/home/pi/radio/play_radiko.sh QRR文化放送
/home/pi/radio/play_radiko.sh LFRニッポン放送
/home/pi/radio/play_radiko.sh JORFラジオ日本
/home/pi/radio/play_radiko.sh INTInter FM
/home/pi/radio/play_radiko.sh FMTTokyo FM
/home/pi/radio/play_radiko.sh FMJJ-WAVE
/home/pi/radio/play_radiko.sh BAYFM78Bayfm
/home/pi/radio/play_radiko.sh NACK5FM NACK5
/home/pi/radio/play_radiko.sh YFMFm yokohama



7.最後にRaspberry Piにはスイッチがないので電源ON(バッテリーのスイッチ)でラジオが鳴るようにする
ここでもテキストエデターnanoを使って/etc/rc.localファイルを開き

$ sudo nano /etc/rc.local

'exit 0'の直前に'/home/pi/radio/play_nhk-radio.sh r1'を追加する

# Print the IP address
IP=$(hostname -I) || true
if [ "$_IP" ]; then
   printf "My IP address is %s\n" "$_IP"
fi
play_nhk-radio.sh r1
exit 0

nanoを終了する ........ Ctrl +  x
ファイルを保存する .... y(yes/no)
[enter]

8.ラジオを切るのも電源OFFだ!

9.これでNHK第一を聞くためのSDカードが完成、他の放送を聞くときはこれを修正するか、数枚の放送毎のSDカードを作る


やっぱりスピーカーが欲しい!



イヤフォンで聞いていたが、ラジオを繋がっていて動けない!
Bluetoothイヤフォンにしたら何処にでも行けるようになった。
ところが一日中なのでBluetoothイヤフォンのバッテリーがなくなくのだ!

ジャンク箱を探したら貰ったデスクトップ用のスピーカーがあった。
電源供給が必要、6Vだ!
これもジャンク箱、あった。
接続したら鳴った!と思ったら切れた!
スピーカーのACコネクタに触ると鳴る!切れる!
接触不良と思いシリコーンスプレーを吹き付けたら治った。

【使用方法】

1.放送選局:放送局毎のSDカードを選択してRaspberryPiに挿入
MicroSD放送局
Transcend32GBclase10Xwindow
Transcend8GBclase4NHK第一
Transcend8GBclase4TBS
無印8GBclase2FMヨコハマ

2.ラジオON:RaspberryPiとスピーカーのACアダプターをコンセントに接続、RaspberryPiが起動して1分後に鳴りだす
3.音声調整:スピーカーのボリューム
4.音声ON・OFF:スピーカーのスイッチ
5.選局は一旦RaspberryPi電源OFF後、SDカードを交換して再起動
6.ラジオOFF:RaspberryPiとスピーカーのACアダプターをコンセントから外す


スマホをリモコンにする



SDカードの抜き差しで選局というのはやっぱり使い難い!
それでapacheとphpを利用してスマホリモコンをつくることにした。

1.先ず、play_nhk-radio.shとplay_radiko.shをルートデレクトリーに置くことにした
/home/pi/rajio/から/usr/bin/へコピーする

$sudo cp /home/pi/rajio/play_nhk-radio.sh /usr/bin/play_nhk-radio.sh
$sudo cp /home/pi/rajio/play_radiko.sh /usr/bin/play_radiko.sh

2.バーミッションを忘れずに

$sudo chmod 755 /usr/bin/play_nhk-radio.sh
$sudo chmod 755 /usr/bin/play_radiko.sh

3.ここから本題、apacheとphpをダウンロード&インストール

$sudo apt-get install apache2 php5
$sudo reboot

4.apatch2のデフォルトのユーザー名である「www-data」を「audio」グループに追加する
$sudo usermod -G www-data,audio www-data

5.IPアドレスを調べる
ip a

表示された値の中にinet「192.168.x.x」がIPアドレスなので試しにスマホのブラウザに「http://192.168.x.x/」を入力して「It works!・・・・・」が表示されればOK

これはRaspberry PiにインストールしたApacheのドキュメントルートである「 /var/www/index.html 」のファイルが表示されている

6./var/www/index.htmlを修正して試しに/home/pi/blueblocks/test.mp3ファイルが鳴らすindex.phpをつくる

index.phpをnanoで開き
$sudo nano /var/www/index.php

下記を入力する
<?php
exec("mplayer /home/pi/blueblocks/test.mp3");
?>

これがスマホの「http://192.168.x.x/」から鳴ればOK

7.次にTBS放送を鳴らすindex.phpをつくってみる

index.phpをnanoで開き

$sudo nano /var/www/index.php

下記を入力する
<?php
exec("play_radiko.sh TBS");
?>

これもスマホの「http://192.168.x.x/」から鳴るはずだが鳴らない!

/var/log/apache2/error.logをみたら

/home/pi/radio//auth1_fms_xxxx: Parmission denied

どうやら/home/pi/radio/に書き込めないと言っているようなのでバーミッションを「すべて」にしたら鳴った!

8.テストOKなので選局のためのindex.phpをつくる

nanoが日本語非対応なのでleafpadを使う
$sudo leafpad /var/www/index.php

下記を入力する
<meta charset="UTF-8" />を入れないと日本語が文字化けする
<?php
if(isset($_GET['id'])){
$id=$_GET['id'];
exec("killall mplayer");
if($id=="stop")exec("killall mplayer");
if($id=="1")exec("play_nhk-radio.sh r1");
if($id=="2")exec("play_nhk-radio.sh r2");
if($id=="3")exec("play_nhk-radio.sh fm");
if($id=="4")exec("play_radiko.sh TBS");
if($id=="5")exec("play_radiko.sh QRR");
if($id=="6")exec("play_radiko.sh LFR");
if($id=="7")exec("play_radiko.sh JORF");
if($id=="8")exec("play_radiko.sh INT");
if($id=="9")exec("play_radiko.sh FMT");
if($id=="10")exec("play_radiko.sh FMJ");
if($id=="11")exec("play_radiko.sh BAYFM78");
if($id=="12")exec("play_radiko.sh NACK5");
if($id=="13")exec("play_radiko.sh YFM");
?>
<html>
<head>
<title>Raspberry Pi Radio</title>
<meta name="viewport" content="width=device-width">
<meta charset="UTF-8" />
</head>
<body bgcolor="white" link="white" alink="yellow" vlink="white">
<center>
<table style="color:white" border="8" cellspacing="1" cellpadding="5">
<tr bgcolor="red">
<th>
Raspberry Pi Radio
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=1">NHK第一</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=2">NHK第二</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=3">NHK FM</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=4">TBSラジオ</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=5">文化放送</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=6">ニッポン放送</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=7">ラジオ日本</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=8">InterFM897</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=9">TOKTO FM</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=10">J-WAVE</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=11">bayfm78</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=12">NACK5</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=13">FMヨコハマ</a>
</th>
</tr>
<tr bgcolor="blue">
<th>
<a href="index.php?id="stop">STOP</a>
</th>
</tr>
</table>
</center>
</body>
</html>


IPアドレスの固定化


Raspberry Piラジオをスマホリモコンで使っているが時々呼び出しのhttp://192.168.x.xが変動する。
そのために、その都度IPアドレスを確認する必要があるのだ!
$ ip a

そこでIPアドレスを固定することにした。
現在のIPアドレスは192.168.x.x、このxを固定化する。

自宅のルーターはNEC Aterm WR8160N STモデル、http://192.168.0.1でこれの管理画面を表示する。
--------------
ユーザー;admin
パスワード;xxxxx
--------------
表示されたトップ画面の詳細設定→LAN側設定で下記を確認する、
・IPアドレス:192.168.x.1
・ネットマスク:255.255.255.0
・アドレス割当パターン:自動指定
・割当先頭アドレス:(指定なし)
・割当数:32

上記はIPアドレスが次のように割当てられているということなので
・192.168.x.0:ネットワークアドレス
・192.168.x.1:ルーターのIPアドレス
・192.168.x.2~192.168.x.33:DHCPにより割当てられたIPアドレス32個
・192.168.x.34~192.168.x.254:固定IPアドレスとして利用可能アドレス
・192.168.x.255:ブロードキャストアドレス

固定するIPアドレスは192.168.x.34~192.168.x.254の中から192.168.x.100にした。

ここで注意Raspbianのバージョンによって設定方法が違うのでバージョン確認をする。
結果はWheezy、この場合/etc/network/interfacesを開く
(Raspbian Jessieの場合は/etc/dhcpcd.conf)

$ sudo nano  /etc/network/interfaces

このファイルの赤字部分を修正する。

auto lo
iface lo inet loopback
# iface eth0 inet dhcp
iface eth0 inet static
address 192.168.x.100
netmask 255.255.255.0
gateway 192.168.x.1

allow-hotplug wlan0
# iface wlan0 inet manual
iface wlan0 inet static
address 192.168.x.100
netmask 255.255.255.0
gateway 192.168.x.1

# wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

iface default inet dhcp

nanoを閉じる:ctrl+x
保存:y
再起動:sudo reboot






ボリュームをつける


いま、いろんなスピーカーを試しているが、ボリュームなしのスピーカーもあるのだ!
そんな訳でボリュームを追加することのした。
$sudo leafpad /var/www/index.php

下記に赤字の部分を追加(削除もあるが省略)
<?php
if(isset($_GET['id'])){
$id=$_GET['id'];
if($id=="1"){exec("killall mplayer");exec("play_nhk-radio.sh r1");}
if($id=="2"){exec("killall mplayer");exec("play_nhk-radio.sh r2");}
if($id=="3"){exec("killall mplayer");exec("play_nhk-radio.sh fm");}
if($id=="4"){exec("killall mplayer");exec("play_radiko.sh TBS");}
if($id=="5"){exec("killall mplayer");exec("play_radiko.sh QRR");}
if($id=="6"){exec("killall mplayer");exec("play_radiko.sh LFR");}
if($id=="7"){exec("killall mplayer");exec("play_radiko.sh JORF");}
if($id=="8"){exec("killall mplayer");exec("play_radiko.sh INT");}
if($id=="9"){exec("killall mplayer");exec("play_radiko.sh FMT");}
if($id=="10"){exec("killall mplayer");exec("play_radiko.sh FMJ");}
if($id=="11"){exec("killall mplayer");exec("play_radiko.sh BAYFM78");}
if($id=="12"){exec("killall mplayer");exec("play_radiko.sh NACK5");}
if($id=="13"){exec("killall mplayer");exec("play_radiko.sh YFM");}
if($id=="v1")exec("amixer set PCM 10%");
if($id=="v2")exec("amixer set PCM 20%");
if($id=="v3")exec("amixer set PCM 30%");
if($id=="v4")exec("amixer set PCM 40%");
if($id=="v5")exec("amixer set PCM 50%");
if($id=="v6")exec("amixer set PCM 60%");
if($id=="v7")exec("amixer set PCM 70%");
if($id=="v8")exec("amixer set PCM 80%");
if($id=="v9")exec("amixer set PCM 90%");
if($id=="v10")exec("amixer set PCM 100%");
if($id=="stop")exec("killall mplayer");}
}
?>
<html>
<head>
<title>Raspberry Pi Radio</title>
<meta name="viewport" content="width=device-width">
<meta charset="UTF-8" />
</head>
<body bgcolor="white" link="white" alink="yellow" vlink="white">
<center>
<table style="color:white" border="8" cellspacing="1" cellpadding="5">
<tr bgcolor="red">
<th>
Raspberry Pi Radio
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=1">NHK第一</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=2">NHK第二</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=3">NHK FM</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=4">TBSラジオ</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=5">文化放送</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=6">ニッポン放送</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=7">ラジオ日本</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=8">InterFM897</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=9">TOKTO FM</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=10">J-WAVE</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=11">bayfm78</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=12">NACK5</a>
</th>
</tr>
<tr bgcolor="black">
<th>
<a href="index.php?id=13">FMヨコハマ</a>
</th>
</tr>
<tr bgcolor="blue">
<th>
Vol.
<a href="index.php?id="v1">1</a>
<
<a href="index.php?id="v2">2</a>
<
<a href="index.php?id="v3">3</a>
<
<a href="index.php?id="v4">4</a>
<
<a href="index.php?id="v5">5</a>
<
<a href="index.php?id="v6">6</a>
<
<a href="index.php?id="v7">7</a>
<
<a href="index.php?id="v8">8</a>
<
<a href="index.php?id="v9">9</a>
<
<a href="index.php?id="v10">10</a>
</th>
</tr>
<tr bgcolor="blue">
<th>
<a href="index.php?id="stop">STOP</a>
</th>
</tr>
</table>
</center>
</body>
</html>


2016年5月1日日曜日

RaspberyyPiシステムのバックアップ

RaspberyyPiのシステムが壊れ易いというのでバックアップをとった。
WindowsツールはWin32 Disk Imagerというやつ。
ー退避ー
1.メモ帳で空白ファイルを作り***.imgというファイル名で保存
2.RaspberyyPiシステムのSDカードを挿入しておく
3.Win32 Disk Imagerを起動して***.imgを指定
4.Readボタンを押すとSDカードを自動認識して読込、***.imgの更新退避が始まる
ー復元ー
1.RaspberyyPiシステムのSDカードを挿入しておく
2.Win32 Disk Imagerを起動して***.imgを指定
3.Writeボタンを押すとSDカードを自動認識して書込復元が始まる