AdSense

2019年10月21日月曜日

MAiX BITを購入してSampleを動かした記録

勉強会でMAiX BITを見かけて面白そうだったのでAliでポチって動かした記録

ことはじめ

MAiX BITとは、K210というM5Stick-Vと同じKPU(Knowldge Processing UnitというNNアクセラレータ)が乗っている、これだけでTensorFlowの機会学習モデルが動くすごいやつで、カメラとLCD付きで超低価格。
Aliだと3000円を切っていた。
なお、読み方はマックスビットらしい。アイは口にしてはいけない。


面白そうだったので購入してみたが、なかなか動くまで苦労したのでその記録。

Windows環境だったので使い方は下記などを参考にさせて頂いた。
https://qiita.com/tomitomi3/items/d1b675957238f9b7f965

SDKは公式から入手
https://wiki.sipeed.com/en/maix/board/bit.html

FWと学習データ書き込みツールはK-FLASHを使用。

戸惑ったったところは3つ

・1つ目は、SDKのダウンロード。
最新版v0.2.4は、そのフォルダ名ではなく「_」の下にある
http://dl.sipeed.com/MAIX/MaixPy/ide/_/v0.2.4
で、右クリックで保存しても壊れたファイルになるので、ちゃんとクリックして表示された文字列を入力しないとだめ。

・2つ目はUSBドライバ
USBドライバが古いやつはCH340で、新しいやつはCH552だと公式に書かれていた。
私のはどうやらCH552。ぐぐるとCH552がかなり特殊な感じだして戸惑ったが、
結局これ用にドライバを入れることなく、普通にWindowsは認識した。COMポート2つ。
なんで2つかわからないが一方を115200指定で通信できることを確認。

・3つ目はK-FLASH
FWと学習データの書き込みツールだが、初期表示はBaudRateが2000000になっている。
で、これで書き込むと失敗した。115200にすると時間はかかるが書き込みOK
あと、実機の書き込み時は、実機のbootボタンを押しっぱなしにして起動する必要がある。書き込み完了するまで押しっぱなしで書き込みできた。


無事、起動してサンプルプログラムを書き込み、顔認証できた。















丸裸なので、3Dプリンタでケースを出力。データはThingiverseでいい感じのを入手。
http://www.thingiverse.com/





2019年2月3日日曜日

生体センサー(心拍、心電、眼電位)を計測した記録

様々なセンシングデバイスを使って生体データを計測した記録。

●生体データセンサー3つ

・心拍センサー


Arduinoで心拍数が取得できます。
指との接触部分に隙間ができるとノイズがはいるので、
これ以外にも指に巻くためのテープやがあると良いです。
URLの手順通りで簡単に心拍数とれました。
Arduinoのサンプルソースもたくさんあります。
processingと組み合わせると、見た目が良い感じになります。
それもサンプルソースが難なく動きました。
aliexpressだと200円くらい


・心電センサー


心拍センサーと同じようにArduinoで簡単に使えました。
ジェルパッドの分だけ接着が良いのか、
心拍センサーよりはるかにノイズが少なかったです。
接続方法は公式サイトの通りで難なくOK。
こちらもArduinoとProcessingのソースが一緒にGitHubにあり難なく動きました。
サンプルソースでBPMがすぐにわかります。
自律神経を知るためにRRI間隔を取りたかったのですがサンプルソースでは動かず。
aliexpressだと500円くらい

Arduinoと接続

体につける部分はジェルになっています

・眼電位

眼電位から、見ている方向や瞬きを取得し、
加速度とジャイロセンサと組み合わせることで集中度や疲労を推定することができるデバイス。
公式サイトにSDKとサンプルソースが配布されています。
アプリの実行にはIDとPASSが必要で、こちらは開発者サイトのチュートリアル通り、メールアドレスを登録すると使用できます。
 「3.アプリIDとアプリSecretの取得」の部分です。
Android版を動かしたところ、IDの設定だけですんなり動きました。

メガネです。スマホとBTで接続します。
電位は鼻を支える部分からとってるようでした。
メガネメーカー製のため、重さは非常に軽く、
普通のメガネとして日常的に使えそうです。

SDKサンプルアプリのリアルタイムモード
リアルタイムのモニタリングデータが参照できる

SDKサンプルアプリのスタンダードモード
1分間分の集計データが取得できる

考察

・心拍センサ、心電センサともに、動くとノイズが入るので、ノイズ除去のアルゴリズムが必要な見込み
・眼電位は、公式アプリの場合はキャリブレーションするので、複数人で使い回す場合はキャリブレーションが必要と思われます。特に、眼の方向は上下左右の4方向で5段階なので、精度はアプリの向上が必要な見込み。こちらについては論文ありました。


2019年1月27日日曜日

Roomba 980をraspberry piで動かしてみた

Roomba980を手にいてたので、任意の操作を試した記録。

REST APIでスマホ代わりに動かした記事は結構見つかったけども、直接ホイールなどのレベルで制御した記事は見つからず。
500シリーズはシリアルポートを制御した記事が結構あるが、900シリーズはあまりない。

ということで、900シリーズである980を直接制御してみた。

500シリーズはシリアルポートがあり、USBシリアルで制御するが、980はMicroUSBポートがあり、そこをシリアルポートとして使う。

場所はここ。カバーは簡単に外れる。

ここにあるMicroUSBにケーブルを挿す。
初めはWindowsPCで試すが、iRobot Roombaと認識するがCOMポートとは認識せず。
どうやらドライバが必要の模様。しかしドライバを見つけられず。

しばらくググると、Raspberry piならば何もせずともttyACM0として認識するとの記事を発見し、試すと確かにUSB挿すだけでttyACM0として認識する。

ここまでいけば、あとはROIの通りにコマンド送るだけで良いはず。

ROI(500 series)

しかし、なぜか私の環境ではコマンド送っても反応せず。
おもむろに下記のスクリプト流すとすんなり動きました。

ただし、COMポートだけはソース修正必要です。

https://github.com/martinschaef/roomba

この部分
 ROOMBA_PORT = "/dev/tty.usbserial-DA017V6X"
  ↓
 ROOMBA_PORT = "/dev/ttyACM0"

game.pyもstarwards.pyも無事動きました。





下記記事参考にさせていただきました
https://qiita.com/ozwk/items/7ed89479cf4931970edd





2018年5月23日水曜日

家の間取りを図面から3Dモデルに起こしてみた

家の間取りを検討することになり、ハウスメーカーさんが3Dで見せてくれるわけですが、3Dデータをもらえなかったので、自分で3DCGに起こしてみました。

元にしたのは、間取りの設計図面です。

使うツール:

Sweet Home 3D

無料の間取り作成ツールです。
 SketchUpなどと迷いましたが、私はこれが一番使いやすかったです。

ざっくりしたやり方:

1. Sweet Home 3Dをインストールする
2. 間取り図面を元に床を配置する
3. 壁を配置する
4. ドアと窓をつける
5. 家具をおく

※外部データのインポートもできます

6. 床や壁にテクスチャをはりつける

※テクスチャはGoogle画像検索で取得

1Fの間取り

2Fの間取り

3F(屋根)
外壁も、タイル柄のテクスチャをググって取得して貼り付けました。

3Dビューモードにて、住民視点で内覧できます。

歩き回ることもできます。

家具の寸法も指定して配置できるので、使いたい家具や、引っ越しで持っていって良い家具のサイズを考慮したりと、詳細まで間取りのシミュレーションができた点が一番よかったです。

なお、3Dビューのタブから「OBJ形式でエクスポート」を選択することで、OBJファイルとしてエクスポートできます。

つまり、この3DモデルをUnityに取り込んだり、3Dプリントすることができます。

次回は、外構含めた周囲の環境をUnityで作成し、3Dの家をヘッドマウントディスプレイをつけてVR空間で歩き回りたいと思います。


2018年1月2日火曜日

Nature RemoとGoogle Homeで家電を音声で動かした記録

Nature Remoとスマートスピーカーを繋げて、音声でエアコンなどの家電を制御した。

動かした機器は以下。全部赤外線リモコンの製品。
・エアコン
・テレビ
・HDDレコーダー

テレビ側がhdmiでの電源制御に対応していればgoogle home+chrome castでテレビの電源On/Offはできるそうだが、我が家のテレビは古くて未対応だった。
なので、今回Nature Remoがきたおかげでようやく制御できた。

使ったもの:

・Google Home(Amazon echoでもOK)

 
もちろんgoogle home miniやEcho dotでもOK

・Nature Remo


 Amazonでは3万超えてますが、公式から15000程度で購入。

・赤外線機器(エアコン、テレビ、HDDレコーダー)

既存の家電たち

構築方法と気づいたこと:

・Remoの設定はアプリのガイドに従って特に迷うことなく設定OK。
・スマートスピーカーと連携させるためにIFTTTにていくつかコントロールを追加
  テレビ電源や、レコーダーの電源などをIFTTTで追加。
・google homeの予約語(テレビをON/OFF/つけて/けして)はgoogle home側のサービス(chrome cast制御)に使われるようでIFTTTで登録してもダメだった。
 「テレビをつけて」はNG。「テレビの電源」ならOK。
・Remo経由でエアコンの電源ONすると、タイマー設定が消えた。
 おそらく、リモコンだと電源ON時に毎回タイマー設定を送っていたのが、Remoだとタイマー設定を送っていない。
 なので、タイマーを使いたい場合は、Remoで電源を入れた後に、エアコンのリモコンでタイマー設定をやり直す必要があり面倒くさい。
 Remoのアプリで、位置情報による制御はできるが、現時点(2018/1/2)ではタイマー機能は未対応なので、早急なアプリ対応が望まれる。というか、タイマー設定消えるなら、Remo側でやれないと話にならない。
・テレビやレコーダーの電源制御はリモコンの電源ボタンの置き換えでしかないので、電源ON/OFFの区別はできない。
 つまり、「レコーダーの電源をON」でも「レコーダーの電源をOFF」でも同じ赤外線信号を飛ばすしかない。このため、IFTTTで複数機器制御(「全部けして」「おやすみ」などで、全部の機器をOFFにする)を登録しても、全ての機器の電源がONだったり、OFFだったりとそろってなければ、同時にOFFやONすることはできない。
・テレビの入力切り替えをIFTTTに登録して音声でやってみたが、テレビリモコンのUI的に、何度も入力切り替えを押す必要がある。このため何度も「OK Google、テレビの入力切り替え」を言う必要があり、大変面倒くさい。というか普段使いは非現実的。
 
我が家の家電が古いためかもしれないが、最後の2点あたりが赤外線I/Fの限界と感じた。
ユーザが直接フィードバッグを受けることを前提とした赤外線リモコンではなく、ユーザの遠隔制御を前提とした家電側のインタフェースが整わないとスマート化は難しい気がする。

ただ、連続制御については、IFTTTではなくAction on Google(Dialogflow)などでやると上手い方法あるかも。

後半は辛口レビューみたいになったが、Remoのおかげでかなり未来を感じることができた。
Remoについては、アプリもファームも今後どんどん更新されていくと思うので今後が楽しみだ。







スマートスピーカーをつくった記録

Google HomeやAmazon Echoなどいろいろありますが、
Google Voice Kitというスマートスピーカーの自作キットで作った記録。

作ったと言っても、キットを説明書通りに組み立てただけ。

使うもの:

・Google AIY Voice Kit


 ダンボールやスピーカーやスイッチや、Raspberry Piの拡張基盤など

 ・Raspberry Pi 3

 普通のRaspberry Pi3。

Raspberry piは持ってたやつを使用した。
もともと子供の学習用にRaspbian OSを入れてたので、その環境がなくなることを心配したが、公式が配布しているVoice Kit用のOSも最新のRaspbianベースのようで、ScratchもMinecraft piもプリインストールされていたので、書き換えても問題なかった。

作り方:

・Voice Kitについている説明書を見るだけでできた。
  英語版だったので、説明は英語だったが図が豊富でとてもわかりやすい。

 公式サイトでも同じ内容が書かれている。
部品一式

接続

 拡張基盤をラズパイに載せる

 上から見た図

 ダンボールに入れる

できあがり

この後、HDMIでディスプレイに画面を出しつつキーボードをつなぎ、説明書に従ってgoogle cloud platformでvoice assistantの設定をします。

結果

サンプルスクリプトの実行で無事動きました。
動画ではボタンをトリガに動いていますが、「ok google」という音声トリガでも動きます。
対応言語は今のところ英語だけのようです。









2017年11月24日金曜日

Google Homeでスマート電球を動かしてみた

Google Homeを購入したものの、Chrome Castしかデバイスがなかったので、スマート電球を制御してみました。

  ※これはカバーなので注意

なお、同じことはAmazon Echoでも出来ます。


スマート電球と言ってもFilipsのHueではありません。
これは高すぎる。


使いやすそうだがとても高額。
電球に8000円は出せない。

代わりに、Aliexpressで見つけた中華スマートバルブでやってみました。

調光対応e27 wifi rgb led電球ライト音声制御によるalexaエコーgoogleホーム2.4グラムwfifi制御によるappホワイトカラー対応



なんと1600円。

Hueのような制御機は不要で、この電球単体でGoogle Homeから制御できます。
点灯消灯はもちろん、照明の色も音声で変えられます。

やり方は上記ページかこちらのYoutube

1.スマホにSmart Life(Android/iOS)アプリインストール
2.Smart Lifeでアカウント作成
3.Google Homeのデバイス登録でSmart Lifeを指定

とても簡単。
ただし3で、スマート電球のニックネームをつけないと、Google Homeから使えなかった点に注意。


Amazonで同じようなの探したらこちらが近い。
違いは制御アプリがSmart LifeではなくMagic Hueな点。