2018a/Member

課題3

2018a-mission3.png

基本ルール

基本得点の計算方法

技術点の計算方法

ロボット

ロボットの構造

yoko.jpg
hidari.jpg

横側から

ロボットの工夫した点

プログラム

戦略

Y側の2段目の空き缶をハサミでたたき落とし、X側の2段目の空き缶をY側に運ぶことで、確実に6点を取りに行こうとした。

マスター側のプログラム

#define CONN 1   // スレーブの接続番号
#define SIGNALON 11   // ハサミで持ち上げるためのメッセージ
#define SIGNALOFF 12  // 缶を落とすためのメッセージ
#define llt OnFwd(OUT_A,50); OnRev(OUT_C,30); Wait(1);//大きく左に回る
#define lrt OnRev(OUT_A,30); OnFwd(OUT_C,50);  Wait(1);//大きく右に回る
#define ternleft  OnFwd(OUT_A,50); OnRev(OUT_C,10);//左に回る
#define ternright  OnRev(OUT_A,10); OnFwd(OUT_C,50);//右に回る
#define go OnFwd(OUT_A,50); OnFwd(OUT_C,50);//直進する
#define back OnRev(OUT_A,50); OnRev(OUT_C,50);//後退する
#define trase_R  {if(SENSOR_2<36){lrt;  n++;} else if(SENSOR_2<50) {go; n=0;} else {llt;  n=0;}} 
#define trase_L  {if(SENSOR_2<36){llt;  n++;} else if(SENSOR_2<50) {go; n=0;} else {lrt;  n=0;}} 
#define open RotateMotor(OUT_B,25,80); Off(OUT_B);Wait(1000);
#define close RotateMotor(OUT_B,25,-80); Off(OUT_B);Wait(1000);
#define UP RotateMotor(OUT_C,40,90); Off(OUT_C); Wait(1000);
#define DOWN RotateMotor(OUT_C,20,-100);Off(OUT_C); Wait(1000);
  task main()
{ 
 SetSensorLowspeed(S1);
 SetSensorLight(S2);
 int n=0;
 while(n<=100)
 {                                   // H
   trase_R;
 }
 Off(OUT_AC); 
 Wait(1000);
 OnFwdSync(OUT_AC, 50, 0);
 Wait(500);
 Off(OUT_AC);
 n=0;
 while(n<=100)
 {                                   // s2
   trase_R;
 }
 Off(OUT_AC); 
 Wait(1000);
 OnFwd(OUT_AC,50);                                 //線をまたぐ
 Wait(500);
 
 n=0;
 while(n<=90)
 {
   trase_L                                               //L字路で止まる
 }
 Off(OUT_AC); 
 Wait(1000);
 
 RotateMotor(OUT_A, 60, 300); 
 Off(OUT_AC); 
 n=0;
 while(n<=150)
 {                                           //十字路で止まる
   trase_R
 }
 Off(OUT_AC); 
 Wait(1000);
 

 RotateMotor(OUT_C, 60, 300); 
 Off(OUT_AC); 
 n=0;
 while(n<=70)
 {                                            //Fで止まる
   trase_L
 }
 Off(OUT_AC); 
 close;
 SendRemoteNumber(CONN,MAILBOX1,SIGNALON);            //持ち上げる
 Off(OUT_ABC); 
 Wait(3000);
 OnRev(OUT_AC,50);                                   //バックで距離を取る
 Wait(1000);
 Off(OUT_AC); 
 RotateMotorEx(OUT_AC, 75, 1860, 100, true, false);  //振り返る
 Off(OUT_AC);
 
 n=0;
 while(n<=70)
 {                                            //Gで止まる
   trase_L
 }
 Off(OUT_AC); 
 RotateMotorEx(OUT_AC, 75, 400, -100, true, false );  
 Off(OUT_AC);
  
 SendRemoteNumber(CONN,MAILBOX1,SIGNALOFF);
 Off(OUT_ABC); 
 Wait(3000);
 open;
 Off(OUT_ABC);
 Wait(3000);
} 

スレイブ側のプログラム

#define CONN 1   // スレーブの接続番号
#define SIGNALON 11   // ハサミで持ち上げるためのメッセージ
#define SIGNALOFF 12  // 缶を落とすためのメッセージ
#define llt OnFwd(OUT_A,50); OnRev(OUT_C,30); Wait(1);//大きく左に回る
#define lrt OnRev(OUT_A,30); OnFwd(OUT_C,50);  Wait(1);//大きく右に回る
#define ternleft  OnFwd(OUT_A,50); OnRev(OUT_C,10);//左に回る
#define ternright  OnRev(OUT_A,10); OnFwd(OUT_C,50);//右に回る
#define go OnFwd(OUT_A,50); OnFwd(OUT_C,50);//直進する
#define back OnRev(OUT_A,50); OnRev(OUT_C,50);//後退する
#define trase_R  {if(SENSOR_2<35){lrt;  n++;} else if(SENSOR_2<50) {go; n=0;} else {llt;  n=0;}} 
#define trase_L  {if(SENSOR_2<35){llt;  n++;} else if(SENSOR_2<50) {go; n=0;} else {lrt;  n=0;}} 
#define open RotateMotor(OUT_B,25,85); Off(OUT_B);Wait(1000);
#define close RotateMotor(OUT_B,25,-85); Off(OUT_B);Wait(1000);
#define UP RotateMotor(OUT_C,40,90); Off(OUT_C); Wait(1000);
#define DOWN RotateMotor(OUT_C,20,-90);Off(OUT_C); Wait(1000);
task main ()
{
  int msg;  // 受け取った値を格納する変数
 while (true) {
    ReceiveRemoteNumber(MAILBOX1,true,msg);  // 
    if (msg == SIGNALON) {
      UP;
    }
    if (msg == SIGNALOFF) {
      DOWN;
    }
  }
}

プログラムの工夫した点

(前提)「Aタイプの空き缶を円Y内に、Bタイプの空き缶を円X内に運ぶ」というルールを(Aタイプの空き缶を円X内に、Bタイプの空き缶を円Y内に運ぶ)というように間違って解釈してしまった。

結果

下から2番目だった。つまり、とても悪かった。空き缶は1つも枠内に入らず、技術点もほとんどもらえなかった。

反省点

ロボットもプログラムも発想は悪くなかったと思う。その代わり、反省しなければならない点が3つある。 1、ルールを読み間違えないようにする。どれだけ頑張っても、頑張る方向が間違っていれば、何の意味もない。 2、全員でロボットを作り、全員でプログラムを作る。ロボットとプログラムを作る人を完全に分けてしまったせいで、担当の人がいないと、調整も満足にできないようなことになってしまう。 3、ロボットやプログラムの工夫点を他人に上手に説明する技術を得る。総合点は、技術点に大きく依存する。下から2番の順位だったのは、技術点がとても低かったことが、一番の理由だ。評価をするのはあくまで人間なので、うまく心をつかむ説明をすることで、技術点をもっと稼げたかもしれない。


添付ファイル: fileE9505BD3-A340-40BF-980F-86D22183A7D7.jpeg 110件 [詳細] file2018a-mission3.png 141件 [詳細] filehidari.jpg 186件 [詳細] filesita.jpg 173件 [詳細] filesyoumen.jpg 128件 [詳細] fileusiro.jpg 127件 [詳細] fileyoko.jpg 148件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-08-22 (水) 20:12:42