人気ブログランキング | 話題のタグを見る

OceanBlue


リーフタンクでクイーンエンゼルのペアリング
by masaX
最新の記事
2023年捕獲群 記録
at 2023-04-14 22:01
2023年群入居
at 2023-04-14 21:56
シュワルベ ワンをチューブレス化
at 2022-12-25 17:20
ずんぐりむっくり
at 2021-08-29 10:08
コンチネンタル GP5000..
at 2021-06-19 15:15
コンチネンタル GP5000..
at 2021-06-02 10:08
コンチネンタル GP5000..
at 2021-06-01 08:22
カテゴリ
外部リンク
フォロー中のブログ
検索
以前の記事
2023年 04月
2022年 12月
2021年 08月
2021年 06月
2021年 05月
2021年 04月
2021年 03月
2021年 02月
2021年 01月
2020年 11月
2020年 08月
2020年 07月
2020年 05月
2020年 03月
2020年 02月
2020年 01月
2019年 11月
2019年 10月
2019年 09月
2019年 08月
2019年 07月
2019年 06月
2019年 05月
2019年 04月
2019年 03月
2019年 01月
2018年 12月
2018年 11月
2018年 10月
2018年 09月
2018年 08月
2018年 07月
2018年 06月
2018年 05月
2018年 04月
2018年 03月
2018年 02月
2018年 01月
2017年 12月
2017年 11月
2017年 10月
2017年 09月
2017年 08月
2017年 07月
2017年 06月
2017年 05月
2017年 04月
2017年 03月
2017年 02月
2017年 01月
2016年 12月
2016年 11月
2016年 10月
2016年 09月
2016年 08月
2016年 07月
2016年 06月
2016年 05月
2016年 04月
2016年 03月
2016年 02月
2016年 01月
2015年 12月
2015年 11月
2015年 10月
2015年 09月
2015年 08月
2015年 07月
2015年 06月
2015年 05月
2015年 04月
2015年 03月
2015年 02月
2015年 01月
2014年 12月
2014年 11月
2014年 10月
2014年 09月
2014年 08月
2014年 07月
2014年 06月
2014年 05月
2014年 04月
2014年 03月
2014年 02月
2014年 01月
2013年 12月
2013年 11月
2013年 10月
2013年 09月
2013年 08月
2013年 07月
2013年 06月
2013年 05月
2013年 04月
2013年 03月
2013年 02月
2013年 01月
2012年 12月
2012年 11月
2012年 10月
2012年 09月
2012年 08月
2012年 07月
2012年 06月
2012年 05月
2012年 04月
2012年 03月
2012年 02月
2012年 01月
2011年 12月
2011年 11月
2011年 10月
2011年 09月
2011年 08月
2011年 07月
2011年 06月
2011年 05月
2011年 04月
2011年 03月
2011年 02月
2011年 01月
2010年 12月
2010年 11月
2010年 10月
2010年 09月
2010年 08月
2010年 07月
2010年 06月
2010年 05月
2010年 04月
2010年 03月
2010年 02月
2010年 01月
2009年 12月
2009年 11月
2009年 10月
2009年 09月
2009年 08月
2009年 07月
2009年 06月
2009年 05月
2009年 04月
2009年 03月
2009年 02月
2009年 01月
2008年 12月
2008年 11月
2008年 10月
2008年 09月
2008年 08月
2008年 07月
2008年 06月
2008年 05月
2008年 04月
2008年 03月
2008年 02月
2008年 01月
2007年 12月
2007年 11月
2007年 10月
2007年 09月
2000年 01月
その他のジャンル

マイコンとパソコンの通信

まだまだ電気は分からない事ばっかりですが


そんな中、いろいろ教えてもらいながら、少ない脳ミソをフル回転させて、ウェーブコントローラー、変温サーモスタット、コラリア用ACポンプドライバー、フォルス用DCポンプドラーバー、電気ショッカー、鉄電解回路、などなど・・・・、自分なりに作りたい回路をいくつか作製してきた。


もうそんなに作りたい、あるいは必要性を感じる電気回路は無いけれども、できる事ならやってみたい事があった。


それは、マイコンとパソコンとの通信。


パソコンのプログラムは10年以上やってるし、マイコンのプログラムも最低限は分かってきたつもりだけれども、パソコンとマイコンとのやり取り(通信)は、どこから入って良いかも分からなかったので、非常に難しい事だろうし、素人が手を付ける領域では無い、と勝手に思い込んでいた(笑)

でも、いつも電気の事でお世話になっているO-Familyさんのところの掲示版で話題が出たので聞いてみると、手が出せないほど難しい訳では無さそうだったので、今のところ、特に何に使う訳でもないけれども、覚えておけば必ずどこかで使う事があるだろう、とも思い、何はともあれ触ってみる事にした。


とりあえず、取り寄せたのは秋月で


・FT232RL USBシリアル変換モジュール
・USBケーブル Aオス−ミニBオス 1.5m A−miniB


マイコンとパソコンの通信_e0359523_13125309.jpg


テスト用に鉄電解回路を少し改造して、この変換モジュールを繋いでみる。


繋ぐ配線は3本だけ。


とりあえず、マイコンのプログラムには、PCから送った数値をそのままLCDに表示するのと、逆にマイコンからは、1秒毎に1ずつカウントした数値をパソコンに送るプログラムを書き込み


パソコンには公開されていたサンプルプログラムをいくつかダウンロードしてプログラムを研究する。


そして、USBケーブルをパソコンに繋いで、ドライバーをインストールし、実際に動かしてみると・・・・・


まず、PCからマイコンにデータを送っても、マイコンは反応しない。


でも、マイコンからPCへはデータが送られてるようで、PCソフト側では反応がある。


ホントは 1,2,3,4,5・・・・・・


と数値が表示されるはずだけれども、数値に混じって変な文字が表示されるので、PCソフトのコードを見直してみると


まず、PCソフトからマイコンに送られていたのが「数値」ではなくて「数字」だったので、おそらくマイコンがデータを認知できなかったのだろう?、と・・・・


そして、マイコンからPCへ送られてくるデータは「数値」ではなくて「文字コード」として受け取っていたようなので、そのせいで数値を送ってるのに、訳の分からない記号が出たり漢字がでたり・・・・・


とりあえず、まずはAVR→PCへの送受信から固めていこうと、またO-Familyさんに相談に乗って頂き、AVR側もPCソフト側もどちらもプログラムコードを見直して組み立ててみた。


通信関連のプログラムを書くのは初めてなので、仕組みや要領がさっぱり解らずに、サンプルプログラムを理解するのに非常に苦労しながら、なんとかかんとかプログラムを組み立てる事ができた。





とりあえず、AVRからPCソフトへ数値データを送る事はできるようになったけれども


データが歯抜けになってたり、うまく受信できていない場合があるので、これでは実際には使い物にならない。


実際にフィールドで使える物にするには


・PCからデータを送る
・マイコンが受信する
・マイコンは何を受信したかをPCに返信する
・PCは送ったデータとマイコンから返ってきたデータが一致するか確認し、一致すれば送信完了、送信完了しなかった場合は再送信する


最低限、この程度の仕事をさせる必要がある、との事だったので、またO-Familyさんに御指導いただき、マイコン側、PC側、共にプログラムを組み替えてみた。


前回のテストはマイコンから送信し、PCが受信するだけのプログラム構成でしたが


今回は、PCから送信して、マイコンが受信し、受信した内容を逆にマイコンから返信させる


というプログラムにしてみた。


今は、これを何に使うつもりの訳でもなく、単に勉強のために組んでるだけですが


どうせなら、使う可能性がありそうな場面を想定してやってみる。


想定したのは、変温サーモスタット「変温くん」から 設定温度や設定する温度変化、その他非常に多くの設定項目を稼働させたまま、PCへ取り込み、PCで確認してから内容を書き換えて、マイコンの設定項目を書き直す、という動きを想定してみた。


この場合、一つのデータをマイコンに送っても、マイコン側では何のデータなのかを判断できないので、インデックスのデータも一緒に送る必要がある。例えば「夏場の最高温度」を30℃の設定するなら、この項目は1階層で6番目のデータなので 「1」と「6」と「30」という3種類のデータをしかも区別できるように送ってやる必要がある。なので、このデータを送るに当って、3種類のデータをマイコン側で区別できるように 目印を付けて送信するようにしてみた。


方法としては1番目のデータは<>、2番目のデータは[]、3番目のデータは:;で囲んで送る事とし、受けたマイコン側では、このそれぞれのマークで囲まれた値をデータとして取り込むプログラムにする。そして、データを受け取った事をPCに知らせるために、受けたデータをPCに返信し、返信を受けたPCは、送ったデータと返ってきたデータが一致するかを確認し、一致してれば完了、となるプログラムを組んでみた。


   





なんとかもう少しで使えそうな感じになってきたので、どの程度のスピードまで追従できるのかを試すために、PC側のソフトをまた書き換えて、タイマーで自動的にランダムな数値を連続で送り続けるプログラムにしてみた。





 

さて、何に使おうか?、考える事にしよう!!



by masax7790 | 2014-05-25 00:04
<< 単なる記録 アミノ酸 14/0... Coke-system 改名 >>