ページ 11

パソコンと外部機器のやりとりについて

Posted: 2014年8月25日(月) 10:20
by 黒猫
私は現在DXライブラリとC言語を用いてゲーム制作をしています。
動作環境はWindows8.1、開発環境はVS2013です。
疑問点があるためアドバイスをいただけたらと思います。

ゲーム自体はパソコン上で動作させるのですが、入力装置をキーボードやマウスではなく
外部のセンサを用いたいと思っております。
具体的に言いますとHTS-30という静電容量式タッチセンサを使用する予定です。
こちらのセンサをマイコンに接続し、マイコンとパソコンを通信して入力情報を処理しようと考えています。
またマイコンにはLEDをいくつか接続し、入力された情報に応じたLEDを光らせようと考えております。
こちらもパソコンとマイコンを通信し、LEDの出力情報をマイコンへ送信し処理する予定です。
通信規格はRS232になると思います。

具体的な流れは次のとおりです。
1.マイコン側は常にセンサの情報をパソコン側へ送信し続ける。
2.パソコン側はループごとに最新のセンサ情報を受信する。
3.受信したセンサ情報を元に演算し、LED出力情報をマイコン側へ送信する。
4.マイコン側はLED出力情報を受信したら割り込みで処理をする。
という流れです。

私はこのようなゲーム制作は今回が初めてなため、このようなやり方しか思いつきませんでした。
結果、実装してみたところ正常に動作はするのですが、このやり方はいかがなものでしょうか?
もっと効率的なやり方があれば教えていただきたいです。

なんとなくですが、わざわざマイコンを介している点にも疑問を感じます。
といっても、これ以外にやり方が思いつきませんでしたが・・・。

Re: パソコンと外部機器のやりとりについて

Posted: 2014年8月25日(月) 11:05
by softya(ソフト屋)
妥当だと思います。
外部機器の制御はWindowsではかえって手間なのでマイコンに任せたほうがシンプルになります。

Re: パソコンと外部機器のやりとりについて

Posted: 2014年8月25日(月) 11:14
by usao
こんな形ってことですか
(これだけ見ると LEDの制御にPCを介する必要が…? とか思っちゃいますね)

コード:

┌───┐          ┌─────┐        ┌──────┐
│      │          │          ├────┤ センサ     │
│ PC   ├─────┤マイコン  │        └──────┘
│      │ RS-232C  │          │        ┌──────┐
└───┘          │          ├────┤ LED        │
                    └─────┘        └──────┘

Re: パソコンと外部機器のやりとりについて

Posted: 2014年8月25日(月) 11:22
by みけCAT
「常にセンサの情報をパソコン側へ送信し続ける」と、バッファの関係で毎ループ最新のセンサ情報を取得できないかもしれないので、
「マイコンはパソコンからクエリを受信したらセンサ情報を送信する」というのはどうでしょうか?

HTS-30Yは電圧で値を表したり、出力端子がたくさんあるようなセンサではなく、0/1の出力のようなので(違っていたらごめんなさい)、
センサやLEDの数にもよりますが、マイコンを使わなくてもシリアルポートorパラレルポート(プリンタポート)とインターフェース回路で制御できるかもしれません。

Re: パソコンと外部機器のやりとりについて

Posted: 2014年8月25日(月) 11:38
by softya(ソフト屋)
> センサやLEDの数にもよりますが、マイコンを使わなくてもシリアルポートorパラレルポート(プリンタポート)とインターフェース回路で制御できるかもしれません。

今どきパラレルポートが付いているパソコンも珍しいですし、PCIのインターフェイスボードを導入するもの高価です。
マイコンを使うほうが安価だと思います。

Re: パソコンと外部機器のやりとりについて

Posted: 2014年8月25日(月) 11:44
by 黒猫
早速のレスありがとうございます。

>>softyaさん
妥当ですか。
ありがとうございます。

>>usaoさん
そうです。
大事なのはセンサの入力情報を元に、PCで演算した結果からLED出力情報をマイコンへ送信するという点です。
センサ情報からマイコンが演算してLEDの制御をするわけではありません。

>>みけCATさん
センサ情報も割り込みで送信するということですか。
確かにそのほうが最新の情報を取得出来ますね。
実装できるかわかりませんが、試してみたいと思います。
HTS-30は仰るとおりデジタル出力するセンサです。
センサ・LEDはそれぞれ10個程度を想定しています。
シリアルポートとインターフェース回路で制御、というのが全く分かりません。

Re: パソコンと外部機器のやりとりについて

Posted: 2014年8月25日(月) 11:52
by softya(ソフト屋)
> シリアルポートとインターフェース回路で制御、というのが全く分かりません。

昔は、パラレルポートにTTL-ICの回路(インターフェイス回路)を直結して色んな物を操ったりしたのですがマイコンのUSB接続が安価にできる現在においては余り見かける方法ではありません。パラレルポート自体がレアですし。シリアルポートに回路接続するのは、もうそのままマイコンのほうが楽です。

Re: パソコンと外部機器のやりとりについて

Posted: 2014年8月25日(月) 12:23
by みけCAT
黒猫 さんが書きました:HTS-30は仰るとおりデジタル出力するセンサです。
センサ・LEDはそれぞれ10個程度を想定しています。
シリアルポートとインターフェース回路で制御、というのが全く分かりません。
それだとパラレルポートでもピン数が足りないので、素直にマイコンで制御するべきだと思います。

Re: パソコンと外部機器のやりとりについて

Posted: 2014年8月26日(火) 09:14
by 黒猫
>>softyaさん
確かに今パラレルポートは見ないですね

>>みけCATさん
使用する素子の数によっても変わってくるのですね

今回はこのまま開発を進めたいと思います。
ありがとうございました。