忍者ブログ

Fグループ電子工作講座

秋月電子SH7125ボードで始めるマイコン開発

シリアル通信の設定(番外編)ホストプログラムサンプル

関連:シリアル通信関連記事一覧

シリアル通信ができるようになれば、PCからマイコンのリモート制御ができるようなります。
PCからマイコンのリモート制御を行うにはPC、マイコン共にプログラムが必要となります。
マイコン側プログラムファームウェアPC側プログラムホストプログラムといった呼び方をします。

ここまで学んできたようにファームウェアの初期設定を作成するのに多くの知識が必要となり多くの時間が必要となります。
同様にホストプログラムを作成するのにもマイコンとは異なる多くの知識が必要となり多くの時間が必要となります。

当ブログではメカトロニクスを勉強したい方向けにSH7125および周辺回路の設計に念頭を置いて解説を書いております。PC用ソフトウェアを開発できればOpenCV画像処理した結果と連携してみたり、Unityで作った物理演算機能付きCGと連携してみたり、できる事が無限大に広がります。当然マイコンより学ぶことが圧倒的に多いためその解説を始めると、マイコン側の解説が疎かになってしまいます。また、私自身ほかの人に解説ができるほどPC用ソフトウェア開発に詳しくはありません。
そこで、当ブログではホストプログラムの作り方について当面の間解説を行う予定はありません。

ただ、ホストプログラム何も無しではロボットを作成する際に支障が出ます。
そこで解説は行いませんが、Visual Studioで作成したホストプログラムのサンプルプロジェクトを用意しました。
Visual Studioは無償で利用可能なPC用プログラム開発環境です。

プロジェクトダウンロード
※2017/08/20 XBee USBインターフェイスボードと組み合わせた場合に正常に受信できない不具合を修正。

プロジェクトはVisual C++ 2008で作成してあります。が、C++自体を正しく理解できていないので色々おかしなプログラムになっているはずです。新たに始めるならC#の方が良いらしいです。
Visual C++ 2010およびVisual Studio 2015で開いててビルド、実行可能なことを確認しております。勝手にいじって使ってください。
何分素人が作成したものなので、とりあえず動くことは確認しておりますが動作保証等は一切いたしません。変更したものを再頒布するのは構いませんが、素人が作ったプログラムなので製品へ組み込むのは勘弁してください。
プログラムの実行にはVisual C++ ライブラリが必要となるはずです。
また、.NET Frameworkが必要になる気がします。

機能

<COMポートへの接続>
接続ボタンを押すと実行ファイルと同じフォルダに置いたCOM_Settings.iniで指定されたポートへ接続します。
切断を押すと切断されます。
※データ受信中に切断したり、接続中にプログラムを閉じるとするとエラーを起こしてプログラムがフリーズすることがあります。

<送信機能>
連続送信ボタンを押すと画面で設定した数値を50ms間隔で専用通信フォーマットで送信します。
市販のゲームパッドを接続すればジョイスティック操作がスライドバーとチェックボックスに反映されます。
PS2用コントローラ(今は入手難)と変換器を組み合わせて使用した場合にいい感じになる配置になっています。その他のゲームパッドを接続する場合はプログラムの修正が必要になるかもしれません。
また、mouse modeのチェックを入れるとマウスカーソルの位置がスライドバーに反映されます。また方向キーの入力が通信情報に反映されます。(画面には反映されません)

<受信機能>
受信したデータが受信文字列部分に反映されます。
専用フォーマットでID:0x10で受信した場合のみ解析が実行されます。
正常に解析された場合、解析結果がcsv形式で出力されます。


私がよく使う機能は一通り盛り込んであります。
このプロジェクトの解説を行う予定はありません。
プログラムを自作するときの足掛かりにでもしてください。
PR

コメント

プロフィール

HN:
ぼんどF博士
性別:
男性
自己紹介:

最新コメント