JA制御 ヒダピオ を応援するサイト  


5 ListBox−ファイル saveとload 09.06.08
4 PCプログラムの工夫 09.06.08 二重起動防止 終了ボタン など
3 参考二 ポートBの出力制御 09.05.31
2 参考一 ヒダピオの基本回路 09.05.30
1 はじめに 09.05.14










5 ListBox−ファイル saveとload
 ListBoxの内容をテキストファイルに書き出すことと、読み込むことの実装例を作ってみました。→save_load_current.zip
ファイルの選択方法にはいろいろなバリエーションがあるかと思いますが、とりあえず一般のセーブダイヤログを使っています。



4 PCプログラムの工夫  二重起動防止 終了ボタン など
 ヒダピオプログラムを使いやすくするための工夫を報告します。実装例→bun2.zip

@初期画面(メニュー画面)の二重起動を防止します。
実装例は http://www.enjoy.ne.jp/~ogu/tips/run.html を使わせていただきました。
.NET FW の機能を使うものがあるようですが、これはどちらか理解していません。使用PCに .NET 2.0 が入っているので確認できていません。
プロジェクトファイルのソースに //追加 と記してあるところがこの部分です。アプリケーション名が二度でてきますが同じでないといけません。

A終了は×アイコンで行わず、終了ボタンで行います。
プログラム(メニューでない)を終了するときは.dllファイル使用の後始末をするために×印アイコンで終わりたくありません。そこで、×印アイコンを無効にすること(FormCreateで)と終了ボタンでフォームを終了すること(終了ボタンクリックで)を加えています。それぞれのルーチンに注釈を入れています。

Bプログラム選択後はメニュー画面を見えなくします。
プログラム起動後にメニューが見えると混乱の元になりますから、メニューからプログラム画面を呼び出すときにメニュー画面を見えなくして、プログラム画面が終了するときにメニュー画面を復帰しています。




3 参考二 ポートBの出力制御
 出力に設定されているヒダピオのポートBの各ビットにH(1)またはL(0)を書き込むプログラムbun.exeを作ってみました。→bun.zip (同梱のhidmon.dllは評価用です。テストが終われば、正規のものと差し替えてください)

 ヒダピオはマイコンのポートを1または0に設定したり、ポートの1,0をPCに報告できるシステムです。このプログラムではポートBの各ビットをHにしたり、Lにすることができます。また、その結果を読みとることもできます。ポートの状態を変化して、その結果を調べるプログラムだと言えます。
しかし、ポートの結果がどのように見えるかは知りません。だから、LEDが点灯するか消灯するかはLEDの接続の仕方で変わりますので、ヒダピオは点灯の有無まではPCに報告できません。
 このプログラムはシミュレータでないことを確認してください。何もシミュレートしていませんから、ヒダピオが動かないと何もわかりません。
使い方の説明は必要ないと思っていますので、気のつかないところがあればメールか掲示板でお知らせ下さい。筆者のコンピュータ環境では再現できないこともありますので、不具合の報告をお願いします。また、感想もいただけたら嬉しいです。



2 参考一 ヒダピオの基本回路
 電子回路が得意でない方のためになればと、書いてみます。
まずは回路の様子です。


 右端のLED回路と入力回路を除いてUSB信号を処理する回路とそのためにtiny2313に書き込まれたソフトウエア(ファームウエアという)を合わせてHIDaspxと名付けられていますがsenshu氏の労作です。また、このHIDaspxを用いてパソコン(PC)からマイコンのポートを制御するためのパソコン上のプログラムはhidmonという名前でiruka氏の作品です。これらを使われた後で感想などを作者に送っていただくことをお願いします。

 今回は右端のLED出力と入力回路についてはなしをします。
まず、8個のLEDは電流調節のための抵抗を通じて電源とマイコンのポートBにつながれています。船が出入りする港portの様に電気信号が出入りしますのでポートとよばれています。 マイコンのポートBの7番から0番までの8個の端子は、(今回は)パソコンからUSBケーブルを経由して、電源側(5V)につながれるか、GND側(アース側、0V)につながれるか、の2つの内の1つの状態をとります。
下の出力説明図にあるとおり、このLEDのつなぎかたではスイッチがGND側につながれたときに点灯します。すなわち、ポートBの端子に'0'(=0V)が出力されたときに点灯することになります。
PB7から4個のLEDを点灯し、残りの4個を消灯するにはPB7からPB0へ'00001111'を出力する信号を送ればよいことになります。
LEDのアノードとカソードの向きを反対にして、5VにつながずにGNDへつなぐとポートが1で点灯、ポートが0で消灯する回路ができます。そのときの状況でどちらの接続も同じようにできるのですが、ここでは0で点灯する接続にしています。

次に入力回路ですが、この種のマイコンは入力をオープンにしておくとノイズで誤動作の可能性がありますので、通常は抵抗で電源5Vにつないで置いて(これをプルアップといいます)、スイッチONで0Vにつなぎます。当然ONでは抵抗を通じて電流は流れますが 5V/15kΩ≒0.3mA程度ですからわずかなものです。

普通の電気回路では電源電圧5Vが意味を持ち、0Vは動作しないケースが多いのですが、コンピュータの世界では5Vでは何もせず、0Vのときに有意義な動作をする場合が多くあります。コンピュータになれるために知っていると便利です。

余談ですが、このマイコンは6Vを超えて使ってはならないことになっています。一瞬であっても保証はできないことになっていますから、乾電池4本で使うことはできません。
普通は5Vで使うことが多いのですが、3.3Vで使われることも多くあります。ここでは他の条件から5Vとしています。
電源回路の100mAポリスイッチはヒューズの代わりをするものですが、出力が短絡すると100mAで定常状態になるというもので、電源の保護のために(パソコンを壊さないために)入れてあります。このことから100mAは取り出せる、というものではありませんので小型であっても出力でモーターを回すのは困難です。

【次回はポートBの各端子を 1 または 0 にするプログラムについて、を予定しています。】



1 はじめに
(2009.05.14)
 中学校で「制御」が必修になると言うことで教材研究に取り組んでおられるかたに 一人の老アマチュアに過ぎませんがお手伝いできることがあればと思ってページを作りました。構想もできていませんのでいつ挫折するかわからない状態ですが少し頑張って見ましょう。

 この時期にsenshuさんが HIDaspx システムを作られたのは実に素晴らしいことだと思います。子どもたちが家庭に帰ってもUSB端子しか持たないコンピュータが多いであろう時に経済的に手の届くシステムを作られたことは中学校の現場にとって素晴らしい光明でしょう。実習に関係される多くの方がこのシステムを理解して子どもたちの学習に役立てることができれば制作された先生にとっても素晴らしいことだと思います。全国の中学生の1割が使うことになるとそこからのフィードバックもあって一層使いやすいシステムに発展すると思われます。

 ハンドルネームakakusaさんとメールで話をしている中で、このHIDaspxシステムを親しみやすくするためのGUIプログラムを作ってみました。一般に万能機は優れた機能を持ちますが場合によっては単能機の方が扱いやすいことがあります。その意味で必要最小限の機能に制限したのがmini版です。高校生になって英語の時間に黒板の文字を「模様」としてノートに書く子もいる時代ですからボタンも日本語にしました。「簡単な英単語ぐらいは理解して欲しい」との気持ちと葛藤はありますがもし使っていただけたらご意見をいただきたいと思うところです。

これからのこのページは思いついたことを。できるだけご迷惑がかからないように書こうと思いますが、もしご意見や質問がありましたら、
                  kuman2600 at gmail.com    ( at を変えてください)
へ寄せてください。このページで展開できたらと思います。(と、自信のないままにスタートします。)

















TOPページへもどる