2019年12月8日日曜日

4000円でWiFiサーマルプリンタを用意した



boothの商品はあんしんBOOTHパックで発送しているのですが、QRコードを発送の度にスマホで表示させるのが手間なので、
①pythonでboothの注文詳細ページから注文番号、商品名、数量、QRコードを取得
②サーマルプリンタで印刷
③ダンボールに貼るよう
というフローを取っていました。
ただ最近寿命なのか印字がかすれるようになり、QRコードが読み取れなくなることが多くなってしまいました。
また、pythonスクリプトを1注文ごとに動かすようにしていたのを、複数の注文をまとめて処理できるようにしたので、オートカッター付きのものが欲しくなりました。
先代のサーマルプリンタ

そこでヤフオクにてジャンクのオートカッター付きサーマルプリンタを調達
PRP-250 1701円(送料1700円)

USB,232C,LANが装備されています。このいずれかで無線化しようという算段です。

今回はLANをWiFi化する作戦。
Microuter-N300 1999円
https://www.amazon.co.jp/dp/B07ZQ4VJM7
LANx1とWiFiが乗っています。 中のファームウェアはOpenWrtで動いており、上級者向けに操作インターフェースも開放されています。
安いけどちゃんと技適ついてます。ヨシ!

 サーマルプリンタはフィードボタンを押しながら電源ON→エラーランプ消えたらボタン離す操作で現在の設定が印刷されます。固定IPアドレスがわかったらブラウザからアクセス。今回はDHCPから取得するように変更しました。
 ちなみにメーカーのサポートページにてIPアドレス変更ツールが公開されていましたが、プリンタ検出してくれず、試行錯誤で時間を浪費しました...。
N300の設定。まずはDHCP割り振りを固定化。ここで192.168.8.100としていますが、実際に振られるのは+1した192.168.8.101になっています。。。謎。。。


ポートフォワーディングの設定。9100が印刷で使用するポート、80番は一応webGUI見る用です。
  

N300自体のポートも空けておきます。これを設定しておけば上流のWiFi側からでも設定ができるようになります。

両面テープでプリンタ裏側に貼り付け。コンパクトでいい感じです。

ロール紙のホルダーがなかったので3Dプリンタで自作。58mm幅使う時は専用のガイドを立てるようですが、軸にストッパーをつけて一体化しました。

2019年6月30日日曜日

アパートでもHTC VIVEを快適にプレイしたい!

ベースステーション用の突っ張り棒を昨日調達して(ホムセン行ったら安かったのでつい)快適な環境の構築が終わりました。

部屋の左半分

部屋の右半分

180度パノラマ画像

プレイスペースは4.5畳ほどしかありません。
もっと広い部屋が欲しい...。


HMDのケーブルはカラビナ付きキーリールで吊っています。
部屋の端っこで床に伏しても大丈夫


VIVEトラッカー用のドングルはUSBポートを1つ飛ばしに間隔を空けてハブに接続しています。電波干渉を低減するのと、そもそもドングルが厚いので物理的に干渉します。
リンクボックスは壁紙用両面テープで貼り付けています。一度模様替えのときに剥がしましたが、壁紙やリンクボックスへのダメージはありませんでした。


部屋右半分側のベースステーション。
突っ張り棒にクランプを組み合わせて固定しています。
突っ張り棒に電源コードも一緒に這わせて固定しているので床がすっきりしました。

 部屋左半分のベースステーション
カーテンレールにクランプで固定しています。電源ケーブルはテープでレールの上に固定。

 

使用材料

自分が使ったものを挙げておきます。

・10ポートセルフパワーUSBハブ U2H-Z10SWH 1台
https://www2.elecom.co.jp/cable/usb-hub/u2h-z10s/
ヤフオクから調達したもの。
2.0接続かつバスパワーであればなんでも問題ないと思う

・3個組 カラビナ付 キーリール 2セット
https://www.amazon.co.jp/dp/B01N4MM2DM/

・平安伸銅工業 突っ張り棒 耐荷重30~8kg 幅170~280cm RTW-170
https://www.amazon.co.jp/gp/product/B00I4HEI2C
HMD用の突っ張り棒。購入当時と変わり、現在は最小注文個数が2コになっている。
↓の突っ張り棒のほうが同等スペックかつ安価でオススメ。

・強力突っ張りポールL VHC-L
https://vivaonline.vivahome.co.jp/shop/g/g46912500/
ベースステーション用の突っ張り棒。スーパービバホームで購入。
商品ラベルに幅170~280、耐荷重30kgの記載あり

・台座固定式ミニ三脚 2コ
https://www.amazon.co.jp/gp/product/B005V8KM54
突っ張り棒とカーテンレールへの固定に使用。
剛性があまりないのでクランプする幅が合えば他のものをオススメする

・ニトムズ はがせる両面テープ 壁紙用 15mm×1.5m T3971
https://www.amazon.co.jp/gp/product/B004JLHSGA
リンクボックスを壁に貼り付けるために使用

・結束バンド
ストックから適当なものを使用

・HDMIケーブル 5m
・USB2.0延長ケーブル 3mx2
・延長コード 3mx2


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ボタンで任意のホットワードを作成できます。