TOPPERS 活用アイデア・アプリケーション開発コンテスト

2011/9/26 山浦 幹

「インテリジェント チョロＱ コントローラ / TOPPERS/JSP」
１．【概要】
当作品は、2010年に開催された、CQ出版、インターフェース誌SH-2Aマイコン基板
アプリケーションコンテスト入賞作品、「インテリジェント・チョロＱコントローラ」
を TOPPERS/JSP を使用して作りなおしたものである。
Q-STEER について
タカラトミー製の赤外線コントロールチョロＱ(製品名:「Q-STEER」)
赤外線コントローラにより無線でチョロＱを前進、後退、左右に走らせることができる。

チョロＱ
赤外線コントローラ
チョロＱを前後左右へコントロールする。
大きさ比較
要のペン

<Q-STEER の製品外観>
今回作成したコントローラ
CPU 基板(インターフェース誌 2010年6月号の付録基板:SH-2A)には、LCD、タッチパネル、カメラ、赤外線LED を接続する。
カメラで、チョロＱの映像を撮影し、ＬＣＤへ表示する。 タッチパネルに触れたポイントへ赤外線を制御し、チョロＱを移動する。
OSは、TOPPERS/JSP 1.4.4 を使用した。
コントローラの動作② タッチパネルを指で触れた場所を記憶する。

・LCD
・タッチパネル・赤外線LED・カメラ① カメラで撮影した画像を、LCDへ表示する。
このとき、チョロＱが表示されたLCD上の座標を検索し記憶する。

SH-2A 基板
③ チョロＱ表示座標と、タッチパネルを触れた場所から、チョロＱが向かうべき方向を算出し、赤外線リモコンコマンドを生成して出力する。
２．【開発環境】
開発用ホストPC

CPU AMD Sempron
RAM 1G byte
OS:Linux Fedora8
gcc (Version 3.4.6)
クロスコンパイラ sh-hitachi-elf-gcc(Version 2.95.3)

開発の実際
LAN

開発用ホストPC

USB
ターゲット基板
開発用サブPC と USBで 接続される。
電源ON で、シリアルダウンローダが起動する。

開発用サブPC(WindowsXP)

開発は、開発用サブPC から、開発用ホストPCへ ssh でログインして、コンパイル、実行ファイル生成を行う。
生成された実行ファイルを、開発用サブPC に転送し、そこから、USB にてターゲット基板の、シリアルダウンローダを利用してプ
ログラムをRAM へ書き込み、実行する。（シリアルダウンローダがプログラムを RAM へ書き込み後、実行する。)

1/5

３．【ハード構成】
WKLCD-2A(若松通商製)
・LCD
・タッチパネル

DC5V

PWM1H

SH-2A 基板カメラ(ITU656 接続)
MTV-54K0DN

SCIF(ch0)

DC5V

レギュレータ

赤外線LED(PWM制御)
東芝 TLN115A

RS232Cレベルコンバータ
DC12V

カメラへ
DC12V

デバッグ用シリアルポート ※※TOPPERS/JSP cq_frksh2a ではシリアルポート ch2 を、使用していた。
ch1～7 まで、画像入出力とマルチプレクスされており、利用できるシリアルチャンネルが ch0 のみであったため、TOPPERS のソースを変更して、ch2 から、ch0 を使用するように変更している。
※その他、カメラ、LED 配線、配線の変更については、付録２、３を参照のこと。
SH-2A基板へ、LCD、タッチパネル、赤外線LED、カメラを接続する。
電源は、12V 入力をカメラに使用し、レギュレータで、5V に変換してLCD基板へ供給する。
上からみたコントローラ
カメラ接続用コネクタ

赤外線 LED

若松通商 WKLCD-2A
基板

LCD、タッチパネル

デジタル出力 カメラ
秋月電子 MTV-54KODN

チョロＱ
赤外線受信部が屋根の下にあるため屋根をくり貫き、画像検知の為ボンネットへ黒いシールを貼る。

電源供給用
ユニバーサル基板

横から見たコントローラ

SH-2A基板

ふすま（チョロＱ動作フィールド）チョロＱの画像検出を行う際、画像の影の部分をサーチしている。背景を白くするため襖を利用した。

カメラ接続用コネクタ

動作させている様子

カメラユニット

コントローラ
本体
チョロＱ

2/5

４．【システム構成】
OS : TOPPERS/JSP 1.4.4 (cq_frksh2a)
タスク、割込構成[タスク]
・main_task
タッチパネル監視を行う。 タッチ検知により、スリープしチョロＱ制御タスクを起動する。
・taskCq (チョロＱ制御タスク)
チョロＱ検知処理、移動方向判定、リモコンコマンド制御を行い、チョロＱを、タッチ位置まで移動させる処理を行う。処理終了後、タスクを終了し、main_task を起床する。
[周期ハンドラ]
タッチパネルのタッチ座標検知処理を行う。
[割込処理]
・タイマー割込(CMT1)80μ毎に割込発生させ、赤外線LED コマンド送出処理 を行う。
・カメラ画像取得(VDC3)
カメラ画像録画時割込にて画像情報をLCD画面と、画像処理用RAM へDMA 転送する。

画像処理

VDC3

VRAM
画面1(VRAM1)
カメラ画像表示

LCD

常時転送

画面2(VRAM2)
情報表示用
要処理
時転送

画面処理用RAM

カメラ

カメラ画像録画用RAM

リモコン制御PWM

タッチパネル制御
38KHzで点滅

80μ sec単位でon/off 制御

CMT

LED

A/D 変換器

タッチパネル

デバッグ用シリアル回線

SCIF (CH0)

レベルコンバータ

用語解説
VDC3 ビデオディスプレーコントローラ
PWM モータコントロールPWM（Pulse Width Modulator）タイマ
CMT コンペアマッチタイマ
SCIF シリアルコミュニケーション インタフェース

3/5

D-SUB94-1 画像処理
VDC3( ビデオコントローラ3 ) へLCD 及び、カメラが接続される。
各画面の役割画面１(VRAM1)
カメラで取得した画像の表示用。
画面２(VRAM2)
タッチ位置、チョロＱアイコン、コマンドアイコン他情報表示に使用。
カメラ画像録画用(VRAM3)カメラからの画像を録画する。録画した画像は、 常時、画面１へ転送される。
また、必要に応じて、画像処理用RAM へ転送し、チョロＱ位置検出用に使用する。
表示例
LCD へは、画面１、画面２を、重ね合わせ（アルファブレンドで半透過）て表示する。

画面2:数字、文字、アイコン

画面１:カメラ撮影画像

4-2 リモコン制御
PWM により、38KHz で、赤外線 LED を点滅させる。 これが、リモコンの基本信号となる。
この信号を、チョロＱリモコンコマンドに合わせて、on/off 制御することにより、チョロＱ制御を行う。
赤外線LED の on/off タイミングは、CMT1の 割り込みにより制御する。
4-3 タッチパネル制御
タッチパネルは、チョロＱの走行到達位置を指示するために使用する。
タッチした位置を検出し、その座標へマークを表示する。
５．【リモコン制御ロジック】
5-1 リモコンコマンド
リモコンのコマンドは、前後、前方左右、後方左右、それぞれの高速、低速、ハンドルの左右（ハンドルを切るだけ）、停止で、計１５種類のコマンドが存在する。
今回、使用したコマンドは、前進、左前進、右前進、左後退、右後退の５種類である。
5-2 リモコン制御手順
１）チョロＱ位置検出
チョロＱの位置は、カメラ撮影画像を検索することにより行う。（※付録１ 参照）
ここで、タッチ位置との差が一定範囲以内の場合、ゴールへ到達と判断し処理を終了する。（到達判定）
２）チョロＱ向き検出
チョロＱの現在地点を検出後、一定時間、前進コマンドを発行する。 そこで、再度位置検出を行い前回検出位置との差から向きの検出を行う。
３）到達地点への移動判定
現在の進行方向から、到達地点へ行くために左右、前進のいずれかを判定する。
ここでも、到達判定を行う。
４）移動判定の結果により、リモコンコマンドの生成と送出を行う。
左右の場合それぞれの方向へ切り返しを行う。右の切り返しは、右前進、左後退を行う。
前進と判定した場合は、一定時間前進を行う。
チョロＱ制御コマンド送出後、再度、処理「１）」へ戻る。

4/5

６．【オペレーション】
CQ出版インターフェース WEB サイトで公開されている、シリアル・ダウンローダにより、プログラムをロード、起動する。
チョロＱの電源を入れて、動作フィールドへ置く。
カメラを動作フィールドを映す様にセットする。
チョロＱを移動させる位置をタッチすると、赤外線LED から走向コマンドが送信され、チョロＱがタッチ位置に向かって動き出す。
LCD画面

カメラ画像
チョロＱ
リモコン送信コマンドをアイコンで表示する。

タッチ位置
アイコン

チョロＱ検出位置アイコン

7．【最後に】
今回、初めて TOPPERS を利用したアプリケーションを作成しました。 まず、OS を動かすのにハードルを感じますが、これも、慣れでしょう。 アプリケーションに関しては、OS を使わない場合に比べ、より、アプリ開発に集中できる感じがします。
チョロＱ制御に関しては、よちよち歩きで、改良の余地大有りです。
付録１．チョロＱ位置検出
チョロＱ位置検出を行う場合、カメラ録画画像を、画像処理用RAM へ転送し、白黒変換及び画像縮小(縦横1/2)処理を行う。
次に、Ｘ、Ｙ方向それぞれ、影が一定数連続する座標を検出する。
実際に位置検出用RAM の内容を表示した例

チョロＱ

チョロＱ検出位置を、緑のドットで示している

付録２．カメラ、LED配線
カメラ、LED の配線
SH- 2 A基板
コネクタ コネクタ番号
CN130CN239CN2-56781615141137-

信号名
PD7+3.3V
DV_CLK
DV_DATA7
DV_DATA6
DV_DATA5
DV_DATA4
DV_DATA3
DV_DATA2
DV_DATA1
DV_DATA0
GND

赤外 線 LED
コネクタ コネクタ番号
カメラ M T V- 5 4 KODN
JP4P9P8P7P6P5P4P3P2P1P10JP1P1P2

信号名Anode
CathodeCLKY7Y6Y5Y4Y3Y2Y1Y0
GND+12V
GND※ACアダプタより付録３．LCD 基板配線の変更
・SH-2A 基板は CN6 の端子を接続しない。
・SH-2A基板 CN2-32(PE3) から、リード線を引っ張り、LCD 基板の CN6-2(LCD_PD) へ接続。
・SH-2A基板 CN6-9(PB21) をLCD 基板の CN6-9 へ接続。 (LCDバックライト)・SH-2A 基板の、CN2-3 から引っ張り出し、LCD 基板の JPP25 へ接続。(AN0 → AN2 への変更)

5/5