BON10フォルダのMAKIMONOフォルダには、簡単なものからそこそこ複雑なものまで、いろいろなサンプル(例)が入っています。
これらをまずは試してみましょう。
ただし、その際、ただ読み込んで「ほんやく」して書き込んで動いた!で済ませてはなんにもなりません。必ず「ほんやく」前に表示される(もしくは「へんしゅう」して表示される)、その動作の「まきもの」を見て、「なぜそうなるのか」をよく確かめてみてください。
この先、他の講義でC言語やFORTRANなどに触れる機会はあると思いますし、情報系に就職すると様々なプログラミング言語を扱うことになります。そういう場合、文法書を読んでいきなりプログラムが作れるようになるかというと、ふつうはそうではありません。まずは読むことからです。
書けなくても、読むだけなら「なんとなく言いたいことが分かる」で済みます。
ちなみに、英語もそうです。書くには難儀しますが、読むだけなら、一字一句を考えなくても、必要そうな単語をひろって、「notの有無」を見れば、だいたい意味はわかります。
つぎのステップは「改造」です。
単純には、パラメータ(数字)を変えます。
具体的には
なにか、調整可能な部分や入力をもった装置があったら、それを変えてみるのが、特性を知るための近道です。ただ、闇雲に変えてもろくなことはありません。そのため、
ここらへんまでしっかりやると、今度はプログラム本体をいじれるようになると思います。
たとえば、
すると、いつのまにか、たぶん、自分である程度プログラムが書けるようになると思います。
※熊谷自身が、未知のプログラミング言語や装置、現象に出くわしたときは、だいたいこういう手順で進めています。
対向2輪型ロボットは、移動するためには左右の車輪の回転(速度or角度)を制御(コントロール、調整)します。これによって、直線や円弧を描いて移動、もしくは、その場で旋回します。
対向2輪型ロボットについては、ロボット工学:車輪移動ロボットにその理論をまとめてあります。
このページは3年生の「ロボット基礎工学」のためのページですが、対向2輪についてはイメージさえつかめれば、1年生でも(というか、高校生でも)理解できる程度の基礎原理です。
押さえるべき点は
さて、両輪を同じ速度で回せば前に直進、左の車輪の速度が右より高ければ右に曲がる、というイメージは湧くと思います。
梵天丸のこうどう命令とそれぞれのモータの制御の関係を表にまとめます。
具体的に「1〜7」がどの程度かは試してみましょう。
なお、梵天丸の移動速度は、「まきもの」だけではなく、梵天丸本体でも調整可能です。モータにつながる線のそばについている水色の部品(可変抵抗、ポテンショメータ)をまわすと、「まきもの」の設定値に重ねて、全体的に速度を可変できます。
赤線上のどこかを中心に動きます。実際には車輪が接している点の延長、と考えてもいいでしょう。
梵天丸においては、Hブリッジと呼ばれる回路によってモータにかかる電圧の正負を、PWMという方式でモータにかかる電圧の平均値を変化させて速さを決めています。
速度の段階としては、+7〜+1、0、−1〜−7と15段階あると考えればよいでしょう。
なお、電圧はおおざっぱには、その大小が速さの大小と関連します。ただし、比例の関係にあるわけではないこと、また負荷(ロボットの重さ、摩擦など)によっては同じ電圧でもスピードが落ちることがあります。
(そのため、本式のロボットでは、まず車輪速度が指定値になるように制御され、ロボットを動かすときはその指定値を操作します)
たとえば、「ぜんしん 7,1」より「みぎよれ 7」、「みぎまわれ 7,7」のほうが旋回がきつくなります。
また、「ぜんしん」では両数字の平均値がロボットの移動の速さを、「みぎよれ」は数値そのものが移動、旋回の速さを決め(中心はかわらず)、「みぎまわれ」ではロボットの移動というよりは、旋回の速さが両数値の平均値で決まります。こうどう 左モータ 右モータ 動作の概要 とまれ 0 0 停止 ぜんしん L、R +L +R 基本的に前方に移動
L>Rなら右方向に曲がる
L<Rなら左方向に曲がるこうしん L、R −L −R 基本的に後方に移動
L>Rなら右方向に曲がる
L<Rなら左方向に曲がるみぎよれ L +L 0 右は停止=右車輪を軸に右前方に旋回 ひだりよれ R 0 +R 左は停止=左車輪を軸に左前方に旋回 みぎまわれ L、R +L −R 左車輪が前に、右車輪が後ろに回る=右に旋回
旋回中心は両輪の間のどこか、位置はLRの比で決まるひだりまわれ L、R −L +R 左車輪が後ろに、右車輪が前に回る=左に旋回
旋回中心は両輪の間のどこか、位置はLRの比で決まるみぎさがれ L −L 0 右は停止=右車輪を軸に右後方に旋回 ひだりさがれ R 0 −R 左は停止=左車輪を軸に左後方に旋回
この調整は、
などにつかえます。
具体的には、2個の赤外線発光ダイオード(LED)(図中青丸)と1個の赤外線受光モジュール(赤丸)から構成されています。
(受光モジュールはテレビの赤外線リモコンなどにも使われるもの。実際には光らせるときには38kHz程度で明滅させています&そのくらいの光のみを受信するようにしています<太陽や蛍光灯などの影響を避けることが目的 また、基準値を設けて、受信の有無をはっきりさせています<「強い」「弱い」などの判定はなく、「あり」「なし」のみ)
まず、右のLEDを光らせます。このとき、「なにか」があって、赤外線が反射されると、受光モジュールがそれを検知します。同じく、左のLEDを光らせて反射があるかどうかを調べます。
たとえば、右のLEDを光らせたときに反応があったけど、左のLEDでは反応が無い場合、「なにか」は右の方にあると考えられます。逆の場合は左の方、両方で反応があった場合は前方にあると考えられます。
もちろん、右にも左にも前にもあるという場合もあるでしょうし、右と左で「前」を判定する可能性があります。というくらいアバウトですが、いろいろと使い道はあります。
これらが、まきものの「じょうけん」の「まえだ」「みぎだ」「ひだりだ」に相当します。
さて、以上のような原理で光障害物センサを構成していますが、判断条件は「あるレベル以上の反射があったか」です。そのため、図中紫の丸で示した調整抵抗、および「まきもの」の「かんど」は実際には受光の感度ではなく、発光する強さを調整しています。
(前者はもろに強度を、後者はパルスを調整して見かけ上出力を絞ります)
また、「反射光」であるため、以下のような点に注意が必要です。