2014a/Member/gomibakudan/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
* 相方 [#c9dd7a2a]
gamigami
*ロボット本体の説明 [#k08fa481]
#ref(./IMG_1667.JPG,10%,ご尊顔)
今回作ったロボット。講義にて渡されたマニュアル通りに作っ...
実は元々私が作っていたのは、ここから後輪を抜き光センサー...
相方と同じ構造で走らせなければいけないと知り、泣く泣くお...
#ref(./IMG_1668.JPG,10%,光センサー)
手を加えた光センサー位置。本来のドライブベースよりもさら...
#ref(./kakudo.jpg,60%,説明図)
機体と光センサーの距離の図。黄色い四角形が機体、黄色い四...
#ref(./sensor.jpg,60%,説明図)
光センサー位置の重要さの図。左右の図で機体のタイヤ軸から...
#ref(./IMG_1669.JPG,10%,網振り後)
ピンポン玉捕獲用の機構作動後の姿。モーターに直結した棒を...
*プログラムと説明 [#m43c75fb]
#define set_power_L SetPower(OUT_A,2);SetPower(OUT_C,1);
#define set_power_H SetPower(OUT_A,5);SetPower(OUT_C,4);
モーターの回転速度を調整する為に定義した。
/*以下前進後退のパーツ*/
#define go_forward set_power_H;OnFwd(OUT_AC);//直進
#define turn_right0 set_power_L;OnFwd(OUT_A);OnRev(OUT_C...
#define turn_right1 set_power_L;OnFwd(OUT_A);Off(OUT_C);...
#define turn_left1 set_power_L;Off(OUT_A);OnFwd(OUT_C);/...
#define turn_left0 set_power_L;OnRev(OUT_A);OnFwd(OUT_C)...
これらの動きを光センサーの値に応じて切り替えることで、ラ...
#define STEP 1//一動作にかける時間
#define nMAX 10//ライントレースから他のプログラムに切り...
#define supan 1//何回交差点を通過すればピンポン玉を捕ま...
#define short_break Off(OUT_AC);Wait(20);//プログラムの...
#define CROSS_TIME 50 //交差点通過にかける時間
#define cross_line set_power_L;OnFwd(OUT_AC);Wait(CROSS_...
補足
"STEP"
ライントレースの動作一つにかける時間。何度か弄ったが、最...
"nMAX"
ライントレース中に直角カーブ・交差点を判断する為の値。具...
"CROSS_TIME"
交差点横断に使う時間を決めている値。ロボの構造の変化やプ...
ここからがプログラムの本体である。
猶このプログラムはラインの右側境界を認識するよう作られて...
task main(){
SetSensor(SENSOR_2,SENSOR_LIGHT);//本体のポート2に...
int nOnline=0;//交差点判別に使用するカウンタ
int THRESHOLD=SENSOR_2;//プログラムを走らせ始めた時...
int cross=0;//交差点通過回数を数えるカウンタ
OnFwd(OUT_AC);Wait(50);//ロボが開始地点から外に出る...
光センサー・交差点判別の為の整数を設定すると同時に閾値も...
while(cross<supan){//一回交差点を通過するまで以下の...
"cross"が"supan"以上、つまりは1になった時点で以下の{}内の...
/*黒を続けてnMAX回繰り返すまで、ライントレースを続...
while(nOnline<nMAX){//nOnlineがnMAXになるまでライント...
if(SENSOR_2<THRESHOLD-7){
turn_right0;
nOnline++;
}else{
if(SENSOR_2<THRESHOLD-5){
turn_right1;
}else if(SENSOR_2<THRESHOLD-3){
go_forward;
}else if(SENSOR_2<THRESHOLD-1){
turn_left1;
}else{
turn_left0;
}
nOnline=0;
}
Wait(STEP);
}
"THRESHOLD-7"の条件を満たしている、つまりは光センサーが黒...
short_break;//小休止
turn_left0;Wait(100*STEP);
go_forward;Wait(20*STEP);
if(SENSOR_2<THRESHOLD-7){
PlaySound(SOUND_UP);
set_power_H;OnRev(OUT_AC);Wait(30*STEP);
turn_right0;Wait(60*STEP);
cross_line;
cross++;
}else{
OnRev(OUT_AC);Wait(30*STEP);
turn_right0;Wait(120*STEP);
OnFwd(OUT_AC);Wait(10);
}
nOnline=0;
}
ライントレースのループを抜ける条件が直角カーブか交差点に...
交差点であると判断した際には"cross"の値が1増え、ライント...
Off(OUT_AC);//交差点通過後停止
OnFwd(OUT_B);Wait(18);//網を振る
Off(OUT_B);
一度目の交差点を通過した後、網を振りピンポン玉を捕まえる。
以下、再びライントレースのプログラム。新たに"sh"という交...
int sh=0;
while(sh<3){
while(nOnline<7){
交差点を三回通過するまでライントレース。
ピンポン捕獲前より交差点判断へ移行する条件が"nOnline<7"と...
if(SENSOR_2<THRESHOLD-7){
turn_right0;
nOnline++;
}else{
if(SENSOR_2<THRESHOLD-5){
turn_right1;
}else if(SENSOR_2<THRESHOLD-3){
go_forward;
}else if(SENSOR_2<THRESHOLD-1){
turn_left1;
}else{
turn_left0;
}
nOnline=0;
}
Wait(STEP);
}
short_break;
turn_left0;Wait(100*STEP);
go_forward;Wait(20*STEP);
if(SENSOR_2<THRESHOLD-7){
PlaySound(SOUND_UP);
set_power_H;OnRev(OUT_AC);Wait(30*STEP);
turn_right0;Wait(60*STEP);
cross_line;
sh++;
}else{
OnRev(OUT_AC);Wait(30*STEP);
turn_right0;Wait(120*STEP);
OnFwd(OUT_AC);Wait(10);
}
nOnline=0;
}
OnFwd(OUT_AC);Wait(5);Off(OUT_AC);
OnRev(OUT_B);Wait(30);Off(OUT_B);
}
交差点を三回通過した後に本体を直進させて、慣性で動くピン...
*反省 [#g2674a15]
何よりも相方と機体の構造を一致させて作らなかったことが問...
あとは私のプログラムに関しての反省点が一つ。ピンポン玉の...
終了行:
#contents
* 相方 [#c9dd7a2a]
gamigami
*ロボット本体の説明 [#k08fa481]
#ref(./IMG_1667.JPG,10%,ご尊顔)
今回作ったロボット。講義にて渡されたマニュアル通りに作っ...
実は元々私が作っていたのは、ここから後輪を抜き光センサー...
相方と同じ構造で走らせなければいけないと知り、泣く泣くお...
#ref(./IMG_1668.JPG,10%,光センサー)
手を加えた光センサー位置。本来のドライブベースよりもさら...
#ref(./kakudo.jpg,60%,説明図)
機体と光センサーの距離の図。黄色い四角形が機体、黄色い四...
#ref(./sensor.jpg,60%,説明図)
光センサー位置の重要さの図。左右の図で機体のタイヤ軸から...
#ref(./IMG_1669.JPG,10%,網振り後)
ピンポン玉捕獲用の機構作動後の姿。モーターに直結した棒を...
*プログラムと説明 [#m43c75fb]
#define set_power_L SetPower(OUT_A,2);SetPower(OUT_C,1);
#define set_power_H SetPower(OUT_A,5);SetPower(OUT_C,4);
モーターの回転速度を調整する為に定義した。
/*以下前進後退のパーツ*/
#define go_forward set_power_H;OnFwd(OUT_AC);//直進
#define turn_right0 set_power_L;OnFwd(OUT_A);OnRev(OUT_C...
#define turn_right1 set_power_L;OnFwd(OUT_A);Off(OUT_C);...
#define turn_left1 set_power_L;Off(OUT_A);OnFwd(OUT_C);/...
#define turn_left0 set_power_L;OnRev(OUT_A);OnFwd(OUT_C)...
これらの動きを光センサーの値に応じて切り替えることで、ラ...
#define STEP 1//一動作にかける時間
#define nMAX 10//ライントレースから他のプログラムに切り...
#define supan 1//何回交差点を通過すればピンポン玉を捕ま...
#define short_break Off(OUT_AC);Wait(20);//プログラムの...
#define CROSS_TIME 50 //交差点通過にかける時間
#define cross_line set_power_L;OnFwd(OUT_AC);Wait(CROSS_...
補足
"STEP"
ライントレースの動作一つにかける時間。何度か弄ったが、最...
"nMAX"
ライントレース中に直角カーブ・交差点を判断する為の値。具...
"CROSS_TIME"
交差点横断に使う時間を決めている値。ロボの構造の変化やプ...
ここからがプログラムの本体である。
猶このプログラムはラインの右側境界を認識するよう作られて...
task main(){
SetSensor(SENSOR_2,SENSOR_LIGHT);//本体のポート2に...
int nOnline=0;//交差点判別に使用するカウンタ
int THRESHOLD=SENSOR_2;//プログラムを走らせ始めた時...
int cross=0;//交差点通過回数を数えるカウンタ
OnFwd(OUT_AC);Wait(50);//ロボが開始地点から外に出る...
光センサー・交差点判別の為の整数を設定すると同時に閾値も...
while(cross<supan){//一回交差点を通過するまで以下の...
"cross"が"supan"以上、つまりは1になった時点で以下の{}内の...
/*黒を続けてnMAX回繰り返すまで、ライントレースを続...
while(nOnline<nMAX){//nOnlineがnMAXになるまでライント...
if(SENSOR_2<THRESHOLD-7){
turn_right0;
nOnline++;
}else{
if(SENSOR_2<THRESHOLD-5){
turn_right1;
}else if(SENSOR_2<THRESHOLD-3){
go_forward;
}else if(SENSOR_2<THRESHOLD-1){
turn_left1;
}else{
turn_left0;
}
nOnline=0;
}
Wait(STEP);
}
"THRESHOLD-7"の条件を満たしている、つまりは光センサーが黒...
short_break;//小休止
turn_left0;Wait(100*STEP);
go_forward;Wait(20*STEP);
if(SENSOR_2<THRESHOLD-7){
PlaySound(SOUND_UP);
set_power_H;OnRev(OUT_AC);Wait(30*STEP);
turn_right0;Wait(60*STEP);
cross_line;
cross++;
}else{
OnRev(OUT_AC);Wait(30*STEP);
turn_right0;Wait(120*STEP);
OnFwd(OUT_AC);Wait(10);
}
nOnline=0;
}
ライントレースのループを抜ける条件が直角カーブか交差点に...
交差点であると判断した際には"cross"の値が1増え、ライント...
Off(OUT_AC);//交差点通過後停止
OnFwd(OUT_B);Wait(18);//網を振る
Off(OUT_B);
一度目の交差点を通過した後、網を振りピンポン玉を捕まえる。
以下、再びライントレースのプログラム。新たに"sh"という交...
int sh=0;
while(sh<3){
while(nOnline<7){
交差点を三回通過するまでライントレース。
ピンポン捕獲前より交差点判断へ移行する条件が"nOnline<7"と...
if(SENSOR_2<THRESHOLD-7){
turn_right0;
nOnline++;
}else{
if(SENSOR_2<THRESHOLD-5){
turn_right1;
}else if(SENSOR_2<THRESHOLD-3){
go_forward;
}else if(SENSOR_2<THRESHOLD-1){
turn_left1;
}else{
turn_left0;
}
nOnline=0;
}
Wait(STEP);
}
short_break;
turn_left0;Wait(100*STEP);
go_forward;Wait(20*STEP);
if(SENSOR_2<THRESHOLD-7){
PlaySound(SOUND_UP);
set_power_H;OnRev(OUT_AC);Wait(30*STEP);
turn_right0;Wait(60*STEP);
cross_line;
sh++;
}else{
OnRev(OUT_AC);Wait(30*STEP);
turn_right0;Wait(120*STEP);
OnFwd(OUT_AC);Wait(10);
}
nOnline=0;
}
OnFwd(OUT_AC);Wait(5);Off(OUT_AC);
OnRev(OUT_B);Wait(30);Off(OUT_B);
}
交差点を三回通過した後に本体を直進させて、慣性で動くピン...
*反省 [#g2674a15]
何よりも相方と機体の構造を一致させて作らなかったことが問...
あとは私のプログラムに関しての反省点が一つ。ピンポン玉の...
ページ名: