2019b/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*課題2 [#c27393d7]
下の図のようなコースを各チームで作成し、「ミッション」を遂行するためのロボットを作成せよ。
** コース [#cc5fc1d0]
黒線の幅は20mmでなるべく均等な濃さにすること
(図の右半分は、文字や数字が上下逆さまになっています)。
#ref(2019b/Mission2/2019b-mission2.png,80%,課題2のコース)
** ミッション [#d3728238]
A地点を出発し、次のいずれかの経路を黒い線にそって動くロボットを作成する (他のメンバーとは別の経路になるようにする)。
*** 1人目 [#bb641b70]
+ A地点から出発
+ B
+ C (直進)
+ D (一時停止の後、直進)
+ E, F 通過
+ G (一時停止の後、左折)
+ H (一時停止の後、左折)
+ I (ボール or キューボイドをつかんでUターン)
+ H (直進)
+ J (一時停止)
+ A地点に入る(ゴール)
*** 2人目 [#m8644fff]
+ A地点から出発
+ J
+ H (直進)
+ I (ボール or キューボイドをつかんでUターン)
+ H (右折)
+ G (一時停止の後、直進)
+ D (右折)
+ E, F 通過
+ G (一時停止の後、直進)
+ C (一時停止の後、左折)
+ B (一時停止)
+ A地点に入る(ゴール)
もう一つのチームは、A', B', ... とダッシュのついた交差点のコースを使うこと。
また、3名のチームの場合は、そのうちの1名は次のコースを選ぶこと。
*** 3人目 [#cfaccbc3]
+ A地点から出発
+ J
+ H (直進)
+ I (ボール or キューボイドをつかんでそのまま直進)
+ I' (ボール or キューボイドを離してそのまま直進)
+ H' (右折)
+ G' (一時停止の後、直進)
+ D' (右折)
+ E', F' 通過
+ G' (一時停止の後、直進)
+ C' (一時停止の後、左折)
+ B' (一時停止)
+ A'地点に入る(ゴール)
交差点では1秒間停止し、丁字路では直角方向に進入する時のみ一時停止すること。
** 発表会、レポート締切りなど [#g7eb3279]
- 次の2つの関数を作り、メールで提出 (下の例を参考に、12月12日締切り)
-- ライン・トレースをして交差点で止まるという関数 (or サブルーチン) を follow_line()
という名前で作る。
-- 直進して、前方のボール(or キューボイド)をつかみ、Uターンして戻ってくるという
関数を fetch_ball() または fetch_cuboid() という名前で作る。
- 12月20日の授業終了前までにロボット本体とプログラムを完成させる
- 12月20日の授業で発表会
- レポート締切りは2020年1月10日 (木)
メールでの提出するプログラムは、添付ファイルではなくてメールの本文に
コピーすること。
また、次のようにmain関数も含めること。
(EV3のグループはpythonで)
//
// ボールを掴んで、Uターンし、次の交差点までライントレースするプログラム
// 学籍番号 氏名
... (定数やマクロの意義など)
void follow_line(long tmin=0, long tmax=10000)
{
// long tmin: スタートからの時間がtmin以下では、交差点を無視してライントレースする
// long tmax: スタートからの時間がtmax経てば、交差点に達しなくても停止
...
}
void fetch_ball(long tmax=3000)
{
// long tmax: スタートからの時間がtmax経てば、ボールをつかめなても戻ってくる
...
}
task main()
{
...
fetch_ball(3000); // まずボールをつかんでUターンしてくる
line_follow(0, 15000); // その後次の交差点までライントレース
}
2019年12月6日からのこのページのだいたいの訪問者数:
本日&counter(today);
昨日&counter(yesterday);
合計&counter(total);
終了行:
*課題2 [#c27393d7]
下の図のようなコースを各チームで作成し、「ミッション」を遂行するためのロボットを作成せよ。
** コース [#cc5fc1d0]
黒線の幅は20mmでなるべく均等な濃さにすること
(図の右半分は、文字や数字が上下逆さまになっています)。
#ref(2019b/Mission2/2019b-mission2.png,80%,課題2のコース)
** ミッション [#d3728238]
A地点を出発し、次のいずれかの経路を黒い線にそって動くロボットを作成する (他のメンバーとは別の経路になるようにする)。
*** 1人目 [#bb641b70]
+ A地点から出発
+ B
+ C (直進)
+ D (一時停止の後、直進)
+ E, F 通過
+ G (一時停止の後、左折)
+ H (一時停止の後、左折)
+ I (ボール or キューボイドをつかんでUターン)
+ H (直進)
+ J (一時停止)
+ A地点に入る(ゴール)
*** 2人目 [#m8644fff]
+ A地点から出発
+ J
+ H (直進)
+ I (ボール or キューボイドをつかんでUターン)
+ H (右折)
+ G (一時停止の後、直進)
+ D (右折)
+ E, F 通過
+ G (一時停止の後、直進)
+ C (一時停止の後、左折)
+ B (一時停止)
+ A地点に入る(ゴール)
もう一つのチームは、A', B', ... とダッシュのついた交差点のコースを使うこと。
また、3名のチームの場合は、そのうちの1名は次のコースを選ぶこと。
*** 3人目 [#cfaccbc3]
+ A地点から出発
+ J
+ H (直進)
+ I (ボール or キューボイドをつかんでそのまま直進)
+ I' (ボール or キューボイドを離してそのまま直進)
+ H' (右折)
+ G' (一時停止の後、直進)
+ D' (右折)
+ E', F' 通過
+ G' (一時停止の後、直進)
+ C' (一時停止の後、左折)
+ B' (一時停止)
+ A'地点に入る(ゴール)
交差点では1秒間停止し、丁字路では直角方向に進入する時のみ一時停止すること。
** 発表会、レポート締切りなど [#g7eb3279]
- 次の2つの関数を作り、メールで提出 (下の例を参考に、12月12日締切り)
-- ライン・トレースをして交差点で止まるという関数 (or サブルーチン) を follow_line()
という名前で作る。
-- 直進して、前方のボール(or キューボイド)をつかみ、Uターンして戻ってくるという
関数を fetch_ball() または fetch_cuboid() という名前で作る。
- 12月20日の授業終了前までにロボット本体とプログラムを完成させる
- 12月20日の授業で発表会
- レポート締切りは2020年1月10日 (木)
メールでの提出するプログラムは、添付ファイルではなくてメールの本文に
コピーすること。
また、次のようにmain関数も含めること。
(EV3のグループはpythonで)
//
// ボールを掴んで、Uターンし、次の交差点までライントレースするプログラム
// 学籍番号 氏名
... (定数やマクロの意義など)
void follow_line(long tmin=0, long tmax=10000)
{
// long tmin: スタートからの時間がtmin以下では、交差点を無視してライントレースする
// long tmax: スタートからの時間がtmax経てば、交差点に達しなくても停止
...
}
void fetch_ball(long tmax=3000)
{
// long tmax: スタートからの時間がtmax経てば、ボールをつかめなても戻ってくる
...
}
task main()
{
...
fetch_ball(3000); // まずボールをつかんでUターンしてくる
line_follow(0, 15000); // その後次の交差点までライントレース
}
2019年12月6日からのこのページのだいたいの訪問者数:
本日&counter(today);
昨日&counter(yesterday);
合計&counter(total);
ページ名: