« HC08マイコンの使い方QY4A編 -《23》【書籍】R-2Rラダー型D-A変換器(4) | メイン | HC08マイコンの使い方QY4A編 -《24》【書籍】R-2Rラダー型D-A変換器(5) »

第1回 dsPICマイコン基板で作る「光通信制御の6軸歩行ロボット」


●はじめに
 2007 年8月号のトランジスタ技術には,マイクロチップ・テクノロジー社のdsPICマイコンを使った基板が付録になっています.同社の8ビット・マイコンは強 烈な個性(それもまた魅力かも…)を感じており避けていましたが,付録になったので試してみることにしました.

 製作物は以前より興味のあった,2足歩行ロボットです.作成する上で楽しいものがよいので,ゴジラのような被り物を装着することとしました.

 2足歩行は,入門しやすい静止歩行としました.静止歩行であれば,4軸あれば歩行できます.起き上がりができるよう,予備の2軸をいれ6軸を制御 目標としました.コントローラは人とし,自由度を考慮し無線で動かせるようにしました.コントロールする無線は、既存のおもちゃの光送信機を利用することにしました.

 また,WAV音声を再生させる機能と動作を表現するLED表示機能を付加しています.デバック時に通信ポートがあった場合,何かと重宝するのでモ ニタ機能もつけました.なお,フラッシュ書き込みツールを持っていませんので,製作の前提は「ブート・ローダ機能を残しブート・ローダから起動される プログラムとする」としました.


 以上から,動作を要約すると次のようになります.

・光送信機の動作指示に従い,前後左右の組み合わせで6軸歩行ロボットを操作することができる.また,ダッシュ・ボタンを押下することで前進と後退の速度を速くする.
・RCサーボは電源電圧が低下すると変な動きをするため,緊急停止(RCサーボ部電源供給停止)できるようにする.具体的には,光送信機のダッシュ・ボタンのみを押下すると停止命令がでるので,約800ms以上連続して停止命令を受信した場合,緊急停止を行う.
・約1分間のあいだ光送信機から何の操作も発生しなかった場合,RCサーボへの電源供給を停止する.このとき,LEDもすべて消灯する.この状態で,光送信機から操作が発生すると,LEDが点灯(または点滅)させ音声を再生させた後,操作に従った動きをさせる.

全体構成
 全体の構成を図1に示します.光送信機(Q-STEER:キューステアの光送信機,詳細は後述)は,人の手操作によるボタン操作を特定のコードの光信号に変換し送出します.

 6軸歩行ロボットは,時系列の光信号を受信しシリアル→パラレル変換を行い,コードを解釈してそのコードに合った動作を行います.
 パソコンは主に,デバック時のプリント文の表示や6軸歩行ロボットに装着されたEEPROMへのWAV音声データ書き込み時に使用します.写真1に6軸歩行ロボットと光送信機を示します.


zu1.jpg
図1.全体構成(クリックすると拡大します)


ゴジラ光送信機1.JPG
写真1 6軸歩行ロボットと光送信機

準備

●光通信(Q-STEER赤外線信号)
 Q -STEER(キューステア)とは、タカラトミー社が発売した赤外線でコントロールを行うチョロQです.実際にどのような波形が光送信機から送出されてい るかを,パソコンのオーディオ入力を利用したオシロスコープで見たものが図2です.
 ここで注意しなければいけないのは,赤外線センサPL-IRM0101-3(ま たは,PL-IRM0208)の出力は負論理ですので、“L”出力がON信号になります.写真2に測定中の様子を示します.


図2.jpg
図2 赤外線の信号計測


光計測.JPG
写真2 測定中

 以下,このQ-STEERの制御に使われている赤外線信号について解析した結果を示します(ここに書かれている内容は,正式なものではないので一部に間違いや勘違いをしている部分があるかもしれないのでご注意ください).

 日本製機器における赤外線リモコンの制御信号のほとんどは,パルス位置変調(Pulse Position Modulation:以下PPMと略す)方式を採用しています.PPM方式は,パルス間隔の違いで2進数のビット“0”と“1”を表現する方式で, “0/1”の符号化には以下の2種類があります.

(A)信号のOFF時間長で表現する方式 (日本電気を始め,一般のメーカが広く採用)
(B)信号のON時間長で表現する方式 (SONYが採用)

 Q-STEERの赤外線信号は,(B)信号のON時間長で表現する方式の信号と同じ構造になっています.図3にQ-STEERで採用されている (B)信号のON時間長で表現する方式の例を示します.ここで,単位パルス時間長(T)は一定ですが,符号化に関する時間長は必ずしもTの2倍ではなく, 各メーカにより様々なので注意が必要です(Q-STEERでは,一応2倍です).


図3.jpg
図3 信号のON時間長で表現する方式の例

 赤外線リモコンは,PPM信号が“ON”のときに発光しますが,自然光からの影響を排除するために,連続光ではなく38kHz~40kHz程度で変調された点滅光(搬送波)になっています(図4参照).Q-STEERでは,38kHzで変調された点滅光(搬送波)です.


図4.jpg
図4 搬送波の例

 まず,実際にどんな波形が光送信機から送出されているか図5をご覧ください.これは「バンドA」で「前進」を行う場合の波形です.


図5.jpg
図5 バンドA前進の波形

 二つの同じ信号が描かれていますが,これで1セットです.最初の波形と2番目の波形はまったく同じですが,使用しているバンドにより波形間の時間間隔が異なってきます.光送信機の前進ボタンを押している間,この1セットが繰り返し送出されています.
 次に、信号の細かい部分について説明します(図6参照).


図6.jpg
図6 バンドA前進の詳細

 発光時間の長いほうと短いほうのどちらをビット0としてもよいのですが,開発側では明確に定義されているハズですがそれを知る手段がないので,とりあえずここでは信号のON時間長で表現する方式の例と同じく,短いほうをビット0とします.
 「ヘッ ダ」は信号波形の先頭位置(通信の開始)を検出するためのもので,それ以上の意味はないと思います.「バンド」には、送信した光送信機の操作面についてある チャネル指定のスライド・スイッチの値が入ります.スライド・スイッチによるバンド指定のビットの対応を表1に示します.

バンド ビット
  A   0
  B   1
  C  10
  D  11

表1 光送信機のバンド指定とビット対応

 「制御コード」は、光送信機で押されたボタンに対応した状態が反映されます.表2に光送信機のボタンに対応した制御コードに対応したビットの一覧を示します.

ボタン 制御コード ボタン 制御コード
0 ↑↑ 1000
1 ↑↑ 1001
10 ↓← 1010
11 ↓→ 1011
100 ↓↓ 1100
↑↑ 101 ↓↓ 1101
↑← 110 ↓↓ 1110
↑→ 111 停止 1111

表2 光送信機のボタンと制御コード対応ビット一覧

 ここで「↑」は前進,「↓」は後退,「←」左折,「→」右折,「↑↑」はダッシュ前進,「↓↓」はダッシュ後退を示します.「停止」は,すべての ボタンを離したときに送信されています.また,無効なボタン操作を行った場合にも「停止」は送信されるようです.「-」はボタンの割り付けがありません.

 以上より光信号の受信アルゴリズムは,立ち下がりを検出した時点から一定周期のタイマ割り込みによりデータのサンプリングを行うことで実現します.一 定周期は前述した単位パルス時間長(T)で,単位パルス時間長(T)の中央でサンプリングできるようタイマ割り込みを発生させます.

 赤外線を用いた通信は、電波を使う通信よりは有線で行う通信に似た特性をもっています.同時に複数の装置間で通信を行おうとすると,信号が混 ざってしまい通信ができなくなってしまいます.これを回避するには周波数(光のスペクトル/搬送波)を分ける方法がありますが,その場合は受信側の負担が 桁違いに増えてしまうので、普通は時分割(タイム・シェアリング)を行って複数の通信を行います(当然,電波を使った通信でも同じ周波数帯を使っていれば 同様の問題は発生する).

 たとえば、バンドA~D4台のQ-STEER光送信機が赤外線を送出している場面で,ほかの赤外線リモコンを使うと、そのリモコンは使用不能になります.また,Q-STEERも止まったり動いたりといったことになります.

 ここで利用したオシロスコープのソフトウェアは、トランジスタ技術2006年8月号の特集「パソコンで作る私だけの実験室」で付録された“SoftOscillo2”を使っています.
 同様な機能を持つフリーのソフトウェアには、
・“WaveSpectra”がサイト
http://www.ne.jp/asahi/fa/efu/soft/ws/ws.html
・“WavCont.exe”がトランジスタ技術のダウンロード・サイト
http://www.cqpub.co.jp/toragi/download/html/dl_frame.htm
(トランジスタ技術の2008年3月号の特集に説明があります.ソース・コードがついていますので使い勝手が良いようです)
 上記からダウンロード可能です.

●WAVファイル
 WAV またはWAVE(ウェーブ,ウェブ)は,RIFFと呼ばれる書式に従って書かれたファイルのことです.Microsoft社とIBMにより開発された音声 データを記述するためのファイル・フォーマットです.RIFFは音声データの記録形式というわけではありません.いろいろなデータを単一ファイルに収める ための汎用な書式です.リニアの音声データは16ビットのステレオであれば2バイトずつ,LLRRLLRR…と書き込まれていきます.8ビットのモノラル であれば1バイトずつ,LLLL…です.

 しかしこれだけではただのバイトの羅列にすぎないので,書くときはよくても読むときに困ります.このデータはどのようなサンプリング周波数で再生すればよいのか,モノラルなのかステレオなのかなどはデータだけ見てもわかりません.

 そこで、この音声データ本体とは別に,そのデータの音声形式も記録する必要があります.これらの複数のデータをまとめて1ファイルに収める書式が RIFFであり,拡張子wavのファイルはRIFFのWAV形式という規則にのっとって書かれています.それぞれのデータはチャンクという単位で書かれ, RIFFのファイル・データはチャンクの集合体です.普段WAVと呼ばれるファイルは「リニアWAV」であり,リニア・データではなくMPEG音声を RIFF-WAV形式で書き込めば「MPEG WAV」です. Windows標準のサウンド・レコーダでは「WMA WAV」を作成することができます.

 圧縮音声は音声データ内にサンプリング周波数などを示すフラグなどをもっていますが,そのファイル自体がどの音声形式であるかはソフト側からは はっきりとは断定できません.RIFF-WAV形式に収めると、音声形式を明言することができます.
 表3に、もっとも基本的なリニアWAVファイルの構造を示します.

 なお,16ビット・データ,32ビット・データはリトル・エンディアン形式で保存されています.

チャンク名称 バイト数 説明
4 文字データで「RIFF」.このファイルがRIFFであることを示します.
4 32bit整数.このRIFFのサイズ.大抵はファイルサイズ-8になります.
4 文字データで「WAVE」.このファイルがWAVEであることを示します.
fmt  4 文字データで「fmt 」.これ以下に音声形式を記録することを示します.
fmt  4 32bit整数.fmtチャンクの中身のサイズ.リニアPCM ならば 16(10 00 00 00)です.
fmt  2 16bit整数.音声データ形式を表すフォーマットID(表5参照)リニアPCM ならば 1(01 00)です.
fmt  2 16bit整数.チャンネル数.モノラル ならば 1(01 00)ステレオ ならば 2(02 00)です.
fmt  4 32bit整数.サンプリング周波数(Hz).44.1kHz ならば 44100(44 AC 00 00)です.
fmt  4 32bit整数.1秒あたりのバイト数.サンプリング周波数×チャンネル数×量子化bit数÷8.
44.1kHz 16bit ステレオ ならば44100×2×2 = 176400(10 B1 02 00)です.
fmt  2 16bit整数.1サンプルあたりのバイト数.チャンネル数×量子化bit数÷8.
16bit ステレオ ならば2×2 = 4(04 00)です.
fmt  2 16bit整数.量子化bit数.16bit ならば 16(10 00)です.
data 4 文字データで「data」.これ以下が音声データであることを示します.
data 4 32bit整数.Dataチャンクの中身のサイズ.
data - 実際の音声データ
表3 基本的なリニアWAVファイルの構造

 dataチャンクの前に表4に示すようなfactチャンクというのが入る場合があります.あまり使用されませんが、サウンド・レコーダではつけられるようです.

チャンク名称 バイト数 説明
fact 4 文字データで「fact」
fact 4 32bit整数.factチャンクのサイズ.4です.
fact 4 32bit整数.dataチャンクの音声データに何サンプル含まれるか.
表4 factチャンク

 また,表5に音声データ形式を表すフォーマットIDを示します.

コード(16進) PCMの種類 説明
1 PCM Windows 標準サポート
2 MS ADPCM Windows 標準サポート
5 IBM CSVD  
6 A-Law Windows 標準サポート
7 μ-Law Windows 標準サポート
10 OKI ADPCM  
11 IMA/DVI ADPCM Windows 標準サポート
12 MediaSpace ADPCM  
13 Sierra ADPCM  
14 ADPCM (G.723)  
15 DIGISTD  
16 DIGIFIX  
20 YAMAHA ADPCM  
21 SONARC  
22 TrueSpeech Windows 標準サポート
23 Echo Speech1  
24 AF36 (Audiofile)  
25 Apix  
26 AF10 (Audiofile)  
30 AC2 (Dolby)  
31 GSM 6.10 Windows 標準サポート
33 ANTEX ADPCM  
34 VQLPC (Control Resources)  
35 DIGIREAL  
36 DIGIADPCM  
37 CR10 (Control Resources)  
40 ADPCM (G.721)  
101 IBM μ-LAW  
102 IBM A-LAW  
103 IBM ADPCM  
200 Creative Labs ADPCM  
300 FM TOWNS  
1000 Olivetti GSM  
1001 Olivetti ADPCM  
1002 Olivetti CELP  
1003 Olivetti SBC  
1004 Olivetti OPR  
表5 フォーマットID

 今回,対応するWAVフォーマットは,PCM,モノラル8ビット,11025spsのWAVファイルとします.


●RCサーボ制御
 RC サーボはラジコン模型用のアクチュエータで,ケースの内部にモータ,減速ギア,制御基板,位置センサ(ポテンショメータ)が入っています.信号線に加え るパルス幅で回転を行い,位置を保持します.RCサーボ からは線が3本でていて,ほとんどの場合は3本が接続された3並列線になっています.また,コネクタは2.54mmピッチのメスになっています.


接続線 説明
信号線 パルス状の信号を入力する.白,青,黄色,オレンジの色が多い.
電源線+ モータと基板の電源+.3並列の真ん中の線.色は赤が多い.
電源線- GND.黒か茶色が多い.
表6 RCサーボ接続線

メーカ 信号線 電源線+ 電源線-
三和電子機器(株)(SANWA
日本遠隔制御(株)(JR)
近藤科学(株)(KO PROPO
双葉電子工業(株)(Futaba
HITEC
表7 メーカ別によるRCサーボ接続線の違い

 RCサーボは、内部の制御基板が行うモータの駆動方式により,アナログ方式とディジタル方式に大別されます.

▼アナログ方式
 入力されたパルスを内部の回路でアナログ処理して位置決めをする方式です.一般的に位置精度が悪いですが安価です.回転角度はパルスの幅によりますので,物理的限界(通常はポテンショメータの回転可能角度.ほとんどは180°)まで回転させられます.

▼ディジタル方式
 入力されたパルスを内部の回路でディジタル処理して位置決めをする方式です.位置精度と 保持力が高く,負荷がかかると高周波音が出ます.決められたパルス幅以上や以下のパルスは受け付けられません.ラジコン用のディジタル・サーボは回転角度が 最大90°程度のものが多いですが,ロボット用のディジタル・サーボはほとんどが180°回転できます.

 RCサーボの制御信号線には図7のようなパルスが送られてきます.このパルス幅によってRCサーボの角度がコントロールされています.一般のRC サーボは1.5ms前後が中立位置となり、このパルス幅を変えることでサーボ角が変化します.パルス周期は通常15~20ms周期です.

 今回使用するRCサーボは安価なアナログ方式のものです.また,RCサーボの電源は,単3型ニッケル水素電池4本を直列接続し4.8Vで使用します.
 RCサーボの動かし方や4軸の制御の仕方などは,参考文献(3)に詳しく出ており参考になると思います.


RSサーボ.JPG
写真3 RCサーボ


図7.jpg
図7 RCサーボ駆動信号

メーカ 中立位置 可変範囲 備考
双葉電子工業(株)(Futaba) 1520 [μsec] ±500 [μsec] 旧製品は1310±500 [μsec]
三和電子機器(株)(SANWA) 1500 [μsec] ±600 [μsec]  
日本遠隔制御(株)(JR) 1500 [μsec] ±500 [μsec]  
近藤科学(株)(KO PROPO) 1520 [μsec] ±500 [μsec]  
表8 メーカ製RCサーボの制御信号パルス幅の例

■参考文献
(1)トランジスタ技術 PICで体験するマイコンの世界,2007年8月号,CQ出版(株)
(2)トランジスタ技術 パソコンで作る私だけの実験室,2006年8月号,CQ出版(株)
(3)二足歩行ロボット製作超入門,浅草ギ研著,2006年9月,オーム社

<田中 達美>

カテゴリ:

トラックバック

このエントリーのトラックバックURL:
http://www.eleki-jack.com/mt/mt-tb.cgi/2314





カテゴリ

会社案内
情報セキュリティおよび個人情報の取り扱いについて

コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。
コメントはそれぞれ投稿した人のものです。

Powered by
Movable Type 4.1
/*yahoo remove*/