2018a/Member/taisei/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018a/Member]]
#contents
*今回の課題 [#v850169b]
今回の課題は、課題2で使用したマップに缶を置きそれを移動...
フィールドは課題2で使用した紙を使用する。~
2種類の空き缶(Aタイプ,Bタイプ)をそれぞれ3個づつ用意し、円...
空き缶には色をつけたり文字や記号を書いてもよい。あるいは...
私たちはNXTを使用していてロボットに付けるアームを上下させ...
*ロボットについて [#p8ede449]
自分達はロボットを二つ作り、それぞれを別の動きをさせるこ...
一つをmasterとし、もう一つをslaveとした。~
缶を運ばなければいけないのでアームを取り付け、超音波セン...
#ref(IMG_0686.gif)
#ref(IMG_0687.gif)
**アームの概要 [#w545e2bd]
私たちは、三つの缶のうち真ん中の缶をアームでつかみ、一番...
#ref(IMG_0689.gif)
アームにタイヤを取り付けることにより缶をつかみやすくする...
**超音波センサー [#d6d51ad8]
缶の位置を機体で見つけてもらうために超音波センサーを取り...
機体の真ん中に取り付ける事により、缶を見つけたあとまっす...
実は一番の下の缶を運びやすくするために角をつけたが、それ...
#ref(IMG_0703.gif)
*コース [#obf31401]
私たちはをボットを二つに分けたのでslaveとmasterでコースは...
#ref(2018a-mission2.png)
**master [#y84f6729]
masterは少し進んだ後、缶を探し始め見つけたら缶を取りに行...
**slave [#f9710841]
slaveはmasterが缶を掴んだのを確認したら、缶を探して進んで...
*プログラム [#df4c74d4]
缶を見つけに行く時に超音波センサーを使用しなければならな...
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);
}
}
}
*masterとslaveについて [#o693e59e]
masterが最初に動き始めて缶を認識して缶をつかむ。~
その後に少し動いた後、slaveが缶を探し始め缶を掴みに行く。~
二つの機体が缶を掴み終わったらそれぞれその目的地まで運び...
**master [#y85d3bd5]
これがマスターのプログラミングである
#define CONN 1
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);
}
**slave [#h50f9b0d]
salveのプログラムは以下の通りである
task main ()
{
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);
}
}
*結果と感想 [#o99a5875]
自分達の結果は2点だった。もともと自分達は一点を目標にして...
しかし、本番で他の班を見ていてこんなにも簡単に点数が取れ...
自分達はアームが他の機体のように上げ下げできないことで少...
今回の課題では自分は機体の方を担当したが、もっと点数にこ...
今度はアームを上げ下げする事に挑戦してみたい
*工夫した点 [#ha068531]
主にアームだが、どのようにしっかりと缶を掴むことができる...
アームだかモーターとの噛み合わせが悪かったので輪ゴムを使...
*反省点 [#v7c9b36a]
・アーム自体の上げ下げを諦めたこと~
・先生も指摘された通り、機体の移動が速かったため精密性に...
終了行:
[[2018a/Member]]
#contents
*今回の課題 [#v850169b]
今回の課題は、課題2で使用したマップに缶を置きそれを移動...
フィールドは課題2で使用した紙を使用する。~
2種類の空き缶(Aタイプ,Bタイプ)をそれぞれ3個づつ用意し、円...
空き缶には色をつけたり文字や記号を書いてもよい。あるいは...
私たちはNXTを使用していてロボットに付けるアームを上下させ...
*ロボットについて [#p8ede449]
自分達はロボットを二つ作り、それぞれを別の動きをさせるこ...
一つをmasterとし、もう一つをslaveとした。~
缶を運ばなければいけないのでアームを取り付け、超音波セン...
#ref(IMG_0686.gif)
#ref(IMG_0687.gif)
**アームの概要 [#w545e2bd]
私たちは、三つの缶のうち真ん中の缶をアームでつかみ、一番...
#ref(IMG_0689.gif)
アームにタイヤを取り付けることにより缶をつかみやすくする...
**超音波センサー [#d6d51ad8]
缶の位置を機体で見つけてもらうために超音波センサーを取り...
機体の真ん中に取り付ける事により、缶を見つけたあとまっす...
実は一番の下の缶を運びやすくするために角をつけたが、それ...
#ref(IMG_0703.gif)
*コース [#obf31401]
私たちはをボットを二つに分けたのでslaveとmasterでコースは...
#ref(2018a-mission2.png)
**master [#y84f6729]
masterは少し進んだ後、缶を探し始め見つけたら缶を取りに行...
**slave [#f9710841]
slaveはmasterが缶を掴んだのを確認したら、缶を探して進んで...
*プログラム [#df4c74d4]
缶を見つけに行く時に超音波センサーを使用しなければならな...
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);
}
}
}
*masterとslaveについて [#o693e59e]
masterが最初に動き始めて缶を認識して缶をつかむ。~
その後に少し動いた後、slaveが缶を探し始め缶を掴みに行く。~
二つの機体が缶を掴み終わったらそれぞれその目的地まで運び...
**master [#y85d3bd5]
これがマスターのプログラミングである
#define CONN 1
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);
}
**slave [#h50f9b0d]
salveのプログラムは以下の通りである
task main ()
{
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);
}
}
*結果と感想 [#o99a5875]
自分達の結果は2点だった。もともと自分達は一点を目標にして...
しかし、本番で他の班を見ていてこんなにも簡単に点数が取れ...
自分達はアームが他の機体のように上げ下げできないことで少...
今回の課題では自分は機体の方を担当したが、もっと点数にこ...
今度はアームを上げ下げする事に挑戦してみたい
*工夫した点 [#ha068531]
主にアームだが、どのようにしっかりと缶を掴むことができる...
アームだかモーターとの噛み合わせが悪かったので輪ゴムを使...
*反省点 [#v7c9b36a]
・アーム自体の上げ下げを諦めたこと~
・先生も指摘された通り、機体の移動が速かったため精密性に...
ページ名: