2016a/Member/ayemos/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2016a/Member]]
目次
#contents
*課題内容 [#nc7a5ee6]
最終課題は前回の課題で使用したライントレースロボ専用コー...
しつつ紙コップを持ち運び、積み重ねる。という一連の動作を...
今回はロボコンと言うことで、大ざっぱなルールとしては2つ...
*ロボットについて [#ba46ea34]
私達は初めライントレースが可能なアーム型のロボットの一体...
&ref(2016a/Member/ayemos/Mission3/IMG_2049.JPG,25%);
小型ロボット。
紙コップを上から振り下ろした輪で囲むことで運搬をすること...
#ref(2016a/Member/ayemos/Mission3/IMG_2054.JPG,25%)
アーム型ロボット。
土台に接続されている光センサーによって紙コップの接近を察...
*プログラミングについて(小型) [#if35a0e0]
#define THRESHOLD 42 //閾値
#define gofw OnFwd(OUT_AC);Wait(5); //前へ5秒すすむ
#define turn_left Off(OUT_A); OnFwd(OUT_C); //左へ...
#define senkai_left OnFwd(OUT_C);OnRev(OUT_A);Wait(63); ...
#define turn_right OnFwd(OUT_A); Off(OUT_C); //右...
#define senkai_right OnFwd(OUT_A);OnRev(OUT_C);Wait(60);...
#define senkai OnFwd(OUT_A);OnRev(OUT_C);Wait(90); //...
#define STEP 1 //0.1秒ごとに色を認識
#define B_up OnFwd(OUT_B);Wait(80);Off(OUT_B); //囲い...
#define B_down OnRev(OUT_B);Wait(80);Off(OUT_B); //囲...
#define back OnRev(OUT_AC);Wait(move_time);Off(OUT_AC); ...
#define tyousei_l(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t); ...
#define tyousei_r(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t); ...
#define watasu OnFwd(OUT_AC);Wait(120);Off(OUT_AC);OnRev...
intint move_time; //もう一つのロボへ紙コップを渡す
定義付け。
前回利用したライントレースロボットをベースとしている。
今回は閾値を変更することでより誤作動の少ない物へと改良す...
int move_time; ...
void line_follow(int t)
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
ClearTimer(0);
while (Timer(0)<t) {
if (SENSOR_2 < THRESHOLD){
turn_left;
} else {
turn_right;
}
Wait(STEP);
}Off(OUT_AC);
}
sub crossing_fwd()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int n=0;
while(n<10){
if (SENSOR_2 < THRESHOLD){
turn_left;n++;
} else {
turn_right;n=0;
}
Wait(STEP);
}Off(OUT_AC);Wait(100);gofw;
}
sub crossing_stop()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int n=0;
while(n<10){
if (SENSOR_2 < THRESHOLD){
turn_left;n++;
} else {
turn_right;n=0;
}
Wait(STEP);
}Off(OUT_AC);Wait(100);
}
sub crossing_right()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int n=0;
while(n<10){
if (SENSOR_2 < THRESHOLD){
turn_left;n++;
} else {
turn_right;n=0;
}
Wait(STEP);
}Off(OUT_AC);Wait(100);senkai_right;OnFwd(OUT_AC);Wait...
}
sub crossing_left()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int n=0;
while(n<10){
if (SENSOR_2 < THRESHOLD){
turn_left;n++;
} else {
turn_right;n=0;
}
Wait(STEP);
}Off(OUT_AC);Wait(100);senkai_left;
}
task main()
{
move_time=50; //後退の時間を0.5秒に設定
line_follow(105);
tyousei_l(30); //急カーブ手前の角度調整
crossing_left(); //Pを左折
line_follow(50);
crossing_right(); //Sを右折
crossing_stop(); //Cで停止
tyousei_r(20); //紙コップを取るための角度調整
back; //1つ目の紙コップを取るための後...
B_down;
senkai;
line_follow(50);
crossing_left(); //Sを左折
line_follow(50);
crossing_fwd(); //Pを直進
line_follow(25);
tyousei_l(40); //急カーブ手前の角度調整
crossing_fwd(); //Rを直進
tyousei_r(15); //紙コップを渡す場所の調整
watasu;
tyousei_l(25); //旋回前の調整
senkai;
B_up;
repeat(2)
{
OnFwd(OUT_AC);Wait(100); //Rをこし、トレースしやすくする...
line_follow(50);
crossing_fwd(); //Pを直進
crossing_left(); //Sで左折
crossing_stop(); //Dで停止
tyousei_r(20); //紙コップを取るための角度調整
back; //1つ目の紙コップを取るための後...
B_down;
senkai;
crossing_right(); //Sを右折
crossing_fwd(); //Pを直進
line_follow(25);
tyousei_l(40); //急カーブ手前の角度調整
crossing_fwd(); //Rを直進
tyousei_r(15); //紙コップを渡す場所の調整
watasu;
tyousei_l(25); //旋回前の調整
senkai;
B_up;
OnFwd(OUT_AC);Wait(100); //Rをこし、トレースしやすくする...
line_follow(20);
crossing_fwd(); //Pを直進
crossing_right(); //Sを右折
crossing_stop(); //Cで停止
tyousei_r(20); //紙コップを取るための角度調整
back;move_time=move_time-25; //3つ目、5つ目の紙コップを...
B_down;
senkai;
line_follow(50);
crossing_left(); //Sを左折
line_follow(50);
crossing_fwd(); //Pを直進
line_follow(25);
tyousei_l(40); //急カーブ手前の角度調整
crossing_fwd(); //Rを直進
tyousei_r(15); //紙コップを渡す場所の調整
watasu;
tyousei_l(25); //旋回前の調整
senkai;
B_up;
}
OnFwd(OUT_AC);Wait(100); //Rをこし、トレースしやすくする...
line_follow(50);
crossing_fwd(); //Pを直進
crossing_left(); //Sを左折
crossing_stop(); //Dで停止
tyousei_r(20); //紙コップを取るための角度調整
back;
B_down;
senkai;
crossing_right(); //Sを右折
crossing_fwd(); //Pを直進
line_follow(25);
tyousei_l(40); //急カーブ手前の角度調整
crossing_fwd(); //Rを直進
tyousei_r(15); //紙コップを渡す場所の調整
watasu;
senkai;
line_follow(15);
crossing_right(); //Rを右折
OnFwd(OUT_AC);Wait(200);Off(OUT_AC); //円に向かう
}
全体のプログラム。C→B→D→Bを三回行き来しBで待機しているア...
もとへと紙コップを運ぶようにプログラミングされている。
*プログラムについて(アーム型) [#w61c455b]
#define nigiru OnFwd(OUT_A);Wait(move_timeA);Off(OUT_A);...
#define hanasu OnRev(OUT_A);Wait(350);Off(OUT_A); ...
#define arm_up OnFwd(OUT_C);Wait(move_timeB);Off(OUT_C);...
#define arm_down OnRev(OUT_C);Wait(500);Off(OUT_C); ...
#define s_arm_down OnRev(OUT_C);Wait(200);Off(OUT_C); ...
int move_timeA; ...
int move_timeB; ...
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
int n=0; //紙コップを...
move_timeA=400; //アームを閉...
move_timeB=800; //アームを上...
while(n<=4){
if(SENSOR_1>50){
s_arm_down;hanasu;arm_down; //紙コップを...
nigiru;move_timeB=move_timeB+80; //アームを閉...
arm_up;move_timeA=move_timeA+1; //紙コップを...
n++; //カウンター...
}
}
s_arm_down;hanasu;arm_up;Off(OUT_A); //6つ目の紙コ...
}
Bに固定されたまま位置は移動しない。アームを駆使して紙コッ...
*結果 [#od296589]
基本得点 0点
技術点 10.2点
___________________
合計 10.2点
*感想 [#v6f77261]
今回の課題においては、人の集まりが非常に悪く、かつ一人一...
結果として自分は小さなサポートや手伝いをしていた程度でロ...
苦労させらたことは、アーム型ロボットの持ち上げ、重ねる動...
小型ロボットとの連携が非常に重要になっているため、少しの...
ロボットの不正確さを初めて痛感した課題でもあったと思う。
それでも本番では比較的高評価を得られたことや、自分たちで...
全体として全ての課題において非常に大変な思いをしてやって...
楽しかったことも事実であり。なにより自分でもロボットをプ...
私は機械システム工学科ということもあり、この経験は後々き...
非常に有意義な時間を過ごせた。
終了行:
[[2016a/Member]]
目次
#contents
*課題内容 [#nc7a5ee6]
最終課題は前回の課題で使用したライントレースロボ専用コー...
しつつ紙コップを持ち運び、積み重ねる。という一連の動作を...
今回はロボコンと言うことで、大ざっぱなルールとしては2つ...
*ロボットについて [#ba46ea34]
私達は初めライントレースが可能なアーム型のロボットの一体...
&ref(2016a/Member/ayemos/Mission3/IMG_2049.JPG,25%);
小型ロボット。
紙コップを上から振り下ろした輪で囲むことで運搬をすること...
#ref(2016a/Member/ayemos/Mission3/IMG_2054.JPG,25%)
アーム型ロボット。
土台に接続されている光センサーによって紙コップの接近を察...
*プログラミングについて(小型) [#if35a0e0]
#define THRESHOLD 42 //閾値
#define gofw OnFwd(OUT_AC);Wait(5); //前へ5秒すすむ
#define turn_left Off(OUT_A); OnFwd(OUT_C); //左へ...
#define senkai_left OnFwd(OUT_C);OnRev(OUT_A);Wait(63); ...
#define turn_right OnFwd(OUT_A); Off(OUT_C); //右...
#define senkai_right OnFwd(OUT_A);OnRev(OUT_C);Wait(60);...
#define senkai OnFwd(OUT_A);OnRev(OUT_C);Wait(90); //...
#define STEP 1 //0.1秒ごとに色を認識
#define B_up OnFwd(OUT_B);Wait(80);Off(OUT_B); //囲い...
#define B_down OnRev(OUT_B);Wait(80);Off(OUT_B); //囲...
#define back OnRev(OUT_AC);Wait(move_time);Off(OUT_AC); ...
#define tyousei_l(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t); ...
#define tyousei_r(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t); ...
#define watasu OnFwd(OUT_AC);Wait(120);Off(OUT_AC);OnRev...
intint move_time; //もう一つのロボへ紙コップを渡す
定義付け。
前回利用したライントレースロボットをベースとしている。
今回は閾値を変更することでより誤作動の少ない物へと改良す...
int move_time; ...
void line_follow(int t)
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
ClearTimer(0);
while (Timer(0)<t) {
if (SENSOR_2 < THRESHOLD){
turn_left;
} else {
turn_right;
}
Wait(STEP);
}Off(OUT_AC);
}
sub crossing_fwd()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int n=0;
while(n<10){
if (SENSOR_2 < THRESHOLD){
turn_left;n++;
} else {
turn_right;n=0;
}
Wait(STEP);
}Off(OUT_AC);Wait(100);gofw;
}
sub crossing_stop()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int n=0;
while(n<10){
if (SENSOR_2 < THRESHOLD){
turn_left;n++;
} else {
turn_right;n=0;
}
Wait(STEP);
}Off(OUT_AC);Wait(100);
}
sub crossing_right()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int n=0;
while(n<10){
if (SENSOR_2 < THRESHOLD){
turn_left;n++;
} else {
turn_right;n=0;
}
Wait(STEP);
}Off(OUT_AC);Wait(100);senkai_right;OnFwd(OUT_AC);Wait...
}
sub crossing_left()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
int n=0;
while(n<10){
if (SENSOR_2 < THRESHOLD){
turn_left;n++;
} else {
turn_right;n=0;
}
Wait(STEP);
}Off(OUT_AC);Wait(100);senkai_left;
}
task main()
{
move_time=50; //後退の時間を0.5秒に設定
line_follow(105);
tyousei_l(30); //急カーブ手前の角度調整
crossing_left(); //Pを左折
line_follow(50);
crossing_right(); //Sを右折
crossing_stop(); //Cで停止
tyousei_r(20); //紙コップを取るための角度調整
back; //1つ目の紙コップを取るための後...
B_down;
senkai;
line_follow(50);
crossing_left(); //Sを左折
line_follow(50);
crossing_fwd(); //Pを直進
line_follow(25);
tyousei_l(40); //急カーブ手前の角度調整
crossing_fwd(); //Rを直進
tyousei_r(15); //紙コップを渡す場所の調整
watasu;
tyousei_l(25); //旋回前の調整
senkai;
B_up;
repeat(2)
{
OnFwd(OUT_AC);Wait(100); //Rをこし、トレースしやすくする...
line_follow(50);
crossing_fwd(); //Pを直進
crossing_left(); //Sで左折
crossing_stop(); //Dで停止
tyousei_r(20); //紙コップを取るための角度調整
back; //1つ目の紙コップを取るための後...
B_down;
senkai;
crossing_right(); //Sを右折
crossing_fwd(); //Pを直進
line_follow(25);
tyousei_l(40); //急カーブ手前の角度調整
crossing_fwd(); //Rを直進
tyousei_r(15); //紙コップを渡す場所の調整
watasu;
tyousei_l(25); //旋回前の調整
senkai;
B_up;
OnFwd(OUT_AC);Wait(100); //Rをこし、トレースしやすくする...
line_follow(20);
crossing_fwd(); //Pを直進
crossing_right(); //Sを右折
crossing_stop(); //Cで停止
tyousei_r(20); //紙コップを取るための角度調整
back;move_time=move_time-25; //3つ目、5つ目の紙コップを...
B_down;
senkai;
line_follow(50);
crossing_left(); //Sを左折
line_follow(50);
crossing_fwd(); //Pを直進
line_follow(25);
tyousei_l(40); //急カーブ手前の角度調整
crossing_fwd(); //Rを直進
tyousei_r(15); //紙コップを渡す場所の調整
watasu;
tyousei_l(25); //旋回前の調整
senkai;
B_up;
}
OnFwd(OUT_AC);Wait(100); //Rをこし、トレースしやすくする...
line_follow(50);
crossing_fwd(); //Pを直進
crossing_left(); //Sを左折
crossing_stop(); //Dで停止
tyousei_r(20); //紙コップを取るための角度調整
back;
B_down;
senkai;
crossing_right(); //Sを右折
crossing_fwd(); //Pを直進
line_follow(25);
tyousei_l(40); //急カーブ手前の角度調整
crossing_fwd(); //Rを直進
tyousei_r(15); //紙コップを渡す場所の調整
watasu;
senkai;
line_follow(15);
crossing_right(); //Rを右折
OnFwd(OUT_AC);Wait(200);Off(OUT_AC); //円に向かう
}
全体のプログラム。C→B→D→Bを三回行き来しBで待機しているア...
もとへと紙コップを運ぶようにプログラミングされている。
*プログラムについて(アーム型) [#w61c455b]
#define nigiru OnFwd(OUT_A);Wait(move_timeA);Off(OUT_A);...
#define hanasu OnRev(OUT_A);Wait(350);Off(OUT_A); ...
#define arm_up OnFwd(OUT_C);Wait(move_timeB);Off(OUT_C);...
#define arm_down OnRev(OUT_C);Wait(500);Off(OUT_C); ...
#define s_arm_down OnRev(OUT_C);Wait(200);Off(OUT_C); ...
int move_timeA; ...
int move_timeB; ...
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
int n=0; //紙コップを...
move_timeA=400; //アームを閉...
move_timeB=800; //アームを上...
while(n<=4){
if(SENSOR_1>50){
s_arm_down;hanasu;arm_down; //紙コップを...
nigiru;move_timeB=move_timeB+80; //アームを閉...
arm_up;move_timeA=move_timeA+1; //紙コップを...
n++; //カウンター...
}
}
s_arm_down;hanasu;arm_up;Off(OUT_A); //6つ目の紙コ...
}
Bに固定されたまま位置は移動しない。アームを駆使して紙コッ...
*結果 [#od296589]
基本得点 0点
技術点 10.2点
___________________
合計 10.2点
*感想 [#v6f77261]
今回の課題においては、人の集まりが非常に悪く、かつ一人一...
結果として自分は小さなサポートや手伝いをしていた程度でロ...
苦労させらたことは、アーム型ロボットの持ち上げ、重ねる動...
小型ロボットとの連携が非常に重要になっているため、少しの...
ロボットの不正確さを初めて痛感した課題でもあったと思う。
それでも本番では比較的高評価を得られたことや、自分たちで...
全体として全ての課題において非常に大変な思いをしてやって...
楽しかったことも事実であり。なにより自分でもロボットをプ...
私は機械システム工学科ということもあり、この経験は後々き...
非常に有意義な時間を過ごせた。
ページ名: