2018a/Member/yama/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018a/Member]]
#contents
*課題2 [#k917450e]
#ref(2018a/Member/yama/Mission2/課題2の図.png,50%)
Aをスタート
Bを直進
Cで一時停止の後、直進
Dで一時停止の後、Xの空き缶をキャッチしてD地点に戻る
DからEに向かい、Eを直進
Fを左折
Gで一時停止の後、左折
Hで一時停止の後、右折
Iで一時停止の後、右折
Lを直進
Kを直進
Jで一時停止の後、空き缶をYに置きてJに戻りBに向かう
Bで一時停止の後、左折
Aで停止
*ロボット [#c64d1868]
#ref(2018a/Member/yama/Mission2/ロボット2全体.jpg,50%)
ロボットは小回りが利くように小さめに作った。ライトセンサ...
#ref(2018a/Member/yama/Mission2/ロボット2アーム.jpg,50%)
缶をつかむのはアーム型にした。アームが閉じすぎてしまって...
*プログラミング [#h6e08c3d]
**define [#s00c7340]
#define shiro_made SetSensor(SENSOR_2,SENSOR_LIGHT);OnFw...
#define kuro_made OnFwd(OUT_AC);until(SENSOR_2<=42);Off(...
#define sasetu OnFwd(OUT_C);OnRev(OUT_A);Wait(45);Off(OU...
#define usetu OnFwd(OUT_A);OnRev(OUT_C);Wait(45);Off(OUT...
#define tukamu OnFwd(OUT_B);Wait(5);Off(OUT_B); //ア...
#define hanasu OnRev(OUT_B);Wait(5);Off(OUT_B); //ア...
**ライントレースと交差点 [#i9411a74]
ライントレースは5段階に分けた。3段階で分けた場合では、...
ライントレースは、ライトセンサーで地面の色を判断しながら...
sub line1() //左側
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0); //タイマーをリセット
while(FastTimer(0)<28){ //タイマーが0.28...
if(SENSOR_2>=51){ //ライトセンサーが51以...
OnFwd(OUT_A);
OnRev(OUT_C); //右に旋回
Wait(5);
Off(OUT_AC);
ClearTimer(0); //タイマーリセット
}
else if(SENSOR_2>=48){ //ライトセンサーが51未...
OnFwd(OUT_A); //左側の車輪だけを前進し...
Wait(5);
Off(OUT_AC);
ClearTimer(0); //タイマーリセット
}
else if(SENSOR_2>=43){ //ライトセンサーが48未...
OnFwd(OUT_AC); //前進
Wait(5);
Off(OUT_AC);
ClearTimer(0); //タイマーリセット
}
else if(SENSOR_2>=41){ //ライトセンサーが43未...
OnFwd(OUT_C); //右側の車輪だけを前進さ...
Wait(5);
Off(OUT_AC);
}
else{ //ライトセンサーが41未...
OnFwd(OUT_C);
OnRev(OUT_A); //左に旋回
Wait(5);
Off(OUT_AC);
}
}
}
左側のライントレースは、もし地面が「白」だったら右に旋回...
左側を走るライントレースと同じように右側も作った。
sub line0() //右側
{
SetSensor(SENSOR_2,SENSOR_LIGHT); //左側のラ...
ClearTimer(0);
while(FastTimer(0)<28){
if(SENSOR_2>=51){
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(5);
Off(OUT_AC);
ClearTimer(0);
}
else if(SENSOR_2>=48){
OnFwd(OUT_C);
Wait(5);
Off(OUT_AC);
ClearTimer(0);
}
else if(SENSOR_2>=43){
OnFwd(OUT_AC);
Wait(5);
Off(OUT_AC);
ClearTimer(0);
}
else if(SENSOR_2>=41){
OnFwd(OUT_A);
Wait(5);
Off(OUT_AC);
}
else{
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(5);
Off(OUT_AC);
}
}
}
waitを少しの時間だけ途中に入れることで、動作の連続になら...
**プログラム [#n5168aed]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
kuro_made; //スタートしてから黒がくるまで進む
shiro_made; //白になるまで進む
line1(); //左側のライントレース
Wait(100); //1秒間停止
shiro_made; //白になるまで進む,{「C到着」
交差点で止まったら白まで直進し、再びライントレースをやる...
line1(); //左側のライントレース
shiro_made; //白まで進む
Wait(50);
直角に曲がるときは、ただ旋回するだけではうまくいかなかっ...
line0(); //右側のライントレース,「D到着」
Wait(100); //1秒間停止
tukamu; //アームを閉める
Wait(100); //1秒間停止
sasetu; //左旋回90度
sasetu; //左旋回90度
shiro_made; //白まで進む
Wait(100); //1秒間停止
line1(); //左側をライントレース,「E到着」
shiro_made; //白まで進む
line1(); //左側をライントレース,「F到着」
Wait(100); //1秒間停止
sasetu; //左旋回90度
line1(); //左側をライントレース,「G到着」
Wait(20);
shiro_made; //白まで進む
line0(); //右側をライントレース
Wait(20);
shiro_made; //白まで進む
line1(); //左側をライントレース
Wait(20);
shiro_made; //白まで進む
line0(); //右側をライントレース
Wait(100); //1秒間停止
shiro_made; //白まで進む
line1(); //左側をライントレース,「H到着」
Wait(100); //1秒間停止
usetu; //右旋回90度
usetu; //右旋回90度
shiro_made; //白まで進む
line0(); //右側をライントレース
Wait(100); //1秒間停止,「I到着」
line0(); //右側をライントレース,「L到着」
shiro_made; //白まで進む
line0(); //右側をライントレース,「K到着」
shiro_made; //白まで進む
line0(); //右側をライントレース,「J到着」
Wait(100); //1秒間停止
sasetu; //左旋回90度
sasetu; //左旋回90度
hanasu; //アームを開く
usetu; //右旋回90度
usetu; //右旋回90度
shiro_made; //白まで進む
line1(); //左側をライントレース
Wait(100); //1秒間停止,「B到着」
shiro_made; //白まで進む
line0(); //右側をライントレース,「ゴール」
}
*感想 [#ga3572de]
今回はロボットを作るのはそれほど難しくなかった。しかし、...
終了行:
[[2018a/Member]]
#contents
*課題2 [#k917450e]
#ref(2018a/Member/yama/Mission2/課題2の図.png,50%)
Aをスタート
Bを直進
Cで一時停止の後、直進
Dで一時停止の後、Xの空き缶をキャッチしてD地点に戻る
DからEに向かい、Eを直進
Fを左折
Gで一時停止の後、左折
Hで一時停止の後、右折
Iで一時停止の後、右折
Lを直進
Kを直進
Jで一時停止の後、空き缶をYに置きてJに戻りBに向かう
Bで一時停止の後、左折
Aで停止
*ロボット [#c64d1868]
#ref(2018a/Member/yama/Mission2/ロボット2全体.jpg,50%)
ロボットは小回りが利くように小さめに作った。ライトセンサ...
#ref(2018a/Member/yama/Mission2/ロボット2アーム.jpg,50%)
缶をつかむのはアーム型にした。アームが閉じすぎてしまって...
*プログラミング [#h6e08c3d]
**define [#s00c7340]
#define shiro_made SetSensor(SENSOR_2,SENSOR_LIGHT);OnFw...
#define kuro_made OnFwd(OUT_AC);until(SENSOR_2<=42);Off(...
#define sasetu OnFwd(OUT_C);OnRev(OUT_A);Wait(45);Off(OU...
#define usetu OnFwd(OUT_A);OnRev(OUT_C);Wait(45);Off(OUT...
#define tukamu OnFwd(OUT_B);Wait(5);Off(OUT_B); //ア...
#define hanasu OnRev(OUT_B);Wait(5);Off(OUT_B); //ア...
**ライントレースと交差点 [#i9411a74]
ライントレースは5段階に分けた。3段階で分けた場合では、...
ライントレースは、ライトセンサーで地面の色を判断しながら...
sub line1() //左側
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0); //タイマーをリセット
while(FastTimer(0)<28){ //タイマーが0.28...
if(SENSOR_2>=51){ //ライトセンサーが51以...
OnFwd(OUT_A);
OnRev(OUT_C); //右に旋回
Wait(5);
Off(OUT_AC);
ClearTimer(0); //タイマーリセット
}
else if(SENSOR_2>=48){ //ライトセンサーが51未...
OnFwd(OUT_A); //左側の車輪だけを前進し...
Wait(5);
Off(OUT_AC);
ClearTimer(0); //タイマーリセット
}
else if(SENSOR_2>=43){ //ライトセンサーが48未...
OnFwd(OUT_AC); //前進
Wait(5);
Off(OUT_AC);
ClearTimer(0); //タイマーリセット
}
else if(SENSOR_2>=41){ //ライトセンサーが43未...
OnFwd(OUT_C); //右側の車輪だけを前進さ...
Wait(5);
Off(OUT_AC);
}
else{ //ライトセンサーが41未...
OnFwd(OUT_C);
OnRev(OUT_A); //左に旋回
Wait(5);
Off(OUT_AC);
}
}
}
左側のライントレースは、もし地面が「白」だったら右に旋回...
左側を走るライントレースと同じように右側も作った。
sub line0() //右側
{
SetSensor(SENSOR_2,SENSOR_LIGHT); //左側のラ...
ClearTimer(0);
while(FastTimer(0)<28){
if(SENSOR_2>=51){
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(5);
Off(OUT_AC);
ClearTimer(0);
}
else if(SENSOR_2>=48){
OnFwd(OUT_C);
Wait(5);
Off(OUT_AC);
ClearTimer(0);
}
else if(SENSOR_2>=43){
OnFwd(OUT_AC);
Wait(5);
Off(OUT_AC);
ClearTimer(0);
}
else if(SENSOR_2>=41){
OnFwd(OUT_A);
Wait(5);
Off(OUT_AC);
}
else{
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(5);
Off(OUT_AC);
}
}
}
waitを少しの時間だけ途中に入れることで、動作の連続になら...
**プログラム [#n5168aed]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
kuro_made; //スタートしてから黒がくるまで進む
shiro_made; //白になるまで進む
line1(); //左側のライントレース
Wait(100); //1秒間停止
shiro_made; //白になるまで進む,{「C到着」
交差点で止まったら白まで直進し、再びライントレースをやる...
line1(); //左側のライントレース
shiro_made; //白まで進む
Wait(50);
直角に曲がるときは、ただ旋回するだけではうまくいかなかっ...
line0(); //右側のライントレース,「D到着」
Wait(100); //1秒間停止
tukamu; //アームを閉める
Wait(100); //1秒間停止
sasetu; //左旋回90度
sasetu; //左旋回90度
shiro_made; //白まで進む
Wait(100); //1秒間停止
line1(); //左側をライントレース,「E到着」
shiro_made; //白まで進む
line1(); //左側をライントレース,「F到着」
Wait(100); //1秒間停止
sasetu; //左旋回90度
line1(); //左側をライントレース,「G到着」
Wait(20);
shiro_made; //白まで進む
line0(); //右側をライントレース
Wait(20);
shiro_made; //白まで進む
line1(); //左側をライントレース
Wait(20);
shiro_made; //白まで進む
line0(); //右側をライントレース
Wait(100); //1秒間停止
shiro_made; //白まで進む
line1(); //左側をライントレース,「H到着」
Wait(100); //1秒間停止
usetu; //右旋回90度
usetu; //右旋回90度
shiro_made; //白まで進む
line0(); //右側をライントレース
Wait(100); //1秒間停止,「I到着」
line0(); //右側をライントレース,「L到着」
shiro_made; //白まで進む
line0(); //右側をライントレース,「K到着」
shiro_made; //白まで進む
line0(); //右側をライントレース,「J到着」
Wait(100); //1秒間停止
sasetu; //左旋回90度
sasetu; //左旋回90度
hanasu; //アームを開く
usetu; //右旋回90度
usetu; //右旋回90度
shiro_made; //白まで進む
line1(); //左側をライントレース
Wait(100); //1秒間停止,「B到着」
shiro_made; //白まで進む
line0(); //右側をライントレース,「ゴール」
}
*感想 [#ga3572de]
今回はロボットを作るのはそれほど難しくなかった。しかし、...
ページ名: