- 追加された行はこの色です。
- 削除された行はこの色です。
[[2016a/Member]]
*目次 [#vb047a36]
#contents
*はじめに [#gca5125f]
#ref(2016a-mission2.png)
課題2の内容は、光センサーを用いて
次のいずれかの経路を黒い線にそって動くロボットを作成する (他のメンバーとは別の経路になるようにする)。ただし、なるべく速く正確に動くロボットになるように工夫して、交差点では1秒間停止すること。
・A地点からB地点へ (一人目)
A地点 → P直進 → Q直進 → Q直進 → R左折 → B地点
・B地点からC地点へ (二人目)
B地点 → R右折 → Q直進 → Q直進 →P右折 → S右折 → C地点
・C地点からA地点へ (三人目)
C地点 → S左折 → P左折 → Q直進 → Q直進 → R右折 → P左折 → A地点
(>2016年度前期/課題2)より
今回は、A地点からB地点へロボットをライントレースさせた。
*ロボット本体の説明 [#y97e9f0f]
#ref(dc8c76bc-1dc8-4fe5-85a2-f6bf5b867d3f.jpg)
ロボットの前方についているのが光センサーである。
ロボットの機体は初期状態のまま使用した。
#ref(ba881582-7541-414d-bf2f-1e1f75e8949a.jpg)
光センサーは、地表面から1センチほど離した。
*プログラミングの説明 [#x55c6767]
定義文
定義文
#define BLACK 34
#define WHITE 60
#define LEFT OnFwd(OUT_B,40);OnRev(OUT_C,20);
#define RIGHT OnFwd(OUT_C,40);OnRev(OUT_B,20);
#define LEFT OnFwd(OUT_B,40);OnRev(OUT_C,20);//左旋回
#define RIGHT OnFwd(OUT_C,40);OnRev(OUT_B,20);//右旋回
#define nMAX 295
#define short_break Off(OUT_BC);PlaySound(SOUND_CLICK);Wait(1000)
#define short_break Off(OUT_BC);PlaySound(SOUND_CLICK);Wait(1000)//1秒間の停止と発音
#define STEP 1
#define GO (OUT_BC,40);Wait(500);
#define GO2 (OUT_BC,40);Wait(800);
#define go_f OnFwd(OUT_BC,40);Wait(500);//0.5秒前進
#define go_f2 OnFwd(OUT_BC,40);Wait(800);//0.5秒前進
#define LEFT2 OnFwd(OUT_B,40);OnRev(OUT_C,20);Wait(500);
#define RIGHT2 OnFwd(OUT_C,40);OnRev(OUT_B,20);Wait(500);
サブルーチン
sub normal ()
{
SetSensorLight(S2);
int nOnline=0;
SetSensorLight(S2);
int nOnline=0;//カウント開始
int k=0;
while(k==0){
while(nOnline < nMAX){
if (SENSOR_2<BLACK) {
RIGHT;
while(k==0){
while(nOnline < nMAX){//カウントがnMax以下の時
if (SENSOR_2<BLACK) {//黒の時右
RIGHT;
nOnline++;
} else
if (SENSOR_2<WHITE) {
LEFT;
nOnline=0;
if (SENSOR_2<WHITE) {//白の時左
LEFT;
nOnline=0;
}
Wait(STEP);
}
short_break;
k++;
nOnline=0;
}
}
task main ()
プログラミング
task main()
{
normal();
RIGHT;
go_f;
normal();
GO;
go_f;
normal();
GO;
go_f;
normal();
RIGHT2;
LEFT2;
normal();
RIGHT2;
normal();
GO2;
go_f2;
}
*感想 [#bdf73b90]
光センサーを用いた課題2は、
センサーの調子や、ロボット自体の判断が関わってきたので
課題1に比べるとかなり難易度が高かった。
プログラミングに関しても、
課題1に比べ、使用する単語が増え、、大変だった。
しかしその分、プログラミングに関する
理解が深まった。