趣味のプログラム工房

Android

Amazon Fire HDをスマートディスプレイ化計画

Show Modeなるものが出てこようとしている昨今ですが、
日本ではまだ使えないので、だったら作ってみようと思います。

ベースとしては、こんな感じの構成。
AutoVoice で音声を取得
Tasker で音声のテキストを自作のWEBサーバへ飛ばす
③サーバで処理した結果のURLをFire HDへ返す(AutoRemoteを使う)
④ ③をAutoRemoteで受け取る
⑤ ④をTaskerで受け取って、そのURLをブラウザアプリに渡す。

主なところではこんなところです。
細かいところとして、⑤はブラウザとして専用のブラウザを作りました。

・専用ブラウザ
要件としては、URLを受け取ったら、そのページをフルスクリーンで表示
別のアプリに移ったら、自動的にプロセスを終了(ホームボタンでも同様)
というだけの非常にシンプルなものです。

Taskerからの連携は、「send intent」で実現。
あと、ブラウザですが、標準のwebviewではうまくいかなかったため、
「XWalkView」というモジュールを利用しています。
詳細は
Android Studio webviewでJavascriptが動かない


あとは、省電力対策として、
いろいろ考えましたが、結局、これも専用のアプリを作ることになりました。
単純に、ディスプレイの輝度を最低まで下げるだけのものです。
ただ、ブラウザと同様、別のアプリに移ったら、自動的にプロセスを終了する機能を入れており、音声起動によりブラウザが立ち上がったら、そちらに制御が移るようにしています。

これで何となく方に担ったので、音声に対応する機能を作りこんでいくだけ!




新型Fire HD 8

android端末最高のコスパです!!
2018年09月30日


Orange Pi Lite2に別ファーム GS1

Orange Pi Lite2の非公式OS編です。

有名なのはArmbian
Armbianですが、Orange Pi Lite2については、残念ながらベータ扱い。
「wireless is not yet operational」
とのことで、内臓の無線LANは使えません。

一番安定している可能性はありますが、Linuxなのでおそらくパフォーマンスはそれほど出ていない気がします。


ここまでは、一般的に使えるOSですが、ここからは番外編。

Youtubeに動画が上がっていたものです。
https://www.youtube.com/watch?v=w5fsKbDZ8uw

ZIDOO H6 proBeelink GS1のROMが使えるようです。

リンク先のコメントから

1 create the micro sd with PhonixCard 4.1.2
2 install settngs.apk taken from iso zidoo h6
3 download iso android zidoo h6 or beelink sg1
to install
version beelink sg1 works with Ethernet no bluetooth no Wi-Fi
zidoo h6 version Ethernet works bluetooth works Wi-Fi works
just warms up the cpu


これを日本語に翻訳すると、
1、公式のandroidをPhonixCardでSDに焼く
2、上記を起動して、zidoo h6のイメージから持ってきたsettngs.apkをインストール
3、ROMをインストール
4、インストール方法は動画をみてね!
5、結構時間がかかります(25%あたりから進まなくなるが、動いてるので気長に待つ!)
行間を読むとこうなります。


あと、settngs.apkですが、ひょっとするとなくても大丈夫かも
Orange Piの起動中にSDカードを抜き差しするなどでBoot失敗させると、再起動がかかることがあります。
その際、リカバリーモードで起動するのでそこから、イメージからリカバリできるので、そこでROMを指定するとOK。


以下レビュー
・ZIDOO H6
Android TVのOSです。
ただ、ハードウェア認証が行われているらしく、ポコポコと変なポップアップが上がってくるので使えません。
Orange Piのフォーラムを見ると、services.jarが悪いとか、FWでinput deviceをブロックするとかいろいろ書いてありましたが、結局解決できていないので、残念ながら使えません。。。
(Activation information、、、UUID:Authentication failure uuidなどが表示される)


Beelink GS1
Wifiが使えません。
なので、USBのEthernetアダプタが必須。
(そもそも、技適の関係上必須ですが)
ただ、それさえ用意できれば、これまで試した中で一番使えます!


何より一番うれしいのが、AndroidがTV版でなく、スマホ版なので、ほとんどのアプリが使えます!(TV版だと入らないChromeとかも入ります)
KODIも普通に使えますが、やはりHDMI-CECは使えていないみたい。
でも、なぜかTVの電源を切ると連動して電源が切れます。
切れるんだけど、すぐ再起動するので、再起動⇒シャットダウンの無限ループが発生します。
これは何とか解決しないと使えないですね。
しばらくこれで遊んでみます。


ベンチマークを流したところ、
Geekbench4で、マルチ1600。
iphone5以上5s未満といったところ。

参考
Fire HD 10のマルチで2000


ちなみに、今回、これを購入しました。


というわけで、ETG5-US3はAndroidで使えました。

2018年09月17日


Orange Pi Lite2を購入 公式OSレビュー

ついにOrange Pi Lite2を購入しました。



電源ACアダプタとケースのセットでお値段33.62ドル
性能は、最新のRaspberry piより早いです。
それに、USB3も使えます。

演算速度(CPU)は相当違う。
youtubeに比較の動画が上がってますが、そのスピード10倍以上
画像処理はもう少し差が縮まっていますが、3倍~4倍もRaspberry Piのほうが処理に時間がかかっています。

で、OSもいろいろ試してみました。
公式に上がってるのは
・Android
・Ubuntu Server
・Ubuntu Desktop
・Debian Desktop Jessie
この中で、一番使えそうなのはAndroidですかね。


Android
これはTV用のAndroid 7.0でした。
そのため、PLAYはついていますが、PLAYからインストールできるソフトがかなり少なくてあまり使えません。
そこがかなりのマイナス。
ですが、動画の再生能力、マシンスペックの引き出しについてはナンバーワンです。
KODIが一番滑らかに動きます。(Raspberry piのLibreELEC以上!)

ただ、android自体の安定性は悪い。
まず、GOOGLE PLAYが勝手にアップデートされる。
で、Orange Piが対応していないバージョンのPLAYが勝手にインストールされて、システムが不安定となる。(毎回PLAYのアプリを初期状態に戻す)
それでも、KODIを使うならこれが一番かな。

ただし、インストールの難易度が非常に高い。
SDの初期化、焼きの段階で失敗することもあるし、成功したと思っても、電源が入らないとか、H6のロゴで止まる。その後のブラックアウトで止まるという現象が普通によく発生する。
あとは、SDカードの相性もあるらしい。
私の持っているSD3枚中1枚しかうまく使えませんでした。その一枚も、何度もリトライして、ようやくといったところなんですが。。。

Ubuntu Server
未使用。

Ubuntu Desktop
安定性がいまいち。
あんまり早くない。
ブラウザとしてChromeを入れようとしてもうまく入らない。
Firefoxは入った。
致命的なのは恐らくGPU関係があんまり最適化されてない。
KODI、カクカクして使えない。
多分Linux向けのGPUのドライバが不完全なんだと思う。

Debian Desktop Jessie
ほとんどUbuntuと同じ使い勝手。
多少安定してるかなと言うレベル


まあ、公式なだけあって、一応、画面は表示されるし、無線LANも使えるっぽい。

あと、共通して言えることですが、KODIとかHDMI-CECは効かない(少なくてもデフォルトでは)
あと、IRレシーバーはついていますが、Andoroid上で使えないかなぁ(使い方がわからない。。。)
Android TVくらいリモコン操作(HDMI-CEC)できてもいいのに。
これもマイナスですね。(RPiのKODIはCECできる)

うーん、OSがいまいちだ。
CPUに新しめのH6が載ってるのが問題なのか。
新しいのより枯れてる方がいろいろできるみたいですね。




androidも新バージョンが出て安定性向上したみたいです。
こちら


2018年09月17日


Android Studio webviewでJavascriptが動かない

スマホ用に特定のWEBページをワンタップで開くアプリを作りたいと試行錯誤。
webviewを使って、アプリにURLをハードコーディングしたらいいかなぁとやってたんですが、ページが表示されない。

正直原因は不明。
おそらく、Javascriptの部分で、ソースが別ファイルになっているからとか、理由はある気がするのですが、結局解決しませんでした。
(サイト側に問題がある場合は解決不能!)


いろいろ解決策を探していて、見つけたのが、「XWalkView」というモジュール。
使いにくい、webviewを使うのはあきらめて、別のを使おうということですね!

使い方は、
build.gradleに下記を追加

repositories {
maven {
url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2'
}
}

dependencies {
implementation 'org.xwalk:xwalk_core_library:23.53.589.4' //追加
}


XWalkViewを紹介している他のサイトでは
implementation 'org.xwalk:xwalk_core_libraryではなく、
compile 'org.xwalk:xwalk_core_library:~~を追加するように書いてあるのですが、「implementation」と記載するのが正解。
compile は古い書き方みたいです。あと、バージョンにも注意。

これを記載した後に、syncをかけると、ライブラリが読み込まれ使えるようになります。

あとは、他のサイトに書かれているように、webviewの代わりに使えばOK。
ビルドされたパッケージが50MB近くになる以外は問題ないです。(webviewだと2MBもいかないのにw)

とりあえず、満足いく結果になりました。
これで、スマートディスプレイっぽいものが作れるぞ!(ぉ
2018年08月30日


64bit対応 シングルボードコンピュータ

用途に対してハードが足りない。
KODIにRPI3、volumioにRPI無印を使ってますが、お試し用にもう一台ほしいこの頃。
あと、64bit対応は欲しい。

64bit対応SoCを見てみると、流通しているのはこれくらいでしょうか?
Rockchip社製
RK3328 Cortex-A53
RK3399 Cortex-A72

AllWinner社製
H6 Cortex-A53
H5 Cortex-A53

Amlogic社製
S905X(S905Dとか)

比較
Raspberry Pi 3B
Cortex-A53 4コア1.2Ghz

Raspberry Pi Zero W
ARM1176JZF-S (ARMv6系ARM11) 1Ghz(シングルコア)

CPUの比較は、、まあ、同価格帯ならアーキテクチャはA53と同じなので、
単純に動作周波数が高いのが高性能
あとはGPUですかね。

で、販売されているボードと価格ですが、
比較的流通しているのが、
Banana Pi、Nano Pi、Orange Piのシリーズ
Banana PiシリーズならBPI-M64
Nano PiシリーズならNanoPi A64、NanoPi NEO2
Orange PiシリーズならOrange Pi PC2、Orange Pi One Plus、Orange Pi Lite 2、Orange Pi Zero Plus2、Orange Pi RK3399、Orange Pi 4G-IOT

モデル名BPI-M64NanoPi A64NanoPi NEO2Orange Pi PC2Orange Pi One Plus
SoCA64A64H5H5H6
アーキテクチャCortex-A53Cortex-A53Cortex-A53Cortex-A53Cortex-A53
コア数44444
動作周波数1.21.21.411.5
値段(ドル)5237302020


モデル名Orange Pi Lite 2Orange Pi Zero Plus2Orange Pi RK3399Orange Pi 4G-IOT
SoCH6H6RK3399MT6737
アーキテクチャCortex-A53Cortex-A532GHz A72 x2
1.5GHz A53 x4
Cortex-A53
コア数444
動作周波数1.51.21.25
値段(ドル)252010045



2018年05月03日


スマートディスプレイ、、、え?タブレットとどう違うの?

ちょっと前から、スマートディスプレイという単語が聞こえてきますが、、、
スマートスピーカーに対しての用語でしょうが、、それってタブレットと何が違うの??
むしろ劣化ですよね?
androidタブレット+google アシスタントで充分同じことができる気がするんですが。。。

2018年02月07日


AutoVoiceが止まる。認識しない

AndroidスマホにAutoVoiceを入れて、Googleアシスタントを使わず音声操作をしているのですが、「Control Continuous」をONにしているのですが、1日くらいそのままにしておくと、音声が認識しなくなる現象が。。。

一度、OFFにした後、ONにするとまた認識をし始めるのですが、、イマイチ安定しないです。
何か設定が悪いのかな。。。

ですが、これを解決する画期的な方法を発見。

それは、、、、PC版AutoVoiceを使う、、、です。

私の場合は、サーバとして24時間起動しっぱなしにしているLinuxマシンに、
Chromeのプラグインとして提供されているAutoVoiceを入れています。

PC版のAutoVoiceはスマホのAutoVoiceと連携するものです。
というか、スマホのAutoVoiceをリモートデバイスとして扱うものですね。

とりあえず、これで、スマホ側ではControl Continuousを設定しなくても、Linux側で音声を拾えるので動きは安定しています。
ただ、PCのマイクの性能が重要、、、性能低いと音声認識に支障が出るので。
でも、性能がいいマイクって意外と高いんですよね。。。

ですが、やっぱりスマホで音声認識するより、PCで音声認識するほうが若干遅い気がするんですよね。。。
まあ、一個挟んでいる分仕方ないんですが、、、これ、早くなるのかな?


根本的なところで会議用の好感度マイクは必要だと思った。
これがないと、そもそも音を拾えない!
2018年01月19日


Google homeで家電を操作

楽天スーパーセールでつい、Google homeを購入してしまいました。
あとこれも、ついついeRemoteを購入してしまいました。
ただ、、これが成功なのか失敗なのか、、、

eRemoteってGoogle homeから操作できないんですよね!(爆

というか、対応端末が少ない??

それはさておき、Google homeでeRemoteによる家電の操作です。
結論から言えば、、、まあ、可能です。
やり方は↓
https://qiita.com/miso_develop/items/204b2e16b1e58e52dc07

ただ、ここで注目すべくは、IFTTTと連携できる話ではなく、
nodeから家電を操作できる点です。

これがあれば!!
Autovoice→tasker→http get→Linux(webサーバ)→node broadlinkjs-rm
→eRemote→家電(赤外線)
ということができる!!
というか、実際我が家ではできました。
前回の記事の通り、OK googleを言わなくてもいいので便利です。

、、、あれ?
Google homeいらなくね?
正直、現時点でAndroidスマホよりGoogle homeが勝っている点は、ピカチュウトークができるくらい
というわけで、別に、Google homeいらないよね。。。
[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Google Home Mini チョーク(グーグル ホーム ミニ チョーク)
価格:6480円(税込、送料無料) (2017/12/13時点)



2017年12月13日


androidのOK googleを変更

Gooogle Nowの起動させる言葉「OK Google」を変更する方法。
所謂Hot wordを変更する方法を発見しました。

まあ、Tasker+AutoVoiceの組み合わせなんですが、
これ、AutoVoiceの設定が難しすぎ、すごいはまりました。


この設定をすると、AutoVoice→Tasker→Google Nowという連携ができます。
これのメリットとして、本日のメインである、OK Googleの変更ができます。
二つ目に、Google Nowで作ることができないオリジナルコマンドを作ることができます。
Google Now→AutoVoice→Taskerという流れだと、Google Nowでコマンドとして登録されているキーワード(例えばテレビというワードが入るとか)はGoogle Nowで処理されてしまい、Taskerが動かないんですよね。。。それ解決できるのは大きいです。


ポイントは下記
Android
①ユーザ補助にて、TaskerとAutoVoiceを有効にする。
②音声入力のアプリをGoogleであることを確認。

AutoVoiceの設定
②AutoVoiceでGoogle Nowの項目を有効(enable)にする
③Personal Assistantの設定で、Replace Google Assistantで音声入力のアプリをAutoVoiceに”設定しない”。
Googleのままにする必要がある。
正直よくわかんないのですが、これをAutoVoiceに設定しちゃうと、なぜか、AutoVoiceで受けてくれないんですよね。なぜか。
普通なら逆っぽい気がするんですけど
④Google NowのAdvancedでAlways Cancel Ok Googleを有効
⑤General SettingsでAutoVoice ContinuousのControl Continuousを有効←一番重要
重要そうなのはこれくらい。
あとは適度にオプションを調整してください。
あと、AutoVoiceのバージョンによって、メニュー構成が違うので、違う場所にオプションがあったりするので適当に読み替えてください。

Taskerの設定
⑥Profilesを追加
Event - plugin - Autovoice - Recognized
その設定画面では、Configurationを開いて、希望のHot Wordを設定。
(私は、設定にはHard Wayをよく使います。)
→これで、設定したキーワードを受けると、Google Nowが起動するという仕組み。
⑦タスクでは音声検索、もしくは、Googleを起動するのを設定。

あと、⑦でGoogle Nowに渡さなくても処理するものは個別に設定できるので結構便利。
オリジナルコマンドはGoogle Nowで処理しないので、そのほうが便利ですよね。


ちなみに、いろいろ調べたのですが、家電を操作するなら、Alexaのほうが優秀そう。。。
Googleは対応するのが少ないみたい。
SeriならSeriでHomekitとか使えるのに。
2017年12月10日


【KODI】テレビを音声操作 概要

我が家では、KODI+chinachuの組み合わせで、スマートテレビ?
まあ、何でもできるテレビ化しております。
音楽再生できるし、録画もできるし、WEBやスマートフォン、普通のテレビのリモコンから操作もできるし。

さて、最近Google Homeなんかも出てきていますが、このテレビ KODIが音声操作できれば面白いのではないかと思った次第。

というわけで、数時間かけて(意外と簡単)、音声操作システムを作りました。これで我が家もスマートホームです。



Google NowとTasker + AutoVoiceはandroidの音声操作においては比較的ポピュラーな組み合わせのようです。

今回はこれを利用し、
①Androidで音声を認識(Google Now)
②音声が登録済みのコマンドと一致したら、登録しているタスクを実行
 (Tasker + AutoVoice)
③登録済みのタスクとして、Linuxサーバに登録してあるコマンドを実行するためのPOSTを実行(Tasker + AutoVoice)
④LinuxサーバでPOST(phpへのアクセス)を受け取り、それに基づいたphpスクリプト→Pythonを実行
 ・KODIへのインターフェースとして、texturecache.pyを利用
 ・LinuxサーバにはWEBサーバ、pho、Pythonをインストール済み
 ・WEBをインタフェースとして、php→Pythonを実行
⑤KODIを操作するPythonスクリプトtexturecache.pyを実行
⑥テレビが操作できてめでたしめでたし

という具合です。

texturecache.pyのマニュアルは完全に英語(ネット上にも日本語の情報は一つもなし)
Tasker + AutoVoiceも英語(ネット上にもあまり情報なし)

言語の壁のせいで意外と苦労しました。。。
でも、ほぼそれだけ。楽勝ですね!

次回以降で詳細説明予定

ちなみに、Kodiはraspberry piを利用。
Amazon Echoとか、最近はAIスピーカーキットとかも出ているようですが、お金がかかるので、無償で実現できる方法として。(Taskerに数百円かかるのは無視)
スマホを利用することが肝ですね。



2017年11月02日


前へ 次へ