〒619-0237 京都府相楽郡精華町光台8丁目
TEL. 070-5263-2200
jun@kinet-tv.ne.jp
[ サンプルプログラム ] 同じ課題のプログラムでも、これしかないという正解プログラムはありません。人それぞれに異なった プログラムが出来上がります。 ここでのサンプルプログラムも、これが正解というわけではありません。とにかくロボットを動かして プログラムになれましょう。 ロボットのスタートスイッチを押すとプログラムは、上から下へ順番にプログラム(命令)が実行されて行きます。 前進プログラム
|
[ 動かしてみましょう ] どうでしたか? 思い通り動きましたか? 多分ロボットは、少し右か左に寄って行かなかったですか。 これはロボットの組立の時、モーターの位置が左右で並行になっていなかったり、ギヤボックスとかモーターの特性が個別に異なっているためです。これを機械的に調整するのは困難なのでプログラムで調整します。 そのために自分のロボットの特性を知っておく必要があります。( この場合出来るだけ長い距離で確認したほうが正確に特性確認できます。) モーター速度(駆動率)を、50%以外の数値でも試してみましょう。進む距離が変わってきますよ。 (正転の最大値は100%、逆転の最大値は-100%です。) 【 よくある勘違い 】
|
[ ロボットの特性を記録しておきましょう ] ロボットが思い通りに動き楽しいという事で終わってしまうのではなく、ロボットの特性とか”くせ”を知る事が大切です。それが競技会で入賞するコツであったり、改善、改良をする時のヒントになります。 「モノづくり」では、経験や勘に頼るのではなく科学的な手法を活用する事で、より高度で信頼性のある物が安定して生まれます。今からそのような”くせ”を付けることが科学者への第一歩となります。 最初は面白くないかも知れませんが、頑張って記録していきましょう、次第にこれが普通になります。 必ず役に立つ時がきます。 |
[ サンプルプログラム ] このサンプルプログラムにある数値は教室のロボットで確認した場合なので、自分のロボットで確認しながら調整してください。( 電池電圧でも変わります。)
|
[ 動かしてみましょう ] どうでしたか? 思い通りの動きをしましたか? サンプルソフトと同じ数値で動かしても、ちょうど50cmでロボットが停止しないのが普通です。 これは、ロボットの特性(モーター、ギヤー等)以外にも、電池電圧とかタイヤと床の材料による摩擦に よる違いが出るためです。 床がタイルの場合、ジュウタンの場合、紙の上などで進む距離が変わることを確認してください。 ロボカップなどの大会では、この違いが大きく影響する事があります。これらを無くす方法がありますが、これは中級に行ってからお話しします。 |
[ ロボットの特性を記録しておきましょう ] 今回は、距離に対して時間の設定がどの様に変化するかを調べています。 前回にも書きましたが、この特性は電池電圧とか床の材料等により変わってきますのでグラフの空いた所にこの実験をした時の条件を、メモしておきましょう。 前回も今回も特性曲線は直線になっていますので、距離が変わった場合でも予想ができます。 例えばロボットを走行させる距離が50cmから100cmに変わっても下記グラフから Wait 時間を 3.6にすればいいことが解ります。 |
[ サンプルプログラム ] このサンプルプログラムにある数値は教室のロボットで確認した場合なので、自分のロボットで確認しながら調整してください。( 電池電圧でも変わります。) ロボットのスタートスイッチを押すとプログラムの上から下に向かって命令が実行されていきます。
|
[ 動かしてみましょう ] どうでしたか? 思い通りの動きをしましたか? 左90度自転させる時、時間調整だけでは正確に90度自転させる事が難しかったと思います。 時間は0.1秒が最低単位だからです。 従ってモーター速度で、これを補っています。(左車輪の速度がー50%ではなく、ー47%になっているのはそのためです。) 1.回転角度を調整する方法として、時間と速度の2つあることがわかりました。 2.時間調整の最小単位は、「0.1秒」であることもわかりました。 上級クラスでは、0.001秒まで調整出来る方法を勉強しますが初級コースでは「0.1秒」 と覚えておいてください。 <注意点> モーターなどで運動しているものは、運動方向が反転する時は急には反転出来ないので一度停止させる必要があります。 人間でも同じですが慣性(だせい、かんせい)が働く為です。これを無理に停止させようとすごいエネルギーが必要です。この典型的な例が、交通事故です。 今回は、左のモーターが正転から逆転していますので、この時は一時停止させる必要があります。 急反転させると電子回路には大きな電流が流れる壊れる可能性があります。またギヤやモーターにも良く ありませんので注意してください。 |
[ ロボットの特性を記録しておきましょう ] 今回は回転運動がありました。この動作は実際の競技でも多く使われるので覚えておきましょう。 この特性は電池電圧とか床の材料等により変わってきますので、グラフの空いた所にこの実験をした時の条件をメモしておきましょう。 今回の特性表は、時間と回転角との関係を書いてみましょう。90度以外に必要回転が発生した時の参考になります。 |
[ 動かしてみましょう ] どうでしたか? 思い通りの動きをしましたか? 今回2種類のサンプルプログラムを提示しました。どちらが良いプログラムというものではないですが 方法1は、1周させるプログラムを5周させるという内容が理解しやすい。 方法2は、一見しただけでは何周するのかわかりにくいですが、プログラムは短くできています。 |
[ ロボットの特性を記録しておきましょう ] 今回は、記録するものはありません。 今回の様な繰り返し処理( ループ処理 )は、コンピュータ内部処理なのでかなりの高速処理を行っていますので、繰り返し処理が数百回以上のループでないと人が感じることはできません。 この様なコンピュータ内部処理はディジタル処理をしているので、特性は計算で算出する事ができます。 特性表が必要なのは、主にアナログなのに対して行うと有効です。 |
[ サンプルプログラム ] 下記プログラムは、拡大できます。
|
[ 動かしてみましょう ] どうでしたか? 思い通りの動きをしましたか? 基本的には、前問の for 〜 end for と使い方は同じですが、ループ回数の判定方法が異なります。 ループ回数を覚えるのに、変数Aを使いループを1回回るごとに変数Aを+1してカウントしています。 ループ回数は20回ですが while の変数判定は、19となっています。これはコンピュータの世界では 数を数えるのに、0から始まるので20回は、19となります。( 0 を含めると20 ) 人間にわかりやすいように、001 の変数Aの初期値=1として、while 判定値を A<=20としてもOKです |
[ ロボットの特性を記録しておきましょう ] 今回は、記録するものはありません。 |
[ サンプルプログラム ] 下記プログラムは、拡大できます。
|
[ 動かしてみましょう ] どうでしたか? 思い通りの動きをしましたか? 前問とよく似ていますが、ループ回数の判定方法が異なります。 前回は、while 文でループ回数を判定していましたが、今回 while は無条件ループとして単なる繰り返しのみを行っています。ループ回数の判断は、if 文が行っています。 if 文で、条件が満たされていなければ、ループカウンター(変数A)を+1してループを繰り返します。 条件が満たされた場合は、「break」文でループを抜け出ます。 ループ回数を覚えるのに、変数Aを使いループを1回回るごとに変数Aを+1してカウントしています。 ループ回数は20回ですが if の変数判定は、19となっています。これはコンピュータの世界では 数を数えるのに、0から始まるので20回は、19となります。( 0 を含めると20 ) 人間にわかりやすいように、001 の変数Aの初期値=1として、while 判定値を A<=20としてもOKです |
[ ロボットの特性を記録しておきましょう ] 今回は、記録するものはありません。 |
〒619-0237
京都府相楽郡精華町光台8丁目
TEL : 070-5263-2200
FAX : 0774-98-1100
mail : jun@kinet-tv.ne.jp