2016a/Member/ryo/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2016a/Member]]
目次
#contents
*課題 [#wb6aa14b]
今回の課題は、下図を制作し、経路を黒い線にそって動くロ...
#ref(2016a/Member/ryo/Mission2/2016a-mission2.png,100%)
私は、A地点 → P直進 → Q直進 → Q直進 → R左折 → B地点、を...
[[(2016年前期/課題2より):http://yakushi.shinshu-u.ac.jp...
*ロボットの説明 [#l52bd66c]
これが、機体の全体像。
#ref(2016a/Member/ryo/Mission2/image1 (6).JPG,100%)
前回のものより、小回りがききやすいよう機体を小さくした。~
光センサーをタイヤと近くすることで、センサーの左右のふ...
#ref(2016a/Member/ryo/Mission2/image3 (1).JPG,100%)
前輪を取り、代わりに球面を帯びたパーツをつけ、滑らかに...
*プログラムの説明 [#jfd21752]
**基本の定義 [#u5aef079]
以下がサブルーチンを作る上での基本的な定義である。
#define BLACK 42 //これ以下は黒
#define WHITE 50 //これ以上は白
#define RIGHT_S OnFwd(OUT_A);OnRev(OUT_C); //右旋回
#define RIGHT_K OnFwd(OUT_A);Off(OUT_C); //右回転
#define LEFT_S OnFwd(OUT_C);OnRev(OUT_A); //左旋回
#define LEFT_K OnFwd(OUT_C);Off(OUT_A); //左回転
#define go_fwd(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC); //...
#define STEP 1
**サブルーチン [#o741bbc7]
黒の線上をたどっていくプログラム。交差点で一時停止し、...
交差点を判断するためにはタイマーを使い、黒が0.5秒以上続...
また、線の左側をたどるようになっており、黒では右に、白...
その他では直進する。
sub line_trace()
{
ClearTimer(0);
while(FastTimer(0) < 50) {
if (SENSOR_2 < BLACK) {
RIGHT_S;
} else if (SENSOR_2 < BLACK ) {
RIGHT_K;
} else if (SENSOR_2 > WHITE ) {
LEFT_S;
ClearTimer(0);
} else if (SENSOR_2 >= WHITE ) {
LEFT_K;
ClearTimer(0);
} else {
OnFwd(OUT_AC);
ClearTimer(0);
}
Wait(STEP);
}
Off(OUT_AC);
ClearTimer(0);
PlaySound(SOUND_UP);
Wait(100);
}
~~
上のプログラムで黒の時、右回転するため、交差点で右に傾...
機体を正常な傾きに戻すことと、交差点を通過することを目...
sub turn_left_i()
{
while (FastTimer(0) < 142) {
LEFT_K;
}
ClearTimer(0);
}
~~
上のプログラムと使用用途は一緒だが、最後の直角を左回転...
sub turn_left_ii()
{
while (FastTimer(0) < 252) {
LEFT_S;
}
ClearTimer(0);
}
**メインプログラム [#e5c43893]
task main()
{
SetSensor (SENSOR_2, SENSOR_LIGHT);
go_fwd(110);
line_trace(); // AからPへ
turn_left_i(); // Pを通過
line_trace(); // PからQへ
turn_left_i(); // Qを通過
line_trace(); // 一周回ってQへ
turn_left_i(); // Qを通過
line_trace(); // QからRへ
turn_left_ii(); // Rを左折
go_fwd(110);
line_trace();
}
*反省・感想 [#be89c822]
ゴールにたどりつくこともあったが、たどりつかないことも...
交差点で止まった後の、通過するところでうまくいかないこ...
もっと時間調節を慎重にやらなければいけなかったと思う。~
また、サブルーチンやタイマーに対する理解が遅かったため...
達成しきれなかった要因だったと思う。サブルーチンを使う...
書くことができることがわかった。次回の課題では、今回の...
課題を達成できるよう頑張りたい。
終了行:
[[2016a/Member]]
目次
#contents
*課題 [#wb6aa14b]
今回の課題は、下図を制作し、経路を黒い線にそって動くロ...
#ref(2016a/Member/ryo/Mission2/2016a-mission2.png,100%)
私は、A地点 → P直進 → Q直進 → Q直進 → R左折 → B地点、を...
[[(2016年前期/課題2より):http://yakushi.shinshu-u.ac.jp...
*ロボットの説明 [#l52bd66c]
これが、機体の全体像。
#ref(2016a/Member/ryo/Mission2/image1 (6).JPG,100%)
前回のものより、小回りがききやすいよう機体を小さくした。~
光センサーをタイヤと近くすることで、センサーの左右のふ...
#ref(2016a/Member/ryo/Mission2/image3 (1).JPG,100%)
前輪を取り、代わりに球面を帯びたパーツをつけ、滑らかに...
*プログラムの説明 [#jfd21752]
**基本の定義 [#u5aef079]
以下がサブルーチンを作る上での基本的な定義である。
#define BLACK 42 //これ以下は黒
#define WHITE 50 //これ以上は白
#define RIGHT_S OnFwd(OUT_A);OnRev(OUT_C); //右旋回
#define RIGHT_K OnFwd(OUT_A);Off(OUT_C); //右回転
#define LEFT_S OnFwd(OUT_C);OnRev(OUT_A); //左旋回
#define LEFT_K OnFwd(OUT_C);Off(OUT_A); //左回転
#define go_fwd(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC); //...
#define STEP 1
**サブルーチン [#o741bbc7]
黒の線上をたどっていくプログラム。交差点で一時停止し、...
交差点を判断するためにはタイマーを使い、黒が0.5秒以上続...
また、線の左側をたどるようになっており、黒では右に、白...
その他では直進する。
sub line_trace()
{
ClearTimer(0);
while(FastTimer(0) < 50) {
if (SENSOR_2 < BLACK) {
RIGHT_S;
} else if (SENSOR_2 < BLACK ) {
RIGHT_K;
} else if (SENSOR_2 > WHITE ) {
LEFT_S;
ClearTimer(0);
} else if (SENSOR_2 >= WHITE ) {
LEFT_K;
ClearTimer(0);
} else {
OnFwd(OUT_AC);
ClearTimer(0);
}
Wait(STEP);
}
Off(OUT_AC);
ClearTimer(0);
PlaySound(SOUND_UP);
Wait(100);
}
~~
上のプログラムで黒の時、右回転するため、交差点で右に傾...
機体を正常な傾きに戻すことと、交差点を通過することを目...
sub turn_left_i()
{
while (FastTimer(0) < 142) {
LEFT_K;
}
ClearTimer(0);
}
~~
上のプログラムと使用用途は一緒だが、最後の直角を左回転...
sub turn_left_ii()
{
while (FastTimer(0) < 252) {
LEFT_S;
}
ClearTimer(0);
}
**メインプログラム [#e5c43893]
task main()
{
SetSensor (SENSOR_2, SENSOR_LIGHT);
go_fwd(110);
line_trace(); // AからPへ
turn_left_i(); // Pを通過
line_trace(); // PからQへ
turn_left_i(); // Qを通過
line_trace(); // 一周回ってQへ
turn_left_i(); // Qを通過
line_trace(); // QからRへ
turn_left_ii(); // Rを左折
go_fwd(110);
line_trace();
}
*反省・感想 [#be89c822]
ゴールにたどりつくこともあったが、たどりつかないことも...
交差点で止まった後の、通過するところでうまくいかないこ...
もっと時間調節を慎重にやらなければいけなかったと思う。~
また、サブルーチンやタイマーに対する理解が遅かったため...
達成しきれなかった要因だったと思う。サブルーチンを使う...
書くことができることがわかった。次回の課題では、今回の...
課題を達成できるよう頑張りたい。
ページ名: