Pine Tree'S electrical page

ゆくかわのながれはたえない

改正航空法

ここに改正航空法についてとてもわかりやすく解説されていらっしゃる方がおられました。疑問点がほぼ解消されました。ほんとうに助かります。心より感謝致します<(_ _)>。

 ドローンと航空法(改正航空法対応版) - EAGLET

 

ドローン規制法案では、人口集中地域ではドローンの飛行が原則として禁止されます。人口集中地域かどうかは次の地図を参照すれば確認できる。当然ですが、23区内は殆どだめですね。

人口集中地域

 

今さら玄柴(Sheevaplug +)の復習

5年くらい前に購入した玄柴を今さらながら復習してみた。今でも十分なスペックである。Raspberry PIが備えていないeSATAを備え、LANも1000BASE-Tなので、高速大容量ファイルサーバ等として現役復活させる価値ありと判断。RaspberryPI 3もUSBは2.0であり、高速ディスクアクセスはできないので、そういう意味でも価値がある。RaspberryPI 4はきっとUSB3.0が付くんだろうけど(^^;
【西川和久の不定期コラム】ACアダプタサイズのLinuxマシン! 玄人志向「玄柴」 - PC Watch

玄柴は発売台数が少なかった上、eSATAを動かすための敷居が高かったせいか、今さらの情報収集は大変難航した。さすがキワモノシリーズ。しかし最近の一連のRaspberryPIの工作で鍛え上げた今なら、なんとかなるかもしれないと思って頑張ってみたところ、次のページに辿りついた。

Debian(squeeze) @ 玄柴 再び: ボンタくんの備忘録

Debian installer for plug computer

注意すべきは、2つめのページにリンクされているブートイメージの中からeSATA対応版の「SheevaPlug with eSATA: uImage and uInitrd」を選択すること。これを間違えるとeSATAが動かない。Debianのバージョンは8(jessie)。尚、eSATAを動かすためにはU-bootも適切なものを選択する必要がある。ちなみに玄柴にデフォルトでインストールされているU-bootはeSATAが使えないという問題を抱えている。

U-bootはいろいろ試してみたが、次のものがeSATAもちゃんと動いて調子がよかった。

Index of /~tbm/u-boot/2011.12-3/sheevaplug

U-bootの更新はこちらを参照した。尚、U-bootの更新に失敗すると簡単に玄柴が文鎮化(レンガ化)するので注意。万が一文鎮化した場合は、JTAGとUSB直結によるここに記載された手順で復旧できる。※尚、このページに記載されているフィルタドライバlibusbはUSBを自在に操れるツールで大変興味深い。機会があれば習得したい。

U-bootの更新が完了したら、次は以下の手順でDebian8(jessie)をインストール。

手順1:まず上記uImageとuInitrdをダウンロードしたら、これをMS-DOSフォーマットで初期フォーマットされたSDカードにコピーする。フォーマットは、FAT32アロケーションユニットサイズは32キロバイトとした。

手順2:SDカードを玄柴に挿入し、玄柴の電源をオンする。

手順3:玄柴をUSBシリアルで接続するためのドライバを母艦にインストール。但しWindows8.1だとドライバの署名が有効期限切れでインストールできないので、下記ページの「手順2」に従って署名のチェックを外す必要がある。結構面倒だ。ドライバは、付属CD-ROMに収録されていたFTDIの2.4.14.0を使用。

Windows8/8.1で署名なしドライバをインストールする方法/テストモードにする方法 - ぼくんちのTV 別館


手順4:母艦PCから玄柴にターミナル接続。シリアルポートはCOM4,通信速度は115200。

手順5:コンソールに以下(太字部分)を入力。

Streaming disabled
Write allocate disabled
USB 0: host mode
PEX 0: interface detected no Link.
Net: egiga0 [PRIME], egiga1
Hit any key to stop autoboot:0 ←0 になる前に Enter

Marvell>> setenv arcNumber 2678eSATAを使うために必要
Marvell>> saveenv ← 保存
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
Marvell>>

Marvell>> mmcinit ← SDカードの接続

SDHC found. Card desciption is:
Manufacturer: 0x13, OEM "KG"
Product name: "SD08G", revision 0.0
Serial number: 3223050542
Manufacturing date: 9/2010
CRC: 0x00, b0 = 0
Marvell>> fatload mmc 0:1 0x00800000 /uImage

reading /uImage

1434220 bytes read
Marvell>> fatload mmc 0:1 0x01100000 /uInitrd

reading /uInitrd

3172851 bytes read
Marvell>> setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most
Marvell>> bootm 0x00800000 0x01100000


あとは上記1つめのページの手順に従ってインストールすればよい。インストールには2~3時間かかるので暇な時に行ったほうがよいw 

インストールが完了したらU-bootの環境変数を次のように設定する。ここを参照。

(SDHC カードの場合)

Marvell>> setenv bootargs_console console=ttyS0,115200
Marvell>> setenv bootcmd_mmc 'mmc init; mmc init; ext2load mmc 0:1 0x00800000 /uImage; ext2load mmc 0:1 0x01100000 /uInitrd'
Marvell>> setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_mmc; bootm 0x00800000 0x01100000'
Marvell>> saveenv

設定した環境変数の内容はprintenvコマンドで見ることができる。短縮形priでもOK。

電源オン時にSDカードがうまく認識しなかったので、環境変数bootcmd_mmcでmmc initを2回叩いている。自分の玄柴ではこれでうまくいっている。必要に応じてsleepコマンドを挿入してもよいかもしれない。

環境変数bootdelayの値は、電源オン時やresetコマンド入力時に表示される「t any key to stop autoboot:」の値である。デフォルトは3秒に設定されているが、これでは慌ただしいのでのんびりな自分は20秒に設定した。

U-bootのコマンドプロンプトからSDカードに格納されているDebianを起動するには、

Marvell>> reset

とする。

Debianが起動した後、uname -aとしてみると次の内容が表示された。

Linux debian 3.16.0-4-kirkwood #1 Debian 3.16.7-ckt11-1+deb8u4 (2015-09-19) armv5tel GNU/Linux


続いて、dmesgコマンドでeSATAが接続できたか否かを確認する。HDDのパーティションの作成やフォーマットは次のページを参考にさせて頂いた。

第101回 玄柴(KURO-SHEEVA)ファーストインプレッション:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

HDDの取り付けや取り外しはHDDの電源オンオフで行ったほうが母艦のターミナルソフトがフリーズしなくてよい。ちなみに、USBシリアル接続したコンソールにしか、HDDを接続/切断した時のメッセージは表示されなかった。

Wifiの設定はここを参照した。apt-get upgradeが必要なので他のハードウェアに影響がないか注意。upgradeする前にSDカードのバックアップをとっておいたほうがよいかもしれない。USBドングルはこれを使った。

wpa_supplicantの設定はここを参考にした。

/etc/wpa_supplicant/wpa_supplicant.confの内容は以下のようにした。
network={
ssid="########"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
#psk="########"
psk=5ad9cda232fd5d3305859343769e8842879a4a731c5ed086dd502c7e7c11d69a
}

以上の設定を行ったら、
service wpa_supplicant start
としてwpa_supplicantを起動させてみる。

あとはwpa_supplicantがブート時に自動で起動するようにする。
私は/etc/rc.localに次の起動時スクリプトを書いた。

#service wpa_supplicant start
sleep 30
#ifdown wlan0
#ifup wlan0

boot時に、A Start Job Is Running for LSB- Raise Network Interfaces.が煩いので、ここを参考に、/etc/default/networking の CONFIGURTE_INTERFACES を no に設定した。 

WIFIドングルによってだいぶ個性があるようなので、自分の環境で微妙なタイミング調整を行う必要があるかもしれない。それが面倒なら有線LANを選択すればよい。


以上で玄柴が蘇った。いいおもちゃができた^_^;

尚、ファイルサーバとして使う場合、玄柴用とHDD用に2系統の電源が必要になってしまうので、まずは電源を1つに統一したい。

玄柴の電源は容量が足りてないようなので、大容量の電源を用意する必要もありそうだ。


ここあたりを参考に、X環境の構築とUSBディスプレイの接続を試みるのも面白いかもしれない。

USB-DACの認識についてはこの辺りこの辺りが参考になるかも。

ミュージックプレーヤに仕立てあげる場合は、
sudo apt-get install mpd mpc
sudo apt-get install alsa-base alsa-utils
としてソフトウェアをインストールする。
alsamixerを動かすには、/etc/asound.confを作成し、ここに以下を記述する。ちなみにaplay -lとすればデバイスIDが取得できる。ここを参照した、

pcm.!default {
type hw
card 1
}

ctl.!default {
type hw
card 1
}



※※参考にさせて頂いたページ※※

デフォルトのU-bootの環境変数一覧
U-bootのマニュアル(日本語)素晴らしい。





==以下は2017-9-18に追記==

久しぶりに玄柴をいじるので接続の仕方から。
OSがWindows10に代わったのでシリアルのドライバのインストールから。
付属CD-ROMのドライバでよいのだが署名なしなのでセーフモード経由でインスト。
Windows8/8.1で署名なしドライバをインストールする方法/テストモードにする方法 - ぼくんちのTV 別館

母艦PCからTeraTermで玄柴にターミナル接続。シリアルポートはCOM4,通信速度は115200とした。

玄柴につないだHDDをSambaで共有する手順はこのページに従った。
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0101?page=2


まずはdfコマンドで、現在マウントされているディスクの状態を見る。-hオプションは、通常KB単位で表示される容量をMBやGBで表示してくれる。
df -h


cfdiskでパーティションを作成。プライマリでOK
cfdisk

※2TBを超える場合はlabelを聞かれるので「gpt」を選択

続いてフォーマット
mkfs.ext4 /dev/sda1

続いて/dev/sda1のマウント先を作成しアクセス権を設定

mkdir /var/samba
sudo chmod 777 /var/samba

Linuxトラブル対策大全 - Sambaの共有フォルダにファイルが書き込めず失敗してしまう:ITpro


試しにマウントしてみる
mount /dev/sda1 /var/samba


起動時に自動的にマウントされるようにするには/etc/fstabに次の内容を追記

sudo nano /etc/fstab

UUID=9fcafa9d-7650-461c-80bc-7acbedb8eed1 /var/samba ext4 relatime 0 0
(UUIDが9fcafa9d-7650-461c-80bc-7acbedb8eed1の場合)

尚、UUIDはここ
http://qpshinqp.hateblo.jp/entry/20110214/1297698515
を参考に次のコマンドで調べた。
ls -l /dev/disk/by-uuid/ | grep sda1


※ちなみにUUIDはパーティション作成すると変わってしまうのでパーティション作成の度に設定し直す必要がある。


続いてこことかを参考にsambaをインストール
http://debianj.com/ubuntu/install/samba

sudo apt-get install samba

sudo mkdir /var/samba
sudo chown nobody:nogroup /var/samba
sudo chmod 777 /var/samba


smb.confは次のように設定

sudo nano /etc/samba/smb.conf


[global]

## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of

workgroup = WORKGROUP

dos charset = CP932
unix charset = UTF-8
display charset = UTF-8
map to guest = Bad User

[Share]

path = /var/samba
writable = yes
guest ok = yes
guest only = yes
create mode = 0666
directory mode = 0777
share modes = yes



続いてSambaを起動

sudo /etc/init.d/samba restart

後でSambaを停止する場合は
sudo /etc/init.d/samba stop

http://www.turbolinux.co.jp/products/server/11s/user_guide/sambaboot.html



自動起動の設定は

sudo nano /etc/rc.local
に以下2行をexit 0の前に追加すればよい


sudo chmod 777 /var/samba
sudo /etc/init.d/samba restart

exit 0



フォーマットをいろいろ試してみたければこれらを参考に
Linuxファイルシステムをまとめてみました - Qiita
LinuxにおけるFAT32フォーマットの方法 - かえでのWebログ
大容量HDDのFAT32でのフォーマット(Linux) (r271-635)
http://qiita.com/ikuwow/items/c5832fd823e869825c80USB外付けHDDをext4にフォーマットする手順 - Qiita




※玄柴はshutdownがいちいち面倒なのでボタンを付けたい。
http://jellyware.jp/kurage/raspi/shutdown_button.html

aitendo 3.5 inch LCD (waveshare)とIrberryDACもしくはSabreBerry+ をRaspberry pi Bで両立させる (インターネットラジオ)

English (Machine translation)

0.イントロ ダクション

 aitendo 3.5 inch LCDIRberryDACもしくはSabreBerry+Raspberry pi Bで両立させることができました。何故こんなことをやろうと思ったかというと、Volumioとかはよくできたソフトなのですが、使うにはパソコンやスマートフォンが必要で、これが意外とめんどくさい。曲や局を変えたいだけなのにいちいちパソコンやアプリケーションを立ち上げなければならない。パソコンをつけっぱなしにすればよいが、それでは電気代が嵩む、こんなところです。単に私が面倒くさがりなだけですね^_^; 

 尚、Raspberry pi のタイプごとに使用するimageや設定方法が異なりますのでご注意ください。

 動画の音が悪いのは撮影したスマホのせいです(^^;。生ではちゃんとハイレゾの音がでてますw。タッチパネルも全く問題なく動作してますので、Raspberry pi の応用範囲がグッと広がるのではないかと思います。以下、かなりざっとですが、今回辿った手順を備忘録の代わりにメモしておきます。

 

1.ハードウェアの設定

 

 Raspberry pi Bでは、I2Sの信号線が全てP5ピンヘッダから出ていますし、LCDのPINソケットは背が高いので、LCDを取付けても隙間からうまく配線を引き出すことができます。Raspberry pi 2 や B+の場合、SabreBerry+を使う場合のピン配置は、こちらを参照してください。

 基盤にLCDを取付けた状態で、基板面からLCDまでの高さが十分にとれずにLCDが浮いてしまうかもしれません。やり方はいろいろありますが、例えば、基板の裏面側のピンの端子からハンダづけで配線を引き出してもよいでしょう。Raspberry pi 2 や A+ B+の場合はこの方法でしょうか。Raspberry pi Bが新品であればP5のピンヘッダを基板の裏面側に立ててLCDとの干渉を避けるという作戦もあります。少し強引ですが、秋月電子通商で売っている安価なリボンケーブルを使うという手もあります。但しリボンケーブルのコネクタは10ピンなので2ピン余ります。私は100均で買った筐体との関係でリボンケーブルを用いる方法を選択しました。LCDを基板に直付けせず、筐体にスペースがあるのであればこういう選択肢もあります。

 電源5VはP5ピンヘッダから取り出してIrberryDAC に供給します(もちろんIrberryDAC の外部電源端子から供給してもOKです)。上の動画ではRaspberry pi Bのはんだ面の5VPINからIrberryDAC用の電源を引き出しています。

 LCD側のPINの仕様はこちらを参考にしました。PIN番号:3, 5, 7, 8, 10, 12, 13, 15, 16は未使用です。特にBITCLOCK(PCM_CLK)と当たる12PINが未使用なのでRaspberry pi 2やA+、B+とかでも大丈夫です。上のビデオではRaspberry pi 2を使っています。Adafruitの2.8inch piTFTもピン配置を見る限りいけそうですね。 

f:id:chibinari1965:20150902233657j:plain

f:id:chibinari1965:20150902233108j:plain

2.ソフトウェアの設定

 2-1.Raspberry PI 2 , B+ ,A+, B共通

まず、こことかここに記載されているリンク先からイメージファイルをダウンロードし、これを書き込んだSDカードを作成します。

続いて、このページの手順に従い、Raspbianの起動時にIRberryDACのモジュールが組み込まれるように設定します。HyfiberryDacのモジュールですが問題ありません。具体的にはこんな感じです。

/etc/modulesを開き、snd_bcm2835の先頭に#を付ける(コメントアウトする)。
/boot/config.txtを開き、dtoverlay=hifiberry-dacを追記する。

※尚、残念ながらこのモジュールを組み込むとXWindowの動作が不安定になりました(DACの動作には問題ありません)。どうもLCDのドライバが怪しいです。あと、ファームウェアのアップデート(rpi-update)を行うと音が鳴らなくなってしまいました。とにかくハマりどころ満載なので、そういうのが好きな方以外は、なんでもかんでも機能させようと、あまり欲張り過ぎないほうが無難です^^; 今後のアップデートを待ちましょうw 

※↑ waveshareのWIkiにアップされているイメージを使い、sudo apt-get update したところ解決しました。hifiberry-dacを組み込んだRaspberry Pi2でもXWindowは正常に動作しています(2015.9.18)。

/etc/modulesのsnd_bcm2835の記述をコメントアウトしないようにするとうまくいくようです。HifiberryDacのページではsnd_bcm2835の記述をコメントアウトするように指示していますが、コメントアウトしなくても今のところ問題なく動作しています(2015.9.28)。

 続いて、/etc/asound.confを作成して以下を書き込みます。

pcm.!default {

type hw card 0
}
ctl.!default {
type hw card 0
}

続いて、sudo reboot で再起動。

最後にドライバがちゃんと組み込まれていることをaplay -lで確認します。

これでRaspberry pi からIRberryDACにI2S信号が出力されるようになります。

 2-2.Raspberry PI B+ ,A+, B

Raspberry PI Bでamazonに掲載されているこちらのimageを試したところ、XWindowが正常に動作しました。尚、ダウンロードの際に画面にエラーがでますが、気にせず突き進んで下さい)。IRberryDACからもちゃんとハイレゾの音が出ています。モジュールの組み込みは上の方法ではなく、こちらに従って行います。この方法でセットアップした場合、コントロールパネルを使用する際、タッチパネルの操作がおかしくなりますので、次のコマンドでキャリブレーションを行ってください(下記のコマンドは連続する一文です)。キャリブレーションの詳細はこちらに詳しく記載されています。

sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_calibrate

今年の3月にRaspberry pi 2を買ってから、旧いBの使い道に迷ってましたが、これでよい利用方法が見つかりました(2015.9.8追記)。Raspberry pi 2は動作は早いですが、ソフトウェアの安定性はまだBのほうが上ですね。

3.Volumeコントロールの設定

 

IrberryDACに搭載されているPCM5102Aはハードウェアボリュームの機能が無いのでalsamixerが使えません。そこでSOFTVOLを動作させます。
そのためには以下のようにします。
ファイル /etc/mpd.confを開く。
sudo nano /etc/mpd.conf
この行↓の先頭の♯を外して有効にする。
mixer_type "software"
リブートする。
sudo reboot
尚、ボリュームの調節は例えば次のようにします。

mpc volume +50

mpc volume -20

mpcのコマンドを使いこなしたい場合は例えばこちらを参照してください。

尚、後述するコントロールパネルをインストールすれば、タッチ操作でボリューム調節ができるようになりますのでコマンドによる制御はあくまで動作確認用です。

4.自動ログイン設定

 

こちらの手順に従い、自動ログイン設定をしておきますと、いちいちIDとパスワードを入力しなくて済むので便利です。

 5.コントロールパネルのセットアップ

 

続いて、adafruitのサイトで紹介されているコントロールパネルをセットアップします。英語ですが、読みやすいですし、しっかり書かれていますので、私でも理解できました。具体的にはこのようにします。

6.自動起動設定

 

6-1.shのスクリプトを作成する。スクリプト名は例えばstartpanel.shとします。

#!/bin/sh
mpc play
wait
cd /home/pi/pi-radio
sudo python radioplayer.py

6-2./etc/rc.localを次のように編集します。exit 0 の直前に記述します。

sudo nano /etc/rc.local

 

mpc clear
cd /var/lib/mpd/playlists/
mpc load radio.m3u
cd /home/pi/pi-radio
sh startpanel.sh
wait

尚、radio.m3uファイルは前の記事を参考にして下さい。

 

7. 無線LAN自動接続設定

 

こちらを参考にして設定します。

/etc/wpa_supplicant/wpa_supplicant.conf

/etc/network/interfaces

を設定します。/etc/wpa_supplicant/wpa_supplicant.confの一例です。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="########"
psk="########"
proto=WPA
key_mgmt=WPA-PSK
pairwise=TKIP
auth_alg=OPEN
}

ちなみに、eth0は有線LAN、wlan0やwlan1は無線LANを示してます。無線のみで接続する場合、eth0の行はコメントアウトしたほうが安定する場合があります。/etc/network/interfacesの一例です。

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
#iface wlan0 inet manual
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
#iface wlan0 inet manual
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

#auto wlan1
#allow-hotplug wlan1
#iface wlan1 inet manual
#wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

 以上でセットアップ完了です。うまくできていればリブート後、コントロールパネルが開きます。

 

8.ネット接続時の問題


 Raspberry pi のネット接続機能の立上りのタイミングによってIRberryDACがうまく起動しないことがあります。5.自動起動設定のスクリプトにwaitを入れているのはそのためです。sleepを設定してもよいかもしれません。WiFI接続がうまくいかない時はWiFiドングルの品質が原因であることも多いです。私が試したドングルの中ではこちらが最も安定しました。

 

9.ソフトウェアキーボードの登録

 

 X-Windowがうまく起動している場合はソフトウェアキーボードをスタートパネルに登録しておくと便利です。具体的にはmatchbox-keyboardというソフトウェアをダウンロード、コンパイル、インストール、これをスタートパネルに登録します。設定はこちらこちら参照してください。以下のような起動スクリプトを作成します。

sudo nano /usr/bin/toggle-matchbox-keyboard.sh

#!/bin/bash
#This script toggle the virtual keyboard

PID=`pidof matchbox-keyboard`
if [ ! -e $PID ]; then
killall matchbox-keyboard
else
matchbox-keyboard -s 50 extended &
fi

 これに忘れずに実行権限を設定します。

sudo chmod +x /usr/bin/toggle-matchbox-keyboard.sh

デスクトップ定義ファイルを設定します。

sudo nano /usr/local/share/applications/toggle-matchbox-keyboard.desktop

[Desktop Entry]

Name=Toggle Matchbox Keyboard
Comment=Toggle Matchbox Keyboard
Exec=toggle-matchbox-keyboard.sh
Type=Application
Icon=matchbox-keyboard.png
Categories=Panel;Utility;MB
X-MB-INPUT-MECHANSIM=True

以上で登録完了です。

 

10.スタートパネルへのradio-playerアイコン登録

 

X-Windowがうまく起動している場合、次のようにファイルを編集することで、スタートパネルのアクセサリにradio-playerのアイコンを登録することができます。これでタッチパネル操作でいつでもradio-playerを起動させることができるようになります。この辺を参考にしてみてください。

su pi

sudo nano /usr/local/share/applications/pi-radio.desktop

[Desktop Entry]
Name=Toggle pi-radio
Comment=Toggle pi-radio
Exec=/home/pi/pi-radio/startpanel.sh
Type=Application
Icon=matchbox-keyboard.png
Categories=Panel;Utility;MB
X-MB-INPUT-MECHANSIM=True

尚、アイコンはお好みで変更してください。アイコンの画像は次のフォルダに保存されています。

/usr/share/pixmaps 

続いて、忘れずにstartpanel.shに実行権限を設定します。

sudo chmod +x /home/pi/pi-radio/startpanel.sh  

 

11.デスクトップへのアイコン(ショートカット)の登録

 

デスクトップにradio-playerパネルのアイコンを置きたい場合は 10.で作ったファイルを以下のようにしてコピーするだけです。

sudo cp /usr/local/share/applications/pi-radio.desktop /home/pi/Desktop

デフォルトでインストールされているアイコンのファイルは次のディレクトリに格納されていますので、上記と同じように/home/pi/Desktopにコピーすればデスクトップにアイコンを作成することができます。

/usr/share/applications

例えば

sudo cp /usr/share/applications/lxterminal.desktop /home/pi/Desktop

とするとデスクトップにLXDEターミナルのアイコンが作成されます。

  

12.今後の展開

 

  タッチパネルLCDとI2Sが両立したことで、色々と応用が効きそうです。先日の時計機能を組み合わせても面白いかもしれません。まずはpythonをしっかり勉強したいと思います。例えば時計のHPからshスクリプトを実行してプレーヤ操作画面を表示させるとか。例えばこのページなどが参考になりそう。

 今回はIrberryDACを使いましたが、I2S入力のハイレゾDACであれば他のDACでも同じことができるはずです。例えば、こういうのとかこういうのとか。 

 ピンの接続図ぐらいは載せておいたほうがよさそうですね。時間のあるときにやります。ピン配置

 

 13.改善予定

 

・MPCRADIOのパネルで最後の局までめくった際に先頭に戻るようにする。Webベースでパネルを作りなおしても面白いかも。そうすればマウスポインタも動かせる。

・パネルから時計、時計からパネルとダイレクトに表示切り替えができるようにしたい。これもWebベースで実現か。

・時計のWebページに更新ボタンを設ける。 

 

<注意!>以上の工作ではAC電源を扱いますので、感電や火災等のリスクが常に伴います。本稿の内容を再現される方は、ある程度、電子工作について十分な経験と知識がある方を想定しています。本稿を再現されて事故等が発生しても当方は一切、責任を負いませんので、あくまで自己責任にてお願い致します。

 

 

 

 

Raspberry Pi デスクトップのカスタマイズ

1.VNCサーバの接続方法

 X Window のデスクトップをWindowsで表示・操作できるようにする。

こじ研(Raspberry Pi)

 

2.デスクトップのカスタマイズ

ChromiumでKIOSK端末

Cromium表示中に電源ブチした時のキャッシュクリア

Raspberry Pi メモ (35) デスクトップのカスタマイズ

Jun's Homepage

 Xのキーボード操作

Alt+Tab
アクティブ Windowが切り替わる。

Ctrl + Alt + Backspace
X Window 再起動

Ctrl + Alt + Delete
システム再起動

Ctrl + Alt + F*
CUI のコンソールに切り替わる

Alt+矢印
デスクトップを切り替える

 

 

MPDとLCDでRaspberry PIをKIOSK端末化

Adafruitのサイトに掲載されているこれを試してみました。

ふーむ、ツールはPIのSDカードに母艦PCでコピーし、PIで/bootから下記のディレクトリにコピればよいのか。

まずは母艦PCでSDカードの/bootにpi-radioのディレクトリ名でツールを保存しておこう。PI側は以下の手順でセットアップ。

まずはMPDとMPCのインストール

sudo apt-get install mpd mpc

続いてディレクトリを作り、
mkdir /home/pi/pi-radio

/bootに移動し、
cd /boot

pi-radioディレクトリをコピー。
cp -r pi-radio /home/pi/

続いてコピー先のディレクトリに移動し、
cd /home/pi/pi-radio

ここにあるスクリプトradioplayer.pyを実行する。
sudo python radioplayer.py
 
おお、動いたぞ!
 
備忘録的にmpdの使い方をメモっておきます。
 /var/lib/mpd/playlists/にプレイリストファイル(ファイル名は何でもよい)を作る。ここではファイル名をradio.m3uとする。
sudo nano  /var/lib/mpd/playlists/radio.m3u

中身は例えばこんな感じにする。

#Venice Classic Radio Italia
http://109.123.116.202:8010/
#FM - BOSSA NOVA HITS
http://205.164.62.22:10068
#Linn radio Classical
http://89.16.185.174:8004/stream
#Linn radio Jazz
http://89.16.185.174:8000/stream
#Caffe de Paris
http://184.173.142.117:15628/stream

 

 

ラジオ局のURLはhttp://www.shoutcast.com/の画面からダウンロードしたファイルの中身を覗いて作ればよい。

あとはmpcのコマンドで動かせばよい。
mpc clear
mpc load /var/lib/mpd/playlists/radio.m3u
mpc play
mpc playlist

インターネットラジオの簡単なテストは下記のようにして簡単にできます(Linn Radio)。

$ mpc add http://89.16.185.174:8003/stream
$ mpc add http://89.16.185.174:8000/stream
$ mpc add http://89.16.185.174:8004/stream
$ mpc play

今回は以下のサイトを参考にさせて頂きました。

yotazo.hateblo.jp

 

Raspberry PI で正確な時計+天気予報

 ずいぶん前にArduinoで天気予報が表示される時計を作りましたが、安いLCDが簡単に手に入るようになりましたので、Raspberry PI でもう少し大きなLCDを使った時計を作りたいと思っていました。

 そんな矢先、ネットサーフィンしてたら私がやりたいと思っていたことを既に実現されている方がいらっしゃいましたので、早速、私も作ってみました。ブログ主の方、本当にありがとうございます<(_ _)>。こちらの記事です。Arduinoの時もそうでしたがParseの実装は細かい調整が必要なので老眼の私には有り難いです。

[Raspberry pi] LCDディスプレイを取り付けて天気予報付き置き時計にする | o24ブログ

わたしの3.5インチLCDは前回書いたaitendoのものですが、たぶんほとんど同じものではないかと思います。問題なく再現できました。

Raspbianがきちんとセットアップされていれば、まずこちらを実行してchromeとかをインストールし、

sudo apt-get install chromium-browser ttf-mscorefonts-installer unclutter x11-xserver-utils

続いて、

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart 

として下記の内容を記述するだけです。※若干、ディレクトリ名が違う場合があります。

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash

# CHANGED
#@xscreensaver -no-splash
# BEGIN ADDED
# Chromium parameter references:
# http://peter.sh/experiments/chromium-command-line-switches/
@rm -rf ~/.cache/chromium
@sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences
@chromium --kiosk --no-first-run --start-maximized --user-data-dir http://util-o24.parseapp.com/weather
# Hide mouse
@unclutter
# Disable screensaver
@xset s off
# Disable screensaver blanking
@xset s noblank
# Disable DPMS (Energy Star) features
@xset -dpms
# END ADDED

 

尚、上記リスト中の

@rm -rf ~/.cache/chromium 
@sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences

Chromium表示中に電源ブチした時にキャッシュに何も残らないようにするためのおまじないです。詳しくは例えばこちら

天気予報の内容ですが、上記リストにある、http://util-o24.parseapp.com/weather の緯度/経度を自分が住んでいる地域に変更する必要があります。緯度/経度はここで調べれば簡単にわかります。

Geocoding - 住所から緯度経度を検索 

http://util-o24.parseapp.com/weather ですが、私はクラウド上の無料サーバに、自分が済んでいる地域に緯度/軽度を書き換えたものを作成しました。PaasのアプリケーションIDとjavaスクリプトキーは自分のものを使用してください。

 

また日本語が文字化けしないように、HTMLに下記のおまじないをいれておいたほうがよいかもしれません。

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

上記/etc/xdg/lxsession/LXDE/autostart の上から3行目までのみを残して他を削除すれば、全画面表示が解除されてRasPIはふつうのデスクトップ表示する状態に戻ります。

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash

 

前回のブログで作成したインストールimageであれば、Pi2だけでなく、BタイプのPiでも全く問題なく動作します。電源を電池として無線LANで接続すれば、配線が外に出ないようにすることができ、実用的なインテリアとしても活用できます。

また上記HTMLを書き換えれば表示内容やレイアウトを変更してオリジナルのバリエーションを楽しむこともできます。例えばWebページの下記部分のカラーコードを変えるだけで簡単に表示色を変えることができます。

.night {
color:#F5F5DC;
background:black;
}
.noon {
color:#F0F8FF;
background:black;
}

またWebページの適切な場所に下記スクリプトを挿入することで時計画面からデスクトップに手動で戻るようにすることもできます。

<script type="text/javascript">
<!--
function closewin() {
window.opener = self;
window.close();
}
// -->
</script>

<a href="javascript:closewin();">閉じる</a>

Webページにインターネットラジオの操作パネルを表示させるボタンを設けても面白いかもしれません。但し、あまりWebページから自由な操作を可能にすると当然にセキュリティが甘くなりますので要注意です。

こんなに簡単に実用的なガジェットが作れるなんて、ほんとによい時代になりました。

 

f:id:chibinari1965:20150823125255j:plain