コンセプト |
---|
通常、自動制御で動くロボットを作る場合、
高度な電子回路の知識と、それを制御するための
C言語やマシン語などのプログラミングの知識が要求されます。
また、それらを製作する環境を整えるためには多額の出費が必要となり、
なかなか手を出すことができませんでした。
しかしながら、ここ数年の電子部品などの発展により
ちょっとしたものであれば、
割と簡単にロボット作りが楽しめるようになってきたようにおもいます。
それを実際にやってみよう!というのが今回のコンセプトです。 Saturn Heart 2は、 家庭用ゲーム機 SEGA SATURNをつかって制御をおこなっています。 市販ソフト GAME BASIC for SEGASATURN (開発元 ビッツラボラトリー) の採用により、
|
知能ロボットコンテストJAPANとは | ||
---|---|---|
|
Saturn Heart 2 の仕様 | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||
(注 1) 本ページで募集し寄せられた名称のうちもっとも人気のあったものです。NAKATHさん命名。名前を寄せていただいた皆さん、投票していただいた皆さんどうもありがとうございました。 (注 2) KEENさん作成のデータを使用させていただきました。 |
どうやってセガサターンでロボットを動かすか? |
---|
|
汎用入出力インターフェイス S2PPX |
---|
S2PPX についての詳細はこちらをご覧ください。 |
製作経過 |
---|
これまでの製作経過です。 |
右側の黄色いのが競技台です。ロボットもうつっているのですが、よくわかりませんね(^^)で、左側にうつっているのがサターンの映像です。こんなこともあろうかと購入しておいた10mのAVケーブルが役に立ちました(^^; |
キャプチャしてもらいました。
(1)通常走行画面 | (2)現実の競技台に引いてあるラインを使って自分の位置を計算し、座標や向きを修正しているところです。緑の線のなかで黒くなっている部分でセンサがラインに反応しています。 |
(3)ボールを捜しているところ。赤い点が距離センサの値で、 これを元にしてボールの位置(水色の線)と 距離(右上の文字)を計算しています(水色の線) | (4)見つけたボールのうちもっとも近い位置にあるボールを取りにいっているところです |
できるだけシンプルに、ということでついているのは車輪と
アームだけです。"走るセガサターン"って感じですね(笑) 電子回路はサターンの下の部分に入っています。 電源ケーブルとビデオケーブルを引きずらなければならないですが まあ、それはそれでいいですよね。 それにしてもデジカメほし〜 |
LEDを白く光らせたときと、まったく光らせなかったときの CdS(光センサ)の出力を基準値として、 LEDをさまざまな色で光らせたとき、ボールの種類によって どのくらいの値が返ってくるかをみたものです。 図は、 このプログラムで さたべー上に表示された画面をそのまま GSAVE したものです (ボールの写真はハメコミ合成)。 この程度差が出ていれば十分識別できます。 |
下の回路とのやり取りはこんなプログラムで行われています。 回路やコマンドの仕様の詳細はまた後日。でも、なんとなくわかりますよね、ねっ?
100 SCREEN 0 | :'画面モードを設定 |
110 OPTION COM : OPEN "COM:TERMINAL:" AS #1 | :'通信ポートを初期化 |
120 FWRITE #1,"WFF4W005W006" | :'I/O ポートの入出力を設定 |
130 FWRITE #1,"W000W001W002" | :'I/O ポートの出力をすべてOFFにする |
140 FWRITE #1,"WB07" | :'アナログ入力の設定 |
150 *MAIN | |
160 FWRITE #1,"R3":FREAD #1,I$,2 | :'アナログ値の読み取り |
170 LOCATE 5,5 : PRINT "DIST. "; VAL("&H"+I$) | :'距離の表示 |
180 VSYNC: GOTO *MAIN |
A ロボットからデータを読み込んだり、 モーターを回す司令をだしたりします。24 bit の自由に入出力設定が可能な I/Oポートがあります。うち、8 bit 分を アナログ入力(分解能 各8bit)に割り当てることができます。こっちのCPUは20MHzで動作してます。
B ここからフラットケーブルでロボットにつなぎます。