2012b/Member

目次

メンバー

課題内容

ボールを運びつつ、ライントレースをするロボットを作る。

ルール

この競技のポイント

ロボット

全体像

全体像

各部

プログラム

 #define Treshold 35                 
 #define Speed_H 50    
 #define Speed_L 40  
 #define OnRL(speedR,speedL) OnFwd(OUT_B,speedR);OnFwd(OUT_C,speedL);
 #define go_forward OnRL(Speed_H, Speed_H);    
 #define turn_left1 OnRL(Speed_L, -Speed_L);    
 #define turn_left0 OnRL(Speed_L, 0);       
 #define turn_right0 OnRL(0, Speed_L);       
 #define turn_right1 OnRL(-Speed_L, Speed_L);   
 #define Step 1
 #define nMAX 800                 
 #define short_break Off(OUT_BC); Wait(300);
 #define Cross_Time 300              
 #define cross_line OnRL(Speed_L,Speed_L);Wait(Cross_Time);short_break;
   
 task main ()
 {
 SetSensorLight(S2);
 int nOnline=0;
 long t0=CurrentTick();
 OnFwd(OUT_BC,35);Wait(600);Off(OUT_BC);   
 OnFwd(OUT_A,30);Wait(780);Off(OUT_A);    
 OnFwd(OUT_BC,35);Wait(300);Off(OUT_BC);   
 while (true){
 while (nOnline < nMAX) {
 if (SENSOR_2 < Threshold){
 turn_right1;
 nOnline++;
 }else{
 if (SENSOR_2 < Threshold-2){
 turn_right0;
 }else if (SENSOR_2 < Threshold+3){
 go_forward;      
 }else if (SENSOR_2 < Threshold+7){
 turn_left0;	 
 }else{  
 turn_left1;	     
 }
 nOnline=0;
 } 
 }
 short_break;
 turn_left1; Wait(200);
 cross_line;
 nOnline=0;
 if(CurrentTick() - t0 >= 50000){OnFwd(OUT_A,-100);Wait(600); 
 }
 }}

問題点

感想

黒い線の上を走るという一見単純そうな行動だが、それをロボットにさせるのには多大な苦労が必要だった。

また、せっかく組んだプログラムも周りの環境の違いや部品と部品の間の微妙な遊びで全く意図せぬ動きをしてしまうのが憎らしかった。


添付ファイル: fileロボット全体像.jpg 335件 [詳細] fileライトセンサー.jpg 316件 [詳細] fileアーム部分.jpg 383件 [詳細] file課題のコース.jpg 255件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-12-21 (金) 02:17:19