denshikobo’s blog

PICプログラミングやPCの操作で感じた日々の由無し事を綴ります

Oscilogiの新たな課題に取り組むことにした

(2016.08.25)
Oscilogiの開発は『自分が必要となった機能を実現する』という方針で進めてきました。

今やりたいのは、(これ↓)の動作テストです。
https://www.amazon.co.jp/gp/product/B010FJTEFC/ref=oh_aui_detailpage_o03_s00?ie=UTF8&psc=1

充電器とバッテリー電圧をモニタしながら、18650リチウムバッテリーを充放電させて、その挙動を調べる計画です。Oscilogiにデータ・ロガー モードを設けて、数時間に及ぶ連続計測を行えるようにしようと考えました。

計測時間の設定単位にmHz(現状はHzとkHzの二つ)を加えれば、データ・ロガーになると簡単に考えていたのですが・・・

Osci_Logi_Console(JAVAプログラム)に設定単位を追加するのは簡単な作業でした。
PICの計測は1秒単位に行い、メモリに格納するときにデータを間引くという方法で、長時間の計測を実現しました。動かして初めて大きな問題に気付きました。

Oscilogiは計測データをPICに蓄え、計測終了時にそれをOsci_Logi_Consoleが読み取って、グラフ表示しています。つまり計測終了までデータ表示は行いません。計測時間が短ければ、何も問題なかったのですが、数時間に及ぶ計測の場合、途中経過が判らないということでは困ります。

そこで、計測中にOsci_Logi_Consoleがデータを読み取ってグラフ表示する機能を組み込むことにしました。

開発手順はこんな感じです
(1)データ・ロガー・モード設定ボタン追加
(2)データ・ロガー計測中のI2Cコマンド送受
(3)DMAポインタの読み取り
(4)計測途中に部分データ読み取り
(5)部分データの表示

『設定ボタン追加』といっても、サンプリング・レートが20Hz以上では無効にするとか、細かなロジックの組み込みが必要です。(3)まで済んで、いよいよ計測中のデータ読み取りと部分データの表示に取り組みます。

何か、とっても楽しい~