「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



VB2005とAVRを繋いで作るロジアナ、ネコロジー。
ここのところずっとつきっきりだったPC側ソフト、
ネコロジーPCがひとまず動作するところまで行きました。

画面はこんなかんじ。


上から1行目が0ビット目入力ピンで、上記は
チャタリングが取り込まれたところです。

3行目が2ビット目で、ずっとlow入力。
それ以外のピンはhigh入力という画です。
lowは白、highは緑で表示されます。

ネコロジーAVRとシリアルケーブルで115200bpsで
接続し、8ピン入力でデータを取り込みます。


サンプリングの細かさについては、PC側ソフトの仕様では
既定されません。接続する機器(今回はAVR-MEGA48
によるロジアナ)次第で、もっと速い速度でも今のまま
対応できるのがミソ。

PC側と外付け機器側を結ぶI/F仕様を↓
http://picavr.uunyan.com/avr_m_logiana.html
このページに挙げておいたフォーマット様式
(長いページなのでページ内サーチしてください)に
従って作っているためです。

今後、CPLDなどを使ってもっと速い速度のを
作っても、このPCソフトのままでで対応可能です。

ちなみにMEGA48版では最速2.5Msps、
つまり1サンプルあたり0.4us。
AVR-studioのシミュレーター機能が
もう少し品質高ければもうちょっとだけ速い
レートでも取り込めるんですけど、シミュレーター
自体にバグがあるので、それを避けると
2.5Mspsが目下の限界。


サンプルレートやトリガー条件はネコロジーAVR側
から使用可能なものをリストボックスに取り込んでいます。
使用者がその中からサンプルレートやトリガー条件を
マウスで選択し、「Sampling Start」をポチッと押すと
サンプルがスタートします。


時間が空いたら、VB2005express用の
プロジェクト一式をサイト上にアップして置きます。
使ってみたい方は弄ってみてください。

ちなみに、まだ一通り動いたというだけで、
エラー処理とか例外処理とか安定性とか、
そこらへんはまだまだです。今後の課題。

横方向のスケールも全然表示されてないし、
A点~B点の間の経過時間を調べたり、
データの保存・再読み込みも未搭載。


まぁ、ここまで出来ちゃえば、あとは暇な時に
少しずつ付け足していくのは多分簡単。

こうご期待。


それにしても、VBが.NET環境になっちゃってから、
serialportが別スレッドになっちゃったので、取り扱い
が面倒で仕方ありません。

マルチスレッドは色々メリットはあるんですけど、
プログラミングスタイルとしてはある意味時代を
逆行しているような感じがします。

その昔、変数や処理内容を局所化してわかりやすく
しましょうという意味でgoto文を排除する
「構造化言語」が広く取り込まれ、その後コードの
再利用等を目的に「オブジェクト指向」が取り込まれて
きましたが、マルチスレッドについてはその浸透により、
かつて見たような”煩雑さ”が新たに生まれて、
ソースの可読性を低めているような気がするのは
気のせいでしょうか?

メインの処理を行っているのか、それとも別スレッドの
処理を監視しているのか…それがゴチャゴチャに
混ざっちゃう、みたいな。

そんなものを1つのロジック内にゴチャゴチャと
書いていったら、「本来の処理」がなんなのかが
判りにくくなると思うんですけどね。
単にdelegateとinvokeが見難いというだけでなく…。

きちんと分離して記述できるような方法を、新たな作法
として構築して欲しいなぁ…。



コメント ( 0 )




http://akizukidenshi.com/catalog/items2.php?q=%22I-02368%22&s=date&p=1&r=1&page=

この間秋月の新商品に並んでいたこのオペアンプ、
SR=1とちょっと遅かったので、発見した時には
スルーレート命の私の触手には引っかからなかった
んですが、70mA取り出せるんですか。ははぁ…

70mAも取り出せるなら、もしかしたらマイコンの
電源にできんかな?

5Vと3V(もしくは3.3V)のマイコンを混在
させるときに、デジタル信号に特化すれば
それほど高精度な電源じゃなくてもそれなりに
動くことは動く気がするし、8ビットの小さい
マイコンコアなら70mAも食わないと思うし。

3V用の三端子レギュレーターって結構な値段するし。
(まぁ、基準電圧回路はオペアンプを含んでいる
んですが、出力が…)

ということで、このオペアンプを非反転増幅回路
で使って、反転入力側は5Vを抵抗で分圧
(例えば1.5V)した電圧を掛け、増幅率を2倍
に設定すれば出力が3V出力。
それをマイコンのVccに繋げばokかなって。

でも、普通に考えたらシリコンダイオードを直列に
2個繋いで、2個分のVfで電圧下げるほうが
安上がり。

電圧値の正確さはオペアンプ、値段や取り出せる電流
ならダイオードといった感じでしょうか。



コメント ( 0 )