私は現在DXライブラリとC言語を用いてゲーム制作をしています。
動作環境はWindows8.1、開発環境はVS2013です。
疑問点があるためアドバイスをいただけたらと思います。
ゲーム自体はパソコン上で動作させるのですが、入力装置をキーボードやマウスではなく
外部のセンサを用いたいと思っております。
具体的に言いますとHTS-30という静電容量式タッチセンサを使用する予定です。
こちらのセンサをマイコンに接続し、マイコンとパソコンを通信して入力情報を処理しようと考えています。
またマイコンにはLEDをいくつか接続し、入力された情報に応じたLEDを光らせようと考えております。
こちらもパソコンとマイコンを通信し、LEDの出力情報をマイコンへ送信し処理する予定です。
通信規格はRS232になると思います。
具体的な流れは次のとおりです。
1.マイコン側は常にセンサの情報をパソコン側へ送信し続ける。
2.パソコン側はループごとに最新のセンサ情報を受信する。
3.受信したセンサ情報を元に演算し、LED出力情報をマイコン側へ送信する。
4.マイコン側はLED出力情報を受信したら割り込みで処理をする。
という流れです。
私はこのようなゲーム制作は今回が初めてなため、このようなやり方しか思いつきませんでした。
結果、実装してみたところ正常に動作はするのですが、このやり方はいかがなものでしょうか?
もっと効率的なやり方があれば教えていただきたいです。
なんとなくですが、わざわざマイコンを介している点にも疑問を感じます。
といっても、これ以外にやり方が思いつきませんでしたが・・・。
パソコンと外部機器のやりとりについて
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: パソコンと外部機器のやりとりについて
妥当だと思います。
外部機器の制御はWindowsではかえって手間なのでマイコンに任せたほうがシンプルになります。
外部機器の制御はWindowsではかえって手間なのでマイコンに任せたほうがシンプルになります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: パソコンと外部機器のやりとりについて
「常にセンサの情報をパソコン側へ送信し続ける」と、バッファの関係で毎ループ最新のセンサ情報を取得できないかもしれないので、
「マイコンはパソコンからクエリを受信したらセンサ情報を送信する」というのはどうでしょうか?
HTS-30Yは電圧で値を表したり、出力端子がたくさんあるようなセンサではなく、0/1の出力のようなので(違っていたらごめんなさい)、
センサやLEDの数にもよりますが、マイコンを使わなくてもシリアルポートorパラレルポート(プリンタポート)とインターフェース回路で制御できるかもしれません。
「マイコンはパソコンからクエリを受信したらセンサ情報を送信する」というのはどうでしょうか?
HTS-30Yは電圧で値を表したり、出力端子がたくさんあるようなセンサではなく、0/1の出力のようなので(違っていたらごめんなさい)、
センサやLEDの数にもよりますが、マイコンを使わなくてもシリアルポートorパラレルポート(プリンタポート)とインターフェース回路で制御できるかもしれません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: パソコンと外部機器のやりとりについて
> センサやLEDの数にもよりますが、マイコンを使わなくてもシリアルポートorパラレルポート(プリンタポート)とインターフェース回路で制御できるかもしれません。
今どきパラレルポートが付いているパソコンも珍しいですし、PCIのインターフェイスボードを導入するもの高価です。
マイコンを使うほうが安価だと思います。
今どきパラレルポートが付いているパソコンも珍しいですし、PCIのインターフェイスボードを導入するもの高価です。
マイコンを使うほうが安価だと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: パソコンと外部機器のやりとりについて
早速のレスありがとうございます。
>>softyaさん
妥当ですか。
ありがとうございます。
>>usaoさん
そうです。
大事なのはセンサの入力情報を元に、PCで演算した結果からLED出力情報をマイコンへ送信するという点です。
センサ情報からマイコンが演算してLEDの制御をするわけではありません。
>>みけCATさん
センサ情報も割り込みで送信するということですか。
確かにそのほうが最新の情報を取得出来ますね。
実装できるかわかりませんが、試してみたいと思います。
HTS-30は仰るとおりデジタル出力するセンサです。
センサ・LEDはそれぞれ10個程度を想定しています。
シリアルポートとインターフェース回路で制御、というのが全く分かりません。
>>softyaさん
妥当ですか。
ありがとうございます。
>>usaoさん
そうです。
大事なのはセンサの入力情報を元に、PCで演算した結果からLED出力情報をマイコンへ送信するという点です。
センサ情報からマイコンが演算してLEDの制御をするわけではありません。
>>みけCATさん
センサ情報も割り込みで送信するということですか。
確かにそのほうが最新の情報を取得出来ますね。
実装できるかわかりませんが、試してみたいと思います。
HTS-30は仰るとおりデジタル出力するセンサです。
センサ・LEDはそれぞれ10個程度を想定しています。
シリアルポートとインターフェース回路で制御、というのが全く分かりません。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: パソコンと外部機器のやりとりについて
> シリアルポートとインターフェース回路で制御、というのが全く分かりません。
昔は、パラレルポートにTTL-ICの回路(インターフェイス回路)を直結して色んな物を操ったりしたのですがマイコンのUSB接続が安価にできる現在においては余り見かける方法ではありません。パラレルポート自体がレアですし。シリアルポートに回路接続するのは、もうそのままマイコンのほうが楽です。
昔は、パラレルポートにTTL-ICの回路(インターフェイス回路)を直結して色んな物を操ったりしたのですがマイコンのUSB接続が安価にできる現在においては余り見かける方法ではありません。パラレルポート自体がレアですし。シリアルポートに回路接続するのは、もうそのままマイコンのほうが楽です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: パソコンと外部機器のやりとりについて
それだとパラレルポートでもピン数が足りないので、素直にマイコンで制御するべきだと思います。黒猫 さんが書きました:HTS-30は仰るとおりデジタル出力するセンサです。
センサ・LEDはそれぞれ10個程度を想定しています。
シリアルポートとインターフェース回路で制御、というのが全く分かりません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: パソコンと外部機器のやりとりについて
>>softyaさん
確かに今パラレルポートは見ないですね
>>みけCATさん
使用する素子の数によっても変わってくるのですね
今回はこのまま開発を進めたいと思います。
ありがとうございました。
確かに今パラレルポートは見ないですね
>>みけCATさん
使用する素子の数によっても変わってくるのですね
今回はこのまま開発を進めたいと思います。
ありがとうございました。