2018a/Member/kota/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018a/Member]]
目次
#contents
*課題3の概要 [#f450e472]
**課題3の内容 [#h2affd11]
課題3の大まかな概要については,空き缶を運搬するロボットを...
(詳しくは,ロボティクス入門ゼミの2018年前期 課題3参照)
**コースの説明 [#fc100065]
フィールドは,課題2のコースにスタート地点をつけ足したもの...
*ロボットの説明 [#jab1541e]
私たちは超音波センサーを搭載した,同じ型のロボットを2台作...
**超音波センサー [#ya2eea3c]
超音波センサーは空き缶の位置を特定するために取り付けた....
**アーム [#u241e3bc]
アームは,垂直方向と水平方向を向いたギアをそれぞれ接触さ...
*得点を取るために [#m71e2d3e]
得点を取るために私たちが考えたプランとしては,確実に点を...
*ロボットのプログラミング [#f6ea1529]
今回私たちの班は,2つのロボットを作ったので,それぞれをマ...
**超音波センサーのプログラミング [#y7bc8ad3]
task main ()
{
while(SensorUS(S4)>40) //測った距離が40cm以上の間
{
OnFwd(OUT_C,25);
OnRev(OUT_B,25);
until(SensorUS(S4)<40);//40cm以下まで旋回
if(SensorUS(S4)<40) //40cm以下になったとき
{
PlaySound (SOUND_CLICK);
Wait(50);
OnFwd(OUT_C,25);
OnRev(OUT_B,25);
Wait(150); //缶に対面するように角度調整
OnFwd(OUT_C,30);
OnFwd(OUT_B,34);
until(SensorUS(S4)<8);//缶との距離が8cmになるまで前進
Off(OUT_BC);
Wait(300);
OnFwd(OUT_C,30);
OnFwd(OUT_B,34);
Wait(300);
Off(OUT_BC);
OnRev(OUT_A,30); //缶を掴む
Wait(400);
Off(OUT_A);
}
}
}
**マスターのプログラミング [#o25ad156]
#define CONN 1 [#k5c86b76]
task main ()
{
OnFwd(OUT_C,70);
OnFwd(OUT_B,72);
Wait(1700); //対角線上になるまで移動する
Off(OUT_BC);
OnFwd(OUT_A,30);
Wait(400);
Off(OUT_A);
SetSensorLowspeed(S4); //缶を探す
while(SensorUS(S4)>40)
{
OnFwd(OUT_C,25);
OnRev(OUT_B,25);
until(SensorUS(S4)<40);
if(SensorUS(S4)<40) //缶を発見したとき
{
PlaySound (SOUND_CLICK);
Wait(50);
OnFwd(OUT_C,25);
OnRev(OUT_B,25);
Wait(150);
OnFwd(OUT_C,30);
OnFwd(OUT_B,34);
until(SensorUS(S4)<8);//缶との距離が8cm以下になるま...
Off(OUT_BC);
Wait(300);
OnFwd(OUT_C,30);
OnFwd(OUT_B,34);
Wait(300);
Off(OUT_BC);
OnRev(OUT_A,30); //缶を掴む
Wait(400);
Off(OUT_A);
}
OnFwd(OUT_B,25);
OnFwd(OUT_C,25);
Wait(1800); //写真の紫の線の楕円軌道の中...
until ( BluetoothStatus(CONN) == NO_ERR );
RemoteStartProgram(1, "slave.rxe");
Off(OUT_BC);
Wait(9000); //slaveが青の線の楕円軌道の中央...
OnFwd(OUT_B,60);
OnFwd(OUT_C,25);
Wait(3600); //缶を置く場所まで移動する
Off(OUT_BC);
OnRev(OUT_B,25);
OnRev(OUT_C,25);
Wait(3600); //誤作動防止と、得点が下がる缶...
OnFwd(OUT_B,30);
OnRev(OUT_C,30);
Wait(800); //誤作動防止と、得点が下がる缶を...
Off(OUT_BC);
}
OnFwd(OUT_A,30); //得点が下がる缶を円の外に出す
Wait(400);
Off(OUT_A);
}
**スレーブのプログラミング [#tf4a783e]
task main () [#v75aca1d]
{
SetSensorLowspeed(S4);
while(SensorUS(S4)>40)//缶を探す
{
OnFwd(OUT_B,25);
OnRev(OUT_C,25);
until(SensorUS(S4)<40);
if(SensorUS(S4)<40)//缶を発見したとき
{
PlaySound (SOUND_CLICK);
Wait(50);
Off(OUT_BC);
Wait(200);
OnRev(OUT_C,25);
OnFwd(OUT_B,25);
Wait(150); //缶と対面するように角度調整
Off(OUT_BC);
Wait(200);
OnFwd(OUT_C,20);
OnFwd(OUT_B,22);
until(SensorUS(S4)<8);//缶との距離が8cm以下になるま...
Off(OUT_BC);
Wait(300);
OnFwd(OUT_C,30);
OnFwd(OUT_B,34);
Wait(300); //缶との距離をさらに近づけ、つ...
Off(OUT_BC);
OnRev(OUT_A,17); //缶を掴む
Wait(800);
Off(OUT_A);
}
OnFwd(OUT_C,35);
OnFwd(OUT_B,25);
Wait(2800); //緩やかに曲がり、楕円軌道を描きやす...
Off(OUT_BC);
Wait(10);
OnFwd(OUT_C,25);
OnFwd(OUT_B,50);
Wait(2000); //円上に缶を運ぶ
Off(OUT_BC);
OnRev(OUT_A,17); //もう一度缶をしっかり掴む
Wait(800);
Off(OUT_A);
OnRev(OUT_C,25);
OnRev(OUT_B,25);
Wait(800); //2段目の缶を持ち帰り、得点を狙うた...
Off(OUT_BC);
OnFwd(OUT_B,40);
OnRev(OUT_C,40);
Wait(1000); //缶を持ち帰る
OnFwd(OUT_C,25);
OnFwd(OUT_B,50);
Wait(1500); //持ち帰った缶を円上まで運ぶ
Off(OUT_BC);
OnFwd(OUT_A,17); //缶をはなす
Wait(800);
Off(OUT_A);
}
}
終了行:
[[2018a/Member]]
目次
#contents
*課題3の概要 [#f450e472]
**課題3の内容 [#h2affd11]
課題3の大まかな概要については,空き缶を運搬するロボットを...
(詳しくは,ロボティクス入門ゼミの2018年前期 課題3参照)
**コースの説明 [#fc100065]
フィールドは,課題2のコースにスタート地点をつけ足したもの...
*ロボットの説明 [#jab1541e]
私たちは超音波センサーを搭載した,同じ型のロボットを2台作...
**超音波センサー [#ya2eea3c]
超音波センサーは空き缶の位置を特定するために取り付けた....
**アーム [#u241e3bc]
アームは,垂直方向と水平方向を向いたギアをそれぞれ接触さ...
*得点を取るために [#m71e2d3e]
得点を取るために私たちが考えたプランとしては,確実に点を...
*ロボットのプログラミング [#f6ea1529]
今回私たちの班は,2つのロボットを作ったので,それぞれをマ...
**超音波センサーのプログラミング [#y7bc8ad3]
task main ()
{
while(SensorUS(S4)>40) //測った距離が40cm以上の間
{
OnFwd(OUT_C,25);
OnRev(OUT_B,25);
until(SensorUS(S4)<40);//40cm以下まで旋回
if(SensorUS(S4)<40) //40cm以下になったとき
{
PlaySound (SOUND_CLICK);
Wait(50);
OnFwd(OUT_C,25);
OnRev(OUT_B,25);
Wait(150); //缶に対面するように角度調整
OnFwd(OUT_C,30);
OnFwd(OUT_B,34);
until(SensorUS(S4)<8);//缶との距離が8cmになるまで前進
Off(OUT_BC);
Wait(300);
OnFwd(OUT_C,30);
OnFwd(OUT_B,34);
Wait(300);
Off(OUT_BC);
OnRev(OUT_A,30); //缶を掴む
Wait(400);
Off(OUT_A);
}
}
}
**マスターのプログラミング [#o25ad156]
#define CONN 1 [#k5c86b76]
task main ()
{
OnFwd(OUT_C,70);
OnFwd(OUT_B,72);
Wait(1700); //対角線上になるまで移動する
Off(OUT_BC);
OnFwd(OUT_A,30);
Wait(400);
Off(OUT_A);
SetSensorLowspeed(S4); //缶を探す
while(SensorUS(S4)>40)
{
OnFwd(OUT_C,25);
OnRev(OUT_B,25);
until(SensorUS(S4)<40);
if(SensorUS(S4)<40) //缶を発見したとき
{
PlaySound (SOUND_CLICK);
Wait(50);
OnFwd(OUT_C,25);
OnRev(OUT_B,25);
Wait(150);
OnFwd(OUT_C,30);
OnFwd(OUT_B,34);
until(SensorUS(S4)<8);//缶との距離が8cm以下になるま...
Off(OUT_BC);
Wait(300);
OnFwd(OUT_C,30);
OnFwd(OUT_B,34);
Wait(300);
Off(OUT_BC);
OnRev(OUT_A,30); //缶を掴む
Wait(400);
Off(OUT_A);
}
OnFwd(OUT_B,25);
OnFwd(OUT_C,25);
Wait(1800); //写真の紫の線の楕円軌道の中...
until ( BluetoothStatus(CONN) == NO_ERR );
RemoteStartProgram(1, "slave.rxe");
Off(OUT_BC);
Wait(9000); //slaveが青の線の楕円軌道の中央...
OnFwd(OUT_B,60);
OnFwd(OUT_C,25);
Wait(3600); //缶を置く場所まで移動する
Off(OUT_BC);
OnRev(OUT_B,25);
OnRev(OUT_C,25);
Wait(3600); //誤作動防止と、得点が下がる缶...
OnFwd(OUT_B,30);
OnRev(OUT_C,30);
Wait(800); //誤作動防止と、得点が下がる缶を...
Off(OUT_BC);
}
OnFwd(OUT_A,30); //得点が下がる缶を円の外に出す
Wait(400);
Off(OUT_A);
}
**スレーブのプログラミング [#tf4a783e]
task main () [#v75aca1d]
{
SetSensorLowspeed(S4);
while(SensorUS(S4)>40)//缶を探す
{
OnFwd(OUT_B,25);
OnRev(OUT_C,25);
until(SensorUS(S4)<40);
if(SensorUS(S4)<40)//缶を発見したとき
{
PlaySound (SOUND_CLICK);
Wait(50);
Off(OUT_BC);
Wait(200);
OnRev(OUT_C,25);
OnFwd(OUT_B,25);
Wait(150); //缶と対面するように角度調整
Off(OUT_BC);
Wait(200);
OnFwd(OUT_C,20);
OnFwd(OUT_B,22);
until(SensorUS(S4)<8);//缶との距離が8cm以下になるま...
Off(OUT_BC);
Wait(300);
OnFwd(OUT_C,30);
OnFwd(OUT_B,34);
Wait(300); //缶との距離をさらに近づけ、つ...
Off(OUT_BC);
OnRev(OUT_A,17); //缶を掴む
Wait(800);
Off(OUT_A);
}
OnFwd(OUT_C,35);
OnFwd(OUT_B,25);
Wait(2800); //緩やかに曲がり、楕円軌道を描きやす...
Off(OUT_BC);
Wait(10);
OnFwd(OUT_C,25);
OnFwd(OUT_B,50);
Wait(2000); //円上に缶を運ぶ
Off(OUT_BC);
OnRev(OUT_A,17); //もう一度缶をしっかり掴む
Wait(800);
Off(OUT_A);
OnRev(OUT_C,25);
OnRev(OUT_B,25);
Wait(800); //2段目の缶を持ち帰り、得点を狙うた...
Off(OUT_BC);
OnFwd(OUT_B,40);
OnRev(OUT_C,40);
Wait(1000); //缶を持ち帰る
OnFwd(OUT_C,25);
OnFwd(OUT_B,50);
Wait(1500); //持ち帰った缶を円上まで運ぶ
Off(OUT_BC);
OnFwd(OUT_A,17); //缶をはなす
Wait(800);
Off(OUT_A);
}
}
ページ名: