- 追加された行はこの色です。
- 削除された行はこの色です。
[[2010a]]
*課題 [#q40116a3]
***構想 [#p91f2cce]
**発射方法 [#tf97038f]
&ref(P1010042.JPG);
&ref(P1010044.JPG)
**ロボット [#g494c040]
&ref(P1010044.JPG);
&ref(P1010045.JPG);
&ref(P1010046.JPG);
**完成したロボット [#j7aec092]
&ref(P1010047.JPG);
&ref(P1010048.JPG);
**その他工夫したところ [#f26bb74c]
***土台 [#f1fcb863]
***光センサー [#e7d106fd]
&ref(P1010049.JPG);
**問題点 [#b983e2b3]
**使用した懐中電灯 [#e7c1e595]
*プログラム [#me17f1a5]
**YUのプログラム(課題2) [#e955dfe2]
#define LL 45 //光量の最低値を45に設定
#define LH 60 //最大値を60に設定
#define TURN_TIME 10 //すばやく光を追う。
弾を発射、3発連射
void ranch (){
PlaySound(SOUND_UP) ;
PlaySound(SOUND_UP);
Wait(150);// ピロピロ〜と高い音で合図をする。
OnFwd(OUT_B);
Wait(19);
Off(OUT_B);
PlaySound(SOUND_CLICK);
OnFwd(OUT_B);
Wait(19);
Off(OUT_B);
PlaySound(SOUND_CLICK);
OnFwd(OUT_B);
Wait(19);
Off(OUT_B);
PlaySound(SOUND_CLICK);
}
左にライトが動いたとき
void turn_left(){
OnRev(OUT_C); OnFwd(OUT_A);
Wait(TURN_TIME);
Off(OUT_A+OUT_C);
}
右にライトが動いたとき
void turn_right(){
OnFwd(OUT_C); OnRev(OUT_A);
Wait(TURN_TIME);
Off(OUT_A+OUT_C);
}
task main(){
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
while(true){
if((SENSOR_3>LL)&&(SENSOR_1>LL)){ //ライトが前にあるなら
OnFwd(OUT_A+OUT_C);Wait(30); //前進する
}
else if((SENSOR_1>LL)&&(SENSOR_3<LL)){ //右に移動したら
turn_right();} //右折す
else if((SENSOR_1<LL)&&(SENSOR_3>LL)){ //左に移動したら
turn_left();} //左折する
else if((SENSOR_1>LH)&&(SENSOR_3>LH)){ //ある程度近づいたら
Off(OUT_A);Wait(400);} //ライトが動かないことを確認
else if((SENSOR_1>LH)&&(SENSOR_3>LH)){ //動いていなければ
ranch ();
break;} //弾を発射する
}
Off(OUT_A+OUT_C);
}
***問題点 [#x0cc2ec0]
***工夫したところ [#md59c81a]
**HIDAKAのプログラム (課題1) [#a754246c]
#define shot(t) OnFwd(OUT_B);Wait(t);Off(OUT_B);
#define sTop(T) Off(OUT_A+OUT_C);Wait(T);
sub turn_right()
{OnFwd(OUT_A);OnRev(OUT_C);}
task main(){
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
C=0;
while(true)
{
turn_right();
until(SENSOR_3 > 40);
sTop(100)
turn_right();
until(SENSOR_1 > 40);
sTop(100)
shot(42)
turn_right();
Wait(50);
}
}
***問題点[#qb36e301]
***工夫したところ [#r88c28b2]
*コメント [#u1600bd5]
コメントをどうぞ!
#comment