2014a/Member/saborijini/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2014a/Member]]
*今回の課題 [#r01000e4]
リンク参照
[[課題2:http://yakushi.shinshu-u.ac.jp/robotics/?2014a...
*メンバー紹介 [#n9d003ed]
saborijini(ハード・ソフト主に製作しました)
bosoo
hodaka
snowdrop
*ロボット解説 [#i707f0d4]
&ref(IMG_0243.JPG);~
ライントレース用のセンサーは少し上げています。これは2枚...
&ref(IMG_0244.JPG);~
超音波センサーはロボットの真正面に配置しました。コップに...
&ref(IMG_0245.JPG);~
これはアームを上に挙げた状態です。子機親機を二段重ねにす...
&ref(IMG_0246.JPG);~
アームにはセンサーを取り付けました。始めは超音波センサー...
&ref(IMG_0247.JPG);
&ref(IMG_0248.JPG);~
これはアームを下した状態です。ゴムをアームの補助として使...
*プログラム解説 [#w0ae5ed8]
ここで同じようなプログラム[PlaySound(SOUND_CLICK);やOff...
また今回の課題に余り時間をかけられなかったので1個のコッ...
コップは茶色のコップを使用し、白黒の着色で区別しました~
図に示したような動作をするつもりでした。~
&ref(2014a-mission2.png);
**マスター(親機)のプログラム [#kef749ae]
ここからのプログラム解説は上の図を参考にしながら見て下さ...
#define black 36
#define speed 35
#define A 38
#define B 65
定数の定義をしています。電池の種類・消耗次第でスピードが...
上から順に黒線と白紙の境界値・ロボットの移動速度(モーター...
task main()
{
SetSensorLight(S1);
SetSensorLight(S4);
SetSensorLowspeed(S3);
センサーの定義をしています。1にはライントレース用の光セ...
int msg;
msgという変数を用いることを示しています。これは後で使いま...
until(BluetoothStatus(1) == NO_ERR);
RemotePlayTone(1,440,1000);
子機との通信が出来ているか確認して上手くいっているとピー...
Off(OUT_BC);
Wait(1200);
ピーっと鳴らしている間はロボットは止まっているようにして...
OnFwdSync(OUT_BC,speed,0);
until(SENSOR_1 < black);
PlaySound(SOUND_CLICK);
ここからロボットが動き出します。OnFwdSyncを用いて直進して...
また今回ロボットの移動にWait();を使うのを控えました。これ...
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
Wait(400);
PlaySound(SOUND_CLICK);
スタート位置の黒線の枠を横断します
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
until(SENSOR_1 < black);
PlaySound(SOUND_CLICK);
次の黒線に当たるまで直進します
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
Wait(500);
PlaySound(SOUND_CLICK);
黒線の枠を横断します。ここでロボットは枠内に半分ほど入り...
Off(OUT_BC);Wait(500);
OnFwd(OUT_B,speed);
OnRev(OUT_C,speed);
until(SENSOR_1 < black);
PlaySound(SOUND_CLICK);
ロボットが黒線上にいる状態で方向転換(左へ旋回)します。こ...
Off(OUT_BC);Wait(700);
OnFwd(OUT_B,speed);
OnRev(OUT_C,speed);
Wait(180);
PlaySound(SOUND_CLICK);
前の動作でほぼ旋回できているのでここでは微調整として少し...
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
Wait(1100);
PlaySound(SOUND_CLICK);
旋回が終わるとロボットは黒線の枠上にあるので光センサーを...
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
until(SENSOR_1 < black);
PlaySound(SOUND_CLICK);
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
Wait(500);
PlaySound(SOUND_CLICK);
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
until(SENSOR_1 < black);
PlaySound(SOUND_CLICK);
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
Wait(600);
PlaySound(SOUND_CLICK);
Off(OUT_BC);Wait(500);
図から分かるように旋回した地点からすると、コップは黒線2...
OnFwd(OUT_B,speed);
OnRev(OUT_C,speed);
until(SENSOR_1 < black);
PlaySound(SOUND_CLICK);
Off(OUT_BC);Wait(500);
ここは前述の方向転換と同じです。これでコップがロボットの...
OnRevSync(OUT_BC,speed,0);
Wait(2000);
ここで一旦バックして下がります。あまりにもコップとの距離...
OnFwdSync(OUT_BC,speed,0);
until(SensorUS(S3) <= 12);
コップとの距離が12cm以下になるまで前進します。この12c...
Off(OUT_BC);
Wait(100);
RemoteStartProgram(1,"z_slave.rxe");
ベストポジションに来たので親機からプログラム「z_slave.rxe...
while(msg != 11){
ReceiveRemoteNumber(MAILBOX1,true,msg);
}
PlaySound(SOUND_CLICK);
子機から「11」というメッセージが来るまで待ちます。この...
~
ルールにあるようにコップはランダムに置かれます。コップはA...
if(SENSOR_4 < A){
OnFwdSync(OUT_BC,speed,0);
until(SensorUS(S3) <= 18);
Off(OUT_BC);
Wait(100);
RemoteStartProgram(1,"z_slave-2.rxe");
while(msg != 12){
ReceiveRemoteNumber(MAILBOX1,true,msg);
}
PlaySound(SOUND_CLICK);
もしコップがAだとしたら1まで運ぶのでコップとの距離18cm...
}else if(SENSOR_4 < B){
OnFwdSync(OUT_BC,speed,0);
Wait(2000);
PlaySound(SOUND_CLICK);
Off(OUT_BC);Wait(500);
OnFwd(OUT_B,speed);
OnRev(OUT_C,speed);
until(SensorUS(S3) < 18);
PlaySound(SOUND_CLICK);
Off(OUT_BC);
Wait(100);
RemoteStartProgram(1,"z_slave-2.rxe");
while(msg != 12){
ReceiveRemoteNumber(MAILBOX1,true,msg);
}
PlaySound(SOUND_CLICK);
もしコップがBだとしたら超音波センサーでコップを認識するま...
}else{
OnFwdSync(OUT_BC,speed,0);
Wait(6000);
OnFwd(OUT_B,speed);
OnRev(OUT_C,speed);
until(SensorUS(S3) < 30);
PlaySound(SOUND_CLICK);
Off(OUT_BC);
Wait(100);
OnFwdSync(OUT_BC,speed,0);
until(SensorUS(S3) <= 18);
Off(OUT_BC);
Wait(100);
RemoteStartProgram(1,"z_slave-2.rxe");
Off(OUT_BC);
Wait(100);
RemoteStartProgram(1,"z_slave-2.rxe");
while(msg != 12){
ReceiveRemoteNumber(MAILBOX1,true,msg);
}
PlaySound(SOUND_CLICK);
}
}
もしコップがCだとしたらコップ3が真横に来るように前進、右...
**スラーブ(子機)のプログラム [#aebee944]
task main()
{
PlaySound(SOUND_CLICK);
OnFwd(OUT_A,70);Wait(2800);Off(OUT_A);
OnRev(OUT_C,20);Wait(800);Off(OUT_C);
OnRev(OUT_A,60);Wait(2800);Off(OUT_A);
SendResponseNumber(MAILBOX1,11);
Wait(1000);
PlaySound(SOUND_CLICK);
}
アームを下げて掴んでアームを上げます。そして親機にメッセ...
task main()
{
PlaySound(SOUND_CLICK);
OnFwd(OUT_A,60);Wait(900);Off(OUT_A);
OnFwd(OUT_C,20);Wait(700);Off(OUT_C);
OnRev(OUT_A,80);Wait(1800);Off(OUT_A);
SendResponseNumber(MAILBOX1,12);
Wait(1000);
PlaySound(SOUND_CLICK);
}
アームを下げて離してアームを上げます。そして親機にメッセ...
*反省と感想 [#z863eb64]
ロボコンの結果は4位/9チーム中でした。プログラミングで...
ではロボットについての感想を述べたいと思います。完成し...
そしてプログラムについて、ただただ協力と時間が足りなか...
最後にゼミを通しての感想はいろいろ難題にぶつかりました...
終了行:
[[2014a/Member]]
*今回の課題 [#r01000e4]
リンク参照
[[課題2:http://yakushi.shinshu-u.ac.jp/robotics/?2014a...
*メンバー紹介 [#n9d003ed]
saborijini(ハード・ソフト主に製作しました)
bosoo
hodaka
snowdrop
*ロボット解説 [#i707f0d4]
&ref(IMG_0243.JPG);~
ライントレース用のセンサーは少し上げています。これは2枚...
&ref(IMG_0244.JPG);~
超音波センサーはロボットの真正面に配置しました。コップに...
&ref(IMG_0245.JPG);~
これはアームを上に挙げた状態です。子機親機を二段重ねにす...
&ref(IMG_0246.JPG);~
アームにはセンサーを取り付けました。始めは超音波センサー...
&ref(IMG_0247.JPG);
&ref(IMG_0248.JPG);~
これはアームを下した状態です。ゴムをアームの補助として使...
*プログラム解説 [#w0ae5ed8]
ここで同じようなプログラム[PlaySound(SOUND_CLICK);やOff...
また今回の課題に余り時間をかけられなかったので1個のコッ...
コップは茶色のコップを使用し、白黒の着色で区別しました~
図に示したような動作をするつもりでした。~
&ref(2014a-mission2.png);
**マスター(親機)のプログラム [#kef749ae]
ここからのプログラム解説は上の図を参考にしながら見て下さ...
#define black 36
#define speed 35
#define A 38
#define B 65
定数の定義をしています。電池の種類・消耗次第でスピードが...
上から順に黒線と白紙の境界値・ロボットの移動速度(モーター...
task main()
{
SetSensorLight(S1);
SetSensorLight(S4);
SetSensorLowspeed(S3);
センサーの定義をしています。1にはライントレース用の光セ...
int msg;
msgという変数を用いることを示しています。これは後で使いま...
until(BluetoothStatus(1) == NO_ERR);
RemotePlayTone(1,440,1000);
子機との通信が出来ているか確認して上手くいっているとピー...
Off(OUT_BC);
Wait(1200);
ピーっと鳴らしている間はロボットは止まっているようにして...
OnFwdSync(OUT_BC,speed,0);
until(SENSOR_1 < black);
PlaySound(SOUND_CLICK);
ここからロボットが動き出します。OnFwdSyncを用いて直進して...
また今回ロボットの移動にWait();を使うのを控えました。これ...
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
Wait(400);
PlaySound(SOUND_CLICK);
スタート位置の黒線の枠を横断します
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
until(SENSOR_1 < black);
PlaySound(SOUND_CLICK);
次の黒線に当たるまで直進します
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
Wait(500);
PlaySound(SOUND_CLICK);
黒線の枠を横断します。ここでロボットは枠内に半分ほど入り...
Off(OUT_BC);Wait(500);
OnFwd(OUT_B,speed);
OnRev(OUT_C,speed);
until(SENSOR_1 < black);
PlaySound(SOUND_CLICK);
ロボットが黒線上にいる状態で方向転換(左へ旋回)します。こ...
Off(OUT_BC);Wait(700);
OnFwd(OUT_B,speed);
OnRev(OUT_C,speed);
Wait(180);
PlaySound(SOUND_CLICK);
前の動作でほぼ旋回できているのでここでは微調整として少し...
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
Wait(1100);
PlaySound(SOUND_CLICK);
旋回が終わるとロボットは黒線の枠上にあるので光センサーを...
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
until(SENSOR_1 < black);
PlaySound(SOUND_CLICK);
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
Wait(500);
PlaySound(SOUND_CLICK);
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
until(SENSOR_1 < black);
PlaySound(SOUND_CLICK);
Off(OUT_BC);Wait(500);
OnFwdSync(OUT_BC,speed,0);
Wait(600);
PlaySound(SOUND_CLICK);
Off(OUT_BC);Wait(500);
図から分かるように旋回した地点からすると、コップは黒線2...
OnFwd(OUT_B,speed);
OnRev(OUT_C,speed);
until(SENSOR_1 < black);
PlaySound(SOUND_CLICK);
Off(OUT_BC);Wait(500);
ここは前述の方向転換と同じです。これでコップがロボットの...
OnRevSync(OUT_BC,speed,0);
Wait(2000);
ここで一旦バックして下がります。あまりにもコップとの距離...
OnFwdSync(OUT_BC,speed,0);
until(SensorUS(S3) <= 12);
コップとの距離が12cm以下になるまで前進します。この12c...
Off(OUT_BC);
Wait(100);
RemoteStartProgram(1,"z_slave.rxe");
ベストポジションに来たので親機からプログラム「z_slave.rxe...
while(msg != 11){
ReceiveRemoteNumber(MAILBOX1,true,msg);
}
PlaySound(SOUND_CLICK);
子機から「11」というメッセージが来るまで待ちます。この...
~
ルールにあるようにコップはランダムに置かれます。コップはA...
if(SENSOR_4 < A){
OnFwdSync(OUT_BC,speed,0);
until(SensorUS(S3) <= 18);
Off(OUT_BC);
Wait(100);
RemoteStartProgram(1,"z_slave-2.rxe");
while(msg != 12){
ReceiveRemoteNumber(MAILBOX1,true,msg);
}
PlaySound(SOUND_CLICK);
もしコップがAだとしたら1まで運ぶのでコップとの距離18cm...
}else if(SENSOR_4 < B){
OnFwdSync(OUT_BC,speed,0);
Wait(2000);
PlaySound(SOUND_CLICK);
Off(OUT_BC);Wait(500);
OnFwd(OUT_B,speed);
OnRev(OUT_C,speed);
until(SensorUS(S3) < 18);
PlaySound(SOUND_CLICK);
Off(OUT_BC);
Wait(100);
RemoteStartProgram(1,"z_slave-2.rxe");
while(msg != 12){
ReceiveRemoteNumber(MAILBOX1,true,msg);
}
PlaySound(SOUND_CLICK);
もしコップがBだとしたら超音波センサーでコップを認識するま...
}else{
OnFwdSync(OUT_BC,speed,0);
Wait(6000);
OnFwd(OUT_B,speed);
OnRev(OUT_C,speed);
until(SensorUS(S3) < 30);
PlaySound(SOUND_CLICK);
Off(OUT_BC);
Wait(100);
OnFwdSync(OUT_BC,speed,0);
until(SensorUS(S3) <= 18);
Off(OUT_BC);
Wait(100);
RemoteStartProgram(1,"z_slave-2.rxe");
Off(OUT_BC);
Wait(100);
RemoteStartProgram(1,"z_slave-2.rxe");
while(msg != 12){
ReceiveRemoteNumber(MAILBOX1,true,msg);
}
PlaySound(SOUND_CLICK);
}
}
もしコップがCだとしたらコップ3が真横に来るように前進、右...
**スラーブ(子機)のプログラム [#aebee944]
task main()
{
PlaySound(SOUND_CLICK);
OnFwd(OUT_A,70);Wait(2800);Off(OUT_A);
OnRev(OUT_C,20);Wait(800);Off(OUT_C);
OnRev(OUT_A,60);Wait(2800);Off(OUT_A);
SendResponseNumber(MAILBOX1,11);
Wait(1000);
PlaySound(SOUND_CLICK);
}
アームを下げて掴んでアームを上げます。そして親機にメッセ...
task main()
{
PlaySound(SOUND_CLICK);
OnFwd(OUT_A,60);Wait(900);Off(OUT_A);
OnFwd(OUT_C,20);Wait(700);Off(OUT_C);
OnRev(OUT_A,80);Wait(1800);Off(OUT_A);
SendResponseNumber(MAILBOX1,12);
Wait(1000);
PlaySound(SOUND_CLICK);
}
アームを下げて離してアームを上げます。そして親機にメッセ...
*反省と感想 [#z863eb64]
ロボコンの結果は4位/9チーム中でした。プログラミングで...
ではロボットについての感想を述べたいと思います。完成し...
そしてプログラムについて、ただただ協力と時間が足りなか...
最後にゼミを通しての感想はいろいろ難題にぶつかりました...
ページ名: