2016a/Member/iwashi/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2016a/Member]]
*課題3 [#hf557d04]
**目次 [#n03a4175]
#contents
**ロボット本体の説明 [#de0d83db]
ロボットは2つのNXTを組み合わせた一体型を選んだ。
タイヤをつけた本体に2種類のアームをつけたモノである。
片方のアームはアームの中に入ったコップをつかむためのモノ。
ここにコップを固定して積んでいくために使う。(アーム1と...
もう一つのアームは上からコップをつかんで移動させることが...
これで他のところにあるコップを先ほどのコップの上にのせる...
また、アーム1の逆側にY字状の突起をつけここに紙コップが入...
マスターにはタイヤとアーム1に用いているモーターをつなぎ...
スレーブにはアーム2に用いているモーターをつないでいる。
#ref(robon31.png)
**プログラムの説明 [#kedefccd]
簡単に説明するとアーム12を用いて紙コップを拾いつつ円の...
***マスターのプログラムの説明 [#l4dd1957]
#define CONN 1 // スレーブの接続番号
#define tyouonpa 7.75 //超音波センサーの距離
task main()
{
SetSensorLowspeed(S1);
RotateMotorEx(OUT_AC,75,-600,0,true,true); //AからD...
Wait(2000);
until (BluetoothStatus(CONN) == NO_ERR); // 接続でき...
OnRevSync(OUT_AC,50,0);
until (SensorUS(S1) <= tyouonpa); //7.75cmまで近...
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_hold_first.rxe"); //コ...
Wait(10000);
RotateMotor(OUT_B,30,-20);
Wait(15000);
RotateMotor(OUT_B,50,-28);
OnRevSync(OUT_AC,50,0);
until (SensorUS(S1) <= tyouonpa); //7.75cmまで近...
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_hold.rxe"); //コップを...
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); //7.75cmまで近...
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_yoko_oki.rxe");
Wait(15000);
RemoteStartProgram(CONN,"cup_hold_next.rxe"); //コ...
Wait(20000);
RemoteStartProgram(CONN,"cup_yoko_toru.rxe");
Wait(20000);
OnRevSync(OUT_AC,75,0);
until (SensorUS(S1) <= tyouonpa); //7cmまで近づく
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_hold_next.rxe"); //コ...
Wait(20000);
RotateMotor(OUT_A,75,180); //方向転換
RotateMotor(OUT_B,30,50); //アームを開く
}
まずマスターのプログラムでスレーブのプログラムを起動しつ...
また、総重量や時間、メンバーの技術などの都合上ライントレ...
プログラム内でも書いてある通り、まずAからスタートしDへと...
そして、2つ掴むとCへと向かいまた紙コップをのせ、その後旋...
***スレーブのプログラムの説明 [#dbb9a2db]
次にスレーブのプログラムである。
またアーム2のプログラムでもある。
これらは自分で書いたプログラムではないので詳しくは分から...
【cup_hold】
#define hold_up RotateMotor(OUT_C,50,500); Wait(1000); R...
#define hold_down RotateMotor(OUT_C,50,500); Wait(1000);...
task main()
{
ResetTachoCount(OUT_ABC);
hold_up; //手(先端)がモータB ...
Off(OUT_B);
}
これはカップを掴んで持ち上げたままにしておくプログラムで...
持ち上げたまま他の場所に運ぶときに使う。
【cup_hold_first】
#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);
}
カップを持ち上げアーム1へと運びアーム1の中に入れてから...
【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);
}
カップを掴みアーム1に運ぶのではなく横に運ぶプログラムで...
【cup_yoko_toru】
#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);
}
先ほどの横に置いたカップをアーム1に運ぶプログラムである。
**結果 [#o7bc0694]
結果としては超音波センサーの不具合やモーターの端子が刺さ...
**考察・まとめ [#kb9deac4]
***良かった点 [#e5d89ed0]
アームの動きや見た目などで他の部分で点数を稼げたことは良...
時間が少ない中分業することで雑ながら間に合ったことは良か...
***反省点 [#p13626db]
あまり時間がとれず動作時間の調整などが完璧にできなかった...
RotateMotorを用いたにもかかわらず左右のタイヤの回転数が異...
また、本番に思った通りに動かず直前のメンテナンスの大事さ...
終了行:
[[2016a/Member]]
*課題3 [#hf557d04]
**目次 [#n03a4175]
#contents
**ロボット本体の説明 [#de0d83db]
ロボットは2つのNXTを組み合わせた一体型を選んだ。
タイヤをつけた本体に2種類のアームをつけたモノである。
片方のアームはアームの中に入ったコップをつかむためのモノ。
ここにコップを固定して積んでいくために使う。(アーム1と...
もう一つのアームは上からコップをつかんで移動させることが...
これで他のところにあるコップを先ほどのコップの上にのせる...
また、アーム1の逆側にY字状の突起をつけここに紙コップが入...
マスターにはタイヤとアーム1に用いているモーターをつなぎ...
スレーブにはアーム2に用いているモーターをつないでいる。
#ref(robon31.png)
**プログラムの説明 [#kedefccd]
簡単に説明するとアーム12を用いて紙コップを拾いつつ円の...
***マスターのプログラムの説明 [#l4dd1957]
#define CONN 1 // スレーブの接続番号
#define tyouonpa 7.75 //超音波センサーの距離
task main()
{
SetSensorLowspeed(S1);
RotateMotorEx(OUT_AC,75,-600,0,true,true); //AからD...
Wait(2000);
until (BluetoothStatus(CONN) == NO_ERR); // 接続でき...
OnRevSync(OUT_AC,50,0);
until (SensorUS(S1) <= tyouonpa); //7.75cmまで近...
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_hold_first.rxe"); //コ...
Wait(10000);
RotateMotor(OUT_B,30,-20);
Wait(15000);
RotateMotor(OUT_B,50,-28);
OnRevSync(OUT_AC,50,0);
until (SensorUS(S1) <= tyouonpa); //7.75cmまで近...
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_hold.rxe"); //コップを...
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); //7.75cmまで近...
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_yoko_oki.rxe");
Wait(15000);
RemoteStartProgram(CONN,"cup_hold_next.rxe"); //コ...
Wait(20000);
RemoteStartProgram(CONN,"cup_yoko_toru.rxe");
Wait(20000);
OnRevSync(OUT_AC,75,0);
until (SensorUS(S1) <= tyouonpa); //7cmまで近づく
Off(OUT_AC);
RemoteStartProgram(CONN,"cup_hold_next.rxe"); //コ...
Wait(20000);
RotateMotor(OUT_A,75,180); //方向転換
RotateMotor(OUT_B,30,50); //アームを開く
}
まずマスターのプログラムでスレーブのプログラムを起動しつ...
また、総重量や時間、メンバーの技術などの都合上ライントレ...
プログラム内でも書いてある通り、まずAからスタートしDへと...
そして、2つ掴むとCへと向かいまた紙コップをのせ、その後旋...
***スレーブのプログラムの説明 [#dbb9a2db]
次にスレーブのプログラムである。
またアーム2のプログラムでもある。
これらは自分で書いたプログラムではないので詳しくは分から...
【cup_hold】
#define hold_up RotateMotor(OUT_C,50,500); Wait(1000); R...
#define hold_down RotateMotor(OUT_C,50,500); Wait(1000);...
task main()
{
ResetTachoCount(OUT_ABC);
hold_up; //手(先端)がモータB ...
Off(OUT_B);
}
これはカップを掴んで持ち上げたままにしておくプログラムで...
持ち上げたまま他の場所に運ぶときに使う。
【cup_hold_first】
#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);
}
カップを持ち上げアーム1へと運びアーム1の中に入れてから...
【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);
}
カップを掴みアーム1に運ぶのではなく横に運ぶプログラムで...
【cup_yoko_toru】
#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);
}
先ほどの横に置いたカップをアーム1に運ぶプログラムである。
**結果 [#o7bc0694]
結果としては超音波センサーの不具合やモーターの端子が刺さ...
**考察・まとめ [#kb9deac4]
***良かった点 [#e5d89ed0]
アームの動きや見た目などで他の部分で点数を稼げたことは良...
時間が少ない中分業することで雑ながら間に合ったことは良か...
***反省点 [#p13626db]
あまり時間がとれず動作時間の調整などが完璧にできなかった...
RotateMotorを用いたにもかかわらず左右のタイヤの回転数が異...
また、本番に思った通りに動かず直前のメンテナンスの大事さ...
ページ名: