Knowledge
   

SANWA ProBo

三和電子さんが発売している、「新コンセプトのロボット専用コントローラー ProBo」の紹介と、H8/3664で解析するソフトウェアのサンプルです。 ボタン+スイッチ操作、そして無線の方は、27MHz帯12バンド全部内臓という、実はクリスタルをたくさん購入することを考えると、けっこうお買い得感があるコントローラです。


2005/04/27

SANWA "ProBo"

静岡ホビーショー
5月14、15日に静岡ホビーショーがありますね〜。 今年はSISOも行く予定です。初めて行くのでとても楽しみです。ホビーショーで、サンワさんが ロボット専用コントローラー(送信機+受信器) "ProBo"のデモを行うとの情報をゲットしました。

このリモコン、VSTONEさんの鉄人28号のコントローラにも採用されているものです。 値段は、VSTONEさんのホームページで確認したところ、税込み\31,500で(ここにあります。 なぜかオンラインショップの方から入ると表示できないような気が…)、8ch、クリスタル交換不要で12バンド対応ということを考えると、結構、お買い得な感じがあります。 27MHz、8chラジコンプロポベースにスティック操作ではなくキー操作になっており、12種類の周波数設定をクリスタル交換なしで行え、 シリアル出力ということで、何かと特徴があるリモコンでおもしろそうです。また、デザインも手になじみやすいデザインになっています。

SANWA "ProBo"
…と、ホビーショーの話をしたところで、なぜかこれがうちにあるので、レポートしてしまいます。

ProBo Package

まず、意外に箱が小さい(他のプロポと比較して)のでちょっとびっくり。 スティックが無いため、収納スペースが結構小さくすむんだな〜と、後で気が付きました。持ち運びも良さそうです。 まずは内容物をチェックです。送信機、受信機、アンテナ、受信機接続用ケーブル、トリムドライバ(プラスチック製)がついています。 軽く取り扱い説明書を読んで、さっそく操作感をチェック。

ProBo All Items  ProBo Handling 

操作は、操作面の上の方についているスイッチで行い、下の方についているスイッチはバンド切り替え用のものです。 LEDはブルーでなんだかかっちょいい!コントローラ形状も、全体的に丸みがあって手によくフィットします。

送信器
なかなか思い切ったデザインです。普通のプロポはスティックがついていますが、"ProBo"はすべてキーになっています。 よく、スティック操作をしている時に、スティックの斜め入れに失敗したり変な位置(中間的な位置)に入れてしまって、 思った動作指示が出せなかったりして困ったことがありますが、これならシンプルでいい感じです。 一時、4chプロポをトレーナー機能を使って全部ボタン化しようか悩んでいたことがあるぐらいなので、これはいいです。

ProBo SW Panel  ProBo Back View 

左上に8方向キー風のボタン、右上には4方向+真中風のボタン、中央には4つのスライドスイッチと電源スイッチがついています。 このスライドスイッチ、左側の2つは3ポジション、右側の2つは2ポジションになっています。 最初、「どうして右側のスライドスイッチは2ポジションなんだろう〜」って思っていたのですが、 キー操作割り当てを考えていた時に、理由を思いつきました(もし違っていたら、SANWAさん、ごめんなさい)。

左手は方向キーで、割と指を添えっぱなし、右手は比較的動かす方だと思います。 そうすると、ROBO-ONEで格闘時は、右手は右上ボタン以外の操作もやりやすいけど、左手はなるべく離したくないかなと。 そんなわけで、忙しく操作している時でもオペミスをしにくいシンプルな2ポジション(上か下にスライドさせるだけなので、オペミスしにくい)スライドスイッチを右側に配置し、 逆に、デモモード、トーナメントモードみたいな切り替えを行うような操作を左のスライドスイッチ割り当てるような使い方をすると、ちょうどよさそうです。

中ほどには、スイッチと液晶、LEDがついています。このスイッチはバンド切り替えをするためのスイッチで、 液晶には現在設定されている周波数等が表示されます。このセットだけで12バンド対応なのでクリスタルを購入する必要が無く、ありがたいです。また、電源を入れると、LEDがブルーに光ります。 また、アンテナは、脱着式で、ねじって装着します。厚みも、普通のプロポぐらいなので、スティックが無い分、収納性はいいです。

ProBo Panel  ProBo Antenna  ProBo Side View 

受信器

ProBo Rcv View

受信器も、かなり小型です。比較写真で、H8/3664と比較してみました。これで12バンド内臓とは恐るべし。 上面には、ロータリースイッチが2つと、3Pのピンヘッダが1つついています。 このロータリースイッチを回すことで、受信周波数が切り替わります。 また、3Pのピンヘッダは、「信号出力」、「+5V入力」、「グランド」となっており、サーボ等のピン配列と同じです。

ProBo Rcv Size Compare ProBo Rcv Size Compare Side

さて、特徴としては、出力がシリアルなわけですが、シリアルといっても、いわゆるRS232Cのようなシリアルではありません。 1線で8ch分の信号出力を行うようになっています。受信器のFF回路前を解析したことがある方はご存知かもしれませんが、アレです。 0.4msのHIGH時間があって、その後、スティックの位置に応じた時間分だけLOWになり、CH1から逐次出力してくるものです。 Knowledgeプロポをマイコンで制御にて解説している信号とよく似ていまして、 チャネル数が8になり、最後の0.4usの信号変化が無く、全体の周期が24msになったものになっています。 1つの信号最大長は1.9msなので、1.9ms*8 = 15.2msになります。 全体周期は24msですので、少なくとも約9msはアイドルな時間が存在することになり、プログラムでここを判別すれば割と簡単に信号取り込みできそうです。

そのため、マイコンのポートを1ポート使って時間をチェックするだけで解析をすることができます。マイコンのポートを1つしか使わないので、SIPHA COREにはうれしい仕様です。 ちょっと信号取り込みプログラムを作ってみたのですが、今までR/C受信機の信号取り込みプログラムを書いたことがある人なら全く問題無い感じです。

また、明日にでも、実際にどんな信号が出てくるか?という話をアップしますので、お楽しみに!

 

2005/04/28

SANWA "ProBo" 信号解説

"ProBo"信号仕様
さてさて、制御コントローラ自作派には気になる、受信器の信号出力ですが、この"ProBo"、 シリアルで8ch分の信号を出力します。具体的にどんな形式かというところを図式化しました。 (取り説にはちゃんと載っていますが、書き直してみました)

ProBo Rcv Signal

この絵でわかりますように、8ch分の信号を、パルス幅で表現してシリアルで出力しています。 要点をまとめると、以下のようになります。

  • 各チャンネルの信号は、1つの信号線で順番に出力される。
  • 全体の周期は24msで固定である。
  • 各チャンネルデータの前には、0.4ms、信号がHIGH(5V)になる。
  • それぞれの信号は、1.1ms、1.5ms、1.9msの3種類の信号幅がある。
    この信号幅は、先の0.4msのHIGH時間を含んでいる。

キー操作とチャンネルの関係
キー操作とチャンネル、及び信号幅の関係ですが、次のようになっています。

  • 左側の8方向ボタン
    CH1、CH2の組み合わせで8方向を表現する。何もキーを押していない場合、CH1、CH2ともに 1.5msの信号幅になる。
  • 右側の5ボタン
    CH3、CH4の組み合わせで5ボタンを表現する。何もキーを押していない場合、CH3、CH4ともに 1.5msの信号幅になる。
  • 中央左側の2つのスイッチ
    スライドタイプの3ポジションスイッチで、それぞれCH5、CH6に割り当てられており、 スイッチの位置により1.1ms、1.5ms、1.9msと変化する。
  • 中央右側の2つのスイッチ
    トグルタイプの2ポジションスイッチで、それぞれCH7、CH8に割り当てられており、 スイッチの位置により1.1ms、1.5ms、1.9msと変化する。

という感じで、各キー操作が8ch分の信号になって出力されます。そんなわけで、この信号解析をするには、以下のようなアルゴリズムになると思います。

まずは、最初の図で言うところの右側の"L"が長い区間を検出します。 これを検出できたら、0.4msの"H"時間を確認し、後の"L"時間をカウントします。 これを8回繰り返して各ボタンの状態を作り出せばいいことがわかります。 "L"の長い区間の検出ですが、1信号あたり最小が1.1ms、最大が1.9msなので、区間最長ケースで 24ms - 1.1ms * 8ch = 15.2ms、最短ケースで、24ms - 1.9ms * 8ch = 8.8msとなります。 というわけで、これぐらいの期間、信号が"L"になっていたらそこを、この区間と判別すればよさそうですね。

これに加えて、各パルスの幅チェックをして、異常だったらまた「長い区間を探す」ような処理にしておき、さらに2回連続で入力された正とするような処理を入れたら、よりいい感じですね!

何はともあれ、これで、H8/3664の少ないI/Oポートを節約することができます。うれしいな〜、4chプロポを普通に繋ぐのと比べると、3つも何かコントロールできるようになります。

明日はいよいよサンプルプログラムです。

ROBO-ONE DVD到着
Robot-Fanの三月兎さんからROBO-ONEのDVDが到着しました。三月兎さん、いつもありがとうございます。

こうやって映像で連続で見ると、いろいろ発見があります。 実際に会場でロボットの動きを見ていると、移動速度とか機動性の相対比較ってうまくできなくて、 「ああ、なんかあのロボット速かったな〜」ぐらいにしか感じ取れないんですが、こうやって連続で、しかも同じ視点で見ていると、その差がはっきりと見えてきます。

う〜ん、やっぱりG-Tuneは動きがまだまだだな〜。 スペックなどの基本的な問題もあるのですが、やっぱりしゃがみに近い状態で動き回っているのは、スピードの点ではマイナスですね。 次期G-Tuneのコンセプトとして「倍速G-Tune」というのを考えているのですが、動作コンセプトそのものも見直してみたいと思います。 よし、さらにDVDを見まくって研究だ!

 

2005/04/30

SANWA "ProBo" 信号解析サンプルプログラム

昨日は結局お仕事でばたばたしていたので、アップできなくてすいません。今日は今日で、妻と食事に行って帰ってきてから会社パソコンをちょちょっと開くと…仕事メールがいっぱい…(T_T)。宿題もあるしな〜、ま、まずは好きな方からやろう!ということで…。

AKI-H8/3664によるサンプルプログラム
というわけで、仕上げは、例によってAKI-H8/3664によるサンプルプログラムです。 このプログラムは、GDLの1.5.0.18でコンパイルして確認しています(ふ、古い…)。

20050430P00.JPG - 12,142BYTES

サンプルプログラムの処理手順は次のようになります。

  1. 入力ポートは、P80を使用しています。
  2. TIMERVを0.1msで割り込みに使用してします。テクニックとしては、GRAのコンペアマッチ割り込み&カウンタクリアで0.1msを作っています。
  3. そして、割り込み処理の中で、信号が"H"になっているか"L"になっているかを判定し、"L"になっていたら時間を計測します。
  4. 再び、信号が"L"から"H"になった時に、1つの計測処理が完了します。
  5. 後はこの計測値から、先日の信号解説のとおり、"L"の長い区間を見つけ出し、次からの信号をCH1、2…として読み取るようにしています。
  6. これを16bitのデータ(各2ビットがそれぞれのチャンネルに対応)に組み上げます。
  7. これが2回同じだったら結果値としています。
  8. そして、main()の方で、結果値の変化検出をし、それを受信データをRS232C出力します。

出力はテキストで、以下のようにしてみました。

  • 1文字目…0〜8で左側の方向ボタンの押下状態(4で押下なし)
  • 2文字目…0〜5で右側の5ボタンの押下状態(0で押下なし)
  • 3文字目…0〜2でSW1の位置状態
  • 4文字目…0〜2でSW2の位置状態
  • 5文字目…0〜1でSW3の位置状態
  • 6文字目…0〜1でSW4の位置状態

サンプルプログラムは、ここからダウンロードしてください。

さ〜てと、どのキーをどの操作に割り当てようかな〜。

 


SISO-LAB Knowledge