ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示
ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示

2018年1月29日月曜日

Google Home:喋らせるぞ!!(帰るコール自動化)

「自動発信」するよ

ボタンを押すと「帰るコール」できるようになった。
でも、ボタンを押すのは面倒くさいなぁ。。。^^;

ということで、次なるシナリオは
if ○○駅をでたら then 「○○を出たよ」と喋る
です。
トリガーが
で、
アクションが
になります。

Webhooksは同じなのでLocationの設定です。
Locationは「ある場所」に
「入る:You enter an area」
「出る:You exit an area」
「出入り:You enter or exit an area」
のいずれかで起動します。
帰るコールでは「○○を出たら」なので
「You exit an area」を選択します。

次に「場所:Location an area」は○○を検索してポイントを示し、
エリアを「ピンチイン」「ピンチアウト」して適当な境界線を設定します。
「品川駅」を検索して設定したところ。
PCの画面なので「ー」「+」ボタンが表示されている。

そして、スマホの「位置情報サービス」をオンにしたら準備完了です。
精度が高くなるように私は「GPS,Wi-Fi,モバイルネットワークを利用」にしてます。

これで、「品川駅を出てちょっとしたら」Google Homeが
「品川駅を出たよ」と喋り、帰るコールの自動化ができました(^^)v

2018年1月22日月曜日

Google Home:喋らせるぞ!!(帰るコール)

「帰るコール」するよ

いよいよ目的の「帰るコール」に近づいてきた。
iftttと連携することでできそうです。

シナリオは
if ボタンを押したら then 「○○を出たよ」と喋る
です。
トリガーが
で、
アクションが
になります。

Buttonは選択するだけです。
Webhooksの設定はよく分からなかったので、
Twitterの通知をGoogle Homeに教えてもらう
を参考にさせていただきました。ありがとうございます。

喋らせるテキストが設定しやすい「POST」で指定します。
1.URL
 google-home-notifierが実行時に表示するURLをコピペします。
 起動する度に先頭の文字列が変わるので注意が必要です。
 サービス化している場合は表示されないのでログから取得します。

2.Method
 「POST」を選択します。

3.Content Type
 「application/x-www-form-urlencoded」を選択します。

4.Body
 喋らせたい文字列を「text="」と「"」で挟みます。

指定したサンプルです。

登録するとスマホの待受け画面にボタンが表示されます。

このボタンを押すとGoogle Homeが「帰るコール」を喋るよ♪
できた~\(^o^)/

2018年1月20日土曜日

Google Home:喋らせるぞ!!(サービス化)

いつでも喋らせられるようにするよ♪

やっと喋るようになったので
いつでも喋らせられるようにしたい。
でもリモートコンソールを使用してサーバを起動しても、
コンソールを閉じるとサーバもダウンするんだよね。。。
さて、どうすれば良いのだろう???

やはり頼りはGoogle先生です^^;
先生に聞きまくってやっと
Google Homeで時報を知らせる
で、サービス化するとできるよと教えてくれました。
ありがとうございます。

早速、参考にしてやってみます。

1.準備
1)サービス化するスクリプトを特定する
修正した「example.js」を名前を変えて「kita.js」にした。
/home/pi/google-home-notifier/kita.js

2)nodeのパスを調べる
pi@raspberrypi:~/google-home-notifier $ which node
/usr/local/nvm/versions/node/v6.12.2/bin/node

2.サービスとして登録する
サービス化するには「Systemd」という仕組みを使うようだ。
詳しいことは分からないので。。。
HPの記載内容を参考にして作成しました。
pi@raspberrypi:~ $ cd /etc/systemd/system
pi@raspberrypi:/etc/systemd/system $ sudo vi googlehomenotifier.service

設定内容をcatで表示しておきます。
ボールド表示している部分が変更した箇所です。
pi@raspberrypi:/etc/systemd/system $ cat googlehomenotifier.service

[Unit]
Description=google-home-notifier Server
After=syslog.target network-online.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/nvm/versions/node/v6.12.2/bin/node kita.js
Restart=on-failure
RestartSec=10
KillMode=process
WorkingDirectory=/home/pi/google-home-notifier

[Install]
WantedBy=multi-user.target

3.属性を変更する。
他のサービスの属性を確認してみた。
pi@raspberrypi:/etc/systemd/system $ ls -l
・・・
drwxr-xr-x 2 root root 4096  9月  8 00:13 dhcpcd.service.d
drwxr-xr-x 2 root root 4096  9月  7 23:47 getty.target.wants
drwxr-xr-x 2 root root 4096  9月  7 23:59 getty@tty1.service.d
-rw-r--r-- 1 root root  392 12月 19 22:23 googlehomenotifier.service
drwxr-xr-x 2 root root 4096  9月  8 00:05 halt.target.wants
drwxr-xr-x 2 root root 4096 12月 19 22:40 multi-user.target.wants
・・・

実行権限が付与されているようだったので合わせて設定しました。
pi@raspberrypi:/etc/systemd/system $ sudo chmod +x googlehomenotifier.service

再表示して確認してみる。
pi@raspberrypi:/etc/systemd/system $ ls -l
・・・
drwxr-xr-x 2 root root 4096  9月  8 00:13 dhcpcd.service.d
drwxr-xr-x 2 root root 4096  9月  7 23:47 getty.target.wants
drwxr-xr-x 2 root root 4096  9月  7 23:59 getty@tty1.service.d
-rwxr-xr-x 1 root root  392 12月 19 22:23 googlehomenotifier.service
drwxr-xr-x 2 root root 4096  9月  8 00:05 halt.target.wants
drwxr-xr-x 2 root root 4096 12月 19 22:40 multi-user.target.wants
・・・

4.サービスを有効にする。
ここからはホームディレクトリで処理できるので戻しておく。
pi@raspberrypi:/etc/systemd/system $ cd

1)サービスの状態を確認してみる。
自動起動の状態
pi@raspberrypi:~ $ sudo systemctl list-unit-files --type=service | grep googlehommenotifier
googlehomenotifier.service             disabled 

起動状態
pi@raspberrypi:~ $ sudo systemctl status googlehomenotifier
● googlehomenotifier.service - google-home-notifier Server
   Loaded: loaded (/etc/systemd/system/googlehomenotifier.service; enabled; vend
   Active: inactive (dead)

2)自動起動を有効にする
pi@raspberrypi:~ $ sudo systemctl enable googlehomenotifier
Created symlink /etc/systemd/system/multi-user.target.wants/googlehomenotifier.service → /etc/systemd/system/googlehomenotifier.service.

3)サービスを起動する
pi@raspberrypi:~ $ sudo systemctl start googlehomenotifier

4)サービスの状態を確認してみる。
自動起動の状態
pi@raspberrypi:~ $ sudo systemctl list-unit-files --type=service | grep googlehommenotifier
googlehomenotifier.service             enabled

起動状態
pi@raspberrypi:~ $ sudo systemctl status googlehomenotifier
● googlehomenotifier.service - google-home-notifier Server
   Loaded: loaded (/etc/systemd/system/googlehomenotifier.service; enabled; vend
   Active: active (running) since Sat 2018-01-20 17:24:34 JST; 7min ago
 Main PID: 23138 (node)
   CGroup: /system.slice/googlehomenotifier.service
           tq23138 /usr/local/nvm/versions/node/v6.12.2/bin/node kita.js
           mq23148 ./ngrok start --none --log=stdout
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** The program 'node' call
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** Please fix your applica
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** For more information se
 1月 20 17:24:54 raspberrypi node[23138]: Endpoints:
 1月 20 17:24:54 raspberrypi node[23138]:     http://192.168.3.28:8091/google-hom
 1月 20 17:24:54 raspberrypi node[23138]:     https://627789f3.ngrok.io/google-ho
 1月 20 17:24:54 raspberrypi node[23138]: GET example:
 1月 20 17:24:54 raspberrypi node[23138]: curl -X GET https://627789f3.ngrok.io/g
 1月 20 17:24:54 raspberrypi node[23138]: POST example:
 1月 20 17:24:54 raspberrypi node[23138]: curl -X POST -d "text=Hello Google Home

5.ログを確認
googlehomenotifierの抽出して確認します。
pi@raspberrypi:~ $ journalctl -u googlehomenotifier > service.log
pi@raspberrypi:~ $ cat service.log
 1月 20 17:24:34 raspberrypi systemd[1]: Started google-home-notifier Server.
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** Please fix your application to use the native API of Avahi!
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** Please fix your application to use the native API of Avahi!
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** Please fix your application to use the native API of Avahi!
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** Please fix your application to use the native API of Avahi!
 1月 20 17:24:41 raspberrypi node[23138]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
 1月 20 17:24:54 raspberrypi node[23138]: Endpoints:
 1月 20 17:24:54 raspberrypi node[23138]:     http://192.168.3.28:8091/google-home-notifier
 1月 20 17:24:54 raspberrypi node[23138]:     https://627789f3.ngrok.io/google-home-notifier
 1月 20 17:24:54 raspberrypi node[23138]: GET example:
 1月 20 17:24:54 raspberrypi node[23138]: curl -X GET https://627789f3.ngrok.io/google-home-notifier?text=Hello+Google+Home
 1月 20 17:24:54 raspberrypi node[23138]: POST example:
 1月 20 17:24:54 raspberrypi node[23138]: curl -X POST -d "text=Hello Google Home" https://627789f3.ngrok.io/google-home-notifier
こんな感じでコンソールに表示されていたメッセージが確認できればOKです♪

コンソールから
curl -X POST -d "text=Hello Google Home" https://627789f3.ngrok.io/google-home-notifier
と試してみると喋るよ\(^o^)/

2017年12月28日木曜日

Google Home:喋らせるぞ!!(日本語)

日本語を喋らせてみよう!!

喋り始めたので次は日本語に挑戦です。
引き続き、
「GoogleHomeスピーカーに外部からプッシュして自発的に話してもらいます」
を参照させてもらいました。ありがとうございます。

日本語を喋らせるには「example.js」を修正します。
  • 喋る内容が日本語であることを伝える
  • デバイスが日本語対応であることを伝える
ことが必要です。
pi@raspberrypi:~/google-home-notifier $ vi example.js

修正箇所をdiffしました。(前回の修正も含んでいます)
pi@raspberrypi:~/google-home-notifier $ cat example.js.diff
8,9c8,9
< var deviceName = 'Google Home';
< var ip = '192.168.1.20'; // default IP
---
> var deviceName = 'livingroom';
> var ip = '192.168.3.28'; // default IP
24c24
<   var language = 'pl'; // default language code
---
>   var language = 'ja'; // default language code
29c29,30
<   googlehome.ip(ip, language);
---
>   googlehome.device(deviceName, language);
>   googlehome.ip(ip);
65c66
<   var language = 'pl'; // default language code
---
>   var language = 'ja'; // default language code
70c71,72
<   googlehome.ip(ip, language);
---
>   googlehome.device(deviceName, language);
>   googlehome.ip(ip);

準備ができたので、サーバを起動して喋らせてみます。
まずは日本語です。
pi@raspberrypi:~/google-home-notifier $ curl -X POST -d "text=ハロー グーグルホーム" https://63f1c2c1.ngrok.io/google-home-notifier
{ text: 'ハロー グーグルホーム' }
Device notified
livingroom will say: ハロー グーグルホーム
やったね♪日本語喋った!!

次に、英語を喋らせてみます。
pi@raspberrypi:~/google-home-notifier $ curl -X POST -d "text=Hello Google Home"  https://63f1c2c1.ngrok.io/google-home-notifier
{ text: 'Hello Google Home' }
Device notified
livingroom will say: Hello Google Home
なんと。。。日本語的な英語だ。。。(@_@;)
カタカナで書いたのと変わらない。。。

平家物語の冒頭を喋らせてみました。
pi@raspberrypi:~/google-home-notifier $ curl -X POST -d "text=祇園精舎の鐘の声、諸行無常の響きあり。" https://63f1c2c1.ngrok.io/google-home-notifier
{ text: '祇園精舎の鐘の声、諸行無常の響きあり。' }
Device notified
livingroom will say: 祇園精舎の鐘の声、諸行無常の響きあり。
ちゃんと漢字も読めてるじゃん♪

ちょっとノロマで抑揚のない日本語ですね^^;
でも、ちゃ~~~んと喋りました。やったね!!
今日はここまで。

2017年12月9日土曜日

Google Home:喋らせるぞ!!

帰るコールをGoogle Homeでやりたい!

帰るコールしてますか?!
私はLineで
今○○駅、○○発で帰るよ。
と会社帰りにやっている。マメでしょ(^^;
で、これをGoogle Home的にやりたい!と思いました。
それにはまず、Google Homeに喋ってもらわないとね!!

と言っても何をすれば良いのか???な状態なので
Google先生に聞いてみると
「GoogleHomeスピーカーに外部からプッシュして自発的に話してもらいます」
と教えてくれました。ありがとうございます。
google-home-notifier」を使って喋らせるようです。

早速、参考にしてやってみます。
手元に役割を終えた初代RaspberryPiが眠っていたので
それを使うことにしました。

1.Raspbianをインストール
2017-09-07-raspbian-stretch-lite.img
をダウンロードしてインストールする。
その後
  • IPアドレスの固定
  • アップデートとアップグレード
  • ロケール、タイムゾーンの変更
  • SDカードのエリア拡張
など初期設定しました。

2.google-home-notifierに必要なソフトをインストール
1)Gitをインストール
インストールに必要となるGitをインストールする。
pi@raspberrypi:~ $ sudo apt-get install git
・・・
pi@raspberrypi:~ $ git --version
git version 2.11.0

2)Node.jsをインストール
実行に必要となるNode.jsをインストールする。
これが意外に難しかった。

Google先生に聞きながら何回もやり直して
Raspberry Pi に Node.js をインストールする(nvm利用)
を参照しながら行ってやっと成功しました。

①古いnodeをアンインストールする。
pi@raspberrypi:~ $ sudo at pt-get autoremove node.js

②nvmをインストールするディレクトリを作成し属性変更する。
pi@raspberrypi:~ $ sudo mkdir /usr/local/nvm
pi@raspberrypi:~ $ sudo chmod 777 /usr/local/nvm

③nvm.gitリポジトリのクローンを作成する。
pi@raspberrypi:~ $ git clone https://github.com/creationix/nvm.git /usr/local/nvm

④nvmを使えるようにする。
pi@raspberrypi:~ $ source /usr/local/nvm/nvm.sh

⑤nvmでインストールできるnodeのバージョン一覧を表示する。
pi@raspberrypi:~ $ nvm ls-remote
        v6.12.2   (Latest LTS: Boron)
         v8.9.3   (Latest LTS: Carbon)
         v9.2.1
など表示される。

⑥nodeをインストールする。
v9.2.1,v8.9.3はエラーがいっぱいでインストールできなかったよ。。。(T_T)
なのでv6.12.2をインストールした。
pi@raspberrypi:~ $ nvm install nvm install v6.12.2

⑦node, npm のバージョンを確認する。
pi@raspberrypi:~ $ node -v
v6.12.2
pi@raspberrypi:~ $ npm -v
3.10.10

⑧ログイン時にnvm,nodeの起動するように設定する。
pi@raspberrypi:~ $ sudo vi /etc/profile.d/nvm.sh

修正箇所をcatしました。
pi@raspberrypi:~ $ cat /etc/profile.d/nvm.sh
source /usr/local/nvm/nvm.sh

3.google-home-notifierをインストール
1)インストール前処理
RaspberryPiの準備があります。

pi@raspberrypi:~ $ curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
pi@raspberrypi:~ $ sudo apt-get install nodejs
pi@raspberrypi:~ $ sudo apt-get install git-core libnss-mdns libavahi-compat-libddnssd-dev

2)本体のインストール
本体部分はListenerのところに記載されています。

pi@raspberrypi:~ $ git clone https://github.com/noelportugal/google-home-notifier
pi@raspberrypi:~ $ cd google-home-notifier
pi@raspberrypi:~ $ npm install

3)インストール後処理
browser.jsの修正が必要です。

pi@raspberrypi:~/google-home-notifier $ vi node_modules/mdns/lib/browser.js

修正箇所をdiffしました。
pi@raspberrypi:~/google-home-notifier/node_modules/mdns/lib $ cat browser.js.diff
119c119
< , 'DNSServiceGetAddrInfo' in dns_sd ? rst.DNSServiceGetAddrInfo() : rst.getaddrinfo()
---
> , 'DNSServiceGetAddrInfo' in dns_sd ? rst.DNSServiceGetAddrInfo() : rst.getaddrinfo({families:[4]})

4.google-home-notifierを設定する。
1)Google Homeのデバイス名とIPアドレスを調べる。
デバイスの設定画面を表示するとデバイス名は中程に、
私のはlivingroomです。

IPアドレスは一番下に表示されています。
私のは192.168.3.28です。

2)example.jsにデバイス名とIPアドレスを指定する。
pi@raspberrypi:~ $ cd google-home-notifier
pi@raspberrypi:~/google-home-notifier $ vi example.js

修正箇所をdiffしました。
pi@raspberrypi:~/google-home-notifier $ cat example.js.diff
8,9c8,9
< var deviceName = 'Google Home';
< var ip = '192.168.1.20'; // default IP
---
> var deviceName = 'livingroom';
> var ip = '192.168.3.28'; // default IP

5.喋らせてみる。
以上で設定完了です。喋らせてみます。

1)サーバを実行します。
「&」を付けてバックグラウンドで実行させると便利です。
pi@raspberrypi:~/google-home-notifier $ node example.js &

[1] 10362
pi@raspberrypi:~/google-home-notifier $ *** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
*** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
Endpoints:
    http://192.168.3.28:8091/google-home-notifier
    https://23f67145.ngrok.io/google-home-notifier
GET example:
curl -X GET https://23f67145.ngrok.io/google-home-notifier?text=Hello+Google+Home
POST example:
curl -X POST -d "text=Hello Google Home" https://23f67145.ngrok.io/google-home-notifier

こんな感じで実行されます。

いっぱいワーニングが出てますが気にしないで良いみたいです^^;
使い方としてGET exampleとPOST exampleの2種類が表示されています。
POSTを使った方が指定しやすいですね。

2)クライアントからサーバにPOSTする。
サンプルをそのままコピペです^^;
pi@raspberrypi:~/google-home-notifier $ curl -X POST -d "text=Hello Google Home"  https://23f67145.ngrok.io/google-home-notifier

上手く処理されると

{ text: 'Hello Google Home' }
Device notified
livingroom will say: Hello Google Home

と表示されて喋りました!
やった~。ついに喋りました!!先人の皆さんありがとうございます。
 
録画してみました。
 
次は日本語だ。今日はここまで。

2017年12月7日木曜日

Photo Frame:Raspberry Pi のデジタルフォトフレームができたよ♪

デジタルフォトフレームの完成!!

液晶パネルのコントロール基板とRaspberryPiを
どのように組込むかずっと悩んでいた。

液晶パネルの背面に基板を取り付けようと思って、
金属ステーやプラスチックパネルなど考えていましたが、
そんな時、100円ショップCanDoで木製トレーを発見!!
サイズも240mm x 160mmで丁度よい。
厚さも適度で加工もしやすい。
CG-117 Natural wooden cafe tray(French)
木製カフェトレー(フレンチ)という型番です。

トレーに基板を配置してビス位置にマーカーして3mm径のドリルでギュイーン!!
防塵のため伏せても使えるように、液晶パネルに接続するコネクター用のスリットも開けておいた。

伏せるとこんな感じ

ビスは3M 10mmを使用して基板を取付けてみた。
HDMIケーブルが70cmあってトグロを巻いている。。。
売っていた一番短いのを買ったのだけど^^;

液晶パネルの固定は元々付いていたフォトフレームの裏蓋を
適当な大きさに切って木ネジで止めました。
下部の余白部分はダンボールで作っているので重みにも耐えられます(^^)v

液晶パネルの背面に置いてコントロール基板からのコネクタを液晶パネルに接続。
電源プラグも差し込んで準備完了!
裏返すには電源ケーブルを引き出す切り欠きを側面に開けなくては。。。^^;

電源ON!!
Rasbianのブート画面が表示された。ちゃんと動いてるよん♪

ちょっと古い画像^^;

できた~!!
立派なデジタルフォトフレームになったよ♪♪♪
逆光で色が綺麗に出てないですね^^;
一日中点けっぱなしももったいないので、
簡易デジタルタイマーで点灯時間をコントロールしています。


月~金と土日で分けて設定できて良いです。
電源はブチッと切れますがRaspbian自体は今のところちゃんと動いてます。
いつクラッシュしても良いようにSDのバックアップしておこっと。

やったね、初期バージョン完成!!
思い立ってから2年もかかっちゃいました。。。^^;


2016年10月1日土曜日

Photo Frame:Raspbian /boot/config.txt を調整し液晶パネルいっぱいに表示する

液晶パネルいっぱいに表示できたよ~♪

Google先生に聞いてみると、
画面サイズの調整は/boot/config.txtで設定するようだ。

可能性がありそうな項目としては

hdmi_force_hotplug : HDMIディスプレイが装着されているように見せる
hdmi_ignore_edid : EDID(対応していない規格で送出できないようにする)情報を無視する
sdtv_aspect : アスペクト比を設定する
hdmi_group : テレビ設定かモニター設定かを選択する
hdmi_mode : HDMIの出力情報を設定する

があり、個々の設定と組合せで動きが変わる。
ちょっとずつ変化させながら、リブートして実際に確認して設定したよ。

結果的には、

hdmi_force_hotplug=1
sdtv_aspect=3

とした。

TeraTermで接続してconfigを書き直してはリブート
NGな状態を撮って無いなぁ~

やった~液晶パネルいっぱいに表示できた♪

残すは、フォトフレームに仕上げる作業だ。
とりあえず、ちゃんと表示できてホッとした(^^)v

2016年9月19日月曜日

Photo Frame:液晶パネルを接続してみる

Pi Zeroでエンジンができたので液晶パネルを繋げてみた

買って以来初めて電源をいれる。
液晶パネルはちゃんと動作するのか?
おお!電源が入って液晶パネルも動作しているようだ。
でも何も表示されない。。。「NO SIGNAL」だってさ^^;
入力がHDMIになってないと気づいた。
スイッチ類を押してみるが何が何やら。。。

気を取り直して、リモコンで操作してみる。
入力をHDMIに切り替えることができた。
やった~♪ちゃんとスライドショーで表示されてる(^^)v

でも目一杯表示されてない。
16:9にすると横だけ伸びて縦が伸びない。
4:3にするとそれなりに表示するが小さい。
液晶パネルが1024x600の解像度なので、これが影響しているようだ。

思うようにならないな~(T_T)

2016年9月18日日曜日

Photo Frame:Raspbianとfbiでスライドショーができた。

やりたいことは写真をスライドショーで表示するだけ!

基本に戻ってRaspbianでコツコツ作ってみよう。
ダウンロードサイトには「Full desktop」と「Minimal」の2種類がある。
ここで、悩んだ。
単に写真を表示するだけなのに、
X Windowを使ってまでしなくてはならないのか?
CUI環境で画像表示はできないのか?

ということで、Google先生に聞いてみると「fbiってツールがあるよ」と教えてくれた。
NAME
       fbi - linux framebuffer imageviewer
SYNOPSIS
       fbi [ options ] file ...
DESCRIPTION
       fbi  displays  the  specified  file(s)  on  the linux console using the
       framebuffer device.  PhotoCD, jpeg, ppm, gif, tiff, xwd,  bmp  and  png
       are   supported   directly.    For  other  formats  fbi  tries  to  use
       ImageMagick's convert.
 コンソールにフレームバッファを使って画像を表示できるようだ。
ということで、「Minimal」で進めよう!!

Raspberry Pi ZeroはUSB端子が1つしか無いので使いづらい。
で、手元にあるRaspberry Pi3を使って進めることにした。
USB端子4つ、LAN端子もあるので使いやすい。
(もしかして、Raspberry slideshowもPi3で設定すれば良かったのかも。。。)
こんな感じ

まずは、LAN接続してSSHできる環境までセットアップして、
SSH経由でWiFiの設定を行なった。
pi@raspberrypi:~ $ sudo vi /etc/wpa_supplicant
    network={ 
                  ssid="2C3xxxxxxxxxx-2G"
                  psk="2215xxxxxxxxxx" 

    }
を追記する。

リブートするとWiFi接続ができるようになった。
Pi3からSDカードをZeroに入れ替えて、
ここからはZeroにWiFi接続してSSH経由で設定を進める。

1.パッケージのアップデートとロケールの設定

2.sambaのインストールと設定

写真を格納用のフォルダーを作成し、読み書き権限を付与する
pi@raspberrypi:~ $ pwd
/home/pi
pi@raspberrypi:~ $ mkdir zero
pi@raspberrypi:~ $ ls -l
drwxr-xr-x 2 pi pi 4096 Sep 18 19:39 zero
pi@raspberrypi:~ $ sudo chmod 777 zero/
pi@raspberrypi:~ $ ls -l
total 4
drwxrwxrwx 2 pi pi 4096 Sep 18 19:39 zero

sambaが動いてないことを確認
pi@raspberrypi:~ $ ps ax | grep smb
 1159 pts/0    S+     0:00 grep --color=auto smb

sambaのインストール
pi@raspberrypi:/etc $ sudo apt-get install -y samba

sambaの設定
pi@raspberrypi:/etc $ cd samba/
pi@raspberrypi:/etc/samba $ ls
gdbcommands  smb.conf  tls
pi@raspberrypi:/etc/samba $ sudo vi smb.conf
[PiZero]
   comment = Raspberry Pi Zero
   path = /home/pi/zero/
   guest ok = yes
   read only = no
を最後に追記

sambaの起動
pi@raspberrypi:~ $ sudo systemctl restart smbd.service

pi@raspberrypi:~ $ ps ax | grep smb
 4049 ?        Ss     0:00 /usr/sbin/smbd -D
 4054 ?        S      0:00 /usr/sbin/smbd -D
 4057 pts/0    S+     0:00 grep --color=auto smb

Windows10から参照してみる
できた~~♪
写真のコピーもバッチリよん♪

3.fbiのインストールと設定

fbiを使ったスライドショーの構築例もGoogle先生に教えてもらったので、
これを参考にしながら設定した。

コンソールの設定
pi@raspberrypi:~ $ sudo vi /etc/kbd/config

    #BLANK_TIME=30 
    BLANK_TIME=0  
    #POWERDOWN_TIME=30 
    POWERDOWN_TIME=0

fbiとimagemagickのインストール
pi@raspberrypi:~ $ sudo apt-get -y install fbi
pi@raspberrypi:~ $ sudo atpt-get -y install imagemagick

fbiを試してみる
pi@raspberrypi:~ $ ls
zero
pi@raspberrypi:~ $ cd zero
pi@raspberrypi:~/zero $ fbi rx7.jpg
出た~~~(^^)v

自動起動の設定
pi@raspberrypi:~ $ cd /etc
pi@raspberrypi:/etc $ sudo vi profile
/home/pi/slideshow.sh
を最後に追記

slideshow.shを作成
pi@raspberrypi:~ $ pwd
/home/pi
pi@raspberrypi:~ $ sudo vi slideshow.sh

    #!/bin/bash
    # slideshow script for raspberry pi
    # this file is for autolaunching your slideshow program fbi at startup
    #
    INTERVAL=5 #how many seconds for each slide
    fbi -noverbose -a -t $INTERVAL /home/pi/zero/*.jpg

    # here's almost exactly the same, but with photos appearing in random order
    # comment the above fbi line and uncomment this one to use it
    # fbi -noverbose -a -t $INTERVAL -u /home/pi/slides/*.jpg

Webの内容をコピーしてディレクトリ等を修正して作成する
ちなみにパラメタは
-a     Enable  autozoom.  fbi will automagically pick a reasonable zoom
        factor when loading a new image.
-t sec timeout:  load  next  image  after  >sec<  seconds  without  any
          keypress (i.e. slideshow)

実行権限を付与する
pi@raspberrypi:~ $ sudo chmod +x slideshow.sh
pi@raspberrypi:~ $ ls -l
total 8
-rwxr-xr-x 1 root root  414 Sep 18 21:08 slideshow.sh
drwxrwxrwx 2 pi   pi   4096 Sep 18 20:04 zero

再起動してスライドショーが起動することを確認
pi@raspberrypi:~ $ sudo shutdown -r now

再起動したら自動起動だぜ~

これで行けそうだぞ!!
ということでここまで。

2016年9月17日土曜日

Photo Frame:Raspberry Slideshowの設定ができない。。。

さぁ、画像をコピーして設定してみよう!!でも、ありゃりゃ。。。

キーボードを繋げてと思ったが。。。USB端子小さいじゃん。。。
ネットワークに接続しようにもWiFi子機も刺さらないじゃん。。。
MicroUSBって端子らしい。

ということで、Amazonでポチッと
【変換名人製】 極小USBホストアダプタ USB A(オス)→MicroUSB B(オス)変換 USBMCH-MCAD
Raspberry Pi Zeroで使いましたが、特に問題ないです。」のコメントに誘われて♪

ドライバとか考えずに買っちゃった^^;

こんな風にさして使うんだよ!これ考えた人頭いいな~

で、早速SSHで接続して設定してみよう!
こんな感じで使うよ

DHCP接続になっているからルーターに接続してIPアドレスを調べて。。。
???アドレスが消費されない(・・?
そっか、WiFiに接続できてないからだ。

キーボードに変更して/etc/network/interfacesを修正しようと思ったが、
スライドショーを止められない(・・?
色々キーボードで止めようと試してみたが。。。止められない(T_T)

ガ~~~~ン(T_T)
だめだ。や~めたっと。。。

2016年9月1日木曜日

Photo Frame:Raspberry Slideshowをインストールしてみた。

Raspberry Pi 用のスライドショー特化のディストリビューション

Raspberry Pi Zeroをエンジンとして使うためネットを探していて、
Raspberry Slideshow なるディストリビューションを見つけた。
スライド用の写真をテキストファイルに記述するだけでササッと使えるような感じだ。

ということで、イメージファイルをダウンロードしてmicroSDに焼いた。
HDMIケーブルをTVに繋げてブートしようとしたとき見つけてしまった。。。
端子が違う。。。小さいのだ。。。
調べてみるとHDMI-miniという端子ということだ。ありゃりゃ。。。(T_T)

ということで、Amazonでポチッとしました。。。^^;
エレコム ミニHDMIケーブル A-C 4K 3重シールド ハイスピード 0.7m DH-HD14EM07BK

翌日届いたので、早速TVに繋げてブートしてみたよ。
小ぢんまり纏まってる

ブート画面

起動後は動画が表示される

とりあえず、表示できるところまではOKOK
次は、フォトフレーム用の画像を用意して表示できるように設定しよう。




2016年6月30日木曜日

Photo Frame:液晶パネルとコントローラーを購入

フォトフレームの要となる液晶パネルを購入したよ。

液晶パネルにはいっぱい種類があるようで良くわからない。。。
更にコントローラーも色々^^;

結局はお手本とした
約1万円でHDMI入力付10.1インチWUXGA(1920×1200)液晶モニタを自作してみた
で最後に紹介されていたセット品を購入することにした。

セット品にもサイズや解像度などいっぱいあって悩んでしまいましたが、
PhotoVisionが約9インチで480x800ドットなので、
値段も考えて8.9インチで1024x600ドットのパネルにしてみました。


リモコンも付いていていい感じでしょ^^;

2016年6月29日水曜日

Photo Frame:Raspberry Pi Zero を購入

デジタルフォトフレームを自作するぞ!

ソフトバンクで携帯電話を買ったとき、
キャンペーンでもらったPhotoVision TV 202の契約が切れて、
半分しか表示できないので使い物にならなくなった(T_T)
こんな感じ
写真を撮ってないので借り物です^^;

巷で売られているデジタルフォトフレームも買ってみたが、
ソフトバンクのがとっても綺麗だったのが分かった^^;

Google先生にあれこれ聞いてみると
約1万円でHDMI入力付10.1インチWUXGA(1920×1200)液晶モニタを自作してみた
なんてのがあるよ~と教えてくれた。
これだ!これしかない!と思ったのが2015年12月11日でした。

ということで、
ちょうどその頃に発売になったRaspberry Pi Zeroをエンジンにして
デジタルフォトフレームを自作することにしました。

でも、なかなか購入できない日が続きました。
ずっと探し回ってやっと手に入れました。

Where is my PIZERO?なるサイトがピンポ~~ンでした。

2016年6月29日に到着。
本体:3.3€ 送料:5.5€ 送料の方が本体より高い。。。^^;