2013a/Member/yno8/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
**目次 [#s0b0810b]
#contents
**前置き [#d14fe986]
-''メンバー''
--''yno8''…電気電子工学科 プログラミングとロボット製作担...
--''kawa43''…機械システム工学科 プログラミング担当。彼い...
--''chise''…看護学科 プログラミング担当。本番に居合わせら...
--''penenoryta''…機械システム工学科 ロボット製作担当。ア...
--''d.ichi''…機会・ロボット工学系 ロボット製作担当。動力...
-''注意したこと''
--ロボットの安定化、軽量化(重いパーツをなるべき下に配置し...
--電池残量に左右されないプログラミング(具体的にはタイマー...
--動作の安定化(untilを使って、ちょくちょく黒線まで戻らせ...
**課題2の説明 [#cfbf6862]
&ref(robocon2013a.png);~
-''概要''
--基本得点80点+技術点20点の計100点で課題2(ロボコンもしく...
--基本得点は自分たち以外のグループ以外の1グループが採点
--技術得点は自分たち以外の全グループが採点し、その平均で...
--大雑把に書くと、6回ボールをパスして2回缶に当てれば良い
-''基本ルール''
--競技時間は審判が続行不能と判断するまで、あるいはリタイ...
--書き足した直線部からスタートする。
--図の上部からスタートしたロボットAがピンポン玉を取りにいく
--直線部までピンポン玉を持ってくる (1)
--直線部に入ってからロボットBへパスを送る (2)
--ロボットBは直線部でパスを受け取る
--ロボットBは直線部でパスを送る (3)
--ロボットAは直線部でパスを受けとる
--ロボットAは直線部でパスを送る (4)
--ロボットBは直線部でパスを受け取る
--ロボットBがゴールの空き缶の近くまでピンポン玉を運んで空...
--ロボットBはシュートをした後もう一つのピンポン玉を取りに...
--以後は、これまでのAとBの役割を反対にして、パスを繰り返...
--開始の合図から5秒以内にスタートボタンを押す作業を完了...
--競技が終了するまで、ロボットに触ったり人間が遠隔で操作...
--途中でうまく動かなくなった場合、1回限り再スタートする...
-''基本得点(80点)''
--ボールをつかむ ・・・ 5点
--(2)のパスが通る ・・・ 5点
--(3)のパスが通る ・・・ 10点
--(4)のパスが通る ・・・ 5点
--(5)でシュートをする ・・・ 5点
--シュートが空き缶に当たる ・・・ 10点
--反対方向も同じ
-''技術得点(20点)''
--ピンポン玉を取りにいくまでの動作 (3点)
--ピンポン玉を運ぶ動作(2点)
--ピンポン玉をパスする動作(3点)
--ピンポン玉を受ける動作(3点)
--2台以上のロボットの連携の良さ(3点)
--自立型のロボットとしての形や動作の美しさ、斬新さ(3点)
--その他 (3点)
**ロボット [#c09087d8]
-''概要''~
&ref(img_1.jpg);~
二台とも同じデザインのロボットで勝負することとなった。緑...
&ref(img_2.jpg);~
設計の都合上、いちいち裏返さないとプログラムを実行するこ...
-''特徴''
--''四輪''
---課題1ではモーターとコンピューター本体を上に配置しすぎ...
&ref(img_3.jpg);~
&ref(img_4.jpg);~
パーツの個数の関係から四輪にするためにタイヤを簡単化する...
&ref(img_6.jpg);~
--''アーム''~
---''概要''~
&ref(img_9.jpg);~
↑モーターからの動力を歯車を4つ用いることでアームに伝えて...
---''受け取るとき''~
&ref(ball_catch.gif);~
↑ピンポン玉を取るときはアームを正回転させている。ロボット...
---''打つとき''~
&ref(ball_utu.gif);~
↑アームを逆回転させることでボールを打っている。打つところ...
-''苦労したところ''
--''赤外線センサー''~
&ref(img_7.jpg);~
&ref(img_10.jpg);~
一番時間がかかった部分である。ここのパーツだけで3時間かか...
--''歯車部分''
---骨格は40分で製作完了。そのせいで1時間の改善作業が二度...
**プログラム [#h7f1574a]
#define zone1 37 //黒線の中央の値
#define zone2 45 //黒線の中央よりやや外側よりの値
#define zone3 60 //黒線と白紙部分の境目の値
#define zone4 65 //白紙部分の値
#define SPEED 45 //ロボットの進む速さ
#define LOWSPEED SPEED*0.625 //「SPEED」の0.625倍の速さ
#define mae OnFwd(OUT_BC,SPEED*0.8); //「SPEED」の0.8倍...
#define STEP 1 //一回の判定でロボが進む時間(この場合だと...
#define nMAX 100 //STEP秒間に赤外線センサーの値が37以下...
#define SIGNAL1 11 //「打った」と宣言する信号
#define SIGNAL2 12 //「打て」と宣言する信号
#define CONN 1 //通信の時に設定するスレーブの番号(1〜3ま...
int p=0; //センサーが黒線の上にあるとき、pを使ってカウン...
int n=0; //
int m=0; //交差点を通過した個数を数えるときにmを使う
int msg=0; //相手に送るメッセージ
sub migigawa(int x) //交差点をx回通過するまで右側をラ...
{
while(m < x) {
while(p < nMAX && m<x) {
if (SENSOR_4 < zone1) {
OnFwd(OUT_B,SPEED);OnRev(OUT_C,LOWSPEED);...
p++;
} else {
if (SENSOR_4 < zone2) {
OnFwd(OUT_B,SPEED);Off(OUT_C); //普通の右折
} else if (SENSOR_4 < zone3) {
mae;
} else if (SENSOR_4 < zone4) {
OnFwd(OUT_C,SPEED);Off(OUT_B); // 普通の...
} else {
OnFwd(OUT_C,SPEED);OnRev(OUT_B,LOWSPEED);...
}
p=0;
}
Wait(STEP);
}
OnFwd(OUT_C,SPEED);OnRev(OUT_B,LOWSPEED);...
Wait(nMAX*STEP);
OnFwd(OUT_BC,SPEED);Wait(300);
p=0;
m++;
}
m=0;
}
↑「赤外線センサーの値がzone1(37)以下ならば小回りに右折し...
sub hidarigawa(int x) //交差点をx回通過するまでライン...
{
while(m < x) {
while(p < nMAX && m<x) {
if (SENSOR_4 < zone1) {
OnFwd(OUT_C,SPEED);Off(OUT_B); // 普通の...
p++;
} else {
if (SENSOR_4 < zone2) {
OnFwd(OUT_C,SPEED);OnRev(OUT_B,LOWSPEED);...
} else if (SENSOR_4 < zone3) {
mae;
} else if (SENSOR_4 < zone4) {
OnFwd(OUT_B,SPEED);Off(OUT_C); //普通の右折
} else {
OnFwd(OUT_B,SPEED);OnRev(OUT_C,LOWSPEED);...
}
p=0;
}
Wait(STEP);
}
OnFwd(OUT_B,SPEED);OnRev(OUT_C,LOWSPEED);
Wait(nMAX*STEP);
OnFwd(OUT_BC,SPEED);Wait(300);
p=0;
m++;
}
m=0;
}
↑こちらは黒線の左側をライントレースするプログラムをhidrig...
task main ()
{
SetSensorLight(S4); //四番ポートに赤外線センサーを設置
Wait(2000); //ロボットを置く時間
//''一回目の缶当てスタート!''
migigawa(2); //交差点を二回カウントするまでライントレ...
Off(OUT_BC);Wait(1000); //休憩
RotateMotor(OUT_C,-SPEED,200);RotateMotor(OUT_B,SPEED...
mae;OnRev(OUT_A,20);Wait(1500);Off(OUT_A); //アームで...
mae;until(SENSOR_4 < 50);Off(OUT_BC); //黒線まで直進
OnRev(OUT_BC,SPEED);Wait(500);OnRev(OUT_BC,SPEED);unt...
OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED);Wait(500); //旋回
OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED);until(SENSOR_4 ...
hidarigawa(1); //左側をライントレースしながら交差点を...
Off(OUT_BC);Wait(1000);RotateMotor(OUT_BC,-SPEED,430)...
RotateMotor(OUT_B,-SPEED,300);RotateMotor(OUT_C,SPEED...
Wait(1000);SendRemoteNumber(CONN,MAILBOX1,SIGNAL1); /...
OnFwd(OUT_BC,SPEED);RotateMotor(OUT_A,100,400);Off(OU...
RotateMotor(OUT_BC,-SPEED,200); //打った状態からライ...
OnRev(OUT_BC,SPEED);until(SENSOR_4 < 50);RotateMotor(...
OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED);until(SENSOR_4 ...
Off(OUT_BC);Wait(5000); //五秒待つ
hidarigawa(1); //左側ライントレース交差点を一回カウント
RotateMotor(OUT_BC,SPEED,100);Off(OUT_BC); //受け取る...
RotateMotor(OUT_BC,-SPEED,10);RotateMotor(OUT_C,SPEED...
SendRemoteNumber(CONN,MAILBOX2,SIGNAL2); // 相手に「...
Wait(500); //相手が打ってから球が来るまで待つ時間
OnRev(OUT_A,20);Wait(1500);Off(OUT_A); //球を受け取る
OnRev(OUT_BC,SPEED);until(SENSOR_4 < 50);Off(OUT_BC);...
OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED);until(SENSOR_4 ...
Off(OUT_BC);Wait(7000); //七秒待つ
hidarigawa(1); //左側、交差点を一回カウント
RotateMotor(OUT_BC,SPEED,50);Off(OUT_BC); //打つ地点...
RotateMotor(OUT_B,-SPEED,400);Off(OUT_B);RotateMotor(...
SendRemoteNumber(CONN,MAILBOX3,SIGNAL1); //「打つ」と...
OnFwd(OUT_BC,SPEED);RotateMotor(OUT_A,100,400);Off(OU...
RotateMotor(OUT_BC,-SPEED,50);Off(OUT_BC); //打った時...
//一回目の缶当て終了!
//二回目の缶当てスタート
RotateMotor(OUT_C,-SPEED,50);
Wait(65000); //相手が準備できるまで待機
SendRemoteNumber(CONN,MAILBOX4,SIGNAL2); //「打て」と...
Wait(1500);OnRev(OUT_A,20);Wait(1500);Off(OUT_A); //...
RotateMotor(OUT_C,SPEED,50);Wait(5000); //相手が準備...
RotateMotor(OUT_BC,-SPEED,200);
RotateMotor(OUT_C,-SPEED,180);RotateMotor(OUT_B,-SPEE...
RotateMotor(OUT_BC,SPEED,300);RotateMotor(OUT_B,SPEED...
RotateMotor(OUT_BC,-SPEED,100);
SendRemoteNumber(CONN,MAILBOX5,SIGNAL1); //「打つぞ」...
Wait(500);OnFwd(OUT_BC,SPEED);RotateMotor(OUT_A,80,40...
Wait(1500);OnRev(OUT_BC,SPEED);until(SENSOR_4 < 50);O...
RotateMotor(OUT_BC,SPEED,50);
OnFwd(OUT_C,SPEED);OnRev(OUT_B,SPEED); //ライントレー...
until(SENSOR_4 < 50);Off(OUT_BC); //ライントレースで...
migigawa(1); //目の前のT字路をカウント
RotateMotor(OUT_BC,SPEED,350);RotateMotor(OUT_B,SPEED...
RotateMotor(OUT_C,-SPEED,180);Off(OUT_BC);RotateMotor...
SendRemoteNumber(CONN,MAILBOX6,SIGNAL2); //「打て」と...
Wait(1500); //球が来るのを待つ
OnRev(OUT_A,20);Wait(1500);Off(OUT_A); //球を受け取る
Wait(1000);OnRev(OUT_BC,SPEED);until(SENSOR_4 < 50);O...
RotateMotor(OUT_BC,SPEED,50); //ライントレースできる...
OnFwd(OUT_C,SPEED);OnRev(OUT_B,SPEED);until(SENSOR_4 ...
migigawa(1);
Off(OUT_BC);
RotateMotor(OUT_B,-SPEED,420);
RotateMotor(OUT_A,100,400); //缶に当てる
//二回目の缶当て終了!
}
}
-''球を打つとき''
--モーターを回しただけだと威力が弱いので、前へ進みながら...
-''RotateMotorについて''
--Rotatemotor(OUT_A,80,50);と打つと、「Aに接続されている...
--回す角度でモーターの動きを決められるので、電池に左右さ...
--RotateMotor(OUT_BC,80,50);のように同じ方向へ同時に動か...
--課題2をクリアするために絶対必要なコマンドであった
-''BlueTooth通信について''
--注意点
---通信には電池残量の左側に書いてあるロボットの名前(ほと...
--やり方
+++Bluetoothを選択した後、My connections(握手してる画像)...
+++メッセージを送るロボット(通称マスター)がSerchを選んで...
+++Serchし終わると相手のロボットの名前(電池残量の左に書い...
+++BlueToothのマークとその右に「>」←こんなマークが出てく...
+++1〜3の番号が出てくると思うので1を選ぶ(2でも3でもいいけ...
+++1234やらabcdやら出てくるので「1234」と打つ(この過程が...
+++connectしたら左上の「>」が「◇」になるのでそしたら成功
+++以後は、一回電源を落とすたびに接続しなおさなければなら...
+++もしうまくいかなかったら先生に聞く、もしくはググる
**反省 [#k139bc56]
-授業は毎回楽しかったが、期末試験前の課外活動はさすがに辛...
**意見 [#r8e90b9c]
-ロボット同士の通信のやり方を詳しく資料に記述してほしい
-RotateMotorのコマンドはほぼ必須なので、詳しく資料に記述...
-ジュースでもいいから景品が欲しかった(マミーの新作なら尚...
終了行:
**目次 [#s0b0810b]
#contents
**前置き [#d14fe986]
-''メンバー''
--''yno8''…電気電子工学科 プログラミングとロボット製作担...
--''kawa43''…機械システム工学科 プログラミング担当。彼い...
--''chise''…看護学科 プログラミング担当。本番に居合わせら...
--''penenoryta''…機械システム工学科 ロボット製作担当。ア...
--''d.ichi''…機会・ロボット工学系 ロボット製作担当。動力...
-''注意したこと''
--ロボットの安定化、軽量化(重いパーツをなるべき下に配置し...
--電池残量に左右されないプログラミング(具体的にはタイマー...
--動作の安定化(untilを使って、ちょくちょく黒線まで戻らせ...
**課題2の説明 [#cfbf6862]
&ref(robocon2013a.png);~
-''概要''
--基本得点80点+技術点20点の計100点で課題2(ロボコンもしく...
--基本得点は自分たち以外のグループ以外の1グループが採点
--技術得点は自分たち以外の全グループが採点し、その平均で...
--大雑把に書くと、6回ボールをパスして2回缶に当てれば良い
-''基本ルール''
--競技時間は審判が続行不能と判断するまで、あるいはリタイ...
--書き足した直線部からスタートする。
--図の上部からスタートしたロボットAがピンポン玉を取りにいく
--直線部までピンポン玉を持ってくる (1)
--直線部に入ってからロボットBへパスを送る (2)
--ロボットBは直線部でパスを受け取る
--ロボットBは直線部でパスを送る (3)
--ロボットAは直線部でパスを受けとる
--ロボットAは直線部でパスを送る (4)
--ロボットBは直線部でパスを受け取る
--ロボットBがゴールの空き缶の近くまでピンポン玉を運んで空...
--ロボットBはシュートをした後もう一つのピンポン玉を取りに...
--以後は、これまでのAとBの役割を反対にして、パスを繰り返...
--開始の合図から5秒以内にスタートボタンを押す作業を完了...
--競技が終了するまで、ロボットに触ったり人間が遠隔で操作...
--途中でうまく動かなくなった場合、1回限り再スタートする...
-''基本得点(80点)''
--ボールをつかむ ・・・ 5点
--(2)のパスが通る ・・・ 5点
--(3)のパスが通る ・・・ 10点
--(4)のパスが通る ・・・ 5点
--(5)でシュートをする ・・・ 5点
--シュートが空き缶に当たる ・・・ 10点
--反対方向も同じ
-''技術得点(20点)''
--ピンポン玉を取りにいくまでの動作 (3点)
--ピンポン玉を運ぶ動作(2点)
--ピンポン玉をパスする動作(3点)
--ピンポン玉を受ける動作(3点)
--2台以上のロボットの連携の良さ(3点)
--自立型のロボットとしての形や動作の美しさ、斬新さ(3点)
--その他 (3点)
**ロボット [#c09087d8]
-''概要''~
&ref(img_1.jpg);~
二台とも同じデザインのロボットで勝負することとなった。緑...
&ref(img_2.jpg);~
設計の都合上、いちいち裏返さないとプログラムを実行するこ...
-''特徴''
--''四輪''
---課題1ではモーターとコンピューター本体を上に配置しすぎ...
&ref(img_3.jpg);~
&ref(img_4.jpg);~
パーツの個数の関係から四輪にするためにタイヤを簡単化する...
&ref(img_6.jpg);~
--''アーム''~
---''概要''~
&ref(img_9.jpg);~
↑モーターからの動力を歯車を4つ用いることでアームに伝えて...
---''受け取るとき''~
&ref(ball_catch.gif);~
↑ピンポン玉を取るときはアームを正回転させている。ロボット...
---''打つとき''~
&ref(ball_utu.gif);~
↑アームを逆回転させることでボールを打っている。打つところ...
-''苦労したところ''
--''赤外線センサー''~
&ref(img_7.jpg);~
&ref(img_10.jpg);~
一番時間がかかった部分である。ここのパーツだけで3時間かか...
--''歯車部分''
---骨格は40分で製作完了。そのせいで1時間の改善作業が二度...
**プログラム [#h7f1574a]
#define zone1 37 //黒線の中央の値
#define zone2 45 //黒線の中央よりやや外側よりの値
#define zone3 60 //黒線と白紙部分の境目の値
#define zone4 65 //白紙部分の値
#define SPEED 45 //ロボットの進む速さ
#define LOWSPEED SPEED*0.625 //「SPEED」の0.625倍の速さ
#define mae OnFwd(OUT_BC,SPEED*0.8); //「SPEED」の0.8倍...
#define STEP 1 //一回の判定でロボが進む時間(この場合だと...
#define nMAX 100 //STEP秒間に赤外線センサーの値が37以下...
#define SIGNAL1 11 //「打った」と宣言する信号
#define SIGNAL2 12 //「打て」と宣言する信号
#define CONN 1 //通信の時に設定するスレーブの番号(1〜3ま...
int p=0; //センサーが黒線の上にあるとき、pを使ってカウン...
int n=0; //
int m=0; //交差点を通過した個数を数えるときにmを使う
int msg=0; //相手に送るメッセージ
sub migigawa(int x) //交差点をx回通過するまで右側をラ...
{
while(m < x) {
while(p < nMAX && m<x) {
if (SENSOR_4 < zone1) {
OnFwd(OUT_B,SPEED);OnRev(OUT_C,LOWSPEED);...
p++;
} else {
if (SENSOR_4 < zone2) {
OnFwd(OUT_B,SPEED);Off(OUT_C); //普通の右折
} else if (SENSOR_4 < zone3) {
mae;
} else if (SENSOR_4 < zone4) {
OnFwd(OUT_C,SPEED);Off(OUT_B); // 普通の...
} else {
OnFwd(OUT_C,SPEED);OnRev(OUT_B,LOWSPEED);...
}
p=0;
}
Wait(STEP);
}
OnFwd(OUT_C,SPEED);OnRev(OUT_B,LOWSPEED);...
Wait(nMAX*STEP);
OnFwd(OUT_BC,SPEED);Wait(300);
p=0;
m++;
}
m=0;
}
↑「赤外線センサーの値がzone1(37)以下ならば小回りに右折し...
sub hidarigawa(int x) //交差点をx回通過するまでライン...
{
while(m < x) {
while(p < nMAX && m<x) {
if (SENSOR_4 < zone1) {
OnFwd(OUT_C,SPEED);Off(OUT_B); // 普通の...
p++;
} else {
if (SENSOR_4 < zone2) {
OnFwd(OUT_C,SPEED);OnRev(OUT_B,LOWSPEED);...
} else if (SENSOR_4 < zone3) {
mae;
} else if (SENSOR_4 < zone4) {
OnFwd(OUT_B,SPEED);Off(OUT_C); //普通の右折
} else {
OnFwd(OUT_B,SPEED);OnRev(OUT_C,LOWSPEED);...
}
p=0;
}
Wait(STEP);
}
OnFwd(OUT_B,SPEED);OnRev(OUT_C,LOWSPEED);
Wait(nMAX*STEP);
OnFwd(OUT_BC,SPEED);Wait(300);
p=0;
m++;
}
m=0;
}
↑こちらは黒線の左側をライントレースするプログラムをhidrig...
task main ()
{
SetSensorLight(S4); //四番ポートに赤外線センサーを設置
Wait(2000); //ロボットを置く時間
//''一回目の缶当てスタート!''
migigawa(2); //交差点を二回カウントするまでライントレ...
Off(OUT_BC);Wait(1000); //休憩
RotateMotor(OUT_C,-SPEED,200);RotateMotor(OUT_B,SPEED...
mae;OnRev(OUT_A,20);Wait(1500);Off(OUT_A); //アームで...
mae;until(SENSOR_4 < 50);Off(OUT_BC); //黒線まで直進
OnRev(OUT_BC,SPEED);Wait(500);OnRev(OUT_BC,SPEED);unt...
OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED);Wait(500); //旋回
OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED);until(SENSOR_4 ...
hidarigawa(1); //左側をライントレースしながら交差点を...
Off(OUT_BC);Wait(1000);RotateMotor(OUT_BC,-SPEED,430)...
RotateMotor(OUT_B,-SPEED,300);RotateMotor(OUT_C,SPEED...
Wait(1000);SendRemoteNumber(CONN,MAILBOX1,SIGNAL1); /...
OnFwd(OUT_BC,SPEED);RotateMotor(OUT_A,100,400);Off(OU...
RotateMotor(OUT_BC,-SPEED,200); //打った状態からライ...
OnRev(OUT_BC,SPEED);until(SENSOR_4 < 50);RotateMotor(...
OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED);until(SENSOR_4 ...
Off(OUT_BC);Wait(5000); //五秒待つ
hidarigawa(1); //左側ライントレース交差点を一回カウント
RotateMotor(OUT_BC,SPEED,100);Off(OUT_BC); //受け取る...
RotateMotor(OUT_BC,-SPEED,10);RotateMotor(OUT_C,SPEED...
SendRemoteNumber(CONN,MAILBOX2,SIGNAL2); // 相手に「...
Wait(500); //相手が打ってから球が来るまで待つ時間
OnRev(OUT_A,20);Wait(1500);Off(OUT_A); //球を受け取る
OnRev(OUT_BC,SPEED);until(SENSOR_4 < 50);Off(OUT_BC);...
OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED);until(SENSOR_4 ...
Off(OUT_BC);Wait(7000); //七秒待つ
hidarigawa(1); //左側、交差点を一回カウント
RotateMotor(OUT_BC,SPEED,50);Off(OUT_BC); //打つ地点...
RotateMotor(OUT_B,-SPEED,400);Off(OUT_B);RotateMotor(...
SendRemoteNumber(CONN,MAILBOX3,SIGNAL1); //「打つ」と...
OnFwd(OUT_BC,SPEED);RotateMotor(OUT_A,100,400);Off(OU...
RotateMotor(OUT_BC,-SPEED,50);Off(OUT_BC); //打った時...
//一回目の缶当て終了!
//二回目の缶当てスタート
RotateMotor(OUT_C,-SPEED,50);
Wait(65000); //相手が準備できるまで待機
SendRemoteNumber(CONN,MAILBOX4,SIGNAL2); //「打て」と...
Wait(1500);OnRev(OUT_A,20);Wait(1500);Off(OUT_A); //...
RotateMotor(OUT_C,SPEED,50);Wait(5000); //相手が準備...
RotateMotor(OUT_BC,-SPEED,200);
RotateMotor(OUT_C,-SPEED,180);RotateMotor(OUT_B,-SPEE...
RotateMotor(OUT_BC,SPEED,300);RotateMotor(OUT_B,SPEED...
RotateMotor(OUT_BC,-SPEED,100);
SendRemoteNumber(CONN,MAILBOX5,SIGNAL1); //「打つぞ」...
Wait(500);OnFwd(OUT_BC,SPEED);RotateMotor(OUT_A,80,40...
Wait(1500);OnRev(OUT_BC,SPEED);until(SENSOR_4 < 50);O...
RotateMotor(OUT_BC,SPEED,50);
OnFwd(OUT_C,SPEED);OnRev(OUT_B,SPEED); //ライントレー...
until(SENSOR_4 < 50);Off(OUT_BC); //ライントレースで...
migigawa(1); //目の前のT字路をカウント
RotateMotor(OUT_BC,SPEED,350);RotateMotor(OUT_B,SPEED...
RotateMotor(OUT_C,-SPEED,180);Off(OUT_BC);RotateMotor...
SendRemoteNumber(CONN,MAILBOX6,SIGNAL2); //「打て」と...
Wait(1500); //球が来るのを待つ
OnRev(OUT_A,20);Wait(1500);Off(OUT_A); //球を受け取る
Wait(1000);OnRev(OUT_BC,SPEED);until(SENSOR_4 < 50);O...
RotateMotor(OUT_BC,SPEED,50); //ライントレースできる...
OnFwd(OUT_C,SPEED);OnRev(OUT_B,SPEED);until(SENSOR_4 ...
migigawa(1);
Off(OUT_BC);
RotateMotor(OUT_B,-SPEED,420);
RotateMotor(OUT_A,100,400); //缶に当てる
//二回目の缶当て終了!
}
}
-''球を打つとき''
--モーターを回しただけだと威力が弱いので、前へ進みながら...
-''RotateMotorについて''
--Rotatemotor(OUT_A,80,50);と打つと、「Aに接続されている...
--回す角度でモーターの動きを決められるので、電池に左右さ...
--RotateMotor(OUT_BC,80,50);のように同じ方向へ同時に動か...
--課題2をクリアするために絶対必要なコマンドであった
-''BlueTooth通信について''
--注意点
---通信には電池残量の左側に書いてあるロボットの名前(ほと...
--やり方
+++Bluetoothを選択した後、My connections(握手してる画像)...
+++メッセージを送るロボット(通称マスター)がSerchを選んで...
+++Serchし終わると相手のロボットの名前(電池残量の左に書い...
+++BlueToothのマークとその右に「>」←こんなマークが出てく...
+++1〜3の番号が出てくると思うので1を選ぶ(2でも3でもいいけ...
+++1234やらabcdやら出てくるので「1234」と打つ(この過程が...
+++connectしたら左上の「>」が「◇」になるのでそしたら成功
+++以後は、一回電源を落とすたびに接続しなおさなければなら...
+++もしうまくいかなかったら先生に聞く、もしくはググる
**反省 [#k139bc56]
-授業は毎回楽しかったが、期末試験前の課外活動はさすがに辛...
**意見 [#r8e90b9c]
-ロボット同士の通信のやり方を詳しく資料に記述してほしい
-RotateMotorのコマンドはほぼ必須なので、詳しく資料に記述...
-ジュースでもいいから景品が欲しかった(マミーの新作なら尚...
ページ名: