関連:
シリアル通信関連記事一覧シリアル通信ができるようになれば、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形式で出力されます。
私がよく使う機能は一通り盛り込んであります。
このプロジェクトの解説を行う予定はありません。
プログラムを自作するときの足掛かりにでもしてください。