2018a/Member/narumichi/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018a/Member]]
書道ロボット
*課題 [#s38c0ba9]
これまで住んだことのある都道府県名、市町村名、地区名など...
私は愛知県出身なので愛知という文字にした。
*ロボット本体の説明 [#nd70e026]
#ref(IMG_2047all.jpg)
ロボットの全体図
**前後移動 [#t2a93289]
最初は床をタイヤで移動するように製作していたが、紙の上を...
**左右移動 [#t882e33e]
#ref(IMG_2046motar.jpg)
ギアの歯のブロックを細長い板のブロックの上側に付けたもの...
**アーム部分 [#l1fd5e58]
#ref(IMG_2045arm.png)
ペンはゴムで固定し、アームの上下にもゴムを利用している。...
*プログラムの説明 [#tfc6c1e6]
**コンセプト [#db2f07b7]
誰でも簡単に使える、分かりやすいプログラムを目指して制作...
**プログラムの全容 [#j8e29460]
1.#define d OnFwd(OUT_C);Wait(60);Off(OUT_C);//ペン下げ
2.#define u OnRev(OUT_C);Wait(60);Off(OUT_C);//ペン上げ
3.#define mx(a) \//x軸移動
4. if (a-x>0) {OnFwd(OUT_A);Wait(a-x);Off(OUT_A);x=a;}\
5. else {OnRev(OUT_A);Wait(x-a);Off(OUT_A);x=a;}
6.#define my(b) \//y軸移動
7. if (b-y>0) {OnFwd(OUT_B);Wait(b-y);Off(OUT_B);y=b;}\
8. else {OnRev(OUT_B);Wait(y-b);Off(OUT_B);y=b;}
9.#define mxyr(r) \//右斜め上下移動
10. if (r-y>0) {OnRev(OUT_A);OnFwd(OUT_B);Wait(r-y);Of...
11. else {OnRev(OUT_AB);Wait(y-r);Off(OUT_AB);x=x-y+r;...
12.#define mxyl(l) \//左斜め上下移動
13. if (l-y>0) {OnFwd(OUT_AB);Wait(l-y);Off(OUT_AB);x=...
14. else {OnFwd(OUT_A);OnRev(OUT_B);Wait(y-l);Off(OUT_...
15.task main ()
16.{
17. int x = 0;
18. int y = 0;
19. int r = 0;
20. int l = 0;
21. mx(80);my(230);d;mxyl(220);mx(180);mxyr(200);u;
22. mxyr(220);d;mxyr(200);u;
23. mx(80);my(220);d;mxyl(200);u;
24. mx(200);d;my(190);u;my(200);d;mx(40);mxyl(190);u;
25. mx(180);my(200);d;mxyl(180);u;
26. mx(160);my(200);d;mxyr(180);mx(80);mxyl(190);u;
27. mx(120);my(200);d;mxyr(180);u;mxyr(200);d;mxyr(180...
28. mx(100);my(170);d;mx(140);mxyl(150);mx(180);u;
29. mx(100);my(170);d;mxyl(130);mx(160);u;
30. mx(140);my(170);d;mxyr(130);mx(60);u;
31.
32. mx(180);my(110);d;mxyl(70);u;
33. mxyr(90);d;mx(120);u;
34. mx(200);my(70);d;mx(120);u;
35. mx(160);my(90);d;my(60);mxyl(20);u;
36. mxyr(60);d;mxyr(20);u;
37. mx(100);my(80);d;my(40);u;
38. my(80);d;mx(40);my(40);u;
39. mx(100);d;mx(40);u;
40.
41.
42.}
*WINDOWSで「\」の半角での書き方がわからなかったためここ...
**定義についての説明 [#debdc5fc]
このプログラムには1〜14行目にかけて6つの動作が定義されて...
**プログラムの書き方の例 [#c7bfb676]
例としてこのような図形を書くとする。
#ref(DSC_0286.png)
*座標は画像のxy座標図の数値を参照
この図形は
21.mx(80);my(230);d;mxyl(220);mx(180);mxyr(200);u;
このプログラムで書くことができる。
それぞれmx(80)はx座標の80へ行けという指示。
my(230)はy座標の230へ行けという指示。
dはペンを下ろせという指示。
mxyl(220)は左斜めにy座標の220へ行けという指示。
mxyr(200)は右斜めにy座標の200へ行けという指示。
uはペンを上げろという指示である。これらの定義を活用すれば...
**工夫した点、苦労した点 [#i65af65c]
最初に書いた通り誰でも簡単に使えるようにするためにx軸、y...
例
3.#define mx(a) \//x軸移動
4. if (a-x>0) {OnFwd(OUT_A);Wait(a-x);Off(OUT_A);x=a;}\
5. else {OnRev(OUT_A);Wait(x-a);Off(OUT_A);x=a;}
*「x」が現在地で、「a」が今から移動させる座標。移動後にa...
*まとめと改善点 [#n8304968]
#ref(DSC_0287aichi.png)
このような文字が書くことができた。我ながら上出来だと思う...
終了行:
[[2018a/Member]]
書道ロボット
*課題 [#s38c0ba9]
これまで住んだことのある都道府県名、市町村名、地区名など...
私は愛知県出身なので愛知という文字にした。
*ロボット本体の説明 [#nd70e026]
#ref(IMG_2047all.jpg)
ロボットの全体図
**前後移動 [#t2a93289]
最初は床をタイヤで移動するように製作していたが、紙の上を...
**左右移動 [#t882e33e]
#ref(IMG_2046motar.jpg)
ギアの歯のブロックを細長い板のブロックの上側に付けたもの...
**アーム部分 [#l1fd5e58]
#ref(IMG_2045arm.png)
ペンはゴムで固定し、アームの上下にもゴムを利用している。...
*プログラムの説明 [#tfc6c1e6]
**コンセプト [#db2f07b7]
誰でも簡単に使える、分かりやすいプログラムを目指して制作...
**プログラムの全容 [#j8e29460]
1.#define d OnFwd(OUT_C);Wait(60);Off(OUT_C);//ペン下げ
2.#define u OnRev(OUT_C);Wait(60);Off(OUT_C);//ペン上げ
3.#define mx(a) \//x軸移動
4. if (a-x>0) {OnFwd(OUT_A);Wait(a-x);Off(OUT_A);x=a;}\
5. else {OnRev(OUT_A);Wait(x-a);Off(OUT_A);x=a;}
6.#define my(b) \//y軸移動
7. if (b-y>0) {OnFwd(OUT_B);Wait(b-y);Off(OUT_B);y=b;}\
8. else {OnRev(OUT_B);Wait(y-b);Off(OUT_B);y=b;}
9.#define mxyr(r) \//右斜め上下移動
10. if (r-y>0) {OnRev(OUT_A);OnFwd(OUT_B);Wait(r-y);Of...
11. else {OnRev(OUT_AB);Wait(y-r);Off(OUT_AB);x=x-y+r;...
12.#define mxyl(l) \//左斜め上下移動
13. if (l-y>0) {OnFwd(OUT_AB);Wait(l-y);Off(OUT_AB);x=...
14. else {OnFwd(OUT_A);OnRev(OUT_B);Wait(y-l);Off(OUT_...
15.task main ()
16.{
17. int x = 0;
18. int y = 0;
19. int r = 0;
20. int l = 0;
21. mx(80);my(230);d;mxyl(220);mx(180);mxyr(200);u;
22. mxyr(220);d;mxyr(200);u;
23. mx(80);my(220);d;mxyl(200);u;
24. mx(200);d;my(190);u;my(200);d;mx(40);mxyl(190);u;
25. mx(180);my(200);d;mxyl(180);u;
26. mx(160);my(200);d;mxyr(180);mx(80);mxyl(190);u;
27. mx(120);my(200);d;mxyr(180);u;mxyr(200);d;mxyr(180...
28. mx(100);my(170);d;mx(140);mxyl(150);mx(180);u;
29. mx(100);my(170);d;mxyl(130);mx(160);u;
30. mx(140);my(170);d;mxyr(130);mx(60);u;
31.
32. mx(180);my(110);d;mxyl(70);u;
33. mxyr(90);d;mx(120);u;
34. mx(200);my(70);d;mx(120);u;
35. mx(160);my(90);d;my(60);mxyl(20);u;
36. mxyr(60);d;mxyr(20);u;
37. mx(100);my(80);d;my(40);u;
38. my(80);d;mx(40);my(40);u;
39. mx(100);d;mx(40);u;
40.
41.
42.}
*WINDOWSで「\」の半角での書き方がわからなかったためここ...
**定義についての説明 [#debdc5fc]
このプログラムには1〜14行目にかけて6つの動作が定義されて...
**プログラムの書き方の例 [#c7bfb676]
例としてこのような図形を書くとする。
#ref(DSC_0286.png)
*座標は画像のxy座標図の数値を参照
この図形は
21.mx(80);my(230);d;mxyl(220);mx(180);mxyr(200);u;
このプログラムで書くことができる。
それぞれmx(80)はx座標の80へ行けという指示。
my(230)はy座標の230へ行けという指示。
dはペンを下ろせという指示。
mxyl(220)は左斜めにy座標の220へ行けという指示。
mxyr(200)は右斜めにy座標の200へ行けという指示。
uはペンを上げろという指示である。これらの定義を活用すれば...
**工夫した点、苦労した点 [#i65af65c]
最初に書いた通り誰でも簡単に使えるようにするためにx軸、y...
例
3.#define mx(a) \//x軸移動
4. if (a-x>0) {OnFwd(OUT_A);Wait(a-x);Off(OUT_A);x=a;}\
5. else {OnRev(OUT_A);Wait(x-a);Off(OUT_A);x=a;}
*「x」が現在地で、「a」が今から移動させる座標。移動後にa...
*まとめと改善点 [#n8304968]
#ref(DSC_0287aichi.png)
このような文字が書くことができた。我ながら上出来だと思う...
ページ名: