2019a/Member/Ayu/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*課題2 [#d1ba60d2]
#ref(./2019a-mission2.png,50%,コース)
A地点を出発し、次のいずれかの経路を黒い線にそって動くロボ...
A地点から出発 → B → C(直進) → D(一時停止の後、直進) → E →...
私は上のコースを選んだ。
*プログラムについて [#o3817c79]
#define gray 41 //灰色の値
#define turn_rightL OnFwd(OUT_A); OnRev(OUT_C); //右旋回
#define turn_leftL OnFwd(OUT_C); OnRev(OUT_A); //左旋回
#define go OnFwd(OUT_AC); //直進
#define turn_rightS OnFwd(OUT_A); Off(OUT_C); //右折
#define turn_leftS OnFwd(OUT_C); Off(OUT_A); //左折
動きの定義の部分。明るさは中間値を決めてそれに足し引きを...
sub follow_line()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while(FastTimer(0)<24){ //時間が24以内...
if (SENSOR_2 > gray +5){ //色が白の時右...
turn_rightL; ClearTimer(0);
} else if (SENSOR_2 > gray +3){ //白灰の時右折
turn_rightS; ClearTimer(0);
} else if (SENSOR_2 > gray){ //灰色の時直進
go; ClearTimer(0);
} else if (SENSOR_2 > gray -2){ //黒灰の時左折
turn_leftS; ClearTimer(0);
} else {
turn_leftL //黒の時左旋回...
}
}
Off(OUT_AC);
Wait(50);
}
一番多用するライントレースのサブルーチン。
sub follow_lineB()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while(FastTimer(0)<24){
if (SENSOR_2 > gray +5){
turn_leftL; ClearTimer(0);
} else if (SENSOR_2 > gray +3){
turn_leftS; ClearTimer(0);
} else if (SENSOR_2 > gray){
go; ClearTimer(0);
} else if (SENSOR_2 > gray -2){
turn_rightS; ClearTimer(0);
} else {
turn_rightL
}
}
Off(OUT_AC);
Wait(50);
}
1つ目のライントレースのルーチンとは曲がる方向を逆にした...
sub follow_line1()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while(FastTimer(0)<20){ //1つ目のもの...
if (SENSOR_2 > gray +6){
turn_rightL; ClearTimer(0);
} else if (SENSOR_2 > gray +3){
turn_rightS; ClearTimer(0);
} else if (SENSOR_2 > gray){
go; ClearTimer(0);
} else if (SENSOR_2 > gray -2){
turn_leftS; ClearTimer(0);
} else {
turn_leftL
}
}
Off(OUT_AC);
Wait(50);
}
円の部分の交差点を判別するためのサブルーチン。直角交差点...
sub cross_line()
{
OnRev(OUT_C); Off(OUT_A); //傾いた車体を線と平行に...
Wait(40);
Off(OUT_C);
OnFwd(OUT_AC); //線を越える
Wait(50);
Off(OUT_AC);
}
交差点を越えるためのサブルーチン。
sub cross_line2()
{
OnRev(OUT_A); Off(OUT_C);
Wait(40);
Off(OUT_A);
OnFwd(OUT_AC);
Wait(50);
Off(OUT_AC);
}
円の中の交差点を越えるためのルーチン。元のものとは車体の...
sub ball_tukamu()
{
OnRev(OUT_B); //アームを開く
Wait(20);
Off(OUT_B);
OnFwd(OUT_AC); //車体を前進させてアーム内に玉を入れる
Wait(70);
Off(OUT_AC);
OnFwd(OUT_B); //アームを閉じる
Wait(20);
Off(OUT_B);
}
玉を掴む動き。
task main()
{
follow_line(); //AからDの手前まで移動
cross_line(); //Dの交差点を越える
follow_line(); //DからFまで
follow_line1(); //FからGまで
OnRev(OUT_C); //ここから、Gを左折する部分
Wait(30);
Off(OUT_C);
turn_rightS;
Wait(70);
Off(OUT_A); //ここまで
follow_lineB(); //GからHまで
cross_line2(); //Hを越える
follow_lineB(); //HからI
cross_line2(); //Iを越える
follow_lineB(); //IからKまで移動
turn_leftS; //ここから、Kを左折
Wait(70);
Off(OUT_C); //ここまで
ball_tukamu(); //玉を掴む
follow_line(); //掴んでからMまで移動
cross_line(); //車体の向きを真っ直ぐにする
OnRev(OUT_B); //アームを開く
Wait(20);
OnFwd(OUT_AC); //車体で玉を押してシュート
Wait(30);
Off(OUT_AC);
}
動き全体のプログラム.
**交差点の判断方法 [#h022c7a8]
#ref(./image1 (1).jpeg,50%,kousaten)
このロボットでは交差点に差し掛かった時に,線に沿って曲が...
プログラムについての中の「一番多用するライントレースのプ...
*ロボットについて [#x39489af]
ロボット全体の写真.冊子に書いてあるものを少し改良して,...
#ref(./image1.jpeg,50%,ロボット全体)
アーム部分を拡大した画像.歯車を3つかみ合わせてモーターと...
#ref(./image2.jpeg,50%,アーム部分)
*まとめ [#ie3f8401]
時間の条件がなかなか丁度いいものにならず、意図しない場所...
終了行:
*課題2 [#d1ba60d2]
#ref(./2019a-mission2.png,50%,コース)
A地点を出発し、次のいずれかの経路を黒い線にそって動くロボ...
A地点から出発 → B → C(直進) → D(一時停止の後、直進) → E →...
私は上のコースを選んだ。
*プログラムについて [#o3817c79]
#define gray 41 //灰色の値
#define turn_rightL OnFwd(OUT_A); OnRev(OUT_C); //右旋回
#define turn_leftL OnFwd(OUT_C); OnRev(OUT_A); //左旋回
#define go OnFwd(OUT_AC); //直進
#define turn_rightS OnFwd(OUT_A); Off(OUT_C); //右折
#define turn_leftS OnFwd(OUT_C); Off(OUT_A); //左折
動きの定義の部分。明るさは中間値を決めてそれに足し引きを...
sub follow_line()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while(FastTimer(0)<24){ //時間が24以内...
if (SENSOR_2 > gray +5){ //色が白の時右...
turn_rightL; ClearTimer(0);
} else if (SENSOR_2 > gray +3){ //白灰の時右折
turn_rightS; ClearTimer(0);
} else if (SENSOR_2 > gray){ //灰色の時直進
go; ClearTimer(0);
} else if (SENSOR_2 > gray -2){ //黒灰の時左折
turn_leftS; ClearTimer(0);
} else {
turn_leftL //黒の時左旋回...
}
}
Off(OUT_AC);
Wait(50);
}
一番多用するライントレースのサブルーチン。
sub follow_lineB()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while(FastTimer(0)<24){
if (SENSOR_2 > gray +5){
turn_leftL; ClearTimer(0);
} else if (SENSOR_2 > gray +3){
turn_leftS; ClearTimer(0);
} else if (SENSOR_2 > gray){
go; ClearTimer(0);
} else if (SENSOR_2 > gray -2){
turn_rightS; ClearTimer(0);
} else {
turn_rightL
}
}
Off(OUT_AC);
Wait(50);
}
1つ目のライントレースのルーチンとは曲がる方向を逆にした...
sub follow_line1()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while(FastTimer(0)<20){ //1つ目のもの...
if (SENSOR_2 > gray +6){
turn_rightL; ClearTimer(0);
} else if (SENSOR_2 > gray +3){
turn_rightS; ClearTimer(0);
} else if (SENSOR_2 > gray){
go; ClearTimer(0);
} else if (SENSOR_2 > gray -2){
turn_leftS; ClearTimer(0);
} else {
turn_leftL
}
}
Off(OUT_AC);
Wait(50);
}
円の部分の交差点を判別するためのサブルーチン。直角交差点...
sub cross_line()
{
OnRev(OUT_C); Off(OUT_A); //傾いた車体を線と平行に...
Wait(40);
Off(OUT_C);
OnFwd(OUT_AC); //線を越える
Wait(50);
Off(OUT_AC);
}
交差点を越えるためのサブルーチン。
sub cross_line2()
{
OnRev(OUT_A); Off(OUT_C);
Wait(40);
Off(OUT_A);
OnFwd(OUT_AC);
Wait(50);
Off(OUT_AC);
}
円の中の交差点を越えるためのルーチン。元のものとは車体の...
sub ball_tukamu()
{
OnRev(OUT_B); //アームを開く
Wait(20);
Off(OUT_B);
OnFwd(OUT_AC); //車体を前進させてアーム内に玉を入れる
Wait(70);
Off(OUT_AC);
OnFwd(OUT_B); //アームを閉じる
Wait(20);
Off(OUT_B);
}
玉を掴む動き。
task main()
{
follow_line(); //AからDの手前まで移動
cross_line(); //Dの交差点を越える
follow_line(); //DからFまで
follow_line1(); //FからGまで
OnRev(OUT_C); //ここから、Gを左折する部分
Wait(30);
Off(OUT_C);
turn_rightS;
Wait(70);
Off(OUT_A); //ここまで
follow_lineB(); //GからHまで
cross_line2(); //Hを越える
follow_lineB(); //HからI
cross_line2(); //Iを越える
follow_lineB(); //IからKまで移動
turn_leftS; //ここから、Kを左折
Wait(70);
Off(OUT_C); //ここまで
ball_tukamu(); //玉を掴む
follow_line(); //掴んでからMまで移動
cross_line(); //車体の向きを真っ直ぐにする
OnRev(OUT_B); //アームを開く
Wait(20);
OnFwd(OUT_AC); //車体で玉を押してシュート
Wait(30);
Off(OUT_AC);
}
動き全体のプログラム.
**交差点の判断方法 [#h022c7a8]
#ref(./image1 (1).jpeg,50%,kousaten)
このロボットでは交差点に差し掛かった時に,線に沿って曲が...
プログラムについての中の「一番多用するライントレースのプ...
*ロボットについて [#x39489af]
ロボット全体の写真.冊子に書いてあるものを少し改良して,...
#ref(./image1.jpeg,50%,ロボット全体)
アーム部分を拡大した画像.歯車を3つかみ合わせてモーターと...
#ref(./image2.jpeg,50%,アーム部分)
*まとめ [#ie3f8401]
時間の条件がなかなか丁度いいものにならず、意図しない場所...
ページ名: