2015a/Member/morinokumasan/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*はじめに [#u50d6f67]
今回の課題はライントレースロボットで、図のようなコース...
今回は前回と違い、本体の作成は簡単でしたが、プログラム...
#ref(./無題.png,コース)
*ロボット本体 [#i6276637]
**全体 [#r6254f2a]
#ref(./S__35348483.jpg,around,全体)
基本の車の形のものにアームとセンサーを付けた形になって...
センサーが車体から遠いと一度の動作でセンサーが動く距離...
#clear
**アーム [#r7cabf87]
#ref(./image.jpg,around,アーム)
モーター1つで開閉ができるようにしました。モーターを直...
プログラムをこのまま送れるように送受信センサのところに...
#clear
*プログラム [#k56a7f58]
#define turnleft OnFwd(OUT_C);OnRev(OUT_A); //左旋回
#define left OnFwd(OUT_C);Off(OUT_A); //左に曲がる
#define right OnFwd(OUT_A);Off(OUT_C); //右に曲がる
#define turnright OnFwd(OUT_A);OnRev(OUT_C); //右旋回
#define stop2sec Off(OUT_AC);Wait(200); //2秒止まる
//ライントレース用の関数
void linetrase(int t){
ClearTimer(0);
while(FastTimer(0)<t){
if(SENSOR_3<36){
turnright;
}else if(SENSOR_3<39){
right;
Wait(2);
}else{
if(SENSOR_3<47){
OnFwd(OUT_AC);
Wait(3);
}else if(SENSOR_3<50){
left;
Wait(2);
}else{
turnleft;
}
ClearTimer(0);
}
}
}
task main ()
{
SetSensor(SENSOR_3,SENSOR_LIGHT);
int count=0;
ClearTimer(1);
while(count <= 1){
linetrase(28);
if(FastTimer(1)>500||count==0){
count++;
}
ClearTimer(1);
}
stop2sec;
left;
OnFwd(OUT_B);
Wait(20);
Off(OUT_C);
Wait(100);
Off(OUT_B);
linetrase(21);
stop2sec;
linetrase(28);
Off(OUT_AC);
OnRev(OUT_A);
Wait(30);
Off(OUT_A);
OnRev(OUT_B);
Wait(50);
Off(OUT_B);
OnFwd(OUT_AC);
Wait(60);
OnRev(OUT_AC);
Wait(60);
Off(OUT_AC);
}
*説明 [#kdc3ad86]
**定義 [#uf43dbf6]
まずは以下の通り全方向に動くための定義をしました。
#define turnleft OnFwd(OUT_C);OnRev(OUT_A); //左旋回
#define left OnFwd(OUT_C);Off(OUT_A); //左に曲がる
#define right OnFwd(OUT_A);Off(OUT_C); //右に曲がる
#define turnright OnFwd(OUT_A);OnRev(OUT_C); //右旋回
さらに交差点で2秒止まるための定義をしました。
#define stop2sec Off(OUT_AC);Wait(200); //2秒止まる
そして、交差点までライントレースするプログラムを関数で...
Wait関数を少し入れることでなるべく滑らかに動くようにし...
void linetrase(int t){
ClearTimer(0);
while(FastTimer(0)<t){
if(SENSOR_3<36){
turnright;
}else if(SENSOR_3<39){
right;
Wait(2);
}else{
if(SENSOR_3<47){
OnFwd(OUT_AC);
Wait(3);
}else if(SENSOR_3<50){
left;
Wait(2);
}else{
turnleft;
}
ClearTimer(0);
}
}
}
**動作 [#e1234c3b]
#ref(./コース.png,around,right,コース)
右の図の様にライントレースしました。&br;
+右に大きく曲がる場所が交差点までに一度あるので、一度目の...
int count=0;
ClearTimer(1);
while(count <= 1){
linetrase(28);
if(FastTimer(1)>500||count==0){
count++;
}
ClearTimer(1);
}
+2度目の大きく曲がるところを認識したら、2秒間止まってか...
stop2sec;
left;
OnFwd(OUT_B); //アームを閉じる
Wait(20);
Off(OUT_C);
Wait(100);
Off(OUT_B);
+ライントレースを再び初めて、角を認識したら2秒間止まる。
linetrase(21);
stop2sec;
+ライントレースを再び始め、角を認識したら後ろに下がり、ア...
linetrase(28);
Off(OUT_AC);
OnRev(OUT_A); //後ろに下がる
Wait(30);
Off(OUT_A);
OnRev(OUT_B); //アームを開く
Wait(50);
Off(OUT_B);
OnFwd(OUT_AC); //シュートする
Wait(60);
OnRev(OUT_AC);
Wait(60);
Off(OUT_AC);
#clear
*結果・感想 [#rf1c4458]
前回の課題の時より慣れていたためかすぐに完成させること...
実際のロボット動きは動画にしたので見ていただきたいです...
グループで製作ということで、3人で相談しあいながらなん...
ロボコンのページを作りました。[[こちら>2015a/Member/mor...
終了行:
目次
#contents
*はじめに [#u50d6f67]
今回の課題はライントレースロボットで、図のようなコース...
今回は前回と違い、本体の作成は簡単でしたが、プログラム...
#ref(./無題.png,コース)
*ロボット本体 [#i6276637]
**全体 [#r6254f2a]
#ref(./S__35348483.jpg,around,全体)
基本の車の形のものにアームとセンサーを付けた形になって...
センサーが車体から遠いと一度の動作でセンサーが動く距離...
#clear
**アーム [#r7cabf87]
#ref(./image.jpg,around,アーム)
モーター1つで開閉ができるようにしました。モーターを直...
プログラムをこのまま送れるように送受信センサのところに...
#clear
*プログラム [#k56a7f58]
#define turnleft OnFwd(OUT_C);OnRev(OUT_A); //左旋回
#define left OnFwd(OUT_C);Off(OUT_A); //左に曲がる
#define right OnFwd(OUT_A);Off(OUT_C); //右に曲がる
#define turnright OnFwd(OUT_A);OnRev(OUT_C); //右旋回
#define stop2sec Off(OUT_AC);Wait(200); //2秒止まる
//ライントレース用の関数
void linetrase(int t){
ClearTimer(0);
while(FastTimer(0)<t){
if(SENSOR_3<36){
turnright;
}else if(SENSOR_3<39){
right;
Wait(2);
}else{
if(SENSOR_3<47){
OnFwd(OUT_AC);
Wait(3);
}else if(SENSOR_3<50){
left;
Wait(2);
}else{
turnleft;
}
ClearTimer(0);
}
}
}
task main ()
{
SetSensor(SENSOR_3,SENSOR_LIGHT);
int count=0;
ClearTimer(1);
while(count <= 1){
linetrase(28);
if(FastTimer(1)>500||count==0){
count++;
}
ClearTimer(1);
}
stop2sec;
left;
OnFwd(OUT_B);
Wait(20);
Off(OUT_C);
Wait(100);
Off(OUT_B);
linetrase(21);
stop2sec;
linetrase(28);
Off(OUT_AC);
OnRev(OUT_A);
Wait(30);
Off(OUT_A);
OnRev(OUT_B);
Wait(50);
Off(OUT_B);
OnFwd(OUT_AC);
Wait(60);
OnRev(OUT_AC);
Wait(60);
Off(OUT_AC);
}
*説明 [#kdc3ad86]
**定義 [#uf43dbf6]
まずは以下の通り全方向に動くための定義をしました。
#define turnleft OnFwd(OUT_C);OnRev(OUT_A); //左旋回
#define left OnFwd(OUT_C);Off(OUT_A); //左に曲がる
#define right OnFwd(OUT_A);Off(OUT_C); //右に曲がる
#define turnright OnFwd(OUT_A);OnRev(OUT_C); //右旋回
さらに交差点で2秒止まるための定義をしました。
#define stop2sec Off(OUT_AC);Wait(200); //2秒止まる
そして、交差点までライントレースするプログラムを関数で...
Wait関数を少し入れることでなるべく滑らかに動くようにし...
void linetrase(int t){
ClearTimer(0);
while(FastTimer(0)<t){
if(SENSOR_3<36){
turnright;
}else if(SENSOR_3<39){
right;
Wait(2);
}else{
if(SENSOR_3<47){
OnFwd(OUT_AC);
Wait(3);
}else if(SENSOR_3<50){
left;
Wait(2);
}else{
turnleft;
}
ClearTimer(0);
}
}
}
**動作 [#e1234c3b]
#ref(./コース.png,around,right,コース)
右の図の様にライントレースしました。&br;
+右に大きく曲がる場所が交差点までに一度あるので、一度目の...
int count=0;
ClearTimer(1);
while(count <= 1){
linetrase(28);
if(FastTimer(1)>500||count==0){
count++;
}
ClearTimer(1);
}
+2度目の大きく曲がるところを認識したら、2秒間止まってか...
stop2sec;
left;
OnFwd(OUT_B); //アームを閉じる
Wait(20);
Off(OUT_C);
Wait(100);
Off(OUT_B);
+ライントレースを再び初めて、角を認識したら2秒間止まる。
linetrase(21);
stop2sec;
+ライントレースを再び始め、角を認識したら後ろに下がり、ア...
linetrase(28);
Off(OUT_AC);
OnRev(OUT_A); //後ろに下がる
Wait(30);
Off(OUT_A);
OnRev(OUT_B); //アームを開く
Wait(50);
Off(OUT_B);
OnFwd(OUT_AC); //シュートする
Wait(60);
OnRev(OUT_AC);
Wait(60);
Off(OUT_AC);
#clear
*結果・感想 [#rf1c4458]
前回の課題の時より慣れていたためかすぐに完成させること...
実際のロボット動きは動画にしたので見ていただきたいです...
グループで製作ということで、3人で相談しあいながらなん...
ロボコンのページを作りました。[[こちら>2015a/Member/mor...
ページ名: