こんにちは、お久しぶりです。
いやあ、時間がなかなかとれず、めっきりなーんもしてない的な・・・。
さて今回は。
Evolv DNAを、パソコンにつないで、なんかやらかしてみようとか、やっていきたいと思います。
えぇ、、、こんなんね。

*今回作ってみたのを、3月18日、日曜日に、M5+に持っていってみます。
もしご興味があれば、どうぞですー。
さて。
キッカケは、以下のフォーラムの記事でした。

URL : https://forum.evolvapor.com/topic/66142-serial-command-line-interface-list-of-commands-and-is-it-a-complete-interface-for-controlling-100-of-dna-200-functions-and-the-basis-of-escribe/
「Further, it appears the host-to-DNA communication is a generic serial interface, wrapped in USB-to-serial」
あら、一般的なUSBシリアルドライバで、DNAシリーズ、動かせそうね?
試しに、手持ちのラズパイで試してみると・・・。

ばっちり繋がるではないですか。
これは、遊べそうな予感!。
しっかりコマンド一覧も用意されており、まあ、USB経由で、DNAの各種情報を引っ張ってこれそうな感じです。

URL : https://github.com/hobbyquaker/dna-commands
使用機材は、5mmピッチの64x32のフルカラーLEDパネルが2枚、AdafruitのMATRIX HAT、赤外線受光部、及びRaspberry PI3です。
ま、こんなんね。

マトリクスLEDのライブラリは、C++で書かれており、まあバインディングはPython用が用意されとります。
いつもならPerlあたりで誤魔化すのですが、今回はお勉強も兼ねて、また高速動作担保の為、Pythonと格闘してみることにしました、はじめてのぱいそん。
DNAとの通信部分を作ってみて・・・。

いやあ、、、コマンド応答型のシリアル通信は、なかなかクセがあるよねえ、、、。
んで、表示部をだらだらーーーーと。

制御周りは、赤外線リモコンを使うことに。
別件で知見のある、Apple Remoteを使うことにしてみましたとさ。
まあ、組み込み系のマイコンと違い、ラズパイさんは、立派なパソコンです。
なので、重苦しい処理も、サクッと動いてくれちゃいます。
LED画面の解像度が、128x32と、まあよく見かけるサイズなので、なんというか見慣れた画面で、ぴこぴこ情報が動くのは、非常に楽しくてよろしいかんじ。
さて。
実装してみた内容を、紹介していきましょうか。
DNAを繋ぐと、グラフ画面に遷移します。

この状態で、パフすると、まあグラフが描画されていきます。

グラフの内容は、現在は、電力(黄色)、温度(水色)、抵抗値(紫色)、あと時間。
グラフの最大値は、入力値の最大値になるため、ダイナミックな感じとなっておりますです、はい。
この状態から、リモコンの+/-で、機能を切り替えられます。
まあ例えば、ありがちなこんな画面とかね。

んじゃ、機能でも解説。
まずはグラフ機能。
グラフの時間軸は、経過時間により、切り替わっていきます。



で、他の機能。
グラフ状態だと、こんな情報が・・・

数字表示モード

出力の標準偏差

1パフ時のトータル出力

DNAの効率を80%としたときの、バッテリー内部抵抗予測値

と、切り替えられます。
まあ、データは取れているので、思いつけば画面増やせるのがいい感じです。
履歴機能も搭載。
リモコン左右で、過去10パフ分までの情報を表示。
例えば3パフ前

4パフ前

現在のパフ、と。

そして何故か、DNAから報告される電流と電圧をかけ合わせた値と、電力がズれていたので。
DNA報告電力と、計算電力を切り替える機能も搭載してみたりね。


以上、なかなか楽しめる感じに実装できました。
個人的にも、よーわからんかったPythonが、朧げながらも掴めて、まあ満足な感じ。
実際に使ってみると、画面がでかくて、情報量が少ないので、状況をつかみやすい感じ。
あと、デバイス本体から離れているので、パフしながら状況を掴めるという、ステキ要素もあったりしてね。

以上ですー。
いやあ、時間がなかなかとれず、めっきりなーんもしてない的な・・・。
さて今回は。
Evolv DNAを、パソコンにつないで、なんかやらかしてみようとか、やっていきたいと思います。
えぇ、、、こんなんね。

*今回作ってみたのを、3月18日、日曜日に、M5+に持っていってみます。
もしご興味があれば、どうぞですー。
さて。
キッカケは、以下のフォーラムの記事でした。

URL : https://forum.evolvapor.com/topic/66142-serial-command-line-interface-list-of-commands-and-is-it-a-complete-interface-for-controlling-100-of-dna-200-functions-and-the-basis-of-escribe/
「Further, it appears the host-to-DNA communication is a generic serial interface, wrapped in USB-to-serial」
あら、一般的なUSBシリアルドライバで、DNAシリーズ、動かせそうね?
試しに、手持ちのラズパイで試してみると・・・。

ばっちり繋がるではないですか。
これは、遊べそうな予感!。
しっかりコマンド一覧も用意されており、まあ、USB経由で、DNAの各種情報を引っ張ってこれそうな感じです。

URL : https://github.com/hobbyquaker/dna-commands
使用機材は、5mmピッチの64x32のフルカラーLEDパネルが2枚、AdafruitのMATRIX HAT、赤外線受光部、及びRaspberry PI3です。
ま、こんなんね。

マトリクスLEDのライブラリは、C++で書かれており、まあバインディングはPython用が用意されとります。
いつもならPerlあたりで誤魔化すのですが、今回はお勉強も兼ねて、また高速動作担保の為、Pythonと格闘してみることにしました、はじめてのぱいそん。
DNAとの通信部分を作ってみて・・・。

いやあ、、、コマンド応答型のシリアル通信は、なかなかクセがあるよねえ、、、。
んで、表示部をだらだらーーーーと。

制御周りは、赤外線リモコンを使うことに。
別件で知見のある、Apple Remoteを使うことにしてみましたとさ。
まあ、組み込み系のマイコンと違い、ラズパイさんは、立派なパソコンです。
なので、重苦しい処理も、サクッと動いてくれちゃいます。
LED画面の解像度が、128x32と、まあよく見かけるサイズなので、なんというか見慣れた画面で、ぴこぴこ情報が動くのは、非常に楽しくてよろしいかんじ。
さて。
実装してみた内容を、紹介していきましょうか。
DNAを繋ぐと、グラフ画面に遷移します。

この状態で、パフすると、まあグラフが描画されていきます。

グラフの内容は、現在は、電力(黄色)、温度(水色)、抵抗値(紫色)、あと時間。
グラフの最大値は、入力値の最大値になるため、ダイナミックな感じとなっておりますです、はい。
この状態から、リモコンの+/-で、機能を切り替えられます。
まあ例えば、ありがちなこんな画面とかね。

んじゃ、機能でも解説。
まずはグラフ機能。
グラフの時間軸は、経過時間により、切り替わっていきます。



で、他の機能。
グラフ状態だと、こんな情報が・・・

数字表示モード

出力の標準偏差

1パフ時のトータル出力

DNAの効率を80%としたときの、バッテリー内部抵抗予測値

と、切り替えられます。
まあ、データは取れているので、思いつけば画面増やせるのがいい感じです。
履歴機能も搭載。
リモコン左右で、過去10パフ分までの情報を表示。
例えば3パフ前

4パフ前

現在のパフ、と。

そして何故か、DNAから報告される電流と電圧をかけ合わせた値と、電力がズれていたので。
DNA報告電力と、計算電力を切り替える機能も搭載してみたりね。


以上、なかなか楽しめる感じに実装できました。
個人的にも、よーわからんかったPythonが、朧げながらも掴めて、まあ満足な感じ。
実際に使ってみると、画面がでかくて、情報量が少ないので、状況をつかみやすい感じ。
あと、デバイス本体から離れているので、パフしながら状況を掴めるという、ステキ要素もあったりしてね。

以上ですー。
お譲りいただくこと可能でしょうか?(´;ω;`)一目惚れですw