2019b/Member/Hayashi/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2019b/Member]]
#contents
*課題1 [#aace72a7]
相方の似顔絵を描くロボットを作る
*ロボットの説明 [#s2e22e5b] [#b23454de]
このロボットを動かして,以下の順番で描く
+まず,顔の輪郭を描く
+次に,口を描く
+そして,目を描く
#ref(005.JPG)
このロボットを使う上で,最初は顔の輪郭をカクカクにしよう...
#ref(001.JPG)
このロボットでは,下写真の,下の三つのタイヤで移動するよ...
このロボットは,前輪の位置でペンが上がったり下がったりで...
欠点としては,後ろのタイヤ(モーターの使わない部分)を最初...
*プログラムの説明 [#l97137b4]
**使用したプログラム [#l2d40185]
#define SPEED 30
#define go6 OnFwd(OUT_BC,SPEED);Wait(1500);Off(OUT_BC);
#define go2 OnFwd(OUT_BC,SPEED);Wait(500);Off(OUT_BC);
#define go1 OnFwd(OUT_BC,SPEED);Wait(300);Off(OUT_BC);
float GetAngle(float d)
{
const float diameter = 5.5;
const float distance=12;
float ang = (distance*d)/diameter;
return ang;
}
task main()
{
go6;
int angle1 = GetAngle(360);
RotateMotor(OUT_B,SPEED,angle1);
go6;
RotateMotor(OUT_B,SPEED,angle1);
RotateMotor(OUT_A,SPEED,30);
int angle2 = GetAngle(90);
RotateMotorEx(OUT_BC,SPEED,angle2,-100,true,true);
go2;
RotateMotor(OUT_A,-SPEED,30);
go2;
RotateMotor(OUT_A,SPEED,30);
go2;
int angle3 = GetAngle(120);
RotateMotorEx(OUT_BC,SPEED,angle2,100,true,true);
go2;
RotateMotorEx(OUT_BC,SPEED,angle2,100,true,true);
go2;
RotateMotor(OUT_A,-SPEED,30);
go2;
RotateMotor(OUT_A,SPEED,30);
go1;
RotateMotor(OUT_A,-SPEED,30);
go2;
RotateMotor(OUT_A,SPEED,30);
}
**使ったもの [#q6b032e0]
関数;
float GetAngle(float d)
{
const float diameter = 5.5;
const float distance=12;
float ang = (distance*d)/diameter;
return ang;
}
車体を回す角度をこの関数によって,設定しました.
定義;
#define SPEED 30
#define go6 OnFwd(OUT_BC,SPEED);Wait(1500);Off(OUT_BC);
#define go2 OnFwd(OUT_BC,SPEED);Wait(500);Off(OUT_BC);
#define go1 OnFwd(OUT_BC,SPEED);Wait(300);Off(OUT_BC);
go6,go2,go1,というふうに直進する距離や,速さを定義しまし...
taskmainの仕組み;
#ref(004_LI.jpg)
go6;
int angle1 = GetAngle(360);
RotateMotor(OUT_B,SPEED,angle1);
まず,顔の輪郭の縦の長い部分?→?,頭の部分?→?までを描く
go6;
RotateMotor(OUT_B,SPEED,angle1);
そして,?→?→?で,元の位置に戻る
RotateMotor(OUT_A,SPEED,30);
int angle2 = GetAngle(90);
RotateMotorEx(OUT_BC,SPEED,angle2,-100,true,true);
go2;
RotateMotor(OUT_A,-SPEED,30);
go2;
RotateMotor(OUT_A,SPEED,30);
go2;
ペンを上げて,?で90度左回転した後,?→?の方向で,少しだけ...
RotateMotorEx(OUT_BC,SPEED,angle2,100,true,true);
go2;
?の位置で,90度右回転し,?→?まで移動
RotateMotorEx(OUT_BC,SPEED,angle2,100,true,true);
go2;
RotateMotor(OUT_A,-SPEED,30);
go2;
RotateMotor(OUT_A,SPEED,30);
go1;
RotateMotor(OUT_A,-SPEED,30);
go2;
RotateMotor(OUT_A,SPEED,30);
?の位置で90度右回転し,少し進んで,ペンを降ろし,左目を描...
*まとめ [#t7e4c65a]
車体をなるべく軽くすることで,曲がる負担を減らすことが大...
終了行:
[[2019b/Member]]
#contents
*課題1 [#aace72a7]
相方の似顔絵を描くロボットを作る
*ロボットの説明 [#s2e22e5b] [#b23454de]
このロボットを動かして,以下の順番で描く
+まず,顔の輪郭を描く
+次に,口を描く
+そして,目を描く
#ref(005.JPG)
このロボットを使う上で,最初は顔の輪郭をカクカクにしよう...
#ref(001.JPG)
このロボットでは,下写真の,下の三つのタイヤで移動するよ...
このロボットは,前輪の位置でペンが上がったり下がったりで...
欠点としては,後ろのタイヤ(モーターの使わない部分)を最初...
*プログラムの説明 [#l97137b4]
**使用したプログラム [#l2d40185]
#define SPEED 30
#define go6 OnFwd(OUT_BC,SPEED);Wait(1500);Off(OUT_BC);
#define go2 OnFwd(OUT_BC,SPEED);Wait(500);Off(OUT_BC);
#define go1 OnFwd(OUT_BC,SPEED);Wait(300);Off(OUT_BC);
float GetAngle(float d)
{
const float diameter = 5.5;
const float distance=12;
float ang = (distance*d)/diameter;
return ang;
}
task main()
{
go6;
int angle1 = GetAngle(360);
RotateMotor(OUT_B,SPEED,angle1);
go6;
RotateMotor(OUT_B,SPEED,angle1);
RotateMotor(OUT_A,SPEED,30);
int angle2 = GetAngle(90);
RotateMotorEx(OUT_BC,SPEED,angle2,-100,true,true);
go2;
RotateMotor(OUT_A,-SPEED,30);
go2;
RotateMotor(OUT_A,SPEED,30);
go2;
int angle3 = GetAngle(120);
RotateMotorEx(OUT_BC,SPEED,angle2,100,true,true);
go2;
RotateMotorEx(OUT_BC,SPEED,angle2,100,true,true);
go2;
RotateMotor(OUT_A,-SPEED,30);
go2;
RotateMotor(OUT_A,SPEED,30);
go1;
RotateMotor(OUT_A,-SPEED,30);
go2;
RotateMotor(OUT_A,SPEED,30);
}
**使ったもの [#q6b032e0]
関数;
float GetAngle(float d)
{
const float diameter = 5.5;
const float distance=12;
float ang = (distance*d)/diameter;
return ang;
}
車体を回す角度をこの関数によって,設定しました.
定義;
#define SPEED 30
#define go6 OnFwd(OUT_BC,SPEED);Wait(1500);Off(OUT_BC);
#define go2 OnFwd(OUT_BC,SPEED);Wait(500);Off(OUT_BC);
#define go1 OnFwd(OUT_BC,SPEED);Wait(300);Off(OUT_BC);
go6,go2,go1,というふうに直進する距離や,速さを定義しまし...
taskmainの仕組み;
#ref(004_LI.jpg)
go6;
int angle1 = GetAngle(360);
RotateMotor(OUT_B,SPEED,angle1);
まず,顔の輪郭の縦の長い部分?→?,頭の部分?→?までを描く
go6;
RotateMotor(OUT_B,SPEED,angle1);
そして,?→?→?で,元の位置に戻る
RotateMotor(OUT_A,SPEED,30);
int angle2 = GetAngle(90);
RotateMotorEx(OUT_BC,SPEED,angle2,-100,true,true);
go2;
RotateMotor(OUT_A,-SPEED,30);
go2;
RotateMotor(OUT_A,SPEED,30);
go2;
ペンを上げて,?で90度左回転した後,?→?の方向で,少しだけ...
RotateMotorEx(OUT_BC,SPEED,angle2,100,true,true);
go2;
?の位置で,90度右回転し,?→?まで移動
RotateMotorEx(OUT_BC,SPEED,angle2,100,true,true);
go2;
RotateMotor(OUT_A,-SPEED,30);
go2;
RotateMotor(OUT_A,SPEED,30);
go1;
RotateMotor(OUT_A,-SPEED,30);
go2;
RotateMotor(OUT_A,SPEED,30);
?の位置で90度右回転し,少し進んで,ペンを降ろし,左目を描...
*まとめ [#t7e4c65a]
車体をなるべく軽くすることで,曲がる負担を減らすことが大...
ページ名: