2016a/Member/Mick/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2016a/Member]]
*ロボット本体 [#d75cb20a]
#ref(2016a/Member/Mick/Mission2/DSC_0563.JPG,100%,ロボ1)
#ref(2016a/Member/Mick/Mission2/DSC_0566.JPG,100%,ロボ1)
#ref(2016a/Member/Mick/Mission2/DSC_0565.JPG,100%,ロボ1)
センサーを中心から少しずらし、本体が回転した時に動き過ぎ...
#ref(2016a/Member/Mick/Mission2/DSC_05662.jpg,100%,ロボ1)
#ref(2016a/Member/Mick/Mission2/DSC_0567.JPG,100%,ロボ1)
今回後輪を外し、滑らせることによって小回りを向上させた。...
センサーが若干陰った位置にいったが、数値の調整により問題...
*ルート [#p402dcdb]
#ref(2016a/Member/Mick/Mission2/2016a-mission2B.png,100%...
ルート3を選んだ。センサーの位置から左折のほうが良いと思...
*プログラム [#oa1c4a4a]
**定義やサブルーチン等 [#yc40fc50]
#define straight 5//ここの数値をもっと上げたほうが早かっ...
#define carb 2
#define set_straight SetPower(OUT_AC,straight);
#define set_carb SetPower(OUT_AC,carb);
#define go_forward set_straight; OnFwd(OUT_AC);
#define turn_leftL set_carb; OnFwd(OUT_C); OnRev(OUT_A);
#define turn_leftS set_carb; OnFwd(OUT_C); Off(OUT_A);
#define turn_rightS set_carb; OnFwd(OUT_A); Off(OUT_C);
#define turn_rightL set_carb; OnFwd(OUT_A); OnRev(OUT_C);
#define black 38 //以下しきい値
#define glayA 42
#define glayB 45
#define glayC 48
#define KURO 14 //名前が今見るとわかりにくいが、これは...
#define TURN_TIME 90 //曲がる時間
task play_music2() // ファファファファッミ♭ッソッ ファー
{
PlayTone(698,10); Wait(20);//f
PlayTone(698,10); Wait(20);//f
PlayTone(698,10); Wait(20);//f
PlayTone(698,30); Wait(40);//f
PlayTone(622,30); Wait(40);//rs
PlayTone(784,30); Wait(40);//s
PlayTone(698,35); Wait(40);
}
れべる が あがった !!ような おとが する(蛇足とも...
尚これを諦めて PlaySound(SOUND_CLICK); にしたほうが軽い...
ただ遊び心には勝てなかった。
sub go_go_left() //交差点にて曲がるためのもの。
{
Off(OUT_AC);
Wait(100); //1秒停止し
PlaySound(SOUND_FAST_UP); //音がなる
go_forward;//※下記参照
Wait(50);
turn_leftL;
Wait(TURN_TIME);
Off(OUT_AC);
go_forward;
Wait(50);
}
sub go_go_right()//上の右折版。あれ。右折のほうが簡単じ...
{
Off(OUT_AC);
Wait(100);
PlaySound(SOUND_FAST_UP);
turn_rightL;
Wait(TURN_TIME);
Off(OUT_AC);
}
sub go_go_forward()//交差点を超えるための直進。
{
Off(OUT_AC);
Wait(100);
PlaySound(SOUND_CLICK);
go_forward;
Wait(50);
Off(OUT_AC);
}
sub go_go_forward2()//ゴールするための直進。
{
Off(OUT_AC);
Wait(100);
PlaySound(SOUND_CLICK);
go_forward;
Wait(100);//ここが長いので枠に入れる
Off(OUT_AC);
}
※について
前回得たことを有効活用した。
#ref(2016a/Member/Mick/Mission2/1467799593UGiJLVb9ieOpQPQ...
Gifアニメだと「そんな面倒なことしなくても」と思われる気が...
sub go_follow()
{
ClearTimer(0);
while (FastTimer(0) <= KURO) { //タイマー0を使用
if (SENSOR_2 < black) { //黒の範囲にいるとき、
turn_leftL; //大きく左折
} else if (SENSOR_2 < glayA) { //黒寄りのところにいる...
turn_leftS; //少し左に曲がりな...
ClearTimer(0); //タイマーをリセッ...
} else if (SENSOR_2 < glayB) { //白寄りのところにいる...
go_forward; //直進し、
ClearTimer(0); //タイマーをリセッ...
} else { //それ以外のとき、つま...
turn_rightL; //大きく右へいきな...
ClearTimer(0); //タイマーをリセッ...
}
Wait(1); //この判定を0.01秒ごと...
}
}
メインディッシュ。
結構しきい値が絶妙なようで、かなりスムーズに進む。特に直...
他のグループを見ると直進コマンドを持たなかったり持ってい...
・純粋に遅い
・「丁度境界線くらいのグレーに居続ける」ことが難しく(回...
思ったので直進すべき位置で直進させた。
sub go_follow2()
{
ClearTimer(1);
while (FastTimer(1) <= 300) { //タイマー1を使用。3...
if (SENSOR_2 < black) { //黒の範囲にいるとき、
turn_leftL;
} else if (SENSOR_2 < glayA) { //黒寄りのところにいる...
turn_leftS; //少し左に曲がりな...
} else if (SENSOR_2 < glayB) { //白寄りのところにいる...
go_forward; //直進し、
} else { //それ以外のとき、つま...
turn_rightL; //大きく右へいきな...
}
Wait(1); //この判定を0.01秒ごと...
}
}
こちらは右折/左折後に「3秒間交差点がない前提でライントレ...
電池残量により
1.交差点認知した時の角度
2.前進の距離、回転の角度が変化し、
交差点で曲がったあとに道に直角に入射して、交差点と誤って...
**task main [#jac1b3a4]
task main ()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);//センサーセット
go_follow(); //ライントレースし
go_go_left();//交差点で左折(S)
go_follow2();//交差点がないとわかっている間、交差点認...
go_follow();//ライントレース
go_go_left();/左折(P)
go_follow2();//
go_follow();//(Q)
go_go_forward();
go_follow2();
go_follow();
go_go_forward();//(Q)
go_follow2();
go_follow();
go_go_right();//(R)
go_follow2();
go_follow();
go_go_left();//(P)
go_follow2();
go_follow();
go_go_forward2();//(ゴール)
Off(OUT_AC);
start play_music2;
}
記録は01:08。コース3にしては上々ではないか。
*反省、感想、次回に向けて [#dbbfed37]
・機体の後ろ足がああいったパーツを使うことで小回りが向上...
・上記の機体の改良に加え、ライントレースのしきい値を特に...
・走行テストするとき等、やはり電池残量は今回も気にしなけ...
・エラーを吐かなかったところはスルーしてしまっていたが、...
次回は完成しても「もっと向上するには」と貪欲にチェックを...
***おまけ [#h213aaed]
某配管工が星になって走るときの音。暇を持て余した結果作っ...
#define OTO1 8
#define OTO2 20
#define OTO3 4
#define OTO_A 1047
#define OTO_B 988
#define OTO_C 698
#define OTO_D 659
task play_music() //fff r fff r frfmmmdmmmdmdm
{
PlayTone(OTO_A,OTO1); Wait(OTO2);
PlayTone(OTO_A,OTO1); Wait(OTO2);
PlayTone(OTO_A,OTO1); Wait(OTO2);
PlayTone(587,OTO3); Wait(OTO2-8);
PlayTone(OTO_A,OTO3); Wait(OTO2-8);
PlayTone(OTO_A,OTO1); Wait(OTO2);
PlayTone(587,OTO1); Wait(OTO2);
PlayTone(OTO_A,OTO3); Wait(OTO2-8);
PlayTone(587,OTO3); Wait(OTO2-8);
PlayTone(OTO_A,OTO3); Wait(OTO2-8);//10048
PlayTone(OTO_B,OTO1); Wait(OTO2);//m
PlayTone(OTO_B,OTO1); Wait(OTO2);//m
PlayTone(OTO_B,OTO1); Wait(OTO2);//m
PlayTone(523,OTO3); Wait(OTO2-8);//d
PlayTone(OTO_B,OTO3); Wait(OTO2-8);//m
PlayTone(OTO_B,OTO1); Wait(OTO2);//m
PlayTone(523,OTO1); Wait(OTO2);//d
PlayTone(OTO_B,OTO3); Wait(OTO2-8);//m
PlayTone(523,OTO3); Wait(OTO2-8);//d
PlayTone(OTO_B,OTO3); Wait(OTO2-8);//m
}
task main()
{
repeat(4) {
start play_music;
Wait(296);
}
}
終了行:
[[2016a/Member]]
*ロボット本体 [#d75cb20a]
#ref(2016a/Member/Mick/Mission2/DSC_0563.JPG,100%,ロボ1)
#ref(2016a/Member/Mick/Mission2/DSC_0566.JPG,100%,ロボ1)
#ref(2016a/Member/Mick/Mission2/DSC_0565.JPG,100%,ロボ1)
センサーを中心から少しずらし、本体が回転した時に動き過ぎ...
#ref(2016a/Member/Mick/Mission2/DSC_05662.jpg,100%,ロボ1)
#ref(2016a/Member/Mick/Mission2/DSC_0567.JPG,100%,ロボ1)
今回後輪を外し、滑らせることによって小回りを向上させた。...
センサーが若干陰った位置にいったが、数値の調整により問題...
*ルート [#p402dcdb]
#ref(2016a/Member/Mick/Mission2/2016a-mission2B.png,100%...
ルート3を選んだ。センサーの位置から左折のほうが良いと思...
*プログラム [#oa1c4a4a]
**定義やサブルーチン等 [#yc40fc50]
#define straight 5//ここの数値をもっと上げたほうが早かっ...
#define carb 2
#define set_straight SetPower(OUT_AC,straight);
#define set_carb SetPower(OUT_AC,carb);
#define go_forward set_straight; OnFwd(OUT_AC);
#define turn_leftL set_carb; OnFwd(OUT_C); OnRev(OUT_A);
#define turn_leftS set_carb; OnFwd(OUT_C); Off(OUT_A);
#define turn_rightS set_carb; OnFwd(OUT_A); Off(OUT_C);
#define turn_rightL set_carb; OnFwd(OUT_A); OnRev(OUT_C);
#define black 38 //以下しきい値
#define glayA 42
#define glayB 45
#define glayC 48
#define KURO 14 //名前が今見るとわかりにくいが、これは...
#define TURN_TIME 90 //曲がる時間
task play_music2() // ファファファファッミ♭ッソッ ファー
{
PlayTone(698,10); Wait(20);//f
PlayTone(698,10); Wait(20);//f
PlayTone(698,10); Wait(20);//f
PlayTone(698,30); Wait(40);//f
PlayTone(622,30); Wait(40);//rs
PlayTone(784,30); Wait(40);//s
PlayTone(698,35); Wait(40);
}
れべる が あがった !!ような おとが する(蛇足とも...
尚これを諦めて PlaySound(SOUND_CLICK); にしたほうが軽い...
ただ遊び心には勝てなかった。
sub go_go_left() //交差点にて曲がるためのもの。
{
Off(OUT_AC);
Wait(100); //1秒停止し
PlaySound(SOUND_FAST_UP); //音がなる
go_forward;//※下記参照
Wait(50);
turn_leftL;
Wait(TURN_TIME);
Off(OUT_AC);
go_forward;
Wait(50);
}
sub go_go_right()//上の右折版。あれ。右折のほうが簡単じ...
{
Off(OUT_AC);
Wait(100);
PlaySound(SOUND_FAST_UP);
turn_rightL;
Wait(TURN_TIME);
Off(OUT_AC);
}
sub go_go_forward()//交差点を超えるための直進。
{
Off(OUT_AC);
Wait(100);
PlaySound(SOUND_CLICK);
go_forward;
Wait(50);
Off(OUT_AC);
}
sub go_go_forward2()//ゴールするための直進。
{
Off(OUT_AC);
Wait(100);
PlaySound(SOUND_CLICK);
go_forward;
Wait(100);//ここが長いので枠に入れる
Off(OUT_AC);
}
※について
前回得たことを有効活用した。
#ref(2016a/Member/Mick/Mission2/1467799593UGiJLVb9ieOpQPQ...
Gifアニメだと「そんな面倒なことしなくても」と思われる気が...
sub go_follow()
{
ClearTimer(0);
while (FastTimer(0) <= KURO) { //タイマー0を使用
if (SENSOR_2 < black) { //黒の範囲にいるとき、
turn_leftL; //大きく左折
} else if (SENSOR_2 < glayA) { //黒寄りのところにいる...
turn_leftS; //少し左に曲がりな...
ClearTimer(0); //タイマーをリセッ...
} else if (SENSOR_2 < glayB) { //白寄りのところにいる...
go_forward; //直進し、
ClearTimer(0); //タイマーをリセッ...
} else { //それ以外のとき、つま...
turn_rightL; //大きく右へいきな...
ClearTimer(0); //タイマーをリセッ...
}
Wait(1); //この判定を0.01秒ごと...
}
}
メインディッシュ。
結構しきい値が絶妙なようで、かなりスムーズに進む。特に直...
他のグループを見ると直進コマンドを持たなかったり持ってい...
・純粋に遅い
・「丁度境界線くらいのグレーに居続ける」ことが難しく(回...
思ったので直進すべき位置で直進させた。
sub go_follow2()
{
ClearTimer(1);
while (FastTimer(1) <= 300) { //タイマー1を使用。3...
if (SENSOR_2 < black) { //黒の範囲にいるとき、
turn_leftL;
} else if (SENSOR_2 < glayA) { //黒寄りのところにいる...
turn_leftS; //少し左に曲がりな...
} else if (SENSOR_2 < glayB) { //白寄りのところにいる...
go_forward; //直進し、
} else { //それ以外のとき、つま...
turn_rightL; //大きく右へいきな...
}
Wait(1); //この判定を0.01秒ごと...
}
}
こちらは右折/左折後に「3秒間交差点がない前提でライントレ...
電池残量により
1.交差点認知した時の角度
2.前進の距離、回転の角度が変化し、
交差点で曲がったあとに道に直角に入射して、交差点と誤って...
**task main [#jac1b3a4]
task main ()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);//センサーセット
go_follow(); //ライントレースし
go_go_left();//交差点で左折(S)
go_follow2();//交差点がないとわかっている間、交差点認...
go_follow();//ライントレース
go_go_left();/左折(P)
go_follow2();//
go_follow();//(Q)
go_go_forward();
go_follow2();
go_follow();
go_go_forward();//(Q)
go_follow2();
go_follow();
go_go_right();//(R)
go_follow2();
go_follow();
go_go_left();//(P)
go_follow2();
go_follow();
go_go_forward2();//(ゴール)
Off(OUT_AC);
start play_music2;
}
記録は01:08。コース3にしては上々ではないか。
*反省、感想、次回に向けて [#dbbfed37]
・機体の後ろ足がああいったパーツを使うことで小回りが向上...
・上記の機体の改良に加え、ライントレースのしきい値を特に...
・走行テストするとき等、やはり電池残量は今回も気にしなけ...
・エラーを吐かなかったところはスルーしてしまっていたが、...
次回は完成しても「もっと向上するには」と貪欲にチェックを...
***おまけ [#h213aaed]
某配管工が星になって走るときの音。暇を持て余した結果作っ...
#define OTO1 8
#define OTO2 20
#define OTO3 4
#define OTO_A 1047
#define OTO_B 988
#define OTO_C 698
#define OTO_D 659
task play_music() //fff r fff r frfmmmdmmmdmdm
{
PlayTone(OTO_A,OTO1); Wait(OTO2);
PlayTone(OTO_A,OTO1); Wait(OTO2);
PlayTone(OTO_A,OTO1); Wait(OTO2);
PlayTone(587,OTO3); Wait(OTO2-8);
PlayTone(OTO_A,OTO3); Wait(OTO2-8);
PlayTone(OTO_A,OTO1); Wait(OTO2);
PlayTone(587,OTO1); Wait(OTO2);
PlayTone(OTO_A,OTO3); Wait(OTO2-8);
PlayTone(587,OTO3); Wait(OTO2-8);
PlayTone(OTO_A,OTO3); Wait(OTO2-8);//10048
PlayTone(OTO_B,OTO1); Wait(OTO2);//m
PlayTone(OTO_B,OTO1); Wait(OTO2);//m
PlayTone(OTO_B,OTO1); Wait(OTO2);//m
PlayTone(523,OTO3); Wait(OTO2-8);//d
PlayTone(OTO_B,OTO3); Wait(OTO2-8);//m
PlayTone(OTO_B,OTO1); Wait(OTO2);//m
PlayTone(523,OTO1); Wait(OTO2);//d
PlayTone(OTO_B,OTO3); Wait(OTO2-8);//m
PlayTone(523,OTO3); Wait(OTO2-8);//d
PlayTone(OTO_B,OTO3); Wait(OTO2-8);//m
}
task main()
{
repeat(4) {
start play_music;
Wait(296);
}
}
ページ名: