2015a/Member/noname/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2015a/MemberOnly]]
*ライントレース [#g3231d40]
**課題 [#k1a5b0b0]
&ref(./2015a-mission2.png,75%);
A地点からB地点へ (P三叉路およびQ交差点はともに直進)黒い線...
そして、途中(P地点とQ地点)の間においたボール(ピンポン玉ま...
可能であれば、A,B,Cのそれぞれにエリアに入る三叉路付近から...
**ロボットの構成 [#eea9b114]
***ロボットの基本構造 [#z5f78646]
ロボットの基本的な構造は、右回転、左回転がしやすいので説...
***光センサーの位置 [#q8d1a5ec]
左右の中心、前後の中心より前の位置にセットした。中心より...
***籠 [#k859a293]
ボールをキャッチする装置には籠を使った。籠降ろしてボール...
&ref(./IMG_1372[1].jpg,15%);
**プログラム [#d1b6340a]
***定義 [#b98a1e93]
#define IN 40 ...
#define OUT 45 ...
#define go_forward OnFwd(OUT_AC); ...
#define right OnRev(OUT_C); OnFwd(OUT_A); ...
#define left OnFwd(OUT_C); OnRev(OUT_A); ...
#define STEP 1 ...
#define short_break Off(OUT_AC); Wait(200); ...
#define CROSS_TIME 20 ...
#define cross_line go_forward;Wait(CROSS_TIME);short_bre...
#define nMAX 8 ...
#define DOWN OnFwd(OUT_B);Wait(40);Off(OUT_B); ...
#define UP OnRev(OUT_B);Wait(40);Off(OUT_B); ...
#define shot go_forward;Wait(100); ...
***本体プログラム [#x65f5bf1]
task main(){
SetSensor(SENSOR_2, SENSOR_LIGHT);
int nOnline=0; // 続けて線上になった回数
while (nOnline <nMAX) { //線上を続けてnMAX回繰り...
if (SENSOR_2 < IN){ // 線上なら
right; // 右へ
nOnline++; //カウンタ増やす
}
else {
if (SENSOR_2 < OUT){ // 境界付近なら
go_forward; // 直進
}
else { //線から外れれば
left; //左へ
}
nOnline=0; //カウンタリセット
}
Wait(STEP);
}
nOnline=0; //カウンタリセット
}
while (nOnline <nMAX) { //線上を続けてnMAX回繰り...
if (SENSOR_2 < IN){ // 線上なら
right; // 右へ
nOnline++; //カウンタ増やす
}
else {
if (SENSOR_2 < OUT){ // 境界付近なら
go_forward // 直進
}
else { //線から外れれば
left; //左へ
}
nOnline=0; //カウンタリセット
}
Wait(STEP);
}
short_break; //小休止
right;Wait(35); //方向修正
short_break; //小休止
DOWN; //籠を下げ捕球
left;Wait(30); //方向修正
short_break; //小休止
cross_line; //交差点を渡る
nOnline=0; //カウンタリセット
}
while (nOnline <nMAX) { //黒を続けてnMAX回繰り返...
if (SENSOR_2 < IN){ // 線上なら
right; // 右へ
nOnline++; //カウンタ増やす
}
else {
if (SENSOR_2 < OUT){ // 境界付近なら
go_forward; // 直進
}
else { //線から外れれば
left; //左へ
}
nOnline=0; //カウンタリセット
}
Wait(STEP);
}
short_break; //小休止
right;Wait(35); //方向修正
short_break; //小休止
UP; //籠を上げる
shot; //車体でボールを押し、シュート
Off(OUT_AC); //停止
nOnline=0; //カウンタをリセット
}
}
**感想 [#b333742f]
ロボットを作るのは割と簡単だったが、プログラムを作るのが...
終了行:
[[2015a/MemberOnly]]
*ライントレース [#g3231d40]
**課題 [#k1a5b0b0]
&ref(./2015a-mission2.png,75%);
A地点からB地点へ (P三叉路およびQ交差点はともに直進)黒い線...
そして、途中(P地点とQ地点)の間においたボール(ピンポン玉ま...
可能であれば、A,B,Cのそれぞれにエリアに入る三叉路付近から...
**ロボットの構成 [#eea9b114]
***ロボットの基本構造 [#z5f78646]
ロボットの基本的な構造は、右回転、左回転がしやすいので説...
***光センサーの位置 [#q8d1a5ec]
左右の中心、前後の中心より前の位置にセットした。中心より...
***籠 [#k859a293]
ボールをキャッチする装置には籠を使った。籠降ろしてボール...
&ref(./IMG_1372[1].jpg,15%);
**プログラム [#d1b6340a]
***定義 [#b98a1e93]
#define IN 40 ...
#define OUT 45 ...
#define go_forward OnFwd(OUT_AC); ...
#define right OnRev(OUT_C); OnFwd(OUT_A); ...
#define left OnFwd(OUT_C); OnRev(OUT_A); ...
#define STEP 1 ...
#define short_break Off(OUT_AC); Wait(200); ...
#define CROSS_TIME 20 ...
#define cross_line go_forward;Wait(CROSS_TIME);short_bre...
#define nMAX 8 ...
#define DOWN OnFwd(OUT_B);Wait(40);Off(OUT_B); ...
#define UP OnRev(OUT_B);Wait(40);Off(OUT_B); ...
#define shot go_forward;Wait(100); ...
***本体プログラム [#x65f5bf1]
task main(){
SetSensor(SENSOR_2, SENSOR_LIGHT);
int nOnline=0; // 続けて線上になった回数
while (nOnline <nMAX) { //線上を続けてnMAX回繰り...
if (SENSOR_2 < IN){ // 線上なら
right; // 右へ
nOnline++; //カウンタ増やす
}
else {
if (SENSOR_2 < OUT){ // 境界付近なら
go_forward; // 直進
}
else { //線から外れれば
left; //左へ
}
nOnline=0; //カウンタリセット
}
Wait(STEP);
}
nOnline=0; //カウンタリセット
}
while (nOnline <nMAX) { //線上を続けてnMAX回繰り...
if (SENSOR_2 < IN){ // 線上なら
right; // 右へ
nOnline++; //カウンタ増やす
}
else {
if (SENSOR_2 < OUT){ // 境界付近なら
go_forward // 直進
}
else { //線から外れれば
left; //左へ
}
nOnline=0; //カウンタリセット
}
Wait(STEP);
}
short_break; //小休止
right;Wait(35); //方向修正
short_break; //小休止
DOWN; //籠を下げ捕球
left;Wait(30); //方向修正
short_break; //小休止
cross_line; //交差点を渡る
nOnline=0; //カウンタリセット
}
while (nOnline <nMAX) { //黒を続けてnMAX回繰り返...
if (SENSOR_2 < IN){ // 線上なら
right; // 右へ
nOnline++; //カウンタ増やす
}
else {
if (SENSOR_2 < OUT){ // 境界付近なら
go_forward; // 直進
}
else { //線から外れれば
left; //左へ
}
nOnline=0; //カウンタリセット
}
Wait(STEP);
}
short_break; //小休止
right;Wait(35); //方向修正
short_break; //小休止
UP; //籠を上げる
shot; //車体でボールを押し、シュート
Off(OUT_AC); //停止
nOnline=0; //カウンタをリセット
}
}
**感想 [#b333742f]
ロボットを作るのは割と簡単だったが、プログラムを作るのが...
ページ名: