買い物山脈
実売2,980円でマイコンカー制御を体験できる「マイコンレーサー」で遊ぶ
~アイコンを並べて簡単にプログラミング
(2013/8/6 00:00)
ルネサス エレクトロニクス株式会社と株式会社ルネサスソリューションズは、マルツエレック株式会社と共同開発したマイコンカーの入門機「マイコンレーサー」(MMCR-FS)を7月31日に発売した。価格は2,980円。予約しておいた本製品を7月31日に受け取ることができたので、何ができるのかなどをレポートしたい。
ちなみに、7月19日に発表された本製品は、その低価格もあってか注目されているようで、7月21日までに初回販売数量を上回る予約が集まったとのお知らせがマルツパーツ館の販売ページに記載されている。原稿執筆時点では、注文すると8月13日の出荷となるそうである。
マイコンカーとは、マイコン制御によって自律的に走行するロボットカーで、本製品はセンサーによって線(ライン)をトレースし、それに沿って走行するタイプだ。マイコンカーはさまざまな競技会が行なわれており、ルネサスグループも競技会を主催し継続的に注力している分野の1つとなっている。
本製品はそうしたマイコンカーの入門キットで、“半田付け不要”で、アイコンを使ったプログラム上から“マイコンカーの制御を学ぶ”ことに特化している。もう少し細かくいうと、ハードウェア(各部品)は何をしているかだけを簡単に理解すればOKで、ソフトウェア側の制御のアルゴリズムだけをユーザーの手に委ねたものとなる。
マイコンカーの入門キットとしては、本製品と同じルネサス製マイコンを使ったものが日立インターメディックスから出ている(一般向け価格6,300円)。マイコンレーサーと同じアイコンを使った制御プログラムが利用可能だが、こちらは各部品を自身で半田付けする必要がある。一方でオプションを使った機能拡張やマイコンのプログラムも想定されているなど、もう少し本格的にマイコンカーの世界へ入っていきたい人向けといえる。
マイコンレーサーにもっとも近い製品といえるのが、イーケイジャパンが出している「ライントレースカー」(2,100円)と「光センサー・プログラミングカー」(2,940円)だろう。こちらも独自のプログラムを提供しておりアイコンを並べるだけで制御させることができる。半田付けが必要になる点でマイコンレーサーより少しハードルは高いが、製品ページを見る限り部品も最低限で難易度は高くなさそうである。
こうしたマイコンを使った制御と電子回路は切り離せない関係にもあり、これら類似製品は、入門向けとはいえ半田付け作業を含む“電子工作”の枠組みの中にあるといっていい。本製品はその電子工作部分の知識はほぼ不要で、制御のみを自分で行なうのがユニークな点となっている。
本体の制作はプラモデル感覚
では実際に製品を見てみよう。とにかく2,980円という価格と、“制御を学ぶ”ことに主眼が置かれていることで、ハードウェアは非常にシンプルなものとなっている。
製品を構成するのは、メイン基板、DCモーター×2、各種プラスチックパーツ、タイヤ、ネジなど。基板上にはマイコンやモータードライバなどが実装済みの状態になっている。
使われているマイコンは、ルネサスのワンチップマイコン「R8C/34C」シリーズの「R5F21346CNFP」。ここに、赤外線の発光部と受光部を一体化したフォトインタラプタ「ITR8307」や、1チップで2個のモーターを個別制御可能なドライバIC「TB6612」、LEDなどが接続されている。R8Cマイコンがフォトインタラプタのセンサー情報をアナログ入力で受け取り、制御プログラムで指示された出力のPWM信号をモータードライバへ送る仕組みだ。このほかビープ音を鳴らすためのスピーカーやスイッチ、各種LED、PCとの接続用にシリアル→USB変換ICの「FT232RL」などもR8Cマイコンに接続されている。
なお、この基板の回路については、付属のCD-ROM内に詳細な回路図が収録されている。先述のとおり、本キットを楽しむだけなら、上記のようなことを漠然と理解しているだけで十分だ。だが、電子回路工作を含めたステップアップを考えたときに、この回路図は役に立つだろう。
製品の組み立てだが、必須の工具はドライバー、ニッパだけ。途中、定規が必要とされる箇所があるが、厳密さは求められないので目分量でも何とかなる。このほか、バリやランナーの切り残しが気になる人は、ヤスリやカッターなども用意しておくと良いだろう。
組み立てマニュアルは同梱物にA3用紙のシートが同梱されているが、これは概要が書かれているだけで、詳細なマニュアルはCD-ROM内にPDF形式で収録されている。
以下、組み立ての流れを写真で紹介する。
ちなみに作業に要した時間は、このような写真を撮りながらの作業で45分ほど。同梱の組み立てマニュアルには30分とあり、ながら作業でなければ確かに30分程度で組み上がりそうだ。
動作を指示する制御プログラムはパズル感覚
さて、ここで終わっては大八車のようなものを作っただけで、本番はここからである。本製品の目的である、センサーで情報を受け取り、モーターを回す、という制御の流れを組む必要がある。
その制御プログラムは「ブロックコマンダー」というもので、付属CD-ROMに収録されているほか、マルツパーツ館の製品販売ページからもダウンロードが可能なので、これをインストールする。
ちなみに、マイコンレーサー本体とPCを接続したときのUSBシリアルコンバータなどのドライバも本プログラムと一緒にインストールされるので、USB接続をする前にインストールしておくのがお勧めだ。またそこに割り当てられているCOMポートが99番を超えていた場合には対処が必要になるなどの注意点などがあるが、問題になるケースは少ないので、念のため付属CD-ROMに収録されているブロックコマンダーの操作マニュアルに目を通しておく程度で良いと思う。
さて、ブロックコマンダー本体を立ち上げると、グレーのブロックが敷き詰められた部分と、アイコン(ブロック)が並んだ部分に分かれた初期画面が表示される。この下部に用意されたブロックが各制御を表しており、グレーのブロックに当てはめていくことで制御内容を組み立てていく。
各ブロックの制御内容は、付属CD-ROMのマニュアルに書かれている。先述の通り、ほかのマイコンカーキットでも共用されるため、マイコンレーサーでは使えないブロックも用意されている。本製品では“モーターの制御”、“センサーの反応による条件分岐”、“タイマー”、“ビープ音”、“ラベルへのジャンプ(ループ)”に関連したブロックのみを使うことになる。
ここでは細かい制御については触れないが、簡単にどういう雰囲気をお伝えしたいと思う。
ちなみに、本製品で最初にやるべき作業はモーターの出力の調整だ。これは、左右のモーターに同じモーターの出力(つまりPWMのデューティー比)を指示した場合でも、モーター個体ごとの特性などにより直進しないことがあるためで、その補正をするのである。その特性を見るために数秒間直進するだけのプログラムを組む必要がある。下に示した2つが、5秒間直進する制御をブロックコマンダーで組んだものだ。
左側の制御はサンプルとして用意されているもので、左右のモーター出力を100%にした後、その状態をタイマーで5秒間維持したあとに左右のモーター出力を0%にして終了、という流れになる。
右側の制御は、記事で示すために回りくどく組んだもので、ひっきりなしにマイコンへ指示を送ることになるので嫌われるパターンである。こちらはスタート後に5秒間のタイマーを回し、その残り時間をチェック。結果が0秒でなければモーターを100%、0秒だったらモーター出力を0%にする指示を送って終了する、という流れになる。
ここでポイントなのは条件分岐の制御で、本製品の本来の目的であるライントレースに欠かせないものである。条件分岐が行なわれるブロックは、条件に対して“真”なら青色の矢印、“偽”なら赤色の矢印へ進むようになっている。
当然、センサーのブロックでは反応の有無によって処理を分ける条件分岐が行なわれる。具体的には横に4個並んだセンサーのうち、どれが反応したかによって処理を分けていく。ざっくりと下記のような制御で、ラインからの外れ具合をセンサーで検知させ、ラインがある方へどの程度ハンドルをきるかを指示していくことになる。
ちなみに、車を走らせるフィールドは黒地に白いラインまたは白地に黒いラインのどちらかとなるが、各センサーではまったく逆の反応となるため、対象となるラインの色をブロックコマンダーで設定しておく。
マイコンカーを曲げる方法は言うまでもないが、左に曲げるには右側のモーター出力を上げ、右に曲げるにはその逆となる。どの程度の割合で出力を調整したら、どのぐらい曲がるのか。どのセンサーが反応したときに、どのぐらい曲げるのか。といった点を試行錯誤しながら調整していくことになり、これを突き詰めるだけでもかなり面白い。
コースはオーバルコース(楕円のコース)のA3プリントが本体に同梱されているが、これだけだと動きも単調でちょっと面白くないので、自分でコースを作ることをお勧めする。ポイントは中央のセンサー2個が反応する程度の太さのラインということ。筆者はPowerPointを使って50ptの曲線を描いたコースを作ってみた。ちなみに、A4用紙だとカーブの半径が小さくなりすぎてスピードを上げにくくなるが、あいにくA3対応プリンタを持っていなかったので、A4サイズ×2枚に分けて印刷し、それを繋げてコースを作成している。もっと広いコースを作るなら、白または黒のテープを床に貼るのも良いだろう。
コースは2パターンを作った。1つは左右に振れるものの緩いカーブのみで構成したコース、もう1つは半径の小さい急なカーブを交えたコースだ。下記に動画で示したように、急なカーブを制御するのは非常に難しい。
ちなみに、上記2番目の動画では、“3個のセンサーが反応したら急旋回”させるような制御を組み込んでいるが、マイコンカーの競技会ではクランクやシケインがあることを通知するためにマーカーが設けられ、3個/4個のセンサーを反応させるようになっている。
購入して短期間なので、今回はそこまで試していないが、直線や緩やかなコースでは高速で走り、クランク/シケインなどのマーカー検知したら減速することで、タイムを上げるわけだ。ごく簡単なライントレースならすぐに制御できるが、突き詰めていくと非常に奥の深い世界であることが、次第に分かってくるだろう。
楽しみはライントレース以外にも
さて、ここまでタイマー、モーター、センサーを使った制御を試したが、このほかに、搭載されたスピーカーから音階を表して音を鳴らすこともできる。
マイコンで音階を表す場合は、指定した周波数の音を鳴らす、といった処理をさせるわけだが、もちろんブロックコマンダーは面倒な数字を指定する必要はなく、あらかじめ2オクターブ分の“ドレミファソラシ”と各半音が用意されており、どの音を鳴らすか指定するだけだ。先のタイマーを組み合わせて音の長さを指定することにより、メロディを奏でることもできる。
もちろん、センサーの反応に合わせて音を鳴らすことも可能だ。モーターの動作と一緒に組み込むことで、カーブに合わせて音を鳴らしながら走行する車が出来上がる。
実現の可能性でいえば、コースを走らせると有名な曲が流れる、といった演出も可能だ。もちろんセンサーを使わず、モーター制御と音だけでメロディに合わせて車がダンスを踊るような雰囲気を作ることもできるだろう。
以上、正味2日間程度ではあるが、本製品を試した結果をお伝えしてきた。本製品は“マイコンカーの制御を学ぶためのキット”という位置付けなので出来ることに限りはあるが、その範囲の中でも、さまざまなアイデアが生まれそうな製品だ。
このキットの上でアイデアを実現していくだけでも楽しいだろうが、そこから、このキットでは出来ないことを実現したいと思えるほどに使い込めたら、もっと楽しめると思う。例えば、ソフトウェア面で言えば、ブロックコマンダーはラベルによるジャンプは可能だが、変数を使ってフラグを立てるようなことはできないため、条件によって処理を分けるというのがなかなか難しい。
もちろん本製品で制御を覚えたからいきなりプログラミングできるわけでもないし、オリジナルのマイコンカーを作ろうと思ったら電子回路の勉強も必要だが、そうしたことへの動機付けになりそうなキットとして、(価格面も含めて)非常にハードルの低いキットに仕上がっているのが本製品の大きなポイントといえる。
ちなみに、対象年齢は小学校高学年から中学生とされているが、基本的には“考え方を学べる”キットで、(壁に激突などさせなければ)ハードウェアを致命的に壊すことなくトライ&エラーができることから、PCを多少触れるならば、もっと低学年の子供にチャレンジさせてみても面白いのではないかと思う。
洗面台で手をかざすと自動的に水が流れる仕組みのように、センサー、条件分岐、タイマーといった本製品で使われているものと照らし合わせて一緒に考えてみたりすると、親子で楽しい会話が生まれるきっかけにもなるだろう。