[[2006b/A6/課題2左]] #contents *相手のロボットに接触したら反転して進む [#w14247e9] **プログラム [#v813fbd3] #define light 44 // 閾値を定義 task main(){ SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1を光センサーに定義 SetSensor(SENSOR_2,SENSOR_TOUCH); //センサー2をタッチセンサーに定義 SetSensor(SENSOR_3,SENSOR_LIGHT); //センサー3を光センサーに定義 while(true) { if(SENSOR_1 < 40){ // 左側の光センサーが黒を感知したら左へ if(SENSOR_1 < light){ // 左側の光センサーが黒を感知したら左へ OnFwd(OUT_C); OnRev(OUT_A); } else if(SENSOR_3 < 40){ // 右側の光センサーが黒を感知したら右へ else if(SENSOR_3 < light){ // 右側の光センサーが黒を感知したら右へ OnFwd(OUT_A); OnRev(OUT_C); } else if(SENSOR_2 ==1){ // 衝突したら若干の後退の後、右の光センサーが黒を感知するまで右回転 OnRev(OUT_A+OUT_C) ; Wait(30); while(SENSOR_3 > 40){ while(SENSOR_3 > light){ OnFwd(OUT_A); } } else{ // 上記以外の時、前進 OnFwd(OUT_A+OUT_C); } } } **苦労した点 [#f0d45852] 特になし **工夫した点 [#f651b735] ぶつからないように若干バックする。~ 上手く黒線をまたぐまでの定義づけがスムーズな動きとなるように出来た。 **感想 [#obbd208e] はじめから考えがまとまっていたので、すぐに作ることが出来た。~ 実際に考えていた通りのものが出来たと思うので満足。 *コメント [#se9dc333] 何か意見がありましたらこちらにどうぞ #comment