2005/A6/課題1右
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[戻る>2005/A6]]
[[課題1>2005/練習問題#kadai1]]
* 問題点 [#hb90ce88]
- ペンをどうやって持たせるか
- ペンをどうやって上げ下げするか
- どうやれば綺麗に文字が書けるか
* 試作ロボット [#ca485764]
- 試作1
-- 歯車で腕を持ち上げたり下げたりしようとした。
うまく噛み合わず動かなくて失敗
* 最終的なロボットとプログラム [#k8684c6b]
-歯車が噛み合わなかった点を反省して、ゴムで腕を上げ下げさせるようにした。
-それでも、手動で腕を動かした後はうまく動かなくなるので、ウォーミングアップ用のプログラム(腕を上げ下げさせる)を作った。
**各自のプログラム [#r9e76aa2]
-K.M
sub arms_down() //腕を下げる動作
{
OnFwd(OUT_B);
Wait(100);
Off(OUT_B);
}
sub arms_up() //腕を上げる動作
{
OnRev(OUT_B);
Wait(100);
Off(OUT_B);
}
sub turn_right() //右に曲がる動作
{
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(85);
Off(OUT_A+OUT_C);
}
sub turn_left() //左に曲がる動作
{
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(85);
Off(OUT_A+OUT_C);
}
task main()
{
arms_down(); //腕を下げてペンを紙へ付ける
OnFwd(OUT_A); //ここから右旋回で右の1画目を書く
OnRev(OUT_C);
Wait(70);
Off(OUT_A+OUT_C);
arms_up();// //1画目のはらい終了、ペンを上げる
OnFwd(OUT_A); //2画目の準備
OnRev(OUT_C);
Wait(16);
Off(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C);
Wait(42);
Off(OUT_A+OUT_C);
turn_right();
OnRev(OUT_A+OUT_C);
Wait(142);
Off(OUT_A+OUT_C);
arms_down(); //ペンを下げて2画目へ
OnRev(OUT_A+OUT_C);
Wait(152);
Off(OUT_A+OUT_C);
arms_up(); //2画目終了、ペンを上げる
OnFwd(OUT_A+OUT_C); //3画目の準備
Wait(213);
Off(OUT_A+OUT_C);
turn_right();
OnRev(OUT_A+OUT_C);
Wait(131);
Off(OUT_A+OUT_C);
arms_down(); //ペンを下げて3画目を書く
OnRev(OUT_A+OUT_C);
Wait(48);
Off(OUT_A+OUT_C);
arms_up(); //3画目終了、ペンを上げる
OnFwd(OUT_A+OUT_C); //4画目の準備
Wait(148);
Off(OUT_A+OUT_C);
turn_left();
OnRev(OUT_A+OUT_C);
Wait(100);
Off(OUT_A+OUT_C);
arms_down(); //ペンを下げて4画目へ
OnRev(OUT_A+OUT_C);
Wait(69);
Off(OUT_A+OUT_C);
arms_up(); //4画目の曲がりまで終了、ペンを上げる
OnFwd(OUT_A+OUT_C); //4画目の曲がりからスタートの準備
Wait(100);
Off(OUT_A+OUT_C);
turn_right();
OnRev(OUT_A+OUT_C);
Wait(100);
Off(OUT_A+OUT_C);
arms_down(); //ペンを下げて4画目の続きへ
OnRev(OUT_A+OUT_C);
Wait(48);
Off(OUT_A+OUT_C);
arms_up(); //4画目終了、ペンを上げる
OnFwd(OUT_A+OUT_C); //5画目の準備
Wait(100);
Off(OUT_A+OUT_C);
turn_left();
OnRev(OUT_A+OUT_C);
Wait(31);
Off(OUT_A+OUT_C);
arms_down(); //ペンを下げて5画目へ
OnRev(OUT_A+OUT_C);
Wait(69);
Off(OUT_A+OUT_C);
arms_up(); //5画目終了、ペンを上げる
OnRev(OUT_A); //1回転回って喜びを表現(無意味)
OnFwd(OUT_C);
Wait(340);
Off(OUT_A+OUT_C);
}
-AI
sub pen_down(){// 腕を下げる
Off(OUT_A+OUT_C);
OnFwd(OUT_B);
Wait(100);
Off(OUT_B);
}
sub pen_up(){// 腕を上げる
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(100);
Off(OUT_B);
}
void go(int t){// まっすぐ走る
OnFwd(OUT_A+OUT_C);
Wait(t);
}
void back(int t){// バックする
OnRev(OUT_A+OUT_C);
Wait(t);
}
task main(){
pen_down();
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(70);
pen_up();// 一画目
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(70);
back(30);
OnFwd(OUT_A);
Wait(70);
OnFwd(OUT_C);
Wait(10);
OnRev(OUT_A);
Wait(70);
pen_down();
go(180);
pen_up();// 二画目
back(120);
OnFwd(OUT_A);
Wait(74);
back(50);
OnFwd(OUT_C);
Wait(10);
pen_down();
go(70);
pen_up();// 三画目
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(70);
OnRev(OUT_C);
Wait(100);
pen_down();
go(100);
pen_up();// 四画目
go(100);
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(70);
OnRev(OUT_A);
Wait(100);
pen_down();
go(100);
pen_up();// 四画目その2
go(100);
OnRev(OUT_C);
Wait(70);
OnFwd(OUT_C);
Wait(10);
pen_down();
back(100);
pen_up();// 五画目
}
* 反省点 [#kb41a65b]
- 一秒間に走る距離と、何秒で回転するかを計ったが、電池の消耗→交換によりズレが生じてしまった
#comment
終了行:
[[戻る>2005/A6]]
[[課題1>2005/練習問題#kadai1]]
* 問題点 [#hb90ce88]
- ペンをどうやって持たせるか
- ペンをどうやって上げ下げするか
- どうやれば綺麗に文字が書けるか
* 試作ロボット [#ca485764]
- 試作1
-- 歯車で腕を持ち上げたり下げたりしようとした。
うまく噛み合わず動かなくて失敗
* 最終的なロボットとプログラム [#k8684c6b]
-歯車が噛み合わなかった点を反省して、ゴムで腕を上げ下げさせるようにした。
-それでも、手動で腕を動かした後はうまく動かなくなるので、ウォーミングアップ用のプログラム(腕を上げ下げさせる)を作った。
**各自のプログラム [#r9e76aa2]
-K.M
sub arms_down() //腕を下げる動作
{
OnFwd(OUT_B);
Wait(100);
Off(OUT_B);
}
sub arms_up() //腕を上げる動作
{
OnRev(OUT_B);
Wait(100);
Off(OUT_B);
}
sub turn_right() //右に曲がる動作
{
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(85);
Off(OUT_A+OUT_C);
}
sub turn_left() //左に曲がる動作
{
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(85);
Off(OUT_A+OUT_C);
}
task main()
{
arms_down(); //腕を下げてペンを紙へ付ける
OnFwd(OUT_A); //ここから右旋回で右の1画目を書く
OnRev(OUT_C);
Wait(70);
Off(OUT_A+OUT_C);
arms_up();// //1画目のはらい終了、ペンを上げる
OnFwd(OUT_A); //2画目の準備
OnRev(OUT_C);
Wait(16);
Off(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C);
Wait(42);
Off(OUT_A+OUT_C);
turn_right();
OnRev(OUT_A+OUT_C);
Wait(142);
Off(OUT_A+OUT_C);
arms_down(); //ペンを下げて2画目へ
OnRev(OUT_A+OUT_C);
Wait(152);
Off(OUT_A+OUT_C);
arms_up(); //2画目終了、ペンを上げる
OnFwd(OUT_A+OUT_C); //3画目の準備
Wait(213);
Off(OUT_A+OUT_C);
turn_right();
OnRev(OUT_A+OUT_C);
Wait(131);
Off(OUT_A+OUT_C);
arms_down(); //ペンを下げて3画目を書く
OnRev(OUT_A+OUT_C);
Wait(48);
Off(OUT_A+OUT_C);
arms_up(); //3画目終了、ペンを上げる
OnFwd(OUT_A+OUT_C); //4画目の準備
Wait(148);
Off(OUT_A+OUT_C);
turn_left();
OnRev(OUT_A+OUT_C);
Wait(100);
Off(OUT_A+OUT_C);
arms_down(); //ペンを下げて4画目へ
OnRev(OUT_A+OUT_C);
Wait(69);
Off(OUT_A+OUT_C);
arms_up(); //4画目の曲がりまで終了、ペンを上げる
OnFwd(OUT_A+OUT_C); //4画目の曲がりからスタートの準備
Wait(100);
Off(OUT_A+OUT_C);
turn_right();
OnRev(OUT_A+OUT_C);
Wait(100);
Off(OUT_A+OUT_C);
arms_down(); //ペンを下げて4画目の続きへ
OnRev(OUT_A+OUT_C);
Wait(48);
Off(OUT_A+OUT_C);
arms_up(); //4画目終了、ペンを上げる
OnFwd(OUT_A+OUT_C); //5画目の準備
Wait(100);
Off(OUT_A+OUT_C);
turn_left();
OnRev(OUT_A+OUT_C);
Wait(31);
Off(OUT_A+OUT_C);
arms_down(); //ペンを下げて5画目へ
OnRev(OUT_A+OUT_C);
Wait(69);
Off(OUT_A+OUT_C);
arms_up(); //5画目終了、ペンを上げる
OnRev(OUT_A); //1回転回って喜びを表現(無意味)
OnFwd(OUT_C);
Wait(340);
Off(OUT_A+OUT_C);
}
-AI
sub pen_down(){// 腕を下げる
Off(OUT_A+OUT_C);
OnFwd(OUT_B);
Wait(100);
Off(OUT_B);
}
sub pen_up(){// 腕を上げる
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(100);
Off(OUT_B);
}
void go(int t){// まっすぐ走る
OnFwd(OUT_A+OUT_C);
Wait(t);
}
void back(int t){// バックする
OnRev(OUT_A+OUT_C);
Wait(t);
}
task main(){
pen_down();
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(70);
pen_up();// 一画目
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(70);
back(30);
OnFwd(OUT_A);
Wait(70);
OnFwd(OUT_C);
Wait(10);
OnRev(OUT_A);
Wait(70);
pen_down();
go(180);
pen_up();// 二画目
back(120);
OnFwd(OUT_A);
Wait(74);
back(50);
OnFwd(OUT_C);
Wait(10);
pen_down();
go(70);
pen_up();// 三画目
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(70);
OnRev(OUT_C);
Wait(100);
pen_down();
go(100);
pen_up();// 四画目
go(100);
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(70);
OnRev(OUT_A);
Wait(100);
pen_down();
go(100);
pen_up();// 四画目その2
go(100);
OnRev(OUT_C);
Wait(70);
OnFwd(OUT_C);
Wait(10);
pen_down();
back(100);
pen_up();// 五画目
}
* 反省点 [#kb41a65b]
- 一秒間に走る距離と、何秒で回転するかを計ったが、電池の消耗→交換によりズレが生じてしまった
#comment
ページ名: