[[2015a/Member]]

*ロボット本体の説明 [#mad047d8]
**ロボットの紹介 [#e6b27aac]
**アーム部分とセンサー部分 [#s2ec782d]
*本体の制作において [#nb07a091]
**工夫した点 [#cda40afd]
**反省点 [#nbea7ffe]
*プログラムの説明 [#p47e8be0]
**ルートとボールの配置 [#y9bba3d6]
**プログラム紹介 [#n5c6116b]
#define gostr OnFwd(OUT_A+OUT_C);
#define goback OnRev(OUT_A+OUT_C);
#define gori OnFwd(OUT_A); OnRev(OUT_C);
#define gole OnFwd(OUT_C); OnRev(OUT_A);
#define THRESHOLD 40
#define runtimeone 95
#define armtimer 200
#define STEP 300
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
gostr;
ClearTimer(0);
ClearTimer(1);
while(Timer(0) < runtimeone)
{
if(SENSOR_1 < THRESHOLD)
{
gori;
until(SENSOR_1 > THRESHOLD);
gostr;
}
else
{
gole;
until(SENSOR_1 < THRESHOLD);
gostr;
}
}
/* 一回目の交差点で停止 */
Off(OUT_A+OUT_C);
Wait(STEP);
gostr; 
Wait(30);
Off(OUT_A+OUT_C);
while(Timer(1) < armtimer)
{
if(SENSOR_1 < THRESHOLD)
{
gori;
until(SENSOR_1 > THRESHOLD);
gostr;
}
else
{
gole;
until(SENSOR_1 < THRESHOLD);
gostr;
}
}
Off(OUT_A+OUT_C);
/* ボールを掴む動作 */
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
gostr;
Wait(30);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);
Wait(10);
Off(OUT_B);
goback(OUT_A+OUT_C);
Wait(40);
Off(OUT_A+OUT_C);
Wait(30);
ClearTimer(0);
while(Timer(0) < 100)
{
if(SENSOR_1 < THRESHOLD)
{
gori;
until(SENSOR_1 > THRESHOLD);
gostr;
}
else
{
gole;
until(SENSOR_1 < THRESHOLD);
gostr;
}
}
/* 二回目の交差点で停止 */
Off(OUT_A+OUT_C);
Wait(STEP);
gostr; 
Wait(30);
Off(OUT_A+OUT_C);
ClearTimer(0);
while(Timer(0) < 190)
{
if(SENSOR_1 < THRESHOLD)
{
gori;
until(SENSOR_1 > THRESHOLD);
gostr;
}
else
{
gole;
until(SENSOR_1 < THRESHOLD);
gostr;
}
}
/* シュート*/
Off(OUT_A+OUT_C);
Wait(30);
gostr;
Wait(100);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
goback;
Wait(100);
Off(OUT_A+OUT_C);;
}

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS