買い物山脈

実売2,980円でマイコンカー制御を体験できる「マイコンレーサー」で遊ぶ

~アイコンを並べて簡単にプログラミング

品名
マイコンレーサー
購入日
2013年7月31日
購入価格
2,980円
「買い物山脈」は、編集部員やライター氏などが実際に購入したもの、使ってみたものについて、語るコーナーです

 ルネサス エレクトロニクス株式会社と株式会社ルネサスソリューションズは、マルツエレック株式会社と共同開発したマイコンカーの入門機「マイコンレーサー」(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、各種プラスチックパーツ、タイヤ、ネジなど。基板上にはマイコンやモータードライバなどが実装済みの状態になっている。

パッケージは綺麗な化粧箱
キットの内容。使わないパーツもある
メインの基板(表面)。部品は全て実装済み
メインの基板(裏面)
基板の主要回路部分。手前側がマイコンカーの前方にあたり、4個のLEDを搭載している。右側にあるスピーカーのビープ音も制御可能
主なIC/LSIは3個。左下がルネサスのワンチップマイコン「R8C/34C」、左上がシリアル(USART)→USB変換IC「FT232RL」、右下がモータードライバの「TB6612」
裏面には赤外線発光部と受光部を一体化したフォトインタラプタ「ITR8307」を4個搭載
PCとのインターフェイスとなるMini USB
モーターはいろいろな所でお馴染みのFA-130型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形式で収録されている。

 以下、組み立ての流れを写真で紹介する。

同梱の組み立てマニュアル。ここでは概要をつかめる程度
CD-ROMに詳細な組み立てマニュアルが収録されているので、こちらを見ながら作業した方が良い
プラスチックパーツにナット止め工具が用意されているので、最初に切り出しておく
まずはモーターを置くベースを取り付け
ネジが基板との電気接点となっているので、取り付け時にモーターの端子と接触させるようにする
固定パーツを取り付ければモーター部分は完成
次に電池ボックスの取り付け。単3電池×2のボックスを2個取り付ける。実際に使うのは単3電池×3個
電池ボックスを取り付けた状態。
タイヤとプラスチックのホイールパーツ。単純にタイヤをホイールに取り付けるだけ
付属のチューブから、5mm分を2個切り出す。おおよそ5mmでOK
チューブはタイヤの固定用。タイヤがぐらつかず、締め付けすぎない程度にはめ込む
タイヤ駆動部はこのような形状となる
この駆動部を電池ボックスの脇にある穴にはめ込む。ぐらつく状態で正しい
接地させるとタイヤがモーターに押しつけられ、モーターの回転をタイヤに伝達できるようになる
ちなみに駆動部を逆に取り付けると、タイヤとモーターが接触しないので注意を要する部分だ
プラスチックパーツが必要な作業は以上だが余るパーツもある。今後ほかの製品も予定されているのだろうか……
次に付属の「カグスベール」を底面に貼り付ける
カグスベールを貼り付ける位置はちょっと難しい。マニュアルには“基板先端を3mm浮かす”とあったが、筆者は最終的に6mmほど離したところでセンサーが正しく反応するようになった
最後に電池の取り付け。これもネジを電気接点として使っており、プラス側の突起をネジで挟み込めるように調整して固定する
マイナス側はそのままで接触させる
これで完成

 ちなみに作業に要した時間は、このような写真を撮りながらの作業で45分ほど。同梱の組み立てマニュアルには30分とあり、ながら作業でなければ確かに30分程度で組み上がりそうだ。

動作を指示する制御プログラムはパズル感覚

 さて、ここで終わっては大八車のようなものを作っただけで、本番はここからである。本製品の目的である、センサーで情報を受け取り、モーターを回す、という制御の流れを組む必要がある。

 その制御プログラムは「ブロックコマンダー」というもので、付属CD-ROMに収録されているほか、マルツパーツ館の製品販売ページからもダウンロードが可能なので、これをインストールする。

 ちなみに、マイコンレーサー本体とPCを接続したときのUSBシリアルコンバータなどのドライバも本プログラムと一緒にインストールされるので、USB接続をする前にインストールしておくのがお勧めだ。またそこに割り当てられているCOMポートが99番を超えていた場合には対処が必要になるなどの注意点などがあるが、問題になるケースは少ないので、念のため付属CD-ROMに収録されているブロックコマンダーの操作マニュアルに目を通しておく程度で良いと思う。

制御を作るブロックコマンダーのメイン画面
転送ボタンを押すと自動的にコンパイルとリンク、マイコンレーサーへの転送までを処理する。ちなみに設定したブロックを読み込ませて実際に動作させるためのC言語コードもプレーンテキストで収録されている

 さて、ブロックコマンダー本体を立ち上げると、グレーのブロックが敷き詰められた部分と、アイコン(ブロック)が並んだ部分に分かれた初期画面が表示される。この下部に用意されたブロックが各制御を表しており、グレーのブロックに当てはめていくことで制御内容を組み立てていく。

 各ブロックの制御内容は、付属CD-ROMのマニュアルに書かれている。先述の通り、ほかのマイコンカーキットでも共用されるため、マイコンレーサーでは使えないブロックも用意されている。本製品では“モーターの制御”、“センサーの反応による条件分岐”、“タイマー”、“ビープ音”、“ラベルへのジャンプ(ループ)”に関連したブロックのみを使うことになる。

 ここでは細かい制御については触れないが、簡単にどういう雰囲気をお伝えしたいと思う。

 ちなみに、本製品で最初にやるべき作業はモーターの出力の調整だ。これは、左右のモーターに同じモーターの出力(つまりPWMのデューティー比)を指示した場合でも、モーター個体ごとの特性などにより直進しないことがあるためで、その補正をするのである。その特性を見るために数秒間直進するだけのプログラムを組む必要がある。下に示した2つが、5秒間直進する制御をブロックコマンダーで組んだものだ。

左右いずれも5秒間、左右100%の出力で直進する制御

 左側の制御はサンプルとして用意されているもので、左右のモーター出力を100%にした後、その状態をタイマーで5秒間維持したあとに左右のモーター出力を0%にして終了、という流れになる。

 右側の制御は、記事で示すために回りくどく組んだもので、ひっきりなしにマイコンへ指示を送ることになるので嫌われるパターンである。こちらはスタート後に5秒間のタイマーを回し、その残り時間をチェック。結果が0秒でなければモーターを100%、0秒だったらモーター出力を0%にする指示を送って終了する、という流れになる。

 ここでポイントなのは条件分岐の制御で、本製品の本来の目的であるライントレースに欠かせないものである。条件分岐が行なわれるブロックは、条件に対して“真”なら青色の矢印、“偽”なら赤色の矢印へ進むようになっている。

 当然、センサーのブロックでは反応の有無によって処理を分ける条件分岐が行なわれる。具体的には横に4個並んだセンサーのうち、どれが反応したかによって処理を分けていく。ざっくりと下記のような制御で、ラインからの外れ具合をセンサーで検知させ、ラインがある方へどの程度ハンドルをきるかを指示していくことになる。

センサーの反応によってモーターの出力を変える制御のサンプル
使用するコースに応じ、トレースするラインの色をあらかじめ設定しておく
PowerPointを使いA4用紙×2枚を繋げたコースを作成

 ちなみに、車を走らせるフィールドは黒地に白いラインまたは白地に黒いラインのどちらかとなるが、各センサーではまったく逆の反応となるため、対象となるラインの色をブロックコマンダーで設定しておく。

 マイコンカーを曲げる方法は言うまでもないが、左に曲げるには右側のモーター出力を上げ、右に曲げるにはその逆となる。どの程度の割合で出力を調整したら、どのぐらい曲がるのか。どのセンサーが反応したときに、どのぐらい曲げるのか。といった点を試行錯誤しながら調整していくことになり、これを突き詰めるだけでもかなり面白い。

 コースはオーバルコース(楕円のコース)のA3プリントが本体に同梱されているが、これだけだと動きも単調でちょっと面白くないので、自分でコースを作ることをお勧めする。ポイントは中央のセンサー2個が反応する程度の太さのラインということ。筆者はPowerPointを使って50ptの曲線を描いたコースを作ってみた。ちなみに、A4用紙だとカーブの半径が小さくなりすぎてスピードを上げにくくなるが、あいにくA3対応プリンタを持っていなかったので、A4サイズ×2枚に分けて印刷し、それを繋げてコースを作成している。もっと広いコースを作るなら、白または黒のテープを床に貼るのも良いだろう。

 コースは2パターンを作った。1つは左右に振れるものの緩いカーブのみで構成したコース、もう1つは半径の小さい急なカーブを交えたコースだ。下記に動画で示したように、急なカーブを制御するのは非常に難しい。

【動画】それなりにトレースし、とりあえず周回をこなせてはいるが、半径が小さいカーブはうまくトレースできていない
【動画】そこで、もっと速度を下げ、急カーブを曲がれるようにした(つもり)。結果は見事に逸走

 ちなみに、上記2番目の動画では、“3個のセンサーが反応したら急旋回”させるような制御を組み込んでいるが、マイコンカーの競技会ではクランクやシケインがあることを通知するためにマーカーが設けられ、3個/4個のセンサーを反応させるようになっている。

 購入して短期間なので、今回はそこまで試していないが、直線や緩やかなコースでは高速で走り、クランク/シケインなどのマーカー検知したら減速することで、タイムを上げるわけだ。ごく簡単なライントレースならすぐに制御できるが、突き詰めていくと非常に奥の深い世界であることが、次第に分かってくるだろう。

楽しみはライントレース以外にも

 さて、ここまでタイマー、モーター、センサーを使った制御を試したが、このほかに、搭載されたスピーカーから音階を表して音を鳴らすこともできる。

 マイコンで音階を表す場合は、指定した周波数の音を鳴らす、といった処理をさせるわけだが、もちろんブロックコマンダーは面倒な数字を指定する必要はなく、あらかじめ2オクターブ分の“ドレミファソラシ”と各半音が用意されており、どの音を鳴らすか指定するだけだ。先のタイマーを組み合わせて音の長さを指定することにより、メロディを奏でることもできる。

 もちろん、センサーの反応に合わせて音を鳴らすことも可能だ。モーターの動作と一緒に組み込むことで、カーブに合わせて音を鳴らしながら走行する車が出来上がる。

 実現の可能性でいえば、コースを走らせると有名な曲が流れる、といった演出も可能だ。もちろんセンサーを使わず、モーター制御と音だけでメロディに合わせて車がダンスを踊るような雰囲気を作ることもできるだろう。

スピーカーから出す音の制御ブロック。“ドレミファソラシ”を“CDEFGAB”で指定できる。手前の数字は音の高さで、2オクターブ分を指定できることが分かる
センサーなどを使わず音だけを指定した制御のサンプル。ドを1秒間、レ~ドを0.5秒感ずつ鳴らして終わる
ライントレース制御で、モーターと音を一緒に指定することで、カーブに合わせて音を鳴らしながら走行する
【動画】ドを1秒間、レ~ドを0.5秒間鳴らしたもの
【動画】モーターと音の制御をまとめて行なったもの。カーブに合わせて異なる音を鳴らしながら走る

 以上、正味2日間程度ではあるが、本製品を試した結果をお伝えしてきた。本製品は“マイコンカーの制御を学ぶためのキット”という位置付けなので出来ることに限りはあるが、その範囲の中でも、さまざまなアイデアが生まれそうな製品だ。

 このキットの上でアイデアを実現していくだけでも楽しいだろうが、そこから、このキットでは出来ないことを実現したいと思えるほどに使い込めたら、もっと楽しめると思う。例えば、ソフトウェア面で言えば、ブロックコマンダーはラベルによるジャンプは可能だが、変数を使ってフラグを立てるようなことはできないため、条件によって処理を分けるというのがなかなか難しい。

 もちろん本製品で制御を覚えたからいきなりプログラミングできるわけでもないし、オリジナルのマイコンカーを作ろうと思ったら電子回路の勉強も必要だが、そうしたことへの動機付けになりそうなキットとして、(価格面も含めて)非常にハードルの低いキットに仕上がっているのが本製品の大きなポイントといえる。

 ちなみに、対象年齢は小学校高学年から中学生とされているが、基本的には“考え方を学べる”キットで、(壁に激突などさせなければ)ハードウェアを致命的に壊すことなくトライ&エラーができることから、PCを多少触れるならば、もっと低学年の子供にチャレンジさせてみても面白いのではないかと思う。

 洗面台で手をかざすと自動的に水が流れる仕組みのように、センサー、条件分岐、タイマーといった本製品で使われているものと照らし合わせて一緒に考えてみたりすると、親子で楽しい会話が生まれるきっかけにもなるだろう。

(多和田 新也)