2016a/Member/suiko/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2016a/Member]]
目次
#contents
*課題3について [#cbf535aa]
**ルール [#c514b484]
課題3は前回の課題で使用したコースを再利用し、C地点、D地点...
ロボットはそれぞれA地点、B地点からスタートし、一体型の...
**方針 [#u283e5b0]
今回は2台のキットを使い一体型のロボットを製作した。~
マスター側のハードに移動およびセンサー系関連、スレーブ側...
全体の流れを簡潔に示す。~
まずA地点からスタートし、C地点のカップを二つ確保する。...
なお、6つのカップを重ねることは、機体の構造を考えると非常...
*機体について [#z1b2728b]
**全体図 [#jd4e6d57]
&ref(image7.jpg);
&ref(image8.jpg);
上の2枚は機体の全体図と正面から撮った写真である。構造は...
従って、この機体には運転手がいる。写真1枚目で機体の左側に...
因みに、機体正面には超音波センサーを設置してあるのだが、...
**アームについて [#k3e10247]
&ref(image9.jpg);
写真でカップを4つほど保持しているアームをアーム1とし、写...
アーム2にはモーターが計3つ、それぞれ人間の肩にあたる根本...
これらのモーターをそれぞれ独自に動かすことによって、カッ...
*プログラムについて [#g97ee9e2]
**マスター側 [#d879496e]
#define CONN 1 // スレーブの接続番号
#define tyouonpa 7.75 //超音波センサーが読み取るカップ...
task main()
{
SetSensorLowspeed(S1);
RotateMotorEx(OUT_AC,75,-600,0,true,true); //A地点か...
Wait(2000);
until (BluetoothStatus(CONN) == NO_ERR); // 接続できる...
OnRevSync(OUT_AC,50,0);
until (SensorUS(S1) <= tyouonpa); //カップとの距離が7...
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_hold_first.rxe"); //カッ...
/* この時点でカップはアーム1に1個ある */
Wait(10000);
RotateMotor(OUT_B,30,-20);
Wait(15000);
RotateMotor(OUT_B,50,-28);
OnRevSync(OUT_AC,50,0);
until (SensorUS(S1) <= tyouonpa); //カップとの距離が7...
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_hold.rxe"); //カップをア...
/* この時点でカップはアーム1に1個、アーム2に1個ある */
Wait(10000);
RotateMotorEx(OUT_AC,75,500,100,true,false); //方向...
RotateMotorEx(OUT_AC,75,-1500,0,false,false); //C地...
OnRevSync(OUT_AC,75,0);
until (SensorUS(S1) <= tyouonpa); //カップとの距離...
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_yoko_oki.rxe"); //アー...
/* この時点でカップはアーム1に1個、機体の真横に1個ある...
Wait(15000);
RemoteStartProgram(CONN,"cup_hold_next.rxe"); //カッ...
/* この時点でカップはアーム1に2個、機体の真横に1個ある...
Wait(20000);
RemoteStartProgram(CONN,"cup_yoko_toru.rxe"); //機...
/* この時点でカップはアーム1に3個ある */
Wait(20000);
OnRevSync(OUT_AC,75,0);
until (SensorUS(S1) <= tyouonpa); //カップとの距離...
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_hold_next.rxe"); //カッ...
/* この時点でカップはアーム1に4個ある */
Wait(20000);
RotateMotor(OUT_A,75,180); //方向転換
RotateMotor(OUT_B,30,50); //アーム1を開き、目標地点に...
}
**スレーブ側 [#d00efd7a]
【cup_hold】:カップを持ち上げたままにしておくプログラムで...
#define hold_upRotateMotor(OUT_C,50,500);Wait(1000);Rota...
#define hold_down RotateMotor(OUT_C,50,500); Wait(1000);...
task main()
{
ResetTachoCount(OUT_ABC);
hold_up; //手(先端)がモーターB、...
Off(OUT_B);
}
【cup_hold_first】:カップを持ち上げアーム1に運びアーム1の...
#define hold_up RotateMotor(OUT_C,50,500); Wait(1000); R...
#define hold_down RotateMotor(OUT_C,50,500); Wait(1000);...
#define kata_hanten 860 //肩の部分を半回転させるために...
task main()
{
ResetTachoCount(OUT_ABC);
hold_up; //手(先端)がモータB 肘...
RotateMotor(OUT_C,90,-100);
Off(OUT_B);
Wait(2000);
RotateMotor(OUT_A,75,kata_hanten); //肩180度回転(...
Wait(1500);
RotateMotor(OUT_C,75,100);
hold_down;
RotateMotor(OUT_A,75,-kata_hanten); //手がマイナス...
ResetTachoCount(OUT_ABC);
}
【cup_hold_next】:先ほどと似たように、コップを掴み下ろす...
#define hold_up RotateMotor(OUT_C,50,540); Wait(1500); R...
#define hold_down RotateMotor(OUT_C,50,450); Wait(1500);...
#define kata_hanten 860 //肩の部分を半回転させるために...
task main()
{
ResetTachoCount(OUT_ABC);
hold_up; //手(先端)がモータB 肘...
RotateMotor(OUT_C,90,-100);
RotateMotor(OUT_B,80,-3);
Off(OUT_B);
Wait(2000);
RotateMotor(OUT_A,75,kata_hanten); //肩180度回転(...
RotateMotor(OUT_C,50,50);
Wait(2000);
hold_down;
RotateMotor(OUT_C,50,50);
RotateMotor(OUT_B,80,3);
RotateMotor(OUT_A,75,-kata_hanten); //手がマイナス...
ResetTachoCount(OUT_ABC);
}
【cup_yoko_oki】:カップを掴み、カップを機体の真横(アーム...
#define hold_up RotateMotor(OUT_C,50,540); Wait(1000); R...
#define hold_down RotateMotor(OUT_C,50,500); Wait(1000);...
#define kata_hanten 860 //肩の部分を半回転させるために...
task main()
{
ResetTachoCount(OUT_ABC); //手(先...
RotateMotor(OUT_A,75,kata_hanten/2); //肩90度回転...
Wait(1500);
hold_down;
RotateMotor(OUT_A,75,-kata_hanten/2); //手がマイナ...
ResetTachoCount(OUT_ABC);
}
【cup_yoko_toru】:【cup_yoko_oki】で横に置いたカップを取...
#define hold_up RotateMotor(OUT_C,50,540); Wait(1000); R...
#define hold_down RotateMotor(OUT_C,50,500); Wait(1000);...
#define kata_hanten 860 //肩の部分を半回転させるために...
task main()
{
ResetTachoCount(OUT_ABC); //手(先端)がモータB 肘(...
RotateMotor(OUT_A,75,kata_hanten/2); //肩90度回転...
Wait(1000);
hold_up;
RotateMotor(OUT_C,90,-100);
RotateMotor(OUT_B,80,-5);
Off(OUT_B);
Wait(2000);
RotateMotor(OUT_A,75,kata_hanten/2); //手がマイナス...
RotateMotor(OUT_C,50,50);
Wait(1000);
hold_down;
RotateMotor(OUT_C,50,50);
RotateMotor(OUT_A,75,-kata_hanten);
ResetTachoCount(OUT_ABC);
}
*結果 [#b4773096]
結果としては、超音波センサーが思うように作動しなかったこ...
*反省とまとめ [#gc9b3e81]
まずなによりも時間が足りなかった。期末試験が近づいている...
機体の製作に特に時間を費やしたので、プログラムをあまり凝...
今回は一体型の機体ということもあり、その重さからライント...
非常に大変なゼミであったが、この講義を通じて、制御論の大...
終了行:
[[2016a/Member]]
目次
#contents
*課題3について [#cbf535aa]
**ルール [#c514b484]
課題3は前回の課題で使用したコースを再利用し、C地点、D地点...
ロボットはそれぞれA地点、B地点からスタートし、一体型の...
**方針 [#u283e5b0]
今回は2台のキットを使い一体型のロボットを製作した。~
マスター側のハードに移動およびセンサー系関連、スレーブ側...
全体の流れを簡潔に示す。~
まずA地点からスタートし、C地点のカップを二つ確保する。...
なお、6つのカップを重ねることは、機体の構造を考えると非常...
*機体について [#z1b2728b]
**全体図 [#jd4e6d57]
&ref(image7.jpg);
&ref(image8.jpg);
上の2枚は機体の全体図と正面から撮った写真である。構造は...
従って、この機体には運転手がいる。写真1枚目で機体の左側に...
因みに、機体正面には超音波センサーを設置してあるのだが、...
**アームについて [#k3e10247]
&ref(image9.jpg);
写真でカップを4つほど保持しているアームをアーム1とし、写...
アーム2にはモーターが計3つ、それぞれ人間の肩にあたる根本...
これらのモーターをそれぞれ独自に動かすことによって、カッ...
*プログラムについて [#g97ee9e2]
**マスター側 [#d879496e]
#define CONN 1 // スレーブの接続番号
#define tyouonpa 7.75 //超音波センサーが読み取るカップ...
task main()
{
SetSensorLowspeed(S1);
RotateMotorEx(OUT_AC,75,-600,0,true,true); //A地点か...
Wait(2000);
until (BluetoothStatus(CONN) == NO_ERR); // 接続できる...
OnRevSync(OUT_AC,50,0);
until (SensorUS(S1) <= tyouonpa); //カップとの距離が7...
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_hold_first.rxe"); //カッ...
/* この時点でカップはアーム1に1個ある */
Wait(10000);
RotateMotor(OUT_B,30,-20);
Wait(15000);
RotateMotor(OUT_B,50,-28);
OnRevSync(OUT_AC,50,0);
until (SensorUS(S1) <= tyouonpa); //カップとの距離が7...
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_hold.rxe"); //カップをア...
/* この時点でカップはアーム1に1個、アーム2に1個ある */
Wait(10000);
RotateMotorEx(OUT_AC,75,500,100,true,false); //方向...
RotateMotorEx(OUT_AC,75,-1500,0,false,false); //C地...
OnRevSync(OUT_AC,75,0);
until (SensorUS(S1) <= tyouonpa); //カップとの距離...
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_yoko_oki.rxe"); //アー...
/* この時点でカップはアーム1に1個、機体の真横に1個ある...
Wait(15000);
RemoteStartProgram(CONN,"cup_hold_next.rxe"); //カッ...
/* この時点でカップはアーム1に2個、機体の真横に1個ある...
Wait(20000);
RemoteStartProgram(CONN,"cup_yoko_toru.rxe"); //機...
/* この時点でカップはアーム1に3個ある */
Wait(20000);
OnRevSync(OUT_AC,75,0);
until (SensorUS(S1) <= tyouonpa); //カップとの距離...
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_hold_next.rxe"); //カッ...
/* この時点でカップはアーム1に4個ある */
Wait(20000);
RotateMotor(OUT_A,75,180); //方向転換
RotateMotor(OUT_B,30,50); //アーム1を開き、目標地点に...
}
**スレーブ側 [#d00efd7a]
【cup_hold】:カップを持ち上げたままにしておくプログラムで...
#define hold_upRotateMotor(OUT_C,50,500);Wait(1000);Rota...
#define hold_down RotateMotor(OUT_C,50,500); Wait(1000);...
task main()
{
ResetTachoCount(OUT_ABC);
hold_up; //手(先端)がモーターB、...
Off(OUT_B);
}
【cup_hold_first】:カップを持ち上げアーム1に運びアーム1の...
#define hold_up RotateMotor(OUT_C,50,500); Wait(1000); R...
#define hold_down RotateMotor(OUT_C,50,500); Wait(1000);...
#define kata_hanten 860 //肩の部分を半回転させるために...
task main()
{
ResetTachoCount(OUT_ABC);
hold_up; //手(先端)がモータB 肘...
RotateMotor(OUT_C,90,-100);
Off(OUT_B);
Wait(2000);
RotateMotor(OUT_A,75,kata_hanten); //肩180度回転(...
Wait(1500);
RotateMotor(OUT_C,75,100);
hold_down;
RotateMotor(OUT_A,75,-kata_hanten); //手がマイナス...
ResetTachoCount(OUT_ABC);
}
【cup_hold_next】:先ほどと似たように、コップを掴み下ろす...
#define hold_up RotateMotor(OUT_C,50,540); Wait(1500); R...
#define hold_down RotateMotor(OUT_C,50,450); Wait(1500);...
#define kata_hanten 860 //肩の部分を半回転させるために...
task main()
{
ResetTachoCount(OUT_ABC);
hold_up; //手(先端)がモータB 肘...
RotateMotor(OUT_C,90,-100);
RotateMotor(OUT_B,80,-3);
Off(OUT_B);
Wait(2000);
RotateMotor(OUT_A,75,kata_hanten); //肩180度回転(...
RotateMotor(OUT_C,50,50);
Wait(2000);
hold_down;
RotateMotor(OUT_C,50,50);
RotateMotor(OUT_B,80,3);
RotateMotor(OUT_A,75,-kata_hanten); //手がマイナス...
ResetTachoCount(OUT_ABC);
}
【cup_yoko_oki】:カップを掴み、カップを機体の真横(アーム...
#define hold_up RotateMotor(OUT_C,50,540); Wait(1000); R...
#define hold_down RotateMotor(OUT_C,50,500); Wait(1000);...
#define kata_hanten 860 //肩の部分を半回転させるために...
task main()
{
ResetTachoCount(OUT_ABC); //手(先...
RotateMotor(OUT_A,75,kata_hanten/2); //肩90度回転...
Wait(1500);
hold_down;
RotateMotor(OUT_A,75,-kata_hanten/2); //手がマイナ...
ResetTachoCount(OUT_ABC);
}
【cup_yoko_toru】:【cup_yoko_oki】で横に置いたカップを取...
#define hold_up RotateMotor(OUT_C,50,540); Wait(1000); R...
#define hold_down RotateMotor(OUT_C,50,500); Wait(1000);...
#define kata_hanten 860 //肩の部分を半回転させるために...
task main()
{
ResetTachoCount(OUT_ABC); //手(先端)がモータB 肘(...
RotateMotor(OUT_A,75,kata_hanten/2); //肩90度回転...
Wait(1000);
hold_up;
RotateMotor(OUT_C,90,-100);
RotateMotor(OUT_B,80,-5);
Off(OUT_B);
Wait(2000);
RotateMotor(OUT_A,75,kata_hanten/2); //手がマイナス...
RotateMotor(OUT_C,50,50);
Wait(1000);
hold_down;
RotateMotor(OUT_C,50,50);
RotateMotor(OUT_A,75,-kata_hanten);
ResetTachoCount(OUT_ABC);
}
*結果 [#b4773096]
結果としては、超音波センサーが思うように作動しなかったこ...
*反省とまとめ [#gc9b3e81]
まずなによりも時間が足りなかった。期末試験が近づいている...
機体の製作に特に時間を費やしたので、プログラムをあまり凝...
今回は一体型の機体ということもあり、その重さからライント...
非常に大変なゼミであったが、この講義を通じて、制御論の大...
ページ名: