本文へスキップ

未来の科学技術を子供たちに託す。 ジュニロボ <JRO>

〒619-0237 京都府相楽郡精華町光台8丁目

TEL. 070-5263-2200

jun@kinet-tv.ne.jp

入門コースタッチセンサRECRUIT

タッチセンサとは、どんなセンサ

タッチセンサは、ロボットの触角です。
通常は、センサはバネで引っ張られ「ビス」と「ナット」で電気的に導通状態にあります。(ON状態:0%)
ロボットが走行中、障害物に接触した時バネで引っ張られていたセンサが更に引っ張られて電気が流れなくなり
ます。(OFF状態:100%)
標準のTJ3Bロボットには、中央部に2個のセンサ、右と左に各1個づつ取り付けられています。
中央のタッチセンサは、2個共通になっています。( どちらか1方でも接触すると電気的にOFF状態になります。<100%>)

 下記写真は拡大できます。


   左側タッチセンサ部        中央タッチセンサ部        右側タッチセンサ部

 < 電気回路 >


    障害物に当たった時の状態               通常状態の回路状態




 

[ STEP 1 ]

 左タッチで赤色LEDを点灯


[ サンプルプログラム ]

 下記プログラムは拡大できます。
001 無限ループ( 始め )
002 左タッチセンサが、接触したか?<100%:接触>
003 接触したら、赤色LED1を点灯させる。
004 接触していなければ<0%:通常状態>
005 通常状態なので、赤色LED1を消灯させる。
006 if 文が終了<007へ>
007 無限ループ(終わり)001へ戻る。
【 動かしてみましょう 】

 どうでしたか?
 思い通りの動きをしましたか?

 このサンプルは、モーターを動かす命令が入っていないので止まった状態で、左側のタッチセンサを押
 して確認して下さい。赤色LED1が点灯したり、消灯したりすればOKです。

 うまく動作したら、右タッチセンサでも確認しましょう。この時は赤色LED2の点灯/消灯などで確認
 するといいでしょう。

 LEDが点灯するのと消灯するのが反対に動作しているお友達はいませんか?
 if 文で、判断する記号が反対の人が多くいます。

  CN3 > 50% : CN3が、50%よりも大きい場合( 障害物にあたっている場合 )
  CN3 < 50% : CN3が、50%よりも小さい場合( 障害物にあたっていない場合 )

 上記の様に、< 又は >を、不等号と読んでいますが、これを反対にプルグラムする人が多いので注意
 しましょう。



 

[ STEP 2]

 左タッチでロボットを後退させる。




[ サンプルプログラム ]

 下記プログラムは拡大できます。
001 無限ループ( 始め )
002 左タッチセンサが、接触したか?<100%:接触>
003 接触したら、赤色LED1を点灯させる。
004 接触したのでモーターを逆転させて後退させます。
005 上記命令を 0.5 秒間実行します。
006 接触していなければ<0%:通常状態>
007 通常状態なので、赤色LED1を消灯させる。
008 左右モーターを正転させて直進前進させます。
008 if 文が終了<010へ>
009 無限ループ(終わり)001へ戻る。
【 動かしてみましょう 】

 どうでしたか?
 思い通りの動きをしましたか?

 今回は左タッチセンサの動作確認はロボットを動かしますので、左側に壁など障害物がある所で確認し ましょう。
 前進中はLEDは消灯しており、壁にぶつかりロボットが後退を始めると赤色LEDが 0.5 秒間点灯すれば
 OKです。( 後退時間も0.5秒です。)

 スタートスイッチを押していきなりロボットがバックした人はいませんか?
 if 文で、判断する記号が反対の人が多くいます。

  CN3 > 50% : CN3が、50%よりも大きい場合( 障害物にあたっている場合 )
  CN3 < 50% : CN3が、50%よりも小さい場合( 障害物にあたっていない場合 )

 上記の様に、< 又は >を、不等号と読んでいますが、これを反対にプルグラムする人が多いので注意
 しましょう。




 

[ STEP 3]

 左右タッチで方向転換。




[ サンプルプログラム ]

 下記プログラムは拡大できます。
001 無限ループ( 始め )
左タッチセンサ判断
002 CN3(左タッチセンサ)が、OFF ( 100% )で
   あれば 003 の命令を実行。
003 赤色LED1を点灯させる。
004 接触したのでモーターを逆転させ後退させる。
005 上記命令を 0.5 秒間実行。
006 右へ旋回させる。
007 上記命令を 0.5 秒間実行。
008 赤色LED1を消灯させる。
009 CN3が、ON(通常)なので下記命令を実行。
010 直進させる。
011 if 文終了
右タッチセンサ判断
012 CN4(右タッチセンサ)がOFF ( 100% )で
   あれば 013 の命令を実行。
013 赤色LED3を点灯させる。
014 接触したのでモーターを逆転させ後退させる。
015 上記命令を 0.5 秒間実行。
016 左へ旋回させる。
017 上記命令を 0.5 秒間実行。
018 赤色LED3を消灯させる。
019 CN4が、ON(通常)なので下記命令を実行。
020 直進させる。
021 if 文終了
022 無限ループ(終わり)001へ戻る。
【 動かしてみましょう 】

 どうでしたか?
 思い通りの動きをしましたか?

 左タッチセンサが障害物等にタッチしたら、0.5 秒間バックして右旋回させて障害物を回避します。
 右タッチセンサが障害物等にタッチしたら、0.5 秒間バックして左旋回させて障害物を回避します。

 スタートスイッチを押していきなりロボットがバックした人はいませんか?
 if 文で、判断する記号が反対の人が多くいます。

  CN3又は CN4 > 50% : CN3が、50%よりも大きい場合( 障害物にあたっている場合 )
  CN3又は CN4 < 50% : CN3が、50%よりも小さい場合( 障害物にあたっていない場合 )

 上記の様に、< 又は >を、不等号と読んでいますが、これを反対にプルグラムする人が多いので注意
 しましょう。




 

[ STEP 4]

 中央タッチで後退しLED全点滅10回。



[ サンプルプログラム ]

 下記プログラムは拡大できます。
001 無限ループ( 始め )
中央タッチセンサ判断
002 CN5(中央タッチセンサ)が、ON ( 0% )で
   あれば 003 の命令を実行。
003 直進させる。(速度50%)
004 CN5 が、OFF ( 100% )衝突した。
005 接触したのでモーターを逆転させ後退させる。
006 上記命令を 0.5 秒間実行。
007 停止命令
008 LED10回点滅させるループカウンタに、
   10回設定する。
009-012
   赤LED1~3、緑LED、全点灯させる。
013 上記命令を0.3秒間実行させる。
014-017
   赤LED1~3、緑LED、全消灯させる。
018 上記命令を0.3秒間実行させる。
019 009-018までの命令を10回実施   
020 すべてのループから抜け出す。
021 if 文終了(実際は実行されない)
022 無限ループ(終わり)001へ戻る。
【 動かしてみましょう 】

 どうでしたか?
 思い通りの動きをしましたか?

 「for」文の使い方は、アクチュエーター編ですでに勉強しましたが復習してみました。
 「break」文は、今回初めて使ってみましたが、色々使い方があるので今回の様にプログラムを終了させ
 る機能もあります。

 <考えてください>
 1.020 行の「Break」がないとどんな動きになるでしょうか?
   プログラムは終了しない無限ループになっているので、
     直進ー>追突ー>後退ー>LED点滅ー>直進ー>追突・・・・・を繰り返す。
 2.「break」を「for」文の中に入れたらどうなるでしょうか?
   ロボットが後退して、LEDの点滅が1回実行されて、プログラムが終了してしまいます。


 お疲れ様でした。

 以上がタッチセンサをつかったプログラムの説明でした。

 実際の競技等では、障害物にぶつかってから回避行動をとるのではなく障害物にあたる前に回避する為の
 センサを搭載して対応するケースが多く見受けられます。
 当クラブでも、色々なセンサをつかって障害物にあたらずに走行させる車両型ロボットとプログラムを勉強
 していきます。




  

教室情報 ――――――

ロボカップ関連 ――――
  

バナースペース

けいはんな
   ジュニアロボットクラブ

〒619-0237
京都府相楽郡精華町光台8丁目

TEL : 070-5263-2200
FAX : 0774-98-1100
mail : jun@kinet-tv.ne.jp