汎用ヒト型決戦遊具はじめました。
スポンサーサイト
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ROBOXERO(86) Arduino版被弾センサ_1
2012年12月11日 (火) | 編集 |

前回の大会では公式被弾センサを搭載したゼロタンク2が、
ガン発射や段差で自機のノイズ拾う→被弾反応→停止
というパターンでまったく活躍できませんでした。

ガンやキャタピラでDCモーターを使いまくる機体で
ノイズを完全に処理することは、素人にはかなり難易度が高いことがわかりました。




何度も書いた気がしますが、「被弾センサの仕組み」についてまた書きます。

被弾センサは、アルミ箔に開いた穴から漏れた光を、太陽光発電パネルで受けて電圧を発生させ、その電圧をもってアルミ箔の穴を検知するシステムです。
ボリュームで設定された電圧とコンパレータで比較として一瞬でも太陽光の電圧が高ければ、被弾信号を発信し、その状態でロックされる仕組みです。
このため、少しでもノイズを拾ってしまうと、被弾とみなされ機体が停止してしまいます。




「アルミ箔に穴が空いている」ということさえ検知できればよいので、
ノイズの分をキャンセルするようにしてみます。
方法はシンプルで、太陽光パネルからの電圧が高いという判断を、一瞬ではなく、継続的(0.1秒とか)かどうかで分岐するようにします。
太陽光パネルの電圧が一瞬高ければカウントを開始し、一瞬でも低ければカウントを0に。
一定数のカウントを経過すれば、被弾とみなし機能停止、としてみます。
Arduinoならカンタンです。




操作方法や挙動は公式の被弾センサと同じようにしたいと思います。
ロボサバではゲーム開始前に被弾センサの設定が行われます。段取りは以下のようになっています。

(1)このくらい穴が空いたら被弾、というガイドとなる穴の空いた膜を
   センサにかぶせる。
(2)閾値を設定する可変抵抗のボリュームを下げてリセットを押す。
   被弾LEDは消えている。
(3)センサに被弾反応が出るまで徐々にボリュームを上げていく。
(4)被弾LEDが点灯したところで、ボリュームを止める。
(5)穴の空いていない通常の膜でセンサを覆い、リセットを押す。
   被弾LEDは消える。

という感じです。

Arduinoで同じ手順を再現するために必要な外部パーツは、
A:太陽光パネル
B:可変抵抗
C:LED
D:リセットスイッチ

の4つです。




C:ArdunoのデジタルからHIを出力すれば良いので特に問題なし。
D:Arduino本体のリセット(リセットピンをスイッチでGNDにショート)すれば何かと便利です。
AとB:これを設置するには、プルダウン抵抗やパスコンを挟んだ方が動作が安定するようなので、
まずこれを組みます。




シールドに組み込む「太陽光パネル」と「可変抵抗」の追加パーツについて。

th_被弾センサ準備1


上の100kA可変抵抗は、5V電源、GND,アナログピンへと繋ぎます。
5Vの入り口とGNDへの出口に10k、1kΩの抵抗を入れてあります。
これでボリュームを端まで回して無抵抗になってもショートせずに済みます。

太陽電池からはパスコンとプルダウン抵抗を入れてあります。
いくつか試してみたところ、470kΩで、Arduinoの受信値がほどよい感じに安定しました。
こちらは念のため、回路保護用に信号線の出口に1kΩの抵抗をいれてあります。

どちらも、Arduinoので読み取った値が、ミニマム0、マックス1023以内になるのが理想です。
シリアルでモニタリングしたところ、
ボリュームが7~900程度、太陽光は0~1023で振り切れます。(室内の蛍光灯なら800程度。)
うまくいっているようであります。
さらに、おそるおそる直近でArdunoから操作したガンを動作させてみましたが・・・値に変動は出ませんでした!
やった!とりあえず今のところはやった!と喜んでおきます。




上の図で変なところがありましたらぜひ教えてください。
いっぱい間違えている気がしますが、公表しても問題ないレベルになったら、準公式被弾センサとしてwikiにあげようと思います。
関連記事
スポンサーサイト

コメント
この記事へのコメント
管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
2012/12/12(水) 20:17:34 | | #[ 編集]
すみません、日中の室内を計測できる明日、詳細データを再計測します!
2012/12/14(金) 22:45:52 | URL | 二名川 #-[ 編集]
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。