2015a/Member/tadahiko/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*懐中電灯にボールをぶつけるロボット [#pc8c9a89]
#contents
*課題内容 [#hefb2eaf]
今回の内容は「懐中電灯にボールをぶつけるロボット」。
懐中電灯を半径1メートル以内に設置し、 Mindstorms Robotics...
なお、ロボット本体が懐中電灯に接触しない限りどこからピン...
**難点 [#n1b6674a]
+ボールを1メートルまっすぐに射出すること
+正確に懐中電灯の方向を察知すること
+
*ロボットの説明 [#t2bcd166]
今回は課題2のロボットに光センサーを上につけ、また、難点1...
本体などの詳しい説明はこちら→http://yakushi.shinshu-u.ac....
**光センサー [#q10d791e]
#ref(./センサー.jpg,150%);
***ポイント [#f6f7f24f]
-懐中電灯に反応させるためにRISの上に設置。
-感度を上げるために周りをブロックで囲う。
**誘導ブロック [#odaa183d]
#ref(./誘導ブロック.jpg,150%);
***ポイント [#v03f0fb3]
-ボールをまっすぐに送るために設置。
**完成 [#i5bc0bcb]
#ref(./全体.jpg,150%);
*プログラムの説明 [#i5c59398]
**実際のプログラム [#l29f0246]
#define short_break Off(OUT_AC);Wait(100);
#define clip_on OnRev(OUT_B);Wait(10);Off(OUT_B);
task main ()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0); //0番目のタイマーをリセット
int light_max; //整数型の変数を宣言
light_max = 0; //仮の最大値
int time_max; //整数型の変数を宣言
time_max = 0; //価値の最大値を与える時間
int run_time; //整数型の変数を宣言
run_time = 280; //1周するのにかかる時間
OnFwd(OUT_A);OnRev(OUT_C); //反時計回りに回転
while(FastTimer(0)<run_time) //1回転するまで
{
if(SENSOR_2>light_max) //light_maxの値を超えたら
{
light_max = SENSOR_2; //light_maxを塗り替える
}
}
short_break; //1週したら1秒待機
OnFwd(OUT_A);OnRev(OUT_C); //反時計回りに回転
until(SENSOR_2==light_max);
short_break;
OnFwd(OUT_AC);Wait(50);clip_on;Wait(10); //シュート
Off(OUT_AC);
}
**使用した関数 [#n5f55ad3]
?#define short_break Off(OUT_AC);Wait(100);
?#define clip_on OnRev(OUT_B);Wait(10);Off(OUT_B);
***解説 [#p451051d]
?1秒停止
?シュートの動作
**定義づけ [#r8b007c2]
task main ()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
?ClearTimer(0); //0番目のタイマーをリセット
int light_max; //整数型の変数を宣言
?light_max = 0; //仮の最大値
int time_max; //整数型の変数を宣言
?time_max = 0; //価値の最大値を与える時間
int run_time; //整数型の変数を宣言
run_time = 280; //1周するのにかかる時間
***解説 [#xf9c63b0]
?タイマーを起動し、懐中電灯までの経過時刻を測る。
?懐中電灯の値を上書きするため最初の値は0と定義。
?懐中電灯までの経過時刻を記憶するため最初の値は0と定義。
**動き [#j8bf9946]
OnFwd(OUT_A);OnRev(OUT_C); //反時計回りに回転
?while(FastTimer(0)<run_time) //1回転するまで
{
if(SENSOR_2>light_max) //light_maxの値を超えたら
{
?light_max = SENSOR_2; //light_maxを塗り替える
}
}
short_break; //1週したら1秒待機
OnFwd(OUT_A);OnRev(OUT_C); //反時計回りに回転
?until(SENSOR_2==light_max);
short_break;
?OnFwd(OUT_AC);Wait(50);clip_on;Wait(10); //シュート
Off(OUT_AC);
}
***解説 [#v656a578]
?360度反時計回りに回転し全方位の値を記憶する。
?light_maxよりも大きな値を見つけたらその値を記憶する。
?1回転後、記憶した値の最大値の方向を向く。
?懐中電灯に向かってシュート。
*動画 [#x4690404]
https://www.youtube.com/watch?v=sf-SZk2snu4
*感想 [#k8b83cb7]
今回の課題では、少ない時間の中でもミッションをこなすこと...
先生のヒントなど、骨組みは教えてくださったのでさほど難し...
今までは定義づけを#defineでやっていたものの、int関数も問...
今までの課題で学んだことを生かしてロボコンをにて成功を収...
終了行:
*懐中電灯にボールをぶつけるロボット [#pc8c9a89]
#contents
*課題内容 [#hefb2eaf]
今回の内容は「懐中電灯にボールをぶつけるロボット」。
懐中電灯を半径1メートル以内に設置し、 Mindstorms Robotics...
なお、ロボット本体が懐中電灯に接触しない限りどこからピン...
**難点 [#n1b6674a]
+ボールを1メートルまっすぐに射出すること
+正確に懐中電灯の方向を察知すること
+
*ロボットの説明 [#t2bcd166]
今回は課題2のロボットに光センサーを上につけ、また、難点1...
本体などの詳しい説明はこちら→http://yakushi.shinshu-u.ac....
**光センサー [#q10d791e]
#ref(./センサー.jpg,150%);
***ポイント [#f6f7f24f]
-懐中電灯に反応させるためにRISの上に設置。
-感度を上げるために周りをブロックで囲う。
**誘導ブロック [#odaa183d]
#ref(./誘導ブロック.jpg,150%);
***ポイント [#v03f0fb3]
-ボールをまっすぐに送るために設置。
**完成 [#i5bc0bcb]
#ref(./全体.jpg,150%);
*プログラムの説明 [#i5c59398]
**実際のプログラム [#l29f0246]
#define short_break Off(OUT_AC);Wait(100);
#define clip_on OnRev(OUT_B);Wait(10);Off(OUT_B);
task main ()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0); //0番目のタイマーをリセット
int light_max; //整数型の変数を宣言
light_max = 0; //仮の最大値
int time_max; //整数型の変数を宣言
time_max = 0; //価値の最大値を与える時間
int run_time; //整数型の変数を宣言
run_time = 280; //1周するのにかかる時間
OnFwd(OUT_A);OnRev(OUT_C); //反時計回りに回転
while(FastTimer(0)<run_time) //1回転するまで
{
if(SENSOR_2>light_max) //light_maxの値を超えたら
{
light_max = SENSOR_2; //light_maxを塗り替える
}
}
short_break; //1週したら1秒待機
OnFwd(OUT_A);OnRev(OUT_C); //反時計回りに回転
until(SENSOR_2==light_max);
short_break;
OnFwd(OUT_AC);Wait(50);clip_on;Wait(10); //シュート
Off(OUT_AC);
}
**使用した関数 [#n5f55ad3]
?#define short_break Off(OUT_AC);Wait(100);
?#define clip_on OnRev(OUT_B);Wait(10);Off(OUT_B);
***解説 [#p451051d]
?1秒停止
?シュートの動作
**定義づけ [#r8b007c2]
task main ()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
?ClearTimer(0); //0番目のタイマーをリセット
int light_max; //整数型の変数を宣言
?light_max = 0; //仮の最大値
int time_max; //整数型の変数を宣言
?time_max = 0; //価値の最大値を与える時間
int run_time; //整数型の変数を宣言
run_time = 280; //1周するのにかかる時間
***解説 [#xf9c63b0]
?タイマーを起動し、懐中電灯までの経過時刻を測る。
?懐中電灯の値を上書きするため最初の値は0と定義。
?懐中電灯までの経過時刻を記憶するため最初の値は0と定義。
**動き [#j8bf9946]
OnFwd(OUT_A);OnRev(OUT_C); //反時計回りに回転
?while(FastTimer(0)<run_time) //1回転するまで
{
if(SENSOR_2>light_max) //light_maxの値を超えたら
{
?light_max = SENSOR_2; //light_maxを塗り替える
}
}
short_break; //1週したら1秒待機
OnFwd(OUT_A);OnRev(OUT_C); //反時計回りに回転
?until(SENSOR_2==light_max);
short_break;
?OnFwd(OUT_AC);Wait(50);clip_on;Wait(10); //シュート
Off(OUT_AC);
}
***解説 [#v656a578]
?360度反時計回りに回転し全方位の値を記憶する。
?light_maxよりも大きな値を見つけたらその値を記憶する。
?1回転後、記憶した値の最大値の方向を向く。
?懐中電灯に向かってシュート。
*動画 [#x4690404]
https://www.youtube.com/watch?v=sf-SZk2snu4
*感想 [#k8b83cb7]
今回の課題では、少ない時間の中でもミッションをこなすこと...
先生のヒントなど、骨組みは教えてくださったのでさほど難し...
今までは定義づけを#defineでやっていたものの、int関数も問...
今までの課題で学んだことを生かしてロボコンをにて成功を収...
ページ名: