2016a/Member/eseda/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2016a/Member]]
*課題3 [#g37c48fe]
**目次 [#f68cc65a]
#CONTENTS
**ロボットの説明 [#ne4d7075]
一つのロボットで、紙コップを重ねながら持ち運びたかったの...
#ref(本体.jpg)
本体と腕に分かれており、お互いの動きは信号を送りあって動...
#ref(本体2.jpg)
超音波センサは半径9cmに物があるとロボットが停止するように...
**紙コップを持つ・離す方法 [#u344a46e]
タイヤを利用して紙コップを持ち上げることにしました。~
図に書いてある黄色の矢印の方向に回すことで紙コップを持つ...
タイヤがゴムでできているので、人間の力を加えない限り紙コ...
#ref(持ち上げ.jpg)
持った後はアームを上げ、ロボットのバランスを安定にしてか...
#ref(持ち上げ2.jpg)
紙コップを離すのは、アームを下ろす→タイヤを逆回転させて紙...
**自分たちが決めた経路 [#g9b67f11]
#ref(マップ.png)
私達はロボコン直前まで、光センサでAからCへ動かそうとした...
よって、BからCへ直接向かい、紙コップを回収して円の中にせ...
**プログラム説明 [#h013f8c2]
***本体について [#o05789e9]
#define SPEED 50 //スピード50
#define go_forward OnFwd(OUT_BC,SPEED); //前進
#define CONN 1 //スレーブ...
#define SIGNALON 21 //腕を動か...
#define SIGNALOFF 22 //腕を動か...
#define SIGNALON2 31
#define SIGNALOFF2 32
#define turn_leftC OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED...
#define turn_rightC OnFwd(OUT_C,SPEED);OnRev(OUT_B,SPEED...
task main()
{
int msg //MAIL...
SetSensorLowspeed(S1); //端...
go_forward; //前進
until(SensorUS(S1) <= 9); //セン...
Off(OUT_BC);
SendRemoteNumber(CONN,MAILBOX1,SIGNALON ); //信...
while (true){
ReceiveRemoteNumber(MAILBOX2,true,msg); //msgを受け取...
if (msg == SIGNALOFF ){ //信号を受け...
turn_leftC;
Wait(1600);
Off(OUT_BC);
go_forward; //前進
Wait(1000);
Off(OUT_BC);
SendRemoteNumber(CONN,MAILBOX1,SIGNALON2 ); //腕を...
if (msg == SIGNALOFF2 ){ //信号を受け...
turn_leftC;
Wait(1000);
Off(OUT_BC);
}else { ...
Off(OUT_BC);
}
}
}
}
***腕について [#p48faf26]
#define SIGNALON 21 ...
#define SIGNALOFF 22 ...
#define LIFT_up OnRev(OUT_C,35);Wait(520);Off(OUT_BC); ...
#define LIFT_down OnFwd(OUT_C,20);Wait(550);Off(OUT_BC);...
#define CATCH OnFwd(OUT_B,60);Wait(2000);Off(OUT_B); ...
#define RELEASE OnFwd(OUT_B,50);Wait(1500);Off(OUT_B); ...
#define CONN 0 ...
#define SIGNALON2 31
#define SIGNALOFF2 32
void ude() //サブルーチン
{
LIFT_down;
CATCH;
LIFT_up;
CATCH;
Off(OUT_B);
}
task main ()
{
int msg;
while (true) {
ReceiveRemoteNumber(MAILBOX1,true,msg); //msg...
if (msg == SIGNALON) { //信号...
ude();
SendResponseNumber(MAILBOX2,SIGNALOFF); //本...
}
if (msg == SIGNALON2) { //信号を受け...
RELEASE;
SendResponseNumber(MAILBOX2,SIGNALOFF2); //本体...
} else { //そ...
Off(OUT_BC);
}
**考察・気付いた点 [#bad6495c]
電池は新しい物にして試しました。ロボットの横幅をより狭く...
紙コップは一度に3つまで確実に持ち上げられました。4つめは...
**感想 [#eb6308d0]
紙コップを確実に持ち上げられたので、ロボットをライントレ...
終了行:
[[2016a/Member]]
*課題3 [#g37c48fe]
**目次 [#f68cc65a]
#CONTENTS
**ロボットの説明 [#ne4d7075]
一つのロボットで、紙コップを重ねながら持ち運びたかったの...
#ref(本体.jpg)
本体と腕に分かれており、お互いの動きは信号を送りあって動...
#ref(本体2.jpg)
超音波センサは半径9cmに物があるとロボットが停止するように...
**紙コップを持つ・離す方法 [#u344a46e]
タイヤを利用して紙コップを持ち上げることにしました。~
図に書いてある黄色の矢印の方向に回すことで紙コップを持つ...
タイヤがゴムでできているので、人間の力を加えない限り紙コ...
#ref(持ち上げ.jpg)
持った後はアームを上げ、ロボットのバランスを安定にしてか...
#ref(持ち上げ2.jpg)
紙コップを離すのは、アームを下ろす→タイヤを逆回転させて紙...
**自分たちが決めた経路 [#g9b67f11]
#ref(マップ.png)
私達はロボコン直前まで、光センサでAからCへ動かそうとした...
よって、BからCへ直接向かい、紙コップを回収して円の中にせ...
**プログラム説明 [#h013f8c2]
***本体について [#o05789e9]
#define SPEED 50 //スピード50
#define go_forward OnFwd(OUT_BC,SPEED); //前進
#define CONN 1 //スレーブ...
#define SIGNALON 21 //腕を動か...
#define SIGNALOFF 22 //腕を動か...
#define SIGNALON2 31
#define SIGNALOFF2 32
#define turn_leftC OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED...
#define turn_rightC OnFwd(OUT_C,SPEED);OnRev(OUT_B,SPEED...
task main()
{
int msg //MAIL...
SetSensorLowspeed(S1); //端...
go_forward; //前進
until(SensorUS(S1) <= 9); //セン...
Off(OUT_BC);
SendRemoteNumber(CONN,MAILBOX1,SIGNALON ); //信...
while (true){
ReceiveRemoteNumber(MAILBOX2,true,msg); //msgを受け取...
if (msg == SIGNALOFF ){ //信号を受け...
turn_leftC;
Wait(1600);
Off(OUT_BC);
go_forward; //前進
Wait(1000);
Off(OUT_BC);
SendRemoteNumber(CONN,MAILBOX1,SIGNALON2 ); //腕を...
if (msg == SIGNALOFF2 ){ //信号を受け...
turn_leftC;
Wait(1000);
Off(OUT_BC);
}else { ...
Off(OUT_BC);
}
}
}
}
***腕について [#p48faf26]
#define SIGNALON 21 ...
#define SIGNALOFF 22 ...
#define LIFT_up OnRev(OUT_C,35);Wait(520);Off(OUT_BC); ...
#define LIFT_down OnFwd(OUT_C,20);Wait(550);Off(OUT_BC);...
#define CATCH OnFwd(OUT_B,60);Wait(2000);Off(OUT_B); ...
#define RELEASE OnFwd(OUT_B,50);Wait(1500);Off(OUT_B); ...
#define CONN 0 ...
#define SIGNALON2 31
#define SIGNALOFF2 32
void ude() //サブルーチン
{
LIFT_down;
CATCH;
LIFT_up;
CATCH;
Off(OUT_B);
}
task main ()
{
int msg;
while (true) {
ReceiveRemoteNumber(MAILBOX1,true,msg); //msg...
if (msg == SIGNALON) { //信号...
ude();
SendResponseNumber(MAILBOX2,SIGNALOFF); //本...
}
if (msg == SIGNALON2) { //信号を受け...
RELEASE;
SendResponseNumber(MAILBOX2,SIGNALOFF2); //本体...
} else { //そ...
Off(OUT_BC);
}
**考察・気付いた点 [#bad6495c]
電池は新しい物にして試しました。ロボットの横幅をより狭く...
紙コップは一度に3つまで確実に持ち上げられました。4つめは...
**感想 [#eb6308d0]
紙コップを確実に持ち上げられたので、ロボットをライントレ...
ページ名: