4MPUボード鈴木一・枝 3ロータリエンコーダ藤田 2タッチセンサ藤井 1超音波センサ清末・堀内 内容作成者 目次 調査研究報告書 dm9404/memo/touch.sam dm9401/memo/tatti.sam 参考資料 斜めから押された時もBが反応するようにする。 てはスプリングなどを使用した方が良いと思われる。 バンパーの素材は、両サイドは針金等でいいが正面のバンパーについ には十分注 意する。 正面からぶつかったときABC全て押されないようにバンパーの設置 かったとき の区別ができる。 バンパーを重ねる事により斜めからぶつかったときと、正面からぶつ タッチセンサは図のように5個取り付ける。 タッチセンサ並列接続方法 同期回路、前縁、後縁微分回路部  スイッチを使用する上で注意しなければならないのは、チャタリングである。チャタリングとはスイッチがONし たりOFFしたりする瞬間に、機械的にバタつく現象で、このためスイッチからの信号を直接論理回路に入力する と、1個のパルスが幾つにも見えてしまう。次ページにチャタリングの影響と、その除去回 路例を示す。また、ソ フトウェアにおいても、チャタリング除去は可能である。もっとも、単に壁の存在をしるためだけには、チャタリン グ対策の必要がない場合が少なくない。 チャタリング チャッタレス回路部  小型マイクロスイッチの大きさと外観図を左に示す。  本MIRS機で使用するスイッチとしては、小型で、数10gの小さな力でON/OFFでき、しかも信頼性の高 いマイクロスイッチである。 スイッチ部 回路の概要 主な動作の手順  また超音波センサには、相手が10cm以内に近づくと反応を示さなくなるという現象が起きてしまう。タッチセ ンサは相手マシンが0〜10cm以内に接近しているとき、どこのいるのかを自機の体を使って確かめる役割も果た す。  タッチセンサは、MIRS本体が、誤作動などの何らかの理由で壁に衝突したりした時の、非常時を検出する為の センサとして用いるのが有効であると思われる。  タッチセンサが障害物(壁、相手マシン)に接触すると、I/Oボードに信号が送られ、障害物があると判断す る。 タッチセンサの役割について  MIRS構成部品の一つであるタッチセンサについて、タッチセンサとは一体なんであるか、またその使用目的、 仕組み、必要な装置、回路等についてを調査し理解する。 目的 タッチセンサ mirsdoc/mirs949401,9404 ドキュメントファイル93DS1 <参考文献> G時間パルス  39KΩの抵抗によってヒステリングスをつくっている。10μFのコンデンサはリップノイズをバイパスさせ、 電流インピーダンスを下げている。  +(REF)ピンの電圧が−(INV)ピンの電圧より大きければ出力は同極性の方向(Highレベル)に振 れ、−ピンの方が+ピンの電圧よりも大きいと出力は逆極性の方向(Lowレベル)に振れる。出力の一部を入力に 房し、ポジティブフィードバックを行っている。  アナログ量の信号をディジタル化するための回路でスレッショルドレベルを境にして、それ以上ならHighレベ ル、以下ならLowレベルに2進化している。コンパレータには2つの入力ピンがあって+と−またはREF、IN Vという記号がついている。 Fコンパレータ C=1000p:パスフィルタ IN60   :バイパスフィルタ 電圧のDC分でカットする。 E微分回路 Dイコライザーアンプ C信号増幅部 Bパルスと振動数波との合成 R1が可変抵抗になっているので微調整を行い、40KHzに合わせる。 値を代入して T≒1.5CR f=1/T R2:100kΩ R1:30kΩ C:560pF A振動数の決定  光エネルギーを電気エネルギーに変換するフォトダイオードは半導体のPN接合部に光が当たると電位差が生じ る。光源電力効果を利用した光検出器(フォトセンサ)である。 @フォトダイオード 回路図 ブロック図  反射して戻ってきた超音波を送信部でキャッチし、コンパレータを通して、近距離の不要な反射波をキャンセル し、超音波反射時間の情報をカウンタへ送る。  シーケンサーによるパルスをフォカプラを通して伝え、その情報(一発パルス)とクロック(40kHz)とを合成 して送信部から超音波を発射する。 (3)送受信回路の概要  8bitカウンタは256カウントでほぼよい数である。よって8bitカウンタを使用する。 なり、従って267カウント前後のカウンタを必要とする。  測定時間は16[ms]で打ち切りなので16[ms]/10[us]=266.6と い。よって測定パルスは60[us]の周期にする。 だから、1[cm]の測定をするのにカウンタは1カウント2[cm]であればよ きない。超音波の速度は3460[cm/s]であるから1[cm]を進むのに約30[us]かかる。超音波測定は超音波が行って返っ てきたものを検出するの  超音波の波長は8.6[mm]であるから約1[cm]の精度以上での測定はで カウンタの選択 場内の最大の長さを上回っているので大丈夫である。 きた反射波だから5.5/2=2.75[m]まで測定できる。これは競技 ても、音速は346[m/s]だから、超音波は5.5[m]進む。測定は返って て測定は16[ms]で打ち切ることになる。そくていを16[ms]で打ち切っ トを開始する。当然受信信号が16[ms]以上のものは受信できない。従っ  カウントはPCが出力周期20[ms]のパルス信号をトリガとしてカウン カウントの手段 (2)カウンタ回路の検討 図11 パルス PCから20[ms]周期のパルスを出力する。 超音波センサ回路(送受信回路)は3セットである。 (1)前提条件 3.詳細検討           図10 MA40B5R/S 検知距離0.2〜6.0m 分解能9 静電容量2000pF 指向性(半域全角)50° 音圧112dB以上 感度−47dB以上 公称周波数/TD>40kHz 特徴凡用・広帯域 品名MA40B5R/S 構造送信・受信専用 (R:受信用 S:送信用)    超音波センサの定格 (7)その他  直接結合増幅回路は直流信号まで増幅できる。それゆえ、温度や電源電圧の変化によってICBOやVBE等が変 化し、コレクタ電流が変化した場合、これを信号直流分と区別できない。入力の変動に原因せずに、電流が変 動する現象をドリフトと呼ぶ。 <注1>ドリフト 図9 基板へ超音波トランジューサを取り付ける方法の一例  続けて距離を測定する場合は、以前に発射した超音波に対する反射や残響が十分に減衰する時間(数[ns])をおいてか ら、次の超音波を発射する。  外部からの音響的な雑音に対しては、距離を2回測定して、その値が違っていたら再度センサを働かせるというような ソフトウェアによる対策が有効。  受信機はマイクロホンであるから、外部の音やシステム自体の機械的振動で誤動作する恐れがある。受信機はゴム等を 用いて、機械的振動が伝わらないように取り付ける。 (図9)  受信機は、大きな増幅率をかせぐアナログ回路であり、回路の雑音に注意。  超音波トランジューサは、周波数選択性が著しいので、送波回路に発信機を用いる時は周波数調整を綿密に行う。経時 変化や温度変化による発信機のドリフト<注1>にも注意が必要。  (4)でも述べたが、壁にたいして斜めに入射した超音波はほとんどもどってこない。 (6)超音波センサ利用上の注意  ハードウェアタイマとしては、それぞれのCPUに周辺LSIとして準備されているタイマ用ICを使うのが簡単 である。クロック発生回路とマイコンから読むことのできるカウンタ回路を構成すればそれで充分である。  超音波センサでは、1[μs]を0.17[mm]に換算する。したがって、ソフトウェアタイマの1回のループ に用する時間を10[μs]とすると、CPUはこの間他の処理ができない。ハードウェアタイマを用いれば、その 間も他の処理を行うことができる。 (5)ハードウェアタイマ  まして相手MIRSを検出するのはさらに難しいであろう。試作品を製作し、実験をする必要があると思われる。  波にとって対象物が鏡面であるか錯乱面であるかは、その表面の粗さと波長の関係で決まる。競技場の壁は数十k Hz超音波にとってほとんど鏡面となるから、超音波センサでは、斜めから壁を見た場合、通常その壁は検出できな い。  超音波の波が対象物にあたった場合、対象物表面に凸凹があればそこで散乱し、あらゆる方向から反射錯乱波が観 測される。しかし、もし対象物が鏡面になっていれば、錯乱せず、入射波=反射波の方向に反射するだけとなり、反 射波の進行方向でしか反射波は検出されない。 図8 紙性ホーンアンテナの例  超音波センサの指向性が広いと、センサによって計測された対象物体の形はかなりボケたものになる。すなわち、 超音波センサは、距離方向の分解能はよいが、横方向の分解能はよくない。この指向性を改善する方法として、トラ ンジューサにホーンアンテナを取り付ける手段がある。アンテナには一般に指向性を鋭くすると同時に、中心方向の ゲインをかせぐという利点がある。ただし、ホーンアンテナの設計を理論的に行なうことは難しいので、ある程度の 試行錯誤によってホーンの形を決める必要がある。  市販されている超音波トランジューサの指向性は、それ程鋭くなく、半値角として20°〜30°程度の広がりを 持つ。  超音波は、トランジューサから一定の広がりを持ってビーム状に発射される、そのビームの形状を超音波トランジ ューサの指向性と言う。 (4)超音波の指向制と反射特性  超音波を発生するための送波回路にはCMOSゲート回路による発振器やマイクロコンピュータのクロック信号を 分周する回路によってトランジューサの共振周波数のパルス列をつくり、これにより超音波トランジューサを駆動さ せる方式をとる。図6はこの例でマイコンからのコントロール信号が ”H”の間だけ発振が起こり超音波が送波さ れる。  これらの電気振動変換素子は原理的には一つの素子が送波器にも受波器にも働くが送波と受波では空気の振動振幅 にも大幅に異なり、しかもインピーダンスを変えたほうが効率がよいので別個のトランジューサを利用するのが通常 である。  電気信号を超音波に変えて空気中に発射する超音波スピーカ(送波器)と空気中を飛んできた超音波を受けてそれ を電気信号に変換する超音波マイクロホン(受波器)を合わせて超音波トランジューサという。音は空気の振動であ るから超音波トランジューサ波電気信号を機械的振動に変えたり、その逆の役割も果たす。 (3)超音波スピーカと超音波マイク 図7 超音波送波回路例  超音波を反射した後待ち時間をおいているのは超音波スピーカの振動が減衰せずその漏れが受信回路に入って受信 波を検出したように誤動作してしまうのをふせぐためである。 図6 超音波トランジューサ 図5 流れ図  また、反射時間を測定するために図3のようなハードウェアタイマを用いず、マイクロコンピューターのソフトウ ェアでタイマを構成することも出来る。図5はソフトウェアタイマを用いた場合の超音波センサ制御ルーチンの流れ 図である。 図4 超音波波形とタイミング 図3 超音波センサの構成  図3の構成による各部の波形の例が図4である。実際には反射波は物体の形によりエコーして残るが、この回路で は反射波の先頭だけを検出して、最も近い所からの反射時間をはかる。図3では発振器を使用しているが発振波形で なく一発の高圧パルスで超音波スピーカを駆動することもある。 (2)超音波センサーの構成 図2 超音波センサの原理 図1 距離による音圧の減衰特性  減衰質について超音波は距離が長くなるほど減衰している。また図1に示すように音波周波数が高くなる程減衰率が大 きくなって到達距離が短くなる。通常周波数約100[KHz]では最大1〜2[m]検知可能距離となる。超音波では技術的 にいえば1000[MHz]ぐらい迄発振可能となってきた。  物体の表面の起伏が大きい場合超音波が乱反射するため検知しにくいことがあるので、注意が必要である。  硬い物(金属、木材、コンクリート、ガラス、ゴム、紙など)は超音波をほぼ100%反射するのでこれらの物体の有 無は十分検知することが出来るが、布、グラスウール、綿、の柔らかくて空気を含んでいる物体は超音波を吸収するため物 体の有無を検知し辛い。  つまり、周囲温度によって音速が変化するので物体迄の距離を常に精度よく測定するには温度補正が必要となる。    v=331.5+0.607t[m/s]t:周囲温度 [℃]  温度の影響に対して空気中の音波伝搬速度vは簡易的に次式で表される。 で計算された。    d=0.5Tx340x0.001=0.17xT[mm]  超音波は音であるから常温の空気中を約340[m/s]という速度で伝播する。従って、音は1[cm]距離を約28 [μsec]だけの時間をかけて進む。すなわち超音波を発射してから物体に反射して戻ってくる迄の時間を測定すれば、超 音波の送受波器から物体までの距離を知ることができる。(fig.1)超音波を発射してから、反射はが検出されるまで の時間をTμsecとすると、壁までの距離dは (1)超音波の性質  G時間パルス  Fコンパレータ  E微分回路  Dイコライザーアンプ  C信号増幅部  Bパルスと振動数波の合計  A振動数の決定  @フォトダイオード 回路図 ブロック図 (3)送受信回路の概要 (2)カウンタ回路の検討 (1)前提条件 3.詳細検討 (7)その他 (6)超音波センサ利用上の注意 (5)ハードウェア・タイマ (4)超音波スピーカと超音波マイクロホン (3)超音波スピーカと超音波マイクロホン (2)超音波センサの構成 (1)超音波の性質 以下6項目にわたって調査及び研究を行った。 2.調査及び検討  本書は、本システム主要構成部品のひとつである超音波センサについて、メカニクス、エレクトロニ クス、ソフトウェアの面から、その基本性能を調査、理解し、後のシステム動作方式、統括制御方式の 研究に役立てるためのものである。 1.主旨 超音波センサ 重さ 0.14[Kg] 厚さ13.6[mm] 横128.5[mm](含フロントパネル) 縦172[mm] サイズ 温度0度〜70度 湿度5%〜95%(結露しない程度) 使用環境    追加電源はIPで消費 −12[V] 0[mA] +12[V] 0[mA] +5[V] 460[mA] (標準) 電源要求事項 3.3[V]のリチウム電池 165[mA]ならば1時間流せる ボードのバッテリ 2つのGreen LED 前面の指示器 2つの50ピンコネクタ 長さ100インチまでのフラットケーブル I/Oの接続 IRQ1,2,4,5が使用可能 VMEbusへの割り込み 512[Byte] I/Oサイズ A16/D16 IPのI/O配置 ダブルハイトサイズボードの場合  1枚 シングルハイトサイズボードの場合 2枚 搭載可能なIPの数 A24/D16 IPのメモリ配置 1、2、4[MB] 512[KB] 256 128 0 メモリサイズ VIPC310 名称 3、I/Oボード 動作湿度   0〜95% 保存時  −55〜 +85℃  −55〜+125℃(軍事用 85℃以上ではバッテリーを外すこと)  −25〜 +85℃(拡張)  0〜 +70℃(標準) 動作時 温度範囲 DIN41612 C 型 、96ピン、P1コネクタ    コネクタ A24 D16/8,MASTER  インターフェイス VMEbus 関係 光セントロニクスアダプタが使用可能 ハードウェア割り込み、タイマ割り込みが可能 ハンドシェークピン ×4 8ビット × 2ポート MC68230PI/T パラレルI/O  光ファイバによる接続は最長1キロメートル(光ファイバコネクタを含む) 20mA C ループ 50〜9600ポート RS−485  50〜500000ポート RS−422  50〜307200ポート RS−232C 50〜 76800ポート  それぞれのシリアルポートに1つずつ必要 オプション  2つのポートが使用可能 (68562DUSCCが提供) シリアルI/O 40ピンPI/Tコネクタ 50ピンSCSIコネクタ ボード上のコネクタ 異常が発生して、データ転送が7μs停止した場合、信号を発生する。 タイムアウト機能 MAX691による。400ms(変更可)ごとに合図がないと、異常が起きたとみなして、システムをリセ ットする。 ハードウェア監視機能    2  SCSI    3  PI/T    4  SYSFAIL信号    5  DUSCC  (これはオートベクタではない)    6  RTC/TICK    7  ACFAIL信号 レベル7  Abortスイッチ 設定されている割り込みベクタ 割り込みマスクレジスタの設定が可能 7つのレベルの割り込みが可能(信号IRQ1〜IRQ7を利用) 割り込み DUSCC x1 RTC x1 System x1 CPU x1 クロック 曜日カウンタ、アラーム 12/24時間時計 タイマ割り込み DP8573を搭載 時計機能(RTC) 15ピン サブDソケット x2 Abortボタン RESETボタン Haltランプ フロントパネルの機能 4TE (20.3mm) フロントパネルの幅 Li電池800mAh 基板上の電源 DC±12V ー シリアルI/Oを使用する時に必要な場合がる。 RSー232Cを使用する時は必要。 750mA(シリアルI/O非動作時) DC5V(±5%) 必要な電源 64〜512kB ROM 128〜1024kB RAM PEP Modular Computers 製造元 100 X 160(mm) サイズ MC68HC000 / 12.5MHz CPU/クロック VSBCー1 SingleBoard(68HC000)ComputerfortheVNEbus 名称 2、CPUボード  I/Oボード(名称 VIPC310)はロータリーエンコーダボードとIP-Digital48ボードを搭載して いる。IP-Digital48ボードにはMC68230PARALLELINTERFACE/TIMER(PI/T)(50ピンのコネクタ)を搭 載していて、それで外部とのデータをやり取りする。  CPUボード(名称 VSBCー1)にはRS232Cとゆうコネクタを2つ搭載していて、それで外部と のデータをやり取りすることができる。  MPUは上図の様にCPUボードとI/Oボードの2枚で構成されている。 MPUの外観図 1、MPUの構成 1、MPU 表紙に戻る  苦情は一切受けません。 書かれているので、 *この文章は、すべて個人的感情によって という感じがした。 これでいいのか 正直言って2位ではあったが 3位 − 1、2班 1勝 2位 − 3、5班 2勝 優勝 − 4班   4勝 <最終結果> −最終戦 初?勝利−    とりあえずほっとした。 アタックをしかけて初めて判定装置を押すことに成功!  今大会初の そこに 試合中盤に相手マシンが壁に引っかかる。 と感じた。 ヤバイ とM先生に言われ 「いいとこ全然ないぞ。」 試合前には それは少なからず自分だけではなかったはずだ。 絶対に負けるわけにはいかなかった。 という恐ろしさもあり  ビリでは後で何いわれるか分からない と言われまくった手前 「外見ばっかり凝ってどうすんじゃい!」 とあるM先生に になってしまう  ビリ ここで負けると1勝だけで  セッティングは変わらない ここで勝たなければと思いつつも <最終戦 −VS3班>   それには次の試合、絶対勝たなければ・・・ 4班が全勝をして優勝、こうなったら2位になるしかない <最終戦の一歩前> −3回戦、敗退−    いいとこ全然ないじゃん! チェックメイト! そしてついに相手に赤外線を捕らえられてしまい ひたすら走るのみ。 しかし赤外線を上手く捕らえられないので 試合は長期戦に入った。  もう遅い スピード上げなきゃよかったと思ったが 言うまでもない。 そのため90度に曲がれなくなったのは デューティー比を変えてもらった。 と考えた自分はソフトの人に無理言って  速さの違い 負けた原因は 絶対に負けられない。 ここには一度(実は2、3度)負けているので ここに勝たなければ優勝はまずない。(でももう1敗)  ついににっくき(うそ)4班と対決。 <3回戦 −VS4班> −2回戦、判定勝ち−    こんなんでいいのか! 何もせずに勝利 既に1度ペナルティーを受けていたのでこれで2度目。 壁に引っ掛かりペナルティー。 突然調子が変になった相手マシン。 そして再試合。 実はまだ判定装置は押されてなかったのである。 「まだ止まってませんよ。」の一声、 しかし、 「1班の勝ち」と審判が告げる。 心の叫びは無残にも届かず、チェックメイト。 予想通りまた逃げる。なぜ逃げる!?  かなりの不安を持ちつつ2回戦に突入。 <2回戦 −VS1班>   −1回戦、自爆−  うそだろ、おいっ!! タッチセンサは効かずそのまま停止。  曲がらず壁に向かって一直線! マシンはいつもと同じように進んだと思いきや、 そしてスタートに戻り、再スタート。 10秒動けなくついにペナルティー1。 しまいには壁に引っかかってしまった。 90度に曲がるのは次第にずれていき  それも何度も!  なぜか逃げる。 そしてチャンスがやってきた。しかし  立ち上がりは順調! <第1回戦 −VS3班> 多分卒研の人がやってくれると思うので見たい人はそちらをどうぞ。 ありません。 と思ってくれるのでしょうが おおっ! ここでムービーを使って結果を報告できでば <MIRS競技会-結果報告> そして結果は? 参考資料: dm9404/memo/encode.sam  リセット信号の立ち上がりでラッチする。  I/Oで値を引き渡す時、一定時間値を変化させないようにする為の回路。 3.2 ラッチ回路  パルス信号Aをカウンタする。I/Oポートは8ビットあるが、1ビットを回転 方向を示すのに使うので残る7ビットを使いカウンタを作る。なお、リセット信号 によりリセットされる。 3.1 カウンタ回路 パルス弁別回路   3.信号処理のブロック パルス弁別回路    2相パルス出力型のエンコーダ(正転/逆転)を検出するための回路。A,B  相の動きよりup/downパルスを作り出し、必要桁数のup/downカウン タに入力し、カウンタの内容を読み取る事で回転量を知る事ができる。パルス弁別 回路は、このup/downパルスを作り出す回路である。 2.4 パルス弁別回路  A,B信号の周波数は回転数に比例するからそのパルスを一定時間間隔にカウン トし回転数をもとめれば、回転速度を検出できる。 2.3 回転速度の検出  Aの場合、B信号の立ち上がり時にA信号は”L”になっているため、回転方向 検出信号は”L”になる。このようにして回転方向の判別を行う事ができる。  @の場合、B信号の立ち上がり時にA信号は必ず”H”になっているため回転  方向検出信号は”H”になる。  図のようにパルス信号A,Bは90°位相がずれているが、回転方向によってず れ方が異なる。  波形整形回路からのパルス信号A,Bの組み合わせは、回転方向により2つのパ ターンになる。 2.2 回転方向(正転/逆転)の判別  ロータリーエンコーダからの出力信号は近似正弦波形であるので、これを波形整 形回路でパルス波形にする。  発光ダイオード(LED)と受光素子(フォトトランジスタ)が、回転軸に 取り付けられた回転スリット(A)と固定スリット(B)をはさみ相対して取 り付けられている。回転スリット(A)が回転すると、ダイオードの光がスリ ットによって通過、遮断を繰り返す。この光を受光素子し、信号(パルス)に 変換する。出力信号を2相にするため、固定スリット(B)はスリットが2つ に分かれていて、それぞれ90°位相がずれている。 2.1 回転量の検出 2.光電式ロータリーエンコーダの概要  また出力パルスの形式により、インクリメンタル型とアブソリュート型の2つに分類さ れる。ここでは、インクリメンタル型を使用する。 その変換方式には光電式、ブラシ式、磁気式などがあるが、MIRSでは最も一般的な光 電式を使用する。  ロータリ・エンコーダには、タイヤの回転数(アナログ量)をパルス数(デジタ ル量)に変換する機能がある。 1.ロータリーエンコーダとは ロータリーエンコーダの調査研究             計9名   全員 湯山 優40ソフトウェア 藤田 治男34メカニクス 鈴木 一郎21ソフトウェア 澤井俊男18ソフトウェア 佐藤 みどり17エレクトロニクス 清末 美月13エレクトロニクス Member枝  要7エレクトロニクス D−Manager藤井 聖也33メカニクス Manager堀内 敬介35メカニクス MIRS開発体制   表紙に戻る −4年次− −3年次− <謎の多い5班のメンバー> 前のページへ uss_start(X)を呼び出して、割り込みが起きたとき、 uss_chk_int()が、1を返したら正常に計測が行われたということで ある。さらにuss_chk_conect()が、0を返したら、しっかり反射し てきたことになる 割り込み時の処理はinterruptvoidintt**()の中に書くようにす る。 なお、sys11(1)は、赤外線センサでも使用するので注意が必要 上記のように割り込みタスク登録しsys11(1)を呼び出すことにより 可能になる。 sys5(*,0,USS_INT_VCT,0,0); 押しボタンスイッチの割り込みについて 戻り値1:センサーがついていない0:ついている 引数なし 機能センサのチェック 関数intuss_chk_conect(); 戻り値1:正常0:ハードウェア異常 引数なし 機能割り込みタイプのチェック 関数intuss_chk_int(); 戻り値事前に送信したセンサ方向の距離[cm] 引数なし 機能距離の計算 関数intuss_data(); 戻り値なし 引数なし 機能超音波センサカウンタのカウントストップ 関数voiduss_stop(); 戻り値なし 引数intch:送信するチャネル 機能超音波を送信する 関数voiduss_start(intch); 戻り値なし 引数なし 機能超音波センサの初期化 関数voiduss_init(); 超音波センサ割り込み intuss_chk_conect(); intuss_chk_int(); intuss_data(); voiduss_stop(); voiduss_start(); voiduss_init(); 超音波センサ系関数 前のページへ 超音波センサは関数が対になっているので呼び出す順番に気をつけて下 さい。 あとは、必要な関数を適宜呼び出してください。 使いたいHardwareの初期化関数を使う前に必ず呼び出してください。 MIRSが暴走します。 また、makefile,commandfileへ登録を行って下さい。 の1行を一番最初に書いてください。これがないと、正常に動作しませ ん。 #include"hard.h" HardwareFubctionlibraryの関数を使うファイルでは、必ず hard.chard.hを自分のディレクトリにコピーして下さい。最新版は、 ver1.1(Nov.241996)です。 このlibraryは、リアルタイムモニタ(mirx68KforVSBC-1)を使用する ことを前提としています。 HardwareFunctionlibraryの使い方 前のページへ プログラムの実行の前にコネクタの接続等ミスがないか確認すること。 BUGがあったら速やかに報告し、素早くFIXする。 以下の点を守って使用してください。 使用上の注意 前のページへ 割り込み時の処理はinterruptvoidintt**()の中に書くようにす る。 上記のように割り込みタスク登録し、ts_enable_int();を呼び出す ことにより可能になる。 sys5(*,0,TS_INT_VCT,0,0); タッチセンサの割り込みについて rは右の、lは左のロータリーエンコーダカウント値が格納される。ts はタッチセンサのデータが格納される。 }RE_TS_DATA; intts; intl; intr; typedefstruct{ hard.hの中で下記のように宣言されている構造体である。 RE_TS_DATA型について 戻り値なし 引数なし 機能タッチセンサの割り込み許可 関数voidts_enable_int(); 戻り値なし 引数なし 機能タッチセンサの割り込み禁止 関数voidts_disable_int(); 戻り値タッチセンサデータ 引数なし 機能タッチセンサデータの取得 関数intts_data(); 戻り値カウント値及びタッチセンサデータ 引数なし 機能ロータリーエンコーダのカウント値、タッチセンサデータの取得及び積算カウンタのリセット 関数RE_TS_DATAre_ts_data(); 戻り値なし 引数なし 機能ロータリーエンコーダの積算カウンタのリセット 関数voidre_counter_reset(); 戻り値なし 引数なし 機能ロータリーエンコーダ・タッチセンサの初期化 関数voidre_ts_init(); タッチセンサ割り込み RE_TS_DATA型 voidts_enable_int(); voidts_disable_int(); intts_data(); RE_TS_DATAre_ts_data(); voidre_counter_reset(); voidre_ts_init(); ロータリーエンコーダ・タッチセンサ系関数 前のページへ 戻り値なし intl:左のデューティー比(100〜-100) 引数intr:右のデューティー比 機能デューティー比の設定 関数voidpwm_data(intr,intl); 戻り値なし 引数なし 機能PWMの初期化 関数voidpwm_init(); voidpwm_data(); voidpwm_init(); PWM系関数 前のページへ 割り込み時の処理はinterruptvoidintt**()の中に書くようにする。 上記のように割り込みタスク登録しbtn_enable_int();を呼び出すことにより可能になる。 sys5(*,0,BTN_INT_VCT,0,0); 押しボタンスイッチの割り込みについて 戻り値1:システム稼働中0:非稼働中 引数なし 機能電源の状態のチェック 関数intpow_chk(); 戻り値なし 引数なし 機能押しボタンスイッチの割り込み許可 関数voidbtn_enable_int(); 戻り値なし 引数なし 機能押しボタンスイッチの割り込み禁止 関数voidbtn_disable_int(); 戻り値なし GREEN:緑 RED:赤 GREEN|RED:両方 OFF:消灯 引数intn:点灯するLED 機能RED又はGREENLEDを点灯、消灯する 関数voidled_on(intn); 戻り値なし intd:表示する数字 引数intn:表示するLEDの番号 機能7seg.LEDに数字を表示する 関数voidled_set(intn,intd); 戻り値なし 引数なし 機能MMI/Fの初期化 関数voidmmi_init(); 戻り値スイッチの値 引数なし 機能4bitディップスイッチ又はロータリースイッチの値の取得 関数intdipsw_data(); 押しボタンスイッチの割り込み intpow_chk(); voidbtn_enable_int(); voidbtn_disable_int(); voidled_on(); voidled_set(); voidmmi_init(); intdipsw_data(); マン・マシンインターフェース系関数 前のページへ uss_start(X)を呼び出して、割り込みが起きたとき、uss_chk_int()が、1を返したら正常に計測が行われたということである。さらにuss_chk_conect()が、0を返したら、しっかり反射してきたことになる 割り込み時の処理はinterruptvoidintt**()の中に書くようにする。 なお、sys11(1)は、赤外線センサでも使用するので注意が必要 上記のように割り込みタスク登録しsys11(1)を呼び出すことにより可能になる。 sys5(*,0,USS_INT_VCT,0,0); 押しボタンスイッチの割り込みについて 戻り値1:センサーがついていない0:ついている 引数なし 機能センサのチェック 関数intuss_chk_conect(); 戻り値1:正常0:ハードウェア異常 引数なし 機能割り込みタイプのチェック 関数intuss_chk_int(); 戻り値事前に送信したセンサ方向の距離[cm] 引数なし 機能距離の計算 関数intuss_data(); 戻り値なし 引数なし 機能超音波センサカウンタのカウントストップ 関数voiduss_stop(); 戻り値なし 引数intch:送信するチャネル 機能超音波を送信する 関数voiduss_start(intch); 戻り値なし 引数なし 機能超音波センサの初期化 関数voiduss_init(); 超音波センサ割り込み intuss_chk_conect(); intuss_chk_int(); intuss_data(); voiduss_stop(); voiduss_start(); voiduss_init(); 超音波センサ系関数 前のページへ 超音波センサは関数が対になっているので呼び出す順番に気をつけて下さい。 あとは、必要な関数を適宜呼び出してください。 使いたいHardwareの初期化関数を使う前に必ず呼び出してください。MIRSが暴走します。 また、makefile,commandfileへ登録を行って下さい。 の1行を一番最初に書いてください。これがないと、正常に動作しません。 #include"hard.h" HardwareFubctionlibraryの関数を使うファイルでは、必ず hard.chard.hを自分のディレクトリにコピーして下さい。最新版は、ver1.1(Nov.241996)です。 このlibraryは、リアルタイムモニタ(mirx68KforVSBC-1)を使用することを前提としています。 HardwareFunctionlibraryの使い方 前のページへ プログラムの実行の前にコネクタの接続等ミスがないか確認すること。 BUGがあったら速やかに報告し、素早くFIXする。 以下の点を守って使用してください。 使用上の注意 前のページへ 割り込み時の処理はinterruptvoidintt**()の中に書くようにする。 上記のように割り込みタスク登録し、ts_enable_int();を呼び出すことにより可能になる。 sys5(*,0,TS_INT_VCT,0,0); タッチセンサの割り込みについて rは右の、lは左のロータリーエンコーダカウント値が格納される。tsはタッチセンサのデータが格納される。 }RE_TS_DATA; intts; intl; intr; typedefstruct{ hard.hの中で下記のように宣言されている構造体である。 RE_TS_DATA型について 戻り値なし 引数なし 機能タッチセンサの割り込み許可 関数voidts_enable_int(); 戻り値なし 引数なし 機能タッチセンサの割り込み禁止 関数voidts_disable_int(); 戻り値タッチセンサデータ 引数なし 機能タッチセンサデータの取得 関数intts_data(); 戻り値カウント値及びタッチセンサデータ 引数なし 機能ロータリーエンコーダのカウント値、タッチセンサデータの取得及び積算カウンタのリセット 関数RE_TS_DATAre_ts_data(); 戻り値なし 引数なし 機能ロータリーエンコーダの積算カウンタのリセット 関数voidre_counter_reset(); 戻り値なし 引数なし 機能ロータリーエンコーダ・タッチセンサの初期化 関数voidre_ts_init(); タッチセンサ割り込み RE_TS_DATA型 voidts_enable_int(); voidts_disable_int(); intts_data(); RE_TS_DATAre_ts_data(); voidre_counter_reset(); voidre_ts_init(); ロータリーエンコーダ・タッチセンサ系関数 前のページへ 戻り値なし intl:左のデューティー比(100〜-100) 引数intr:右のデューティー比 機能デューティー比の設定 関数voidpwm_data(intr,intl); 戻り値なし 引数なし 機能PWMの初期化 関数voidpwm_init(); voidpwm_data(); voidpwm_init(); PWM系関数 前のページへ 割り込み時の処理はinterruptvoidintt**()の中に書くようにする。 上記のように割り込みタスク登録しbtn_enable_int();を呼び出すことにより可能になる。 sys5(*,0,BTN_INT_VCT,0,0); 押しボタンスイッチの割り込みについて 戻り値1:システム稼働中0:非稼働中 引数なし 機能電源の状態のチェック 関数intpow_chk(); 戻り値なし 引数なし 機能押しボタンスイッチの割り込み許可 関数voidbtn_enable_int(); 戻り値なし 引数なし 機能押しボタンスイッチの割り込み禁止 関数voidbtn_disable_int(); 戻り値なし GREEN:緑 RED:赤 GREEN|RED:両方 OFF:消灯 引数intn:点灯するLED 機能RED又はGREENLEDを点灯、消灯する 関数voidled_on(intn); 戻り値なし intd:表示する数字 引数intn:表示するLEDの番号 機能7seg.LEDに数字を表示する 関数voidled_set(intn,intd); 戻り値なし 引数なし 機能MMI/Fの初期化 関数voidmmi_init(); 戻り値スイッチの値 引数なし 機能4bitディップスイッチ又はロータリースイッチの値の取得 関数intdipsw_data(); 押しボタンスイッチの割り込み intpow_chk(); voidbtn_enable_int(); voidbtn_disable_int(); voidled_on(); voidled_set(); voidmmi_init(); intdipsw_data(); マン・マシンインターフェース系関数 前のページへ 割り込み時の処理はinterruptvoidintt**()の中に書くようにする。 ただし、sys11(1);は、超音波センサでも使用するので注意が必要。また、一度呼び出せばそれでいいので、sys11(1);を呼び出したあとの、割り込みの許可・不許可は、irs_enable_int();,irs_disable_int();を使用して行うようにする。 上記のように割り込みタスク登録し、irs_enable_int();とsys11(1);を呼び出すことにより可能になる。 sys5(*,0,IRS_INT_VCT,0,0); 赤外線センサの割り込みについて 1:ON0:OFF 戻り値8bitの検知データ 引数なし 機能赤外線センサのデータ取得 関数irsirs_data(); 戻り値なし 引数なし 機能赤外線センサの割り込み許可 関数voidirs_enable_int(); 戻り値なし 引数なし 機能赤外線センサの割り込み禁止 関数voidirs_disable_int(); 戻り値なし 引数なし 機能赤外線センサの初期化 関数voidirs_init(); 赤外線センサの割り込み intirs_data(); voidirs_enable_int(); voidirs_disable_int(); voidirs_init(); 赤外線センサ系関数 注意事項 定数 PWM系 ロータリーエンコーダ・タッチセンサ系 超音波センサ系 赤外線センサ系 マン・マシンインターフェース系 使い方 HardwareFunctionLibrarymanual 前のページへ OFFOFF REDREDLED GREENGREENLED 定数名用途 LED点灯用データ(led_on()) TS_INT_VCTタッチセンサ IRS_INT_VCT赤外線センサ USS_INT_VCT超音波センサ BTN_INT_VCT押しボタンスイッチ 定数名用途 割り込みvector 定数 前のページへ 割り込み時の処理はinterruptvoidintt**()の中に書くようにする。 ただし、sys11(1);は、超音波センサでも使用するので注意が必要。また、一度呼び出せばそれでいいので、sys11(1);を呼び出したあとの、割り込みの許可・不許可は、irs_enable_int();,irs_disable_int();を使用して行うようにする。 上記のように割り込みタスク登録し、irs_enable_int();とsys11(1);を呼び出すことにより可能になる。 sys5(*,0,IRS_INT_VCT,0,0); 赤外線センサの割り込みについて 1:ON0:OFF 戻り値8bitの検知データ 引数なし 機能赤外線センサのデータ取得 関数irsirs_data(); 戻り値なし 引数なし 機能赤外線センサの割り込み許可 関数voidirs_enable_int(); 戻り値なし 引数なし 機能赤外線センサの割り込み禁止 関数voidirs_disable_int(); 戻り値なし 引数なし 機能赤外線センサの初期化 関数voidirs_init(); 赤外線センサの割り込み intirs_data(); voidirs_enable_int(); voidirs_disable_int(); voidirs_init(); 赤外線センサ系関数 注意事項 定数 PWM系 ロータリーエンコーダ・タッチセンサ系 超音波センサ系 赤外線センサ系 マン・マシンインターフェース系 使い方 HardwareFunctionLibrarymanual 前のページへ OFFOFF REDREDLED GREENGREENLED 定数名用途 LED点灯用データ(led_on()) TS_INT_VCTタッチセンサ IRS_INT_VCT赤外線センサ USS_INT_VCT超音波センサ BTN_INT_VCT押しボタンスイッチ 定数名用途 割り込みvector 定数 MIRS9505のホームページへ戻る。  (ただし、ファイルによっては印刷するのに少しコツが必要です。) ・印刷をする時は、CADを開いて、そちらでやる方が上手くいくと思います。 ・CAD(WinCAD)がなければ、「CADを開く」はできません(多分)。 ・データは自由にコピーしていいですがオリジナルのデータを壊すことのないようにしてください。 ・画像が多いので処理が遅くなる可能性があります。 ・画面一杯に表示して見るようにしてください。 ・「Netscape Ver2.0」又は「インターネットエクスプローラー Ver3.0」以上のブラウザを使用してください。 <NOTICE> 部品表 図面  -INDEX- Mechanics システム詳細設計書 MIRS開発チーム第5班 1995年度 補序盤(上)アルミ版塩ビ版ボツファイル 取付けL字版 パターン図 判定装置組立蝶番、L字版 支柱部品寸法 ロータリーエンコーダボード (パターン図) I/OSUBボード (パターン図) MMIボード (パターン図) 可逆変換ボードパターン図 VMEラックカバー 電源ボードパターン図 VMEラック下部VMEラック上部VMEラック全体 赤外線センサ部品寸法パターン図 赤外線センサ孫パターン図 超音波ボードパターン図 シャーシ (2F)シャーシ寸法 判定装置固定版 L字加工 バンパー塩ビ加工 タッチセンサ バッテリーカバー バッテリーラック部品寸法 キャスタ モータ取付け金具 シャーシ寸法 全体図シャーシ (1F) *見たいファイル名をクリックしてください。 <ファイル構成TREE> 表紙に戻る *見たいファイル名をクリックしてください。 <ファイル構成TREE> 戻る 仕様書番号005 Mechanics システム詳細設計書 MIRS開発チーム第5班 1995年度  (ディスクが必要)  長澤研究室にあるパソコンで見ることができます。 *このファイルはここでは見れません。  usssub ファイル名 <超音波ボードパターン図>  (ディスクが必要)  長澤研究室にあるパソコンで見ることができます。 *このファイルはここでは見れません。  rtenc ファイル名 <ロータリーエンコーダボード(パターン図)>  (ディスクが必要)  長澤研究室にあるパソコンで見ることができます。 *このファイルはここでは見れません。  power99 ファイル名 <電源ボードパターン図>  (ディスクが必要)  長澤研究室にあるパソコンで見ることができます。 *このファイルはここでは見れません。  newmmi ファイル名 <MMIボード(パターン図)>  (ディスクが必要)  長澤研究室にあるパソコンで見ることができます。 *このファイルはここでは見れません。  neosub ファイル名 <I/OSUBボード(パターン図)> 3D表示 CADを開く 画面全体に表示 拡大図で表示  zentai.zwd ファイル名  00000 仕様書番号 <全体図2D> CADを開く 画面全体に表示 拡大図で表示  vme5.zwd ファイル名  25000 仕様書番号 <ラック下部取付> CADを開く 画面全体に表示 拡大図で表示  horiuti.zwd ファイル名  25122 仕様書番号 <ラック上部取付> CADを開く 画面全体に表示 拡大図で表示  vme1.zwd ファイル名  25110 仕様書番号 <VMEラック全体> CADを開く 画面全体に表示 拡大図で表示  tyouon.zwd ファイル名  22000 仕様書番号 <超音波ボード(部品寸法、取付)> CADを開く 画面全体に表示 拡大図で表示  tacch.zwd ファイル名  16000 仕様書番号 <タッチセンサ取付図> CADを開く 画面全体に表示 拡大図で表示  sityuu2.zwd ファイル名  31000 仕様書番号 <支柱部品寸法> CADを開く 画面全体に表示 拡大図で表示  sityuu1.zwd ファイル名  30000 仕様書番号 <支柱取付け図> CADを開く 画面全体に表示 拡大図で表示  shasi2t.zwd ファイル名  20000 仕様書番号 <シャーシ(2F)取付け図> CADを開く 画面全体に表示 拡大図で表示  shasi2.zwd ファイル名  21000 仕様書番号 <シャーシ(2F)> CADを開く 画面全体に表示 拡大図で表示  shasi1t.zwd ファイル名  10000 仕様書番号 <シャーシ(1F)取付け図> CADを開く 画面全体に表示 拡大図で表示  shasi1.zwd ファイル名  11000 仕様書番号 <シャーシ(1F)> CADを開く 画面全体に表示 拡大図で表示  seki3.zwd ファイル名  24100 仕様書番号 <赤外線センサ(部品寸法)> CADを開く 画面全体に表示 拡大図で表示  seki2.zwd ファイル名  24000 仕様書番号 <赤外線センサ(取付)> CADを開く 画面全体に表示 拡大図で表示  seki1.zwd ファイル名  23000 仕様書番号 <赤外線センサ孫(取付)> CADを開く 画面全体に表示 拡大図で表示  moter2.zwd ファイル名  12100 仕様書番号 <モータ取付け金具> CADを開く 画面全体に表示 拡大図で表示  moter1.zwd ファイル名  12000 仕様書番号 <モータ取付け図> CADを開く 画面全体に表示 拡大図で表示  lack2.zwd ファイル名  14100 仕様書番号 <バッテリーラック(部品寸法)> CADを開く 画面全体に表示 拡大図で表示  lack1.zwd ファイル名  14000 仕様書番号 <バッテリーパック(取付)> CADを開く 画面全体に表示 拡大図で表示  kyasu.zwd ファイル名  13000 仕様書番号 <キャスタ取付け> CADを開く 画面全体に表示 拡大図で表示  hantei6.zwd ファイル名  18000 仕様書番号 <判定装置(固定版)> CADを開く 画面全体に表示 拡大図で表示  kagyaku.zwd ファイル名  26000 仕様書番号 <可逆変換ボード(取付)> CADを開く 画面全体に表示 拡大図で表示  hantei5.zwd ファイル名  43000 仕様書番号 <補助版(上)> CADを開く 画面全体に表示 拡大図で表示  hantei4.zwd ファイル名  42000 仕様書番号 <取付けL字版> CADを開く 画面全体に表示 拡大図で表示  hantei3.zwd ファイル名  41100 仕様書番号 <蝶番、L字版(判定装置)> CADを開く 画面全体に表示 拡大図で表示  hantei2.zwd ファイル名  41000 仕様書番号 <判定装置(組立)> CADを開く 画面全体に表示 拡大図で表示  hantei1.zwd ファイル名  40000 仕様書番号 <判定装置(取付)> CADを開く 画面全体に表示 拡大図で表示  embi.zwd ファイル名  0000B 仕様書番号 <塩ビ版寸法> CADを開く 画面全体に表示 拡大図で表示  dengen.zwd ファイル名  25122 仕様書番号 <電源ボード(部品寸法)> CADを開く 画面全体に表示 拡大図で表示  cover.zwd ファイル名  25130 仕様書番号 <VMEラックカバー> CADを開く 画面全体に表示 拡大図で表示  batteri.zwd ファイル名  15000 仕様書番号 <バッテリーカバー> CADを開く 画面全体に表示 拡大図で表示  banpa3.zwd ファイル名  17200 仕様書番号 <バンパー(L字加工)> CADを開く 画面全体に表示 拡大図で表示  banpa2.zwd ファイル名  17100 仕様書番号 <バンパー(塩ビ加工)> CADを開く 画面全体に表示 拡大図で表示  banpa1.zwd ファイル名  17000 仕様書番号 <バンパー全体図> CADを開く 画面全体に表示 拡大図で表示  arumi.zwd ファイル名  0000A 仕様書番号 <アルミ版寸法> CADを開く 画面全体に表示 拡大図で表示  moter1.zwd ファイル名  12000 仕様書番号 <モータ取付け図>  (ディスクが必要)  長澤研究室にあるパソコンで見ることができます。 *このファイルはここでは見れません。  kagyaku3 ファイル名 <可逆変換ボードパターン図>  (ディスクが必要)  長澤研究室にあるパソコンで見ることができます。 *このファイルはここでは見れません。  iudge2 ファイル名 <判定装置パターン図>  (ディスクが必要)  長澤研究室にあるパソコンで見ることができます。 *このファイルはここでは見れません。  infrared ファイル名 <赤外線センサパターン図>  (ディスクが必要)  長澤研究室にあるパソコンで見ることができます。 *このファイルはここでは見れません。  inf2 ファイル名 <赤外線センサ孫パターン図> MMIフロントボード[mmi-f.zwd] 上部取付塩ビ加工[vme4.zwd] VMEラック上部部品塩ビ組立[vme3.zwd] ラック上部取付全体[vme2.zwd] *CADファイルのみです。 <没ファイル一覧> 2D表示に戻る 画面全体に表示 拡大図で表示 <全体図3D> 表紙に戻る その他 ネジ、ナット、ワッシャー詳細  ネジ、ナット、ワッシャー合計  <部品表>−INDEX− シール  1貼る スプレー(黒)  1塩ビ版を塗る スプリングM7×20 6バンパー アルミの棒M5×69 6バンパー Φ3×5 16赤外線孫 Φ3×40 16赤外線センサ  4電源ボード  4赤外線孫 スぺーサーΦ3×10 12超音波ボード スリーブΦ5 20バンパー ドリルの刃Φ0.8 1  ホイール止め金具 ZD-433 (YOKOMO)2 モータ取付金具  2モータ VMEラック  1VMEラック バッテリー 1700SCR (TAMIYA)2バッテリー モータ RE025-055  -34EBA200A (MAXON)2モータ  18バンパー ハブΦ3 2 ビス  4 ホイール ZC-837 (YOKOMO)2 タイヤ AA-102 (CROSS)2タイヤ ボールキャスタ K-140-2 (TAKIGEN)2補助輪 蝶番 B-1059-5 (TAKIGEN)1判定装置 アルミパイプφ10×80 4支柱補強 15×10×1 4判定装置固定 14×30×2 12バンパー L字アルミ板10×38×1.5 1判定装置 130×10×1 2電源ボード固定 アルミ板 (詳細)200×50×1 2バッテリラック   1補助台   1判定装置固定   1VMEラック後   1電源ボード固定 104×10×5 2赤外線ボード固定 210×40×5 1バンパ正面 250×40×5 2バンパ側面 塩ビ板 (詳細)250×210×5 2シャーシ 品名サイズ(mm)型番(メーカ名)数量備考 <その他> なべ小ネジ304 M4さら小ネジ154 リングワッシャ 8 ナット 4 VMEラック部M3なべ小ネジ208 M5リングワッシャ 8 スプリングワッシャ 24 リングワッシャ 30 ナット 24 なべ小ネジ2024 バンパ部M3さら小ネジ406 スプリングワッシャ 12 リングワッシャ 6 ナット 6 102 バッテリ部M4なべ小ネジ154 スプリングワッシャ 6 リングワッシャ 6 ナット 6 キャスタ部M2なべ小ネジ156 スプリングワッシャ 12 リングワッシャ 12 ナット 12 なべ小ネジ108 モータ部M3さら小ネジ1512 スプリングワッシャ 14 リングワッシャ 14 ナット 14 154 勝敗判定装置M3なべ小ネジ2010 スプリングワッシャ 8 リングワッシャ 8 支柱M10ボルト308 スプリングワッシャ 4 リングワッシャ 4 ナット 12 可逆変換ボードM2さら小ネジ204 スプリングワッシャ 48 リングワッシャ 32 ナット 16 赤外線ボードM3なべ小ネジ5016 スプリングワッシャ 6 リングワッシャ 12 ナット 12 M3なべ小ネジ306 スプリングワッシャ 6 リングワッシャ 12 ナット 12 タッチセンサ部M2なべ小ネジ206 スプリングワッシャ 20 リングワッシャ 32 ナット 20 158 赤外線センサM2さら小ネジ404 スプリングワッシャ 12 リングワッシャ 24 ナット 12 超音波ボードM2なべ小ネジ2012 仕様箇所径(mm)部品名長さ(mm)個数 <ネジ、ナット、ワッシャー詳細> ボルトM1020808 M58412 M412416 M3401050 スプリング ワッシャM2 11020130 M58614 M46410 M3621072 リングワッシャM2 19822220 M58412 M410616 M3461056 ナットM2 13220152 M3156410 40426 20426 さら小ねじM21510414 15448 M410224 208614 1532840 M31010616 3018624 2024630 なべ小ねじM21516622 種類直径(mm)長さ(mm)必要個数予備数発注数 <ネジ、ナット,ワッシャー合計>        (ただし、ファイルによっては印刷するのに少しコツが必要です。)       ・印刷をする時は、CADを開いて、そちらでやる方が上手くいくと思います。         ・CAD(WinCAD)がなければ、「CADを開く」はできません(多分)。        ・データは自由にコピーしていいですがオリジナルのデータを壊すことのないようにしてください。 ・画像が多いので処理が遅くなる可能性があります。 ・画面一杯に表示して見るようにしてください。 ・「Netscape Ver2.0」又は「インターネットエクスプローラー Ver3.0」以上のブラウザを使用してください。 <NOTICE> メニューに戻る システム完了報告書に戻る  プログラムを開発するにあたって、動作試験に予想以上の時間がかかった。これはコンパイル、ファイル転送、RAMへの焼き付け、などに費やした時間が大きい。シュミレータをうまく活用してモード遷移条件の誤りなどを検出できれば良かった。   合計453.0 2/04-  2/14s_10総合走行試験〃3.015.040.0 12/16-  2/14s_9行動判断部走行試験〃3.025.065.0 11/26-  2/14s_8行動判断部プログラム開発〃3.027.061.0 4/23-  2/14s_7行動判断部モード 遷移検討、開発〃3.020.060.0 12/13-  12/17s_6規定走行試験〃3.025.065.0 12/13-  12/17s_5規定走行用プログラム開発〃3.022.056.0 12/13-  12/17s_4各センサ系モジュール 機能テスト〃3.010.030.0 4/23-  9/1s_3仕様の研究、開発環境作り〃3.06.018.0 5/7-  6/1s_2詳細設計書作成〃3.020.040.0 5/7-  5/26s_1開発計画書作成澤井 一郎 湯山3.06.018.0 期間コード      内   容作業者人数時間工数h      <ソフト完了報告書> メニューに戻る システム完了報告書に戻る 遅れてしまうことがわかった。システム全体を見ると言う事がいかに大切かがわかったような気がする。 がわかる。メカが遅れることでエレキやソフトはおろかシステム全体の計画が大幅に  m_3からm_6は試験・バグ取りなのだが、設計とほぼ同じだけの時間を要するのだということ もいざ製作すると予想できなかった欠点が見えてくる事を知った。  m_2(製作)には時間をかけるつもりはなかったので、設計が完璧で たと思う。  m_1(設計)にかなり時間をかけようという方針だったので予想通りうまくでき 合計729.5 12月〜  2月m_6テスト走行&バグ取り(改良) メンテナンス3.0〃22.567.5 12月〜  2月m_5ボード搭載(マシン完成)3.0〃6.018.0 12月〜  2月m_4サブシステム試験・細部変更3.0藤井 藤田 堀内39.5118.5 12月〜  2月m_3HTML文章の作成8.05班 全員97.5101.0 8月〜  11月m_2制作  ・骨組み  ・足回り  ・バンパー  ・センサ類  ・色塗り  ・コード3.0〃66.5199.5 4月  (初版) 12月  (終版)m_1サブシステム設計  ・外観決定(第1案〜最終案)  ・図面作成(第1案〜最終案)  ・部品表作成3.0藤井 藤田 堀内97.5292.5 期間コード内   容人数作業者時間工数h <メカ完了報告書>      メニューに戻る システム完了報告書に戻る  らであると思われる。  は意外である。超音波回路にここまで時間がかかったのは冬休みも通いバグ取りをしていたか  かなり時間をかけたつもりであるが、超音波回路の半分くらいだけしかやっていないというの 一目でわかるように超音波とTMPチェックにかなり時間がかかっている。I/Osubにも 合計434.0 12/23〜  12/26e_9ホームページ〃29.018.0 11/12〜  11/28e_8TMPチェック〃269.0138.0 12/14〜  12/16e_7ケーブル作成〃245.591.0 8/3〜  8/6e_6ロータリエンコーダボード〃26.012.0 8/3〜  8/6e_5MMIボード〃213.326.5 12/8〜  1/14e_4超音波〃284.8169.5 8/3〜  10/22e_3赤外線〃215.030.0 8/3〜  11/8e_2I/Osubボード〃247.595.0 9/3〜  9/20e_1電源ボード清末 佐藤25.010.0 期間コード    内   容作業者人数時間工数h <エレキ完了報告書>      メニューに戻る ソフトに時間をかけたかったというのが感想である。 本戦に挑んだので思うような結果を得られず、特にメカ・エレキの遅れによるソフトの遅れはシステム全体の遅れに影響しもう少し  このグラフからわかることは、設計まではかなり良かったのだが製造に予想以上の時間がかかりちゃんと細部まで試験しきれずに していたのだが、実際は下のグラフのようになり愕然としている。  ぼくらは理想として設計に8分の4(半分)くらいの割合・製造に8分の1くらいの割合・試験に8分の3くらいの割合を目的と と言える。(ただしjはiに含まれるため、kはこの仕様書を作成したのに要した時間のためグラフに入れなかった。)  ・iからkは試験・バグ取り  ・hは製造  ・aからgまでは設計  k作業報告・感想 開発完了報告  ホームページ 完了報告書  jシステム総合試験 システム改善  ☆走行試験  ☆障害物回避動作試験  ☆赤外線追跡試験  ☆超音波追跡試験  ☆赤外線操作試験  ☆バンパー反応試験11月〜  2月    iサブシステム試験 バグ取り  ☆メカ  ☆エレキ  ☆ソフト11月〜  2月334.75バグレポート 障害報告書  hサブシステム製造  ☆メカ  ☆エレキ  ☆ソフト夏休み〜  11月1,089   gシステム詳細設計 サブシステム設計  ☆メカ  ☆エレキ  ☆ソフト6月〜  7月526.5システム詳細 設計仕様書 部品表・Tree フローチャート等  fシステム基本設計の見直し5月〜  6月96.75  4年 e開発チームの再編成 4年次開発計画4月33開発設計 仕様書 (4年次)  dシステム基本設計  ☆目的  ☆システム概要  ☆システム基本機能  ☆構造概要  ☆行動指針の詳細検討  ☆MIRS9505内の用語  ・記号体系に関する規定1月中〜  2月下116システム基本 設計仕様書  c部品の性能や機能等 の調査・検討 システムの詳細調査  (回路・制御)12月下〜  1月中183.75調査・研究 報告書  b3年次開発計画11月下〜  12月下96.5開発設計 仕様書 (3年次) 3年 aコンセプト11月中〜  11月下35  学年code項目期間工数仕様書 成果物 <MIRS9505システム完了報告書> (1) 超音波の性質 7システム開発スケジュール藤田、堀内 6システム開発体制山口 5システム基本機能詳細鈴木一、藤井 4システム基本機能藤井 3システム設計方針堀内 2システム概要枝、鈴木一 1目的藤田 内容作成者 目次 システム開発計画書             計8名   山口 悟史37ソフトウェア 枝  要6ソフトウェア 鈴木 一郎20ソフトウェア 佐藤 みどり16エレクトロニクス 清末 美月12エレクトロニクス Member藤田 治男33メカニクス D−Manager藤井 聖也32メカニクス Manager堀内 敬介34メカニクス MIRS開発体制 MIRS開発スケジュール                    失敗時:見失ってもその場回転で相手を捜す。超音波センサに相手が反応するが 赤外線センサに反応がない場合、諦めて避難モードの動きでこのモードを終了する。    Aのタッチセンサが反応し赤外線センサの反応もある場合、タイヤMを固定しタイヤNのみ前進させる事により側面に大きな弧を描かせる、それにより勝敗判定装置を押す事ができる可能性が高い。(Bについても同様) fig.11 3、超近距離においてタッチセンサの反応があった場合   反応するセンサがA、Bのように極端に片寄ったら前進に対する曲がる割合を高くする。特にそれがAの場合は逆に自機が回り込まれる可能性が高くなるのでよりその場回転に近い曲がり方をする。  反応するセンサがAB、BCのように一方に片寄ったら前進しながらもそちらへ曲がる。  基本的にABC3つのセンサの中央に相手の勝敗判定装置を捕らえながら接近する。 fig.10 2、側面(説明は左側)の赤外線センサに反応があった場合  Aに反応があり超音波センサにも反応があった場合、左方向に少し進んでから反時計周りをして自機の右側で相手を捕らえる。超音波センサに反応が無い場合、右方向に少し進んでから時計周りをして自機の左側で相手を捕らえる。(勝敗判定装置の正面に自機を位置したいために1度相手から離れる)(Bについても同様)    AB共に反応があった場合、その場回転をして左右の赤外線センサの密な部分を相手に向ける。 fig.9 1、上側の赤外線センサに反応があった場合     反応があった赤外線センサの位置とそれに対応する動きを次に示す。  このモードは相手の勝敗判定装置を完全に見失った時を「失敗時」とし、この  モードを呼び出したモードへ戻る。但し、避難モードからこのモードへ移った場合、その避難モードを呼び出したモードへ移る。          このモードは赤外線センサからの情報を基に、自機を相手の勝敗判定装置へと導 き、勝敗判定装置との距離を縮め、勝敗判定装置を押す事を目的に持つ。          このモードは自機の赤外線センサによる相手の勝敗判定装置の「発見時」に実行される。従って他のどのモードからもこのモードが実行される。 (追撃モードについて) 3、4、、等  それぞれの移動、回転は相手に対して逆方向とし、巡回運動に合流後は1、同様の運動をする。           自機が進入禁止ラインに接している場合、上の二つの動きは不可能なのでその場回転をし、巡回運動に合流できる時点でその場を離れる。             勝敗判定装置が進入禁止ラインと角度を持つ場合、仮想の進入禁止ラインのかどを設け、それに沿って移動し巡回運動に合流する。          勝敗判定装置が進入禁止ラインに平行である場合、Aのように仮想の進入禁止ラインを設け、それに沿って移動し、巡回運動に合流する。 fig.8 2、モードの動きの上で、自機の勝敗判定装置が進入禁止ゾーンを向いてない時に「危険」を悟った場合  このとき相手が勝敗判定装置を押す為には、自機より大周りの軌道を描かねばならず、やがて相手は勝敗判定装置を見失うと考えられる。  そして超音波センサのいずれかが相手を感知すれば目的完了である。必要によっては、ある程度距離おいて相手を感知した時目的完了とする。  危険を察した方向と逆方向へ全力で逃げ続ける。 fig.7 1、巡回運動において「危険」を悟った場合 幾つかのマシンの在る状況での動きについて  このモードは目的を果たす為にマシンの状況により異なった動きをする。  このモードの目的は相手の回り込みの可能性をなくす事(危険状態からの脱出) である。その目的が完了次第、このモードを呼び出したモードへ戻る。但し、追 撃モードからこのモードに移った場合は、その追撃モードを呼び出したモードへ戻る。  このモードは相手に自機の後をとられる可能性のある時(危険時)実行される。従って他のどのモードからもこのモードが実行される。            (避難モードについて) 危険時、発見時 > 失敗時 > 通常時    ここでこれらを対α型モードの通常時と称し、他に準備モード同様に危険時、発 見時を定義し、準備モードへ戻る失敗時を含めて各時の優先順位をに示す。 4、5、6、、、等  準備モード調査時に相手が回りむ方向を調べておき、相手を正面に捕らえたら自機を停止させ相手の接近を待つ。相手が回り込みを始めたら図のように相手から自機の勝敗判定装置を隠しつつ回り込みを空かす。相手は勝敗判定装置を自機から隠しつつ回り込む事は出来ない。それはこちらのマシンの特長である。 fig.6 3、対 回り込み型  突進型の正面に位置した時、相手が自分を見つけて突進してくるのを待つ。相手と接触した瞬間、図のように相手の側面を走り抜ける。相手が止まってる時や、あまりの近距離で相手の超音波センサが不安定になった時などに勝敗判定装置が見える可能性がある。 fig.5 2、対 突進型  巡回運動で上の超音波センサで相手の位置を確認し、その座標付近を走り抜けて勝敗判定装置を探る。走り抜ける際上の超音波センサで相手の位置を確認し、走り抜けた後、更に相手側に曲がる事もある。  回り込みに弱いならば、図のように回り込みの動作を積極的に繰り返す。 fig.4 1、対 回り込み有効型 幾つかの「対α型モード」の例   このモードは対α型モードが有効でない場合、終了して準備モードに戻る。    このモードは上の目的がより小さい危険でより速く達成されるように、様々な動 きの中から特に相手マシンに対して有効なものを実行するものである。但し、相 手マシンは準備モードでα型などと分類され、それに有効な動きというのはあらかじめ「対α型モード」として用意されている。  このモードは赤外線センサによる相手の勝敗判定装置の発見を目的とする。  このモードは準備モードを経て実行される。 (対α型モードについて)      next 6、7、8、、、等   接近しようと接触しようと相手は全く動いていない。 > 故障して動けない? > 故障型  ある程度以上近づけない。 > 間合いをとってきて、しかもしっかりした防御 > 慎重型  自機停止中、正面の相手がある程度接近して来て消え、横のラインに表れる。 > 回りこみに熱心、確実に回り込んでくる > 回り込み型  すぐに突っ込んでくる。 > 追跡力あり > 突進型  相手の近くをすれ違うと時々赤外線センサに反応がある。 > 回り込みにたいする防御が不安定 > 回り込み有効型 相手の行動パターンの分類例 各時の運動についての優先順位: 危険時、発見時>完了時>調査時>通常時 「危険」状態を悟ったり相手の勝敗判定措置を発見した場合、強制的に非難運動モードを実行する。 4.危険時、発見時 相手の行動パターンの分類が完了次第「対α型モード」実行する。 3.完了時 時として、相手の前で往復したり止まってみる。 2.調査時 1.相手の衝突はタッチセンサで感知し逆方向の巡回運動をする。 相手が進行方向にいるときは、待機、または逆方向の巡回運動をする。 上、または左右の超音波センサで度々相手の位置を知る。 勝敗判定装置を常に進入禁止ゾーンを向けたまま運動する。 まず片方向の巡回運動をする。 1.通常時 fig.3 このモードのマシンの運動をfig.3に示す。          このモードは度々知る「相手の位置」から相手の行動パターンを分類し、用意  された「対α型モード」を選択する。  このモードはスタート直後に必らず実行される。      このモードは防御重視の姿勢をとり、「自機の安全」を最優先する。       (準備モードについて) ※ 超音波センサから近距離(10cm程)に相手や壁を感知できない穴がある。「ディフェンスライン」においてはタッチセンサがこの穴を補ってくれる可能性がある。 ※ 相手マシンが超音波センサから周期的に発する超音波の波をかい潜って、「ディフェンライン」をすり抜けることはできないものとする。  移動中、度々超音波センサにより壁と自機との距離を知る機会がある。この時その値より自機の座標を割り出すことができる。この機会と機会の空白帯では、シャフトエンコーダから知る各タイヤの回転数より自機の座標を算出することができる。各モードにおいて、常に座標を算出し続け、超音波センサから得る値で随時修正する。この事により、超音波センサからの値を相手によるものか壁によるものか識別できる。 「自機の位置」  このマシンの特長として、相手が自機の後ろに回り込む為には、自機が左右に伸ばす超音波センサの線(ディフェンスライン)を必ず通らねばならない事がある。従って相手が回りこむ際には、相手が一度ディフェンスライン上に見え、そして相手が消えるのが知らされる。これを「危険」な状態ととる。また右下左下に設置する、勝敗判定装置の両サイド2つのタッチセンサに相手が触れる事も「危険」な状態ととる。 「危険」  マシンの後ろ、勝敗判定装置側にはセンサ類が無く、ここに相手に回り込まれると相手の存在を確認できず非常に危険である。従って相手が回り込む前、その可能性が感じられた時を「危険」と称してその対策をとる、それが「避難モード」である。 「自機の安全」 (各モードに共通する事項) <各モードについて> 4:対α型モードが有効でないと悟ったら、準備モードに戻る。 3:赤外線センサに反応を感じたら追撃モードを実行する。 2:マシンが<危険>を感じたら避難モードを即実行する。 1:準備モードで得られる情報を基に、対α型モードを選択し実行する。 <モードの流れ>  fig.2 <マシンの動き> マシンの各モード間の関係をfig.2に示す。 ・各センサについての詳細は、「5−基本機能」を参照。 ・タッチセンサで7ヵ所の接触を感知する。 ・タイヤの向きを左右方向に配置。 マシンの外観の特徴: fig.1 <マシンの外観> マシンの外観図をfig.1に示す。 開発システムの概要 ◎この計画書に、MIRSの開発設計における作業をスムーズに進めていく為の、開発の方針、詳細、スケジュールなどを具体的にまとめる。 MIRSシステム開発計画書の目的 参考資料(dm9405/keikaku/syousai.sam)  駆動部はAAC(AutomaticAccelerationContoroler),PWMなどをふくむ部分の総称で、MPUの要求に対して忠実に動けることが大切である。駆動部は、モータ2個とギアセット、PWM,AACから成り、MIRS全体を移動させる部分である。PWMはモーターに与えるパルスの幅(デューティー比)を調節してモーターの回転数を変化させるものであり、AACはモーターの急加速を防ぐために徐々にデューティー比を変化させるものである。  MIRSの頭脳がいくらしっかりしているとしても、それを動作に表わさなければ全く意味が無い。つまり中身がどうであれMIRSの中でもっとも大切な部分は考えを動作として表わすこの駆動部である。 <駆動部について>  自機の位置を測定してデータを得るにはロータリーエンコーダーを用いる。しかしこの5班のマシンは前にも述べたように、相手と衝突する機会が多い。そのときタイヤが滑るなどの現象により、ロータリーエンコーダーの精度が高くても、かなりの誤差を生じると考えられる。そのため超音波センサーを併用し、こまめ に位置を修正する必要がある。  <自機位置測定について>  従って、超音波センサーの精度を上げるのは、自機位置確認の精度をあげること にもつながる。  このセンサーでの問題点として、センサーの反応距離がある。相手に十分に近づかなければ反応しないので、どこまでなら正確に反応するのか、また反応距離を伸ばす方法や、相手が回転などしてセンサーの反応がなくなったときの動作についても研究し、実験を行なう必要がある。  側面のセンサーの一方を斜めに取り付けるのは、相手の判定装置を自機の斜め前方で発見するためであり、前面に取り付けたとしても、タイヤを横に取り付けてあるため、その場で90°回転してから追跡しなければならず、そのため時間のロスが大きくなってしまう。斜め前で発見できれば90°も曲がる必要はなく、すばやく追跡することができる。  相手を追跡するときは側面のセンサーを用いる。  赤外線センサーの主な役割は、相手の光源(赤外線LED)の発見、そして相手 の追跡に用いる。 <赤外線センサーについて>  従ってスイッチの配置の仕方や、センサーの分け方には十分注意が必要である。  しかしここで問題になるのは、2個以上のスイッチが同時に押されたときである。1と2が同時に押されたら、それは4になってしまい全く違う情報を得てしまう。 センサーABCA,BA,CB,CA,B,C 番号1234567  その方法とは、各センサーの先を何個かに分ける。そして1個のスイッチに1〜3つのセンサーを取り付けると、次に示すように最高7個のスイッチを作ることが できる。3つのセンサーをA,B,Cとする。  タッチセンサーは、自機が相手の判定装置を押すための動作で、欠かすことのできないセンサーである。センサーの使用は3つまでだが、ある方法により3個以上のタッチセンサーを作ることが可能になる。 <タッチセンサーについて>  また、超音波センサーは自機のロータリーエンコーダーによって生じる誤差を補正することにも用いるので、どれだけの誤差が出たら修正するかという条件設定にもこのセンサーの精度が大きく関係してくる。  このような問題点を解決するため十分に調査し話し合い、実験を繰り返し行なう必要がある。  そのため精度の問題が非常に大きく関わってくる。どれだけの精度が得られるか、またその誤差により、どのような誤作動をしてしまうと考えられるか。また超音波は、全マシン同じ音波であるので、どのようにして相手と自機の発した音波を区別すべきか。その対策法の一つとして筒を取り付けたとき、どのように区別できるのか。また一番の問題として、相手と近づきすぎると、センサーに組み込む回路などによりセンサーが反応しなくなる現象が起きる。このようなときの対策法など、まだまだ実際使用するとなると問題点が山ほど残っているセンサーである。  超音波センサーは、相手を発見するのに最も有効であり必要な機能であり、またその相手、又は壁などの障害物までの距離の測定を行うために取り付けるものである。 <超音波センサーについて> 駆動部について 自機の位置確認について 赤外線センサーについて タッチセンサーについて 超音波センサーについて <内容> ◎「5.システム基本機能」で述べた各機能について詳しく述べるとこにする。 システム基本機能の詳細 参考資料(dm9405/keikaku/kihonn.sam) それぞれのタイヤを独立駆動させ、様々な動きをPWM制御によって可能にする。 <駆動部> タイヤの回転数により競技場内での自機位置を把握する。しかし相手とぶつかる回数が多くなると、タイヤが滑ることがあるので、これだけでは正確に位置を把握できない。そのため超音波センサーも用いて自機位置の座標補正を行う。 <ロータリエンコーダ> 相手の光源より発せられる赤外線をキャッチして追跡を行うために用いる。 <赤外線センサ> 壁にぶつかったり相手と接触したときに、自機の何処に接触したかを調べる。その場所を詳しく知るため、3つのセンサーから7個のタッチセンサーを作る。その方法については、各機能の詳細「6」のところで述べる。 <タッチセンサ>  発振機より超音波を発してそれが受信機にはいってくるまでの時間を計る事により、障害物(相手、壁)との距離を測る。探索においてはこの超音波探索が主となる。発振機側には筒を取り付けて、通常よりも強い超音波を発するようにする。また、自機の行動パターンの一つに、相手とぶつかりながら後ろに回りこむという動作があり、それにより自機の位置をエンコーダのみでは正確に知ることができないため、競技内での自機位置の座標補正を超音波センサーを用いて行う。 <超音波センサ> ◎この班のMILSで扱う機能として、次に示す機能を用いる。  ここに書かかなければならない「機能」とは、「情報収集機能」や「自機 座標確認機能」といった「機能」であり、下に述べている機能ではない!(6についても同様) <注意> システムの基本機能 このような事を、設計を行う上での方針とする。  先輩の残した資料によく目を通し、一つ一つの作業に計画・研究を忘れないようにする。 開発のspeed upをはかる。 解できるようにする。  まず、基本的な動作を作り上げ、補助的な動作やその他のアイデアなどは随時付加するよう分 システムの計量化  ソフト的な部分での工夫・・・・・(ソフトウェア部)  駆動系の強化・・・・・・・・・・(メカニクス部)  センサーの確実な動作の実現・・・(エレクトロニクス部) 自分達のアイデアを最大限発揮できるようにする。 ◎本システムの設計はmirs競技においてシステムの目的を達成するために、メカニクス・エレクトロニクス・ソフトウェアの 各パートごとで、綿密な調査・研究を行うこと、また、総合的なシステムとしての円滑な動作を目指すことを基本方針とし、以下の設計方針に基づいて行う。 システム設計方針 back です //----------> document.write(now.getHours(),"時",now.getMinutes(),"分"); document.write(now.getMonth()+1,"月",now.getDate(),"日"); document.write("19",now.getYear(),"年"); now=newDate(); document.write('こんばんは'); else document.write('こんにちは'); elseif((11<=h)&&(h<=17)) document.write('おはようございます'); if((5<=h)&&(h<=10)) h=now.getHours(); now=newDate(); document.write("LastUpdate:",document.lastModified); document.write(atime.getHours(),"時",atime.getMinutes(),"分にアクセスしました"); document.write(atime.getMonth()+1,"月",atime.getDate(),"日"); document.write("あなたは、19",atime.getYear(),"年"); varatime=newDate(); } tmRn=true; tmID=setTimeout("displaytime()",1000); document.digitalclock.jstime.value=tm; tm+=((s<10)?":":":")+s; tm+=((m<10)?":":":")+m; vartm=""+h; vars=now.getSeconds(); varm=now.getMinutes(); varh=now.getHours(); varnow=newDate(); functiondisplaytime(){ } displaytime(); getDay() stopclock(); functionstartclock(){ } tmRn=false; clearTimeout(tmID); if(tmRn) functionstopclock(){ } document.digitalclock.jsdate.value=dt; vardt="19"+day.getYear()+"."+(day.getMonth()+1)+"."+day.getDate(); varday=newDate(); functiongetDay(){ vartmRn=false;