- 追加された行はこの色です。
- 削除された行はこの色です。
[[2007a/MemberOnly/進行状況A]] ~
CENTER:&ref(2007a/A5/課題3左/Scorpion.jpg,40%,全体); ~
#contents
*課題3 [#w700887d] 光を追う+ブロックを投げる
1.全方向から懐中電灯の方向を探しだし、懐中電灯に向けてブロックを投げる。懐中電灯は動かさない。
2.懐中電灯をゆっくり動かしたとき懐中電灯に向かって進む。
3.懐中電灯をゆっくり動かしたとき懐中電灯に向かって進み、懐中電灯の動きを止めればブロックを投げる。
ただし、モータ、光センサ、タッチセンサはそれぞれ2個まで使用可。懐中電灯の代わりに携帯のライトなどを利用してもよい。
*ロボット SCORPION[#e90bbbc3]
名前の由来→ロボットの形を見てください!!(^^)
&ref(2007a/A5/課題3左/200707051901000.jpg,50%,全体);
**苦労した点 [#rd5a3925]
とにかくブロックを投げるところが上手くいかなかったです。
相方が一生懸命ロボットを作ってくれていました...
試作1号として、パチンコみたいな形を作成!!
→どうストッパー(ブロックを落ちないようにするため)を設置するのか,引っ張った状態でどう固定するのか,さらにこんな大きいものをどこにつけるのか!?という様々な問題が発生したのでNG
&ref(2007a/A5/課題3左/robo.jpg,100%,投げる所その1);
結局シンプルISベストということで、こんな形になりました。
&ref(2007a/A5/課題3左/NEC_0064.jpg,25%,投げる所その2);
また、今回モーターを2個しか使えないということなので、ディファレンシャルギアを駆使してモーター1つでどうにか動かすことに挑戦しました。
いざ走らせてみるとここでも問題が発生!!
4輪にするとうまくまわらないので、3輪にしました。ですが、後ろにあるタイヤの強度に大きな問題が…
なので、かなり小さめの車輪を勝手に作り出し設置→安定して走るようになりました!
**工夫した点 [#mf4f8ff6]
タイヤを飛ばすためのアームの強度があまりにも弱く、全然飛んでいかなかったので、小さいブロックを1つ付けてより勢いがつくようにしました。
&ref(2007a/A5/課題3左/NEC_0063.jpg,25%,投げる所工夫);
*プログラミング [#b566222e]
その1 担当ち,つ
#define THRESHOLD 48
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
SetPower(OUT_A+OUT_C,7);
while(true)
{
if((SENSOR_1<THRESHOLD)&&(SENSOR_3<THRESHOLD))
{
OnFwd(OUT_A);
}
else
{
Off(OUT_A);
OnRev(OUT_C);
Wait(150);
OnFwd(OUT_C);
Wait(150);
Off(OUT_C);
Wait(300);
}
}
}
#define THRESHOLD 48
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
while(true){
if(SENSOR_1>THRESHOLD) {
OnRev(OUT_A)
}else{
OnFwd(OUT_A);
}
}
}
その2 担当 ち,つ
#define THRESHOLD 45
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
SetPower(OUT_A+OUT_C,7);
while(true)
{
if((SENSOR_1<THRESHOLD)&&(SENSOR_3<THRESHOLD))
{
OnFwd(OUT_A);
}
else
{
OnRev(OUT_A);
}
}
}
define THRESHOLD 48
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
while(true){
if(SENSOR_1>THRESHOLD) {
OnRev(OUT_C);
Off(OUT_A);
}else{
OnFwd(OUT_A);
}
}
}
その3 担当 ち
#define THRESHOLD 48
#define XDAY 30
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
SetPower(OUT_A+OUT_C,7);
while(true)
{
if((SENSOR_1<THRESHOLD)&&(SENSOR_3<THRESHOLD))
{
OnFwd(OUT_A);
}
else
{
ClearTimer(0);
OnRev(OUT_A);
until( Timer(0) >= XDAY);
Off(OUT_A);
OnRev(OUT_C);
Wait(150);
OnFwd(OUT_C);
Wait(150);
Off(OUT_C);
Wait(300);
}
}
}
*反省点 [#z1d21769]
今回の課題は今までよりも数段レベルが高く、かなり焦りました。
相方に何もかもお世話になってしまい、本当に申し訳ないと心底反省しています。
*COMMENTS [#b55e24ae]
コメントをよろしくお願いします('人')
-プログラムの解説、コメント等をつけてください。 -- [[まいける(TA)]] &new{2007-07-11 (水) 00:06:28};
#comment