こんにちは、お久しぶりです。
いやあ、時間がなかなかとれず、めっきりなーんもしてない的な・・・。

さて今回は。

Evolv DNAを、パソコンにつないで、なんかやらかしてみようとか、やっていきたいと思います。

えぇ、、、こんなんね。
DSC03465

*今回作ってみたのを、3月18日、日曜日に、M5+に持っていってみます。
 もしご興味があれば、どうぞですー。

さて。

キッカケは、以下のフォーラムの記事でした。
Image4

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シリーズ、動かせそうね?

試しに、手持ちのラズパイで試してみると・・・。

Image3
ばっちり繋がるではないですか。
これは、遊べそうな予感!。

しっかりコマンド一覧も用意されており、まあ、USB経由で、DNAの各種情報を引っ張ってこれそうな感じです。

Image5
URL : 
https://github.com/hobbyquaker/dna-commands

使用機材は、5mmピッチの64x32のフルカラーLEDパネルが2枚、AdafruitのMATRIX HAT、赤外線受光部、及びRaspberry PI3です。

ま、こんなんね。
DSC03464


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

DNAとの通信部分を作ってみて・・・。
Image1
いやあ、、、コマンド応答型のシリアル通信は、なかなかクセがあるよねえ、、、。

んで、表示部をだらだらーーーーと。
Image2

制御周りは、赤外線リモコンを使うことに。
別件で知見のある、Apple Remoteを使うことにしてみましたとさ。

まあ、組み込み系のマイコンと違い、ラズパイさんは、立派なパソコンです。
なので、重苦しい処理も、サクッと動いてくれちゃいます。

LED画面の解像度が、128x32と、まあよく見かけるサイズなので、なんというか見慣れた画面で、ぴこぴこ情報が動くのは、非常に楽しくてよろしいかんじ。

さて。

実装してみた内容を、紹介していきましょうか。

DNAを繋ぐと、グラフ画面に遷移します。
no title

この状態で、パフすると、まあグラフが描画されていきます。
1
グラフの内容は、現在は、電力(黄色)、温度(水色)、抵抗値(紫色)、あと時間。
グラフの最大値は、入力値の最大値になるため、ダイナミックな感じとなっておりますです、はい。

この状態から、リモコンの+/-で、機能を切り替えられます。
まあ例えば、ありがちなこんな画面とかね。
2

んじゃ、機能でも解説。

まずはグラフ機能。
グラフの時間軸は、経過時間により、切り替わっていきます。
3
4
5

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

数字表示モード
7

出力の標準偏差
8

1パフ時のトータル出力
9

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

と、切り替えられます。
まあ、データは取れているので、思いつけば画面増やせるのがいい感じです。

履歴機能も搭載。
リモコン左右で、過去10パフ分までの情報を表示。

例えば3パフ前
b

4パフ前
c

現在のパフ、と。
d

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

e

以上、なかなか楽しめる感じに実装できました。
個人的にも、よーわからんかったPythonが、朧げながらも掴めて、まあ満足な感じ。

実際に使ってみると、画面がでかくて、情報量が少ないので、状況をつかみやすい感じ。
あと、デバイス本体から離れているので、パフしながら状況を掴めるという、ステキ要素もあったりしてね。
DSC03463


以上ですー。