2015a/Member/K.Y./Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*目次 [#hc429614]
#contents
*課題 [#j2ac578a]
光センサーを使って、ライン上を走るロボットの作成
*ロボットの仕組み [#p55c4934]
**本体 [#y816fc96]
モーター3つとセンサー1つをつけられるように、
本体を所定の位置から少しずらした位置につけるようにした
#ref(image (1).jpeg)
**アーム [#ide5bbd0]
今回はボールを運ぶため、このようなアームにした
#ref(image.jpeg)
ボールを掴んだり持ち上げすると難しくなると判断し、
アームを下ろし、アームでボールを囲むだけで運べるようにした
*走る [#e707bfa0]
**コース [#w1daa75a]
#ref(・鬣、・鷽゙.png)
今回はB→Aと走る
**プログラム [#u7ae0d45]
#define hsa OnFwd(OUT_B,30);OnFwd(OUT_C,-10);
#define lsa OnFwd(OUT_B,30);OnFwd(OUT_C,0);
#define hu OnFwd(OUT_B,-10);OnFwd(OUT_C,30);
#define lu OnFwd(OUT_B,0);OnFwd(OUT_C,30);
#define go OnFwd(OUT_BC,30);
#define kaku OnFwd(OUT_B,30);OnFwd(OUT_C,20);
task main()
{
SetSensorLight(S3);
int n=0;
long t1=CurrentTick();
long t0=CurrentTick();
while(CurrentTick()-t1<3500){
if(SENSOR_3<28){
hsa;
} else if(SENSOR_3<35){
lsa;
} else if(SENSOR_3<50){
t0=CurrentTick();
go;
} else if(SENSOR_3<57){
t0=CurrentTick();
hu;
} else {
t0=CurrentTick();
lu;
}
if(CurrentTick()-t0>120){
Off(OUT_BC);
Wait(2000);
kaku;
Wait(1800);
Off(OUT_BC);
Wait(1000);
}
}
while(CurrentTick()-t1<15000){
if(SENSOR_3<28){
hu;
} else if(SENSOR_3<35){
lu;
} else if(SENSOR_3<50){
go;
} else if(SENSOR_3<57){
hsa;
} else {
lsa;
}
}
Off(OUT_BC);
OnFwd(OUT_A,10);
Wait(1500);
Off(OUT_A);
while(CurrentTick()-t1<32000){
if(SENSOR_3<28){
hsa;
} else if(SENSOR_3<35){
lsa;
} else if(SENSOR_3<50){
go;
} else if(SENSOR_3<57){
hu;
} else {
lu;
}
}
Off(OUT_BC);
OnFwd(OUT_BC,-40);
Wait(100);
OnFwd(OUT_A,-10);
Wait(1500);
Off(OUT_BC);
OnFwd(OUT_BC,70);
Wait(60);
}
*反省・感想 [#uf858c3e]
今回はアームなど、ロボット製作の方は工夫ができ、それが上手くいったためよかった。
しかし、プログラミングの方は交差点など難しいところもあり、まだまだだと思った。
次回は関数などを使って、よりスムーズなプログラムになるようにしたい。
終了行:
*目次 [#hc429614]
#contents
*課題 [#j2ac578a]
光センサーを使って、ライン上を走るロボットの作成
*ロボットの仕組み [#p55c4934]
**本体 [#y816fc96]
モーター3つとセンサー1つをつけられるように、
本体を所定の位置から少しずらした位置につけるようにした
#ref(image (1).jpeg)
**アーム [#ide5bbd0]
今回はボールを運ぶため、このようなアームにした
#ref(image.jpeg)
ボールを掴んだり持ち上げすると難しくなると判断し、
アームを下ろし、アームでボールを囲むだけで運べるようにした
*走る [#e707bfa0]
**コース [#w1daa75a]
#ref(・鬣、・鷽゙.png)
今回はB→Aと走る
**プログラム [#u7ae0d45]
#define hsa OnFwd(OUT_B,30);OnFwd(OUT_C,-10);
#define lsa OnFwd(OUT_B,30);OnFwd(OUT_C,0);
#define hu OnFwd(OUT_B,-10);OnFwd(OUT_C,30);
#define lu OnFwd(OUT_B,0);OnFwd(OUT_C,30);
#define go OnFwd(OUT_BC,30);
#define kaku OnFwd(OUT_B,30);OnFwd(OUT_C,20);
task main()
{
SetSensorLight(S3);
int n=0;
long t1=CurrentTick();
long t0=CurrentTick();
while(CurrentTick()-t1<3500){
if(SENSOR_3<28){
hsa;
} else if(SENSOR_3<35){
lsa;
} else if(SENSOR_3<50){
t0=CurrentTick();
go;
} else if(SENSOR_3<57){
t0=CurrentTick();
hu;
} else {
t0=CurrentTick();
lu;
}
if(CurrentTick()-t0>120){
Off(OUT_BC);
Wait(2000);
kaku;
Wait(1800);
Off(OUT_BC);
Wait(1000);
}
}
while(CurrentTick()-t1<15000){
if(SENSOR_3<28){
hu;
} else if(SENSOR_3<35){
lu;
} else if(SENSOR_3<50){
go;
} else if(SENSOR_3<57){
hsa;
} else {
lsa;
}
}
Off(OUT_BC);
OnFwd(OUT_A,10);
Wait(1500);
Off(OUT_A);
while(CurrentTick()-t1<32000){
if(SENSOR_3<28){
hsa;
} else if(SENSOR_3<35){
lsa;
} else if(SENSOR_3<50){
go;
} else if(SENSOR_3<57){
hu;
} else {
lu;
}
}
Off(OUT_BC);
OnFwd(OUT_BC,-40);
Wait(100);
OnFwd(OUT_A,-10);
Wait(1500);
Off(OUT_BC);
OnFwd(OUT_BC,70);
Wait(60);
}
*反省・感想 [#uf858c3e]
今回はアームなど、ロボット製作の方は工夫ができ、それが上手くいったためよかった。
しかし、プログラミングの方は交差点など難しいところもあり、まだまだだと思った。
次回は関数などを使って、よりスムーズなプログラムになるようにしたい。
ページ名: