2019年5月26日日曜日

ASRock Z390 Phantom Gaming 4のBIOSをラズパイで焼いた

参考元:Raspberry PiでマザーボードのBIOS修復
https://qiita.com/r-ni/items/4c579d7d5ece93892762

設定が飛ぶのは勿論、BIOSが復旧不能になる可能性があります。
自己責任にてお願いします。
 

用意するもの

Raspberry Pi(今回使用したのは3B)
ジャンパワイヤ(メス-メスx5,オス-メスx4あると楽)
ブレッドボード

イメージの用意

https://www.asrock.com/mb/Intel/Z390%20Phantom%20Gaming%204/index.jp.asp#BIOS
バージョン4.00のInstant Flashでアップデートするものをダウンロード
Z39PG4_4.00をラズパイのホームディレクトリに転送

ラズパイの準備

シェルにて以下2コマンド実行
SPIの有効化
$ sudo raspi-config nonint do_spi 0

flashromのインストール
$ sudo apt-get update && sudo apt-get install flashrom -y

マザーボードとラズパイの接続

マザーボードに乗っていたSPI FlashはWinbondのW25Q128JVSIQでした。
https://www.digikey.jp/product-detail/ja/winbond-electronics/W25Q128JVSIQ/W25Q128JVSIQ-ND/5803943

テスターでSPI Flashの足と当たって調べたマザーボードのBIOS PH1コネクタのピンアサインはこんな感じ

ラズパイのピンアサイン(Raspberry Pi GPIO Pinoutより)
Graphical Raspberry Pi GPIO Pinout
ラズパイとマザボのピンヘッダの接続
raspi GPIO 17番(3V3)---SIO2,VCC,SIO3
raspi GPIO 19番(MOSI)---SI/SIO0
raspi GPIO 21番(MISO)---SI/SIO1
raspi GPIO 23番(SCLK)---SCLK
raspi GPIO 24番(CE0)---CS#
raspi GPIO 25番(GND)---GND


バックアップと書き込み作業

シェルにてflashromを使って作業する
イメージのバックアップ
$ sudo flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=16000 -r ./backup.rom

一旦再起動(当方の環境だと再起動しないと書き込みに失敗した)
$ sudo reboot

イメージの書き込み
$ sudo flashrom -w ./Z39PG4_4.00 -V -p linux_spi:dev=/dev/spidev0.0,spispeed=16000

2018年6月5日火曜日

googleアシスタントをwindowsで動かす

わかる人向けです。 抜けミスあるかも。
ちゃんとした手順とチェックはまた今度で。。。

0.はじめに
・python3環境を構築しておきましょう。
コマンドプロンプトでpy -3で動けばOK

・作業ディレクトリを作っておきます。
 僕の場合D:\googleAssistantとしました。

・githubリポジトリをローカルにクローンしておきます。
https://github.com/googlesamples/assistant-sdk-python
D:\googleAssistant\assistant-sdk-pythonとしました。

1.プロジェクト作成
https://developers.google.com/assistant/sdk/guides/library/python/embed/config-dev-project-and-account

2.デバイスモデル登録&credentials.jsonダウンロード
https://developers.google.com/assistant/sdk/guides/library/python/embed/register-device
credentials.jsonは作業ディレクトリ(D:\googleAssistant)へダウンロードします。

3.環境構築
以下を作業ディレクトリにて打つ。
py -3 -m venv env
py -3 -m pip install --upgrade pip setuptools wheel
"D:\googleAssistant\assistant-sdk-python\env\Scripts\activate.bat"

4.認証
google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype --scope https://www.googleapis.com/auth/gcm --save --headless --client-secrets credentials.json

 webアドレス出るのでブラウザで開き、認証コードをコマンドプロンプトへコピペ。

4.pythonサンプルを動かす
py -3 "D:\googleAssistant\assistant-sdk-python\google-assistant-sdk\googlesamples\assistant\grpc\textinput.py" --device-model-id [デバイスモデルID] --lang ja-JP --device-id [適当な端末名]

2018年5月11日金曜日

oculusGoでSteamVRを動かす

スマホをHTC Vive互換HMDとして動作させるVRidge(RiftCat)のGearVR版を使うと、WiFi接続でPCのHMDとしてoculusGoを動かすことができました。
androidスマホが必要です。




手順としては...
  1. 既存のandroidスマホへGearVR版VRidgeをSideloadVRを使ってインストール
  2. adbコマンドでapkファイルをPCへコピー
  3. oculusGoへadbコマンドでインストール
という流れになります。

方法はこちらのredditの書き込みの通りですが補足をいくつか。

・oculusGoを開発者モードに設定
「Oculus Go用の設定を行う」を参照
http://unrealengine.hatenablog.com/entry/2018/05/04/232708

・Android SDK Platform-Toolsのダウンロード
adb.exeがこの中に含まれています。
https://www.orefolder.net/blog/2017/03/platform-tools/

・OculusGo ADBドライバ
自分の環境ではADBドライバを入れずともadbコマンドは使えたものの、ストレージとして認識されなかったので導入をオススメします。
https://developer.oculus.com/downloads/package/oculus-go-adb-drivers/

上記3点を実施し、redditの書き込みを実践するとこう。



2018年5月3日木曜日

Alexaのホットワード検出エンジン"snowboy"でgoogleアシスタントを起動(環境構築編)

amazon Alexaのarexa-avs-sample-appで使われているホットワード検出エンジン"snowboy"でカスタムホットワードを設定し、googleアシスタントが起動できました。
長くなったので2部構成の記事です。

snowboyとは?

独自のホットワードを検出できる、ディープラーニングによるホットワード検出エンジンです。特徴は以下5つ。
・任意のホットワードはオンラインのwebサイトで作成→誰でもホットワードを作成可能
オフラインで動作は完結→googleのように音声データをサーバーにアップしない
・初代ラズパイでもCPU使用率10%未満と軽量
・マシンリソースが許す限り、複数のホットワードを設定可能
・オープンソースかつApachライセンス

snowboy実行環境の構築

OSはubuntu 14.04(x64)を使っています。
構築方法はhttp://docs.kitt.ai/snowboy/より抜粋しています。

1.ビルド済みのバイナリをダウンロード
http://docs.kitt.ai/snowboy/
"Downloads"の"64 bit Ubuntu" 14.04のリンクをクリック。
ダウンロードしたら展開もしておきます。

2.必要なパッケージをインストール
sudo apt-get install python-pyaudio python3-pyaudio sox
pip install pyaudio

3. サンプルを実行
展開したフォルダにカレントディレクトリを移動して
python demo.py resources/snowboy.umdl
英語の発音が下手な自分だとなかなか認識されませんでした(;´Д`)
 

カスタムホットワードの作成

webサイトにて単語を3回発音するだけでカスタムホットワード用のモデルが作成できます。
https://snowboy.kitt.ai/
右上のログインからgithubなりgoogleのアカウントなりでログインします。
ログイン後、Create Hotwordボタンで任意のホットワードを作成できます。

googleアシスタントSDKの応答をテキストで取得する

2017/12/20のアップデートでテキスト入出力によるgoogleアシスタントとのコミュニケーションがサポートされました。
サンプルのtextinput.pyにて試すことができますが、pushtotalk.pyでは音声による入出力のみで、テキストでの応答結果を出力しません。

しかし数行追記するだけでテキストが得られることが判明しました。
Get assistant response. · Issue #168 · googlesamples/assistant-sdk-python · GitHub
https://github.com/googlesamples/assistant-sdk-python/issues/168

前提条件としてgoogleアシスタントSDKを実行できる環境が必要です。
Introduction to the Google Assistant Library
https://developers.google.com/assistant/sdk/guides/library/python/

pythonサンプルはこちらのリポジトリからダウンロードします。
GitHub - googlesamples/assistant-sdk-python
https://github.com/googlesamples/assistant-sdk-python

pushtotalk.pyの134行目に
            if resp.dialog_state_out.supplemental_display_text:
                display_text = resp.dialog_state_out.supplemental_display_text
                logging.info(display_text)
を追記。



実行するとこんな感じ。(引数の--lang ja-JPで日本語になります)