- 追加された行はこの色です。
- 削除された行はこの色です。
#contents
*ホイールを投げ出すロボット [#ee405704]
**試作ロボ1 [#h0f1374c]
&ref(2007a/A2/課題2左/070628_194901_M.jpg,100%,試作ロボ1);
#ref(./070628_194901_M.jpg,100%,試作ロボ1)
#ref(2007aA2課題2左/070628_194901_M.jpg,100%,試作ロボ1)
キャタピラを使ったロボット。全体的にゴツゴツしている。
キャタピラを使ったロボット。全体的にゴツゴツしているが、
キャタピラを使うことで全体のバランスをとりやすくしている。
しかし、重量が重すぎて馬力が足りずにこのロボを断念して軽量化することにした
**工夫した点 [#yeda604e]
***ギア周辺 [#d77916f1]
***ホイールを投げ出す装置1 [#rc6b03e1]
***ホイールを投げ出す装置2 [#hb849563]
***光センサー接続部 [#c6a52a32]
光センサーをロボと平行にするのではなく、自由に方向を選べるようにした。
&ref(2007a/A2/課題2左/070628_194730.jpg,100%,光センサー);
#ref(./070628_194730.jpg,100%,光センサー接続パーツ)
#ref(./070628_194712_M.jpg,100%,光センサー接続部)
#ref(./070628_194746.jpg,100%,光センサー完成図)
**試作ロボ2 [#v374468a]
今度はタイヤを使ったロボット。なるべく土台が安定するようにした。
*課題のプログラム [#i6879782]
**課題1 [#f8e40288]
#define THRESHOLD 40
sub throw()
sub throw()//ホイールを投げる動作
{
OnFwd(OUT_A);
Wait(50);
Off(OUT_A);
}
task main ()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
repeat(10000){
while((SENSOR_1 < THRESHOLD) && (SENSOR_3 < THRESHOLD))
SetSensor(SENSOR_1,SENSOR_LIGHT);//光センサーを1にセット
SetSensor(SENSOR_3,SENSOR_LIGHT);//光センサーを3にセット
repeat(10000){
while((SENSOR_1 < THRESHOLD) && (SENSOR_3 < THRESHOLD)) //光センサー1,3共に光を感知せず
{
OnFwd(OUT_B);
OnFwd(OUT_B);//右回りに進む
Wait(100);
Off(OUT_B);
}
while((SENSOR_1 >= THRESHOLD) && (SENSOR_3 < THRESHOLD))
while((SENSOR_1 >= THRESHOLD) && (SENSOR_3 < THRESHOLD))//光センサー1は光を感知するが、3は感知せず
{
OnFwd(OUT_B);
OnFwd(OUT_B);//右回りに進む
Wait(100);
Off(OUT_B);
}
while((SENSOR_1 < THRESHOLD) && (SENSOR_3 >= THRESHOLD))
while((SENSOR_1 < THRESHOLD) && (SENSOR_3 >= THRESHOLD))//光センサー3は光を感知するが、1は感知せず
{
OnRev(OUT_B);
OnRev(OUT_B);//左回りに進む
Wait(30);
Off(OUT_B);
}
while((SENSOR_1 >= THRESHOLD) && (SENSOR_3 >= THRESHOLD))
while((SENSOR_1 >= THRESHOLD) && (SENSOR_3 >= THRESHOLD))//光センサー1、3共に光を感知する
{
throw();
throw();//ホイールを投げる
Off(OUT_B);
}
}
}
**課題2 [#wd97a8f1]
#define THRESHOLD 60
#define THRESHOLD 45
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
while (true)
{ if((SENSOR_1 > THRESHOLD)&&(SENSOR_3 < THRESHOLD))
{
OnFwd(OUT_A);
}
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
while (true)
{ if((SENSOR_1 < THRESHOLD)&&(SENSOR_3 < THRESHOLD))
{
OnFwd(OUT_B);
}
if((SENSOR_1 > THRESHOLD)&&(SENSOR_3 < THRESHOLD))
{
OnFwd(OUT_B);
}
if((SENSOR_1 < THRESHOLD)&&(SENSOR_3 > THRESHOLD))
{
OnRev(OUT_A);
}
{
OnRev(OUT_B);
}
if((SENSOR_1 > THRESHOLD)&&(SENSOR_3 > THRESHOLD))
{
OnFwd(OUT_A);
OnRev(OUT_A);
}
}
}
{
OnFwd(OUT_B);
Wait(60);
OnRev(OUT_B);
Wait(12);
}
}
]
**課題3 [#cb60b0c8]
コメントをどうぞ
#comment