2019a/Member/Tomi/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2019a/Member]]
*課題2 [#m04645c9]
A地点を出発し、次のいずれかの経路を黒い線にそって動くロボ...
黒い線をトレースする。
交差点では1秒間停止し、丁字路では直角方向に進入する時のみ...
2コースあるうち私は下記のルートを担当した。
A地点から出発 → B → C(直進) → D(一時停止の後、直進) → E →...
#ref(2019a/Member/Tomi/Mission2/ロボティクス課題2コース.j...
*全体像 [#q41b5df1]
#ref(2019a/Member/Tomi/Mission2/20190717_210754s.jpg,50%)
#ref(2019a/Member/Tomi/Mission2/20190717_210809s.jpg,50%)
動きやすさを重視するために全体の軽量化を試みた。
-タイヤ
初め四輪で行なったが、振り幅が大きくなってしまい誤差が大...
#ref(2019a/Member/Tomi/Mission2/20190717_210905s.jpg,50%)
-アーム
ピンポン球を回収、シュートさせるために用いるアームは板を...
#ref(2019a/Member/Tomi/Mission2/20190717_210839s.jpg,50%)
*プログラミング [#m0c30a60]
担当したコースの道順上、線の右側をトレースすることにした。
-マクロ
右折
#define turn_right OnFwd(OUT_A);Off(OUT_C);
左折
#define turn_left OnFwd(OUT_C);Off(OUT_A);
左旋回
#define circling_left OnFwd(OUT_C);OnRev(OUT_A);
右旋回
#define circling_right OnRev(OUT_C);OnFwd(OUT_A);
直進
#define go_ahead OnFwd(OUT_AC);
-グローバル変数
int t;
-サブルーチン
sub follow_line1()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);ClearTimer(1);
while((FastTimer(0)<15)&&(FastTimer(1)<t)){
if(SENSOR_2<41){
circling_right;
} else if(SENSOR_2<43){
turn_right;ClearTimer(0);
} else if(SENSOR_2<48){
go_ahead;ClearTimer(0);
} else if(SENSOR_2<50){
turn_left;ClearTimer(0);
} else if(SENSOR_2<55){
circling_left;ClearTimer(0);
}
}
Off(OUT_AC);
PlaySound(SOUND_CLICK);
}
sub follow_line()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);ClearTimer(1);
while((FastTimer(0)<25)&&(FastTimer(1)<t)){
if(SENSOR_2<41){
circling_right;
} else if(SENSOR_2<43){
turn_right;ClearTimer(0);
} else if(SENSOR_2<48){
go_ahead;ClearTimer(0);
} else if(SENSOR_2<50){
turn_left;ClearTimer(0);
} else if(SENSOR_2<55){
circling_left;ClearTimer(0);
}
}
Off(OUT_AC);
}
sub cross_line()
{
go_ahead;Wait(30);Off(OUT_AC);
}
また光センサーによる認識の数値は
#ref(2019a/Member/Tomi/Mission2/ロボティクス入門課題2光セ...
とし、それぞれの値による動きは以下の通り。
41:右旋回
43:右折
48:直進
50:左折
55:左旋回
交差点の判断
黒線の左側の境界を使用する。光センターの感知する色が、真...
またwhileを使うことで、交差点まではトレースし続けることが...
Timer(0)で、グローバル変数tを使って、左旋回(真っ黒)が続い...
実際に光センサーを使って値を測定し、プログラムにしたもの...
-実際の動き
task main()
{
t=10000;follow_line();cross_line();//C
t=10000;follow_line();Wait(100);cross_line();//D
t=10000;follow_line();Wait(100);//E
circling_right;Wait(30);Off(OUT_AC);
t=10000;follow_line();Wait(100);//F
t=10000;follow_line();Wait(100);//G
circling_right;Wait(40);Off(OUT_AC);
t=10000;follow_line1();Wait(100);cross_line();//H
t=10000;follow_line1();Wait(100);cross_line();//I
t=10000;follow_line1();Wait(100);//J
t=10000;follow_line();Wait(100);//K
go_ahead;Wait(30);Off(OUT_AC);
t=300;follow_line();Wait(100);
OnRev(OUT_B);Wait(20);Off(OUT_B);
t=10000;follow_line();Wait(100);cross_line();//K
t=10000;follow_line();//M
OnFwd(OUT_B);Wait(20);Off(OUT_B);
}
*反省点 [#x989c1b4]
上の図のスタートからシュートまで一連の動きでできたのは5回...
次回はロボットにあったプログラミングは組みたい。
終了行:
[[2019a/Member]]
*課題2 [#m04645c9]
A地点を出発し、次のいずれかの経路を黒い線にそって動くロボ...
黒い線をトレースする。
交差点では1秒間停止し、丁字路では直角方向に進入する時のみ...
2コースあるうち私は下記のルートを担当した。
A地点から出発 → B → C(直進) → D(一時停止の後、直進) → E →...
#ref(2019a/Member/Tomi/Mission2/ロボティクス課題2コース.j...
*全体像 [#q41b5df1]
#ref(2019a/Member/Tomi/Mission2/20190717_210754s.jpg,50%)
#ref(2019a/Member/Tomi/Mission2/20190717_210809s.jpg,50%)
動きやすさを重視するために全体の軽量化を試みた。
-タイヤ
初め四輪で行なったが、振り幅が大きくなってしまい誤差が大...
#ref(2019a/Member/Tomi/Mission2/20190717_210905s.jpg,50%)
-アーム
ピンポン球を回収、シュートさせるために用いるアームは板を...
#ref(2019a/Member/Tomi/Mission2/20190717_210839s.jpg,50%)
*プログラミング [#m0c30a60]
担当したコースの道順上、線の右側をトレースすることにした。
-マクロ
右折
#define turn_right OnFwd(OUT_A);Off(OUT_C);
左折
#define turn_left OnFwd(OUT_C);Off(OUT_A);
左旋回
#define circling_left OnFwd(OUT_C);OnRev(OUT_A);
右旋回
#define circling_right OnRev(OUT_C);OnFwd(OUT_A);
直進
#define go_ahead OnFwd(OUT_AC);
-グローバル変数
int t;
-サブルーチン
sub follow_line1()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);ClearTimer(1);
while((FastTimer(0)<15)&&(FastTimer(1)<t)){
if(SENSOR_2<41){
circling_right;
} else if(SENSOR_2<43){
turn_right;ClearTimer(0);
} else if(SENSOR_2<48){
go_ahead;ClearTimer(0);
} else if(SENSOR_2<50){
turn_left;ClearTimer(0);
} else if(SENSOR_2<55){
circling_left;ClearTimer(0);
}
}
Off(OUT_AC);
PlaySound(SOUND_CLICK);
}
sub follow_line()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);ClearTimer(1);
while((FastTimer(0)<25)&&(FastTimer(1)<t)){
if(SENSOR_2<41){
circling_right;
} else if(SENSOR_2<43){
turn_right;ClearTimer(0);
} else if(SENSOR_2<48){
go_ahead;ClearTimer(0);
} else if(SENSOR_2<50){
turn_left;ClearTimer(0);
} else if(SENSOR_2<55){
circling_left;ClearTimer(0);
}
}
Off(OUT_AC);
}
sub cross_line()
{
go_ahead;Wait(30);Off(OUT_AC);
}
また光センサーによる認識の数値は
#ref(2019a/Member/Tomi/Mission2/ロボティクス入門課題2光セ...
とし、それぞれの値による動きは以下の通り。
41:右旋回
43:右折
48:直進
50:左折
55:左旋回
交差点の判断
黒線の左側の境界を使用する。光センターの感知する色が、真...
またwhileを使うことで、交差点まではトレースし続けることが...
Timer(0)で、グローバル変数tを使って、左旋回(真っ黒)が続い...
実際に光センサーを使って値を測定し、プログラムにしたもの...
-実際の動き
task main()
{
t=10000;follow_line();cross_line();//C
t=10000;follow_line();Wait(100);cross_line();//D
t=10000;follow_line();Wait(100);//E
circling_right;Wait(30);Off(OUT_AC);
t=10000;follow_line();Wait(100);//F
t=10000;follow_line();Wait(100);//G
circling_right;Wait(40);Off(OUT_AC);
t=10000;follow_line1();Wait(100);cross_line();//H
t=10000;follow_line1();Wait(100);cross_line();//I
t=10000;follow_line1();Wait(100);//J
t=10000;follow_line();Wait(100);//K
go_ahead;Wait(30);Off(OUT_AC);
t=300;follow_line();Wait(100);
OnRev(OUT_B);Wait(20);Off(OUT_B);
t=10000;follow_line();Wait(100);cross_line();//K
t=10000;follow_line();//M
OnFwd(OUT_B);Wait(20);Off(OUT_B);
}
*反省点 [#x989c1b4]
上の図のスタートからシュートまで一連の動きでできたのは5回...
次回はロボットにあったプログラミングは組みたい。
ページ名: