2016a/Member/hareruya/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2016a/Member]]
#contents
*2016年課題3 [#ie6e0909]
課題2で作成したコースを用いてタイムレースを行う。
#ref(2016a/Member/hareruya/Mission2/IMG_7779.png,80%,コー...
**ルール [#b4f05d28]
紙コップを運ぶロボットを作り、最終的に黒線で囲まれた輪の...
詳しいルールはこちら⇒([[課題3:http://yakushi.shinshu-u.ac...
*プログラム [#e99cbb4b]
**定義 [#j4b1bc1a]
#define TURN_TIME 5
#define BLACK 42
#define WHITE 50
#define RIGHT_H OnFwd(OUT_A); OnRev(OUT_C); Wait(TURN_TI...
#define RIGHT_L OnFwd(OUT_A); Off(OUT_C); Wait(TURN_TIME...
#define LEFT_H OnFwd(OUT_C); OnRev(OUT_A); Wait(TURN_TIM...
#define LEFT_L OnFwd(OUT_C); Off(OUT_A); Wait(TURN_TIME)...
#define GO_FORWARD(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC);
#define STEP 1
#define ARM OnFwd(OUT_B);Wait(TURN_TIME);//アーム回転
**ライントレースのサブルーチン [#b2a4010a]
交差点で止まった時に音が鳴るようにしました。交差点の判別...
sub LINE()
{
ClearTimer(0);//タイマの初期化
while(FastTimer(0) <= 50) //括弧の中はタイマーが一定の...
{
if (SENSOR_2 <= BLACK) {//括弧内が満たされれば次の...
RIGHT_H;
}
else
if (SENSOR_2 < BLACK){
RIGHT_L;
} else if (SENSOR_2 < WHITE) {
LEFT_L;
ClearTimer(0);
} else if (SENSOR_2 >= WHITE) {
LEFT_H;
ClearTimer(0);
} else {
OnFwd(OUT_AC);
ClearTimer(0);
}
Wait(STEP);
}
Off(OUT_AC);
ClearTimer(0);
PlaySound(SOUND_UP);
Wait(100);//1秒間音が鳴る
}
**右折のサブルーチン [#h2f74bda]
右に1秒曲がる
sub CROSS_RIGHT()
{
while(FastTimer(0) < 100) {
RIGHT_L;
}
ClearTimer(0);
}
**左折のサブルーチン [#p6b1161b]
左に1.6秒間曲がる
sub CROSS_LEFT()
{
while(FastTimer(0) < 160) {
LEFT_L;
}
ClearTimer(0);
}
**メインプログラム [#w287f8b1]
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
GO_FORWARD(120);
LINE();
WHOLE();
LINE();
CROSS_LEFT();
LINE();
CROSS_LEFT();
GO_FORWARD(80);
LEFT_(50);
GO_FORWARD(90);
LINE();
CROSS_RIGHT();
LINE();
CROSS_RIGHT();
LINE();
ARM(45);
}
*結果と反省点 [#r04452e7]
紙コップを上げるプログラムが未完成のまま終わった。チーム...
終了行:
[[2016a/Member]]
#contents
*2016年課題3 [#ie6e0909]
課題2で作成したコースを用いてタイムレースを行う。
#ref(2016a/Member/hareruya/Mission2/IMG_7779.png,80%,コー...
**ルール [#b4f05d28]
紙コップを運ぶロボットを作り、最終的に黒線で囲まれた輪の...
詳しいルールはこちら⇒([[課題3:http://yakushi.shinshu-u.ac...
*プログラム [#e99cbb4b]
**定義 [#j4b1bc1a]
#define TURN_TIME 5
#define BLACK 42
#define WHITE 50
#define RIGHT_H OnFwd(OUT_A); OnRev(OUT_C); Wait(TURN_TI...
#define RIGHT_L OnFwd(OUT_A); Off(OUT_C); Wait(TURN_TIME...
#define LEFT_H OnFwd(OUT_C); OnRev(OUT_A); Wait(TURN_TIM...
#define LEFT_L OnFwd(OUT_C); Off(OUT_A); Wait(TURN_TIME)...
#define GO_FORWARD(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC);
#define STEP 1
#define ARM OnFwd(OUT_B);Wait(TURN_TIME);//アーム回転
**ライントレースのサブルーチン [#b2a4010a]
交差点で止まった時に音が鳴るようにしました。交差点の判別...
sub LINE()
{
ClearTimer(0);//タイマの初期化
while(FastTimer(0) <= 50) //括弧の中はタイマーが一定の...
{
if (SENSOR_2 <= BLACK) {//括弧内が満たされれば次の...
RIGHT_H;
}
else
if (SENSOR_2 < BLACK){
RIGHT_L;
} else if (SENSOR_2 < WHITE) {
LEFT_L;
ClearTimer(0);
} else if (SENSOR_2 >= WHITE) {
LEFT_H;
ClearTimer(0);
} else {
OnFwd(OUT_AC);
ClearTimer(0);
}
Wait(STEP);
}
Off(OUT_AC);
ClearTimer(0);
PlaySound(SOUND_UP);
Wait(100);//1秒間音が鳴る
}
**右折のサブルーチン [#h2f74bda]
右に1秒曲がる
sub CROSS_RIGHT()
{
while(FastTimer(0) < 100) {
RIGHT_L;
}
ClearTimer(0);
}
**左折のサブルーチン [#p6b1161b]
左に1.6秒間曲がる
sub CROSS_LEFT()
{
while(FastTimer(0) < 160) {
LEFT_L;
}
ClearTimer(0);
}
**メインプログラム [#w287f8b1]
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
GO_FORWARD(120);
LINE();
WHOLE();
LINE();
CROSS_LEFT();
LINE();
CROSS_LEFT();
GO_FORWARD(80);
LEFT_(50);
GO_FORWARD(90);
LINE();
CROSS_RIGHT();
LINE();
CROSS_RIGHT();
LINE();
ARM(45);
}
*結果と反省点 [#r04452e7]
紙コップを上げるプログラムが未完成のまま終わった。チーム...
ページ名: