2017a/Member/dai/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2017a/Member]]
#contents
*課題について [#i4ad9c50]
決められたレールの上をライントレースして走るロボットの作...
*目標 [#x8e24986]
#ref(2017a-mission2.png);
ルートはA→E→F→Q→T→G→S→E→A。EF間の急カーブを通り、交差点Q...
*プログラム [#j18737fa]
**定義 [#ae4283d3]
task_mainの簡略化のためにline_traceをここで定義した。
#define TR1 OnFwd(OUT_A);OnRev(OUT_C);
#define TR0 OnFwd(OUT_A);Off(OUT_C);
#define TL0 OnFwd(OUT_C);Off(OUT_A);
#define TL1 OnFwd(OUT_C);OnRev(OUT_A);
#define stop(t) Off(OUT_AC);Wait(t);
#define sound_up PlaySound(SOUND_UP);
#define line_trase while(FastTimer(0)<tmax){if(SENSOR...
else if(SENSOR_2 >senter +0){OnFwd(OUT_AC);ClearT...
else{SetPower(OUT_C,0);TL1;}if(FastTimer(0)>tmax)...
#define line_trase_curve while(FastTimer(0)<tmid){if(...
else if(SENSOR_2 >senter +0){OnFwd(OUT_AC);ClearT...
else{TL1;}if(FastTimer(0)>tmid){ClearTimer(0);}}n...
**交差点判断 [#z6a2ebb0]
メンバーのプログラムを参考にした。line_A,B,C,D,Eで交差点...
sub line_A()
{
ClearTimer(0);
line_trase;
if((n==1)||(n==4)||(n==5)||(n==11)){
sound_up;
}
Off(OUT_AC);
}
sub line_B()
{
ClearTimer(0);
line_trase_curve;
if((n==2)||(n==9)||(n==12)){
sound_up;
stop(100);
}
Off(OUT_AC);
}
sub line_C()
{
ClearTimer(0);
line_trase;
if((n==7)||(n==8)){
sound_up;
stop(100);
TR1;Wait(45);
OnFwd(OUT_AC);Wait(20);
}
Off(OUT_AC);
}
sub line_D()
{
ClearTimer(0);
line_trase_curve;
if(n==6){
sound_up;
}
Off(OUT_AC);
}
sub line_E()
{
ClearTimer(0);
line_trase;
if(n==13){
sound_up;
}
Off(OUT_AC);
}
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
line_A();
line_B();
line_C();
line_A();
line_A();
line_A();
line_D();
line_D();
line_B();
line_C();
line_A();
line_B();
line_E();
}
*反省 [#nc5b36ba]
今回は単純にライントレースをするプログラムは作れたのだが...
*感想 [#a8bc795b]
今回で光センサーが一気に嫌いになった。もうあんな不安定な...
終了行:
[[2017a/Member]]
#contents
*課題について [#i4ad9c50]
決められたレールの上をライントレースして走るロボットの作...
*目標 [#x8e24986]
#ref(2017a-mission2.png);
ルートはA→E→F→Q→T→G→S→E→A。EF間の急カーブを通り、交差点Q...
*プログラム [#j18737fa]
**定義 [#ae4283d3]
task_mainの簡略化のためにline_traceをここで定義した。
#define TR1 OnFwd(OUT_A);OnRev(OUT_C);
#define TR0 OnFwd(OUT_A);Off(OUT_C);
#define TL0 OnFwd(OUT_C);Off(OUT_A);
#define TL1 OnFwd(OUT_C);OnRev(OUT_A);
#define stop(t) Off(OUT_AC);Wait(t);
#define sound_up PlaySound(SOUND_UP);
#define line_trase while(FastTimer(0)<tmax){if(SENSOR...
else if(SENSOR_2 >senter +0){OnFwd(OUT_AC);ClearT...
else{SetPower(OUT_C,0);TL1;}if(FastTimer(0)>tmax)...
#define line_trase_curve while(FastTimer(0)<tmid){if(...
else if(SENSOR_2 >senter +0){OnFwd(OUT_AC);ClearT...
else{TL1;}if(FastTimer(0)>tmid){ClearTimer(0);}}n...
**交差点判断 [#z6a2ebb0]
メンバーのプログラムを参考にした。line_A,B,C,D,Eで交差点...
sub line_A()
{
ClearTimer(0);
line_trase;
if((n==1)||(n==4)||(n==5)||(n==11)){
sound_up;
}
Off(OUT_AC);
}
sub line_B()
{
ClearTimer(0);
line_trase_curve;
if((n==2)||(n==9)||(n==12)){
sound_up;
stop(100);
}
Off(OUT_AC);
}
sub line_C()
{
ClearTimer(0);
line_trase;
if((n==7)||(n==8)){
sound_up;
stop(100);
TR1;Wait(45);
OnFwd(OUT_AC);Wait(20);
}
Off(OUT_AC);
}
sub line_D()
{
ClearTimer(0);
line_trase_curve;
if(n==6){
sound_up;
}
Off(OUT_AC);
}
sub line_E()
{
ClearTimer(0);
line_trase;
if(n==13){
sound_up;
}
Off(OUT_AC);
}
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
line_A();
line_B();
line_C();
line_A();
line_A();
line_A();
line_D();
line_D();
line_B();
line_C();
line_A();
line_B();
line_E();
}
*反省 [#nc5b36ba]
今回は単純にライントレースをするプログラムは作れたのだが...
*感想 [#a8bc795b]
今回で光センサーが一気に嫌いになった。もうあんな不安定な...
ページ名: