ブログパーツUL5

PS2ワイヤレスコントローラ対応の試作(6)

試作基板と搭載基板 アナログモードのバグの修正もできたので、RZ-1本体の搭載用基板を製作しました。コントローラ系の回路が接触不良を起こすと思わぬトラブルになりますので、コネクタはしっかりしたものにしました。シフト回路も追加したことも加わり、試作回路基板より一回り大きくなりました。

 写真の左側が搭載基板と右側が試作基板

搭載基板とケーブル PS2コネクタとのケーブルとMR-C3024とのケーブルを新規に作成したものを使う予定です。

 写真の左側がPS2コネクタとのケーブル、中央が搭載基板、右側がMR-C3024とのケーブル


 VS-C1(PSワイヤレスコントローラ)とMR-C3024のインターフェイス回路に使用した16F688のHEXファイルをダウンロードできるようにしておきます。シフト回路で論理反転しなければ、PICライターで書込んでそのまま利用できます。

 PS2_2.HEX

 製作した搭載用のインターフェイス基板はバックカバーの中に余裕で格納できますが、VS-C1の受信モジュールはどうしてもバックパネルの外に取り付けるしかない。他にもいろいろな搭載の可能性を検討しており、どのようにしてRZ-1の本体に搭載するかが難しい。
 フロントのLCDを諦めればすぐ解決するのですが、ここまで来るとなかなかLCDは便利ではずせない。フロントカバーを交換して搭載することも案として検討しています。また、VS-C1の受信モジュールのカバーを取ることも案としてありますが、これもVS-C1の流用を考えると余りやりたくない。思案中で悩んでいます。
0

    PS2ワイヤレスコントローラ対応の試作(5)

    不要なコネクタを切断  RZ-1本体にどのように搭載するかの検討に入ります。試作ではインターフェイス回路基板とPS2コネクタを直結しましたが、どうも使いにくそうなので分離する方が良さそうなでケーブルを自作しました。コネクタ部分には不要になっていたコネクタ部分をカッターナイフで端から15mmのところで切断しました。内部のストッパーが外れて、きれいに取れ、樹脂も意外と軟くカッターナイフで何回も筋を入れると切れます。

    配線したケーブル しかし、ケーブルは流用しようとしましたが、圧着用なので半田付けには耐えられずすぐに断線するので、諦めて手持ちの半田耐熱の配線で作りました。基板側は新規に2.54mmピッチのコネクタにして、圧着ピンで処理して作ります。VS-C1接続用コネクタの両脇のプラスチックを少し削って、先ほど切ったコネクタカバーの中に入るようにして接続部の保護用に被せます。以外とフィットして小型で見栄えもいいものに出来上がりました。


     VS-C1(PS2コントローラ互換)のコネクタのピン配置
    VS-C1(PS2コネクタ)

    Pin 1 = DAT(オープンコレクタ)
    Pin 2 = CMD
    Pin 3 = −−
    Pin 4 = GND
    Pin 5 = +3.6V(+3.3V)
    Pin 6 = SEL
    Pin 7 = CLK
    Pin 8 = −−
    Pin 9 = ACK(オープンコレクタ)
    但し、インターフェイス側はPICマイコンとの配線がやり易いように入れ替えています。

     搭載用の本番の回路基板には3.3V/5Vのシフト回路を追加するのと、取り外しできても接続部は外れると困るのでコネクタにするため、一回り大きな基板になります。これでサイズが決まったので、RZ-1の格納場所を探すことになります。これが難関のようです。

    0

      PS2ワイヤレスコントローラ対応の試作(4)

       MR-C3024からVS-C1に送信するコマンドキャラクタは次の一覧表のようになっています。海外のHiTEC社のワイヤレスコントローラに準拠していますが、コマンドキャラクターは主に大文字にしており、小文字はサブセット的にしています。また、アナログ値はすべてRZ-1用に変換してMR-C3024に送信するので、roboBAISCで計算しないため反応は良くなるはずです。なお、「V」のバイブレータの許可/禁止にはまだ対応していませんが、RZ-1のコントロールには関係ないので当分はこのままでいいでしょう。
        アナログモードでの動作にはまだバグが残っているようで、PS2ワイヤレスコントローラと互換性はあると思いますが、機種ごとに違いがあります。

      【追記】
       VS-C1のバイブレータの許可/禁止が動作するようになりましたので、一覧表を修正しました。VS-C1のバイブレーションは短時間しか動作しませんから、「V」のバイブレータの許可だけで十分です。禁止の方は使うことはないでしょう。なお、動作モードはAnalogモードとDegitalモードは推奨しないで、起動時には必ずDSモードにすることにしました。

       VコントローラVS-C1のコントロールコマンド一覧表(修正版)
      キャラクタコマンド一覧表
      【使用方法】
       受信モジュールのインターフェイス回路をMR-C3024のETXとERXに繋いで、19200bpsで通信ができるようにします。左側のコマンドキャラクタをMR-C3024に送ると、それに対応したワイヤレスコントローラのキー情報が送られてきます。

       通信するroboBASICのプログラム例は次のようになります。押されたキーをサーチしてRZ-1の各動作への飛び先を指示します。
      (プログラム例1)
      '−−−−−−sample1−−−−−−
      txchar ="X"
      ETX 19200, txchar
      GETX:
      ERX 19200, rxchar, GETX
      IF rxchar > 0 AND rxchar < 17 THEN
      ON rxchar GOTO MAIN,K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11,K12,K13,K14,K15,K16
      ENDIF
      '−−−−−−−−−−−−−−
      0

        PS2ワイヤレスコントローラ対応の試作(3)

         前回まで試作回路は5Vでマイコのデバッグをしていましたが、PS2ワイヤレスコントローラの受信モジュール対応にするために電源電圧を3.3Vへ変更します。当初はPS2コネクタで抵抗分割で簡易的にしようとも思いましたが、受信モジュールが壊れては困るので、マイコンを含めインターフェイス回路の電源電圧を3.3Vに変更します。
         三端子電源に3.6Vはないので48M033FというICで3.3Vにします。16F688は3.3Vでも8MHzの内部発振が出来きるので、何も変更しなくて済み、かつ通信速度も19200bpsに設定できますが、MR-C3024は5V動作なので通信する端子のRXとTXが問題となります。インターフェイス回路の受信側は抵抗分割で5Vを3.3V対応に出来ますが、送信側はそのままではMR-C3024が受信することが出来ませんでした。やはり、電圧ののシフト回路を入れなければならないので、Blutoothモジュールの時に検討した回路を挿入することにしました。専用のシフト回路のICでもいいのですが、有り合わせの部品で製作することにしました。

         下図は試作した3.3V電源に対応した回路
        3.3Vに変更した回路
         この回路をブレッドボードに組んで動作テストしてみたところ、最初は配線ミスして動かないので心配しましたが、正しく配線してうまく動作しました。序に、VS-C1のテストもしてみました。初めて電源を入れるので緊張の一瞬でしたが、ペアリングの完了した後にMR-C3024との接続も完了して基本動作の動くことも確認できました。

         VS-C1を繋いで動作テスト
        VS-C1のテスト
         16F688とMR-C3024との通信は19200bpsで行なっていますので、赤外線操作などの他の通信操作よりも操作感覚は向上するのではないでしょうか。
        VS-C1のテスト1 押されたキーを検出して、MR-C3024に通信できています。この基本動作ができるだけでも、かなりの動作を操作することが出来ます。
         写真では+字キーのLeftを押して、コード受取ってMR-C3024のテストプログラムでLCDに押されたキーが「left button」と表示しています。

        VS-C1のテスト2 DS2モードにして、押されたキーの圧力を検出できるので、その値を0〜15に変化するように変換しています。他のモードでは固定値となるのでモーションを作成する時には注意が必要です。
         左の写真では、L2のキーを押して、その圧力値が07であることがMR-C3024に送られています。

        VS-C1のテスト3 アナログモードにして、左右のジョイスティックのアナログ値を読み込んで、MR-C3024に通信できています。ここでは、アナログ値を00h〜FFhではなくMR-C3024用というかRZ-1に使用しているサーボに適した値になるように変換しますが、送信するコマンドキャラクタの大文字/小文字でサーボ全域の10〜190か狭い範囲(ハンドの範囲を想定)の58〜120になるように16F688で変換してMR-C3024に送信しています。

          VS-C1でROBOZAK(ROBONOVA)を操作可能に

         MR-C3024からVS-C1のバイブレーションを動作させることが出来ないこと以外はほぼ問題なく動作していることが確認できた。ここまでくれば万々歳で、残る課題はRZ-1にどのように搭載するかを決めて、正式な搭載基板を製作すればいいことになります。バックカバーの中に入れたいが、可能かどうかである。
        0

          PS2ワイヤレスコントローラ対応の試作(2)

          試作したI/F回路 PS2コントローラのインターフェイス回路を試作して、PICマイコンの16F688にプログラムを書き込んでいろいろテストしています。PIC用マイコンのライター(ソフトはPICProg4U)が16F688に対応しているか不明であり、書き込みの実績がなかったので、実績のある16F628もコンパイルしてどちらでも試作できるように準備しました。 結果的には16F688に書き込めたので、14pinと小型なので16F688に決めました。16F688は安く秋月電子で購入でき、テスト用と搭載用に2個購入しました。

           RZ-1に搭載する方法を考えると、PS2コネクタに直接インタフェイス基板を取付けるのは搭載が難しくなるので、試作基板はここままでいいですが、RZ-1に搭載する方法も検討しておく必要があります。フロント側にはLCD表示があるので、スペースがなくバックカバーに搭載するしかないないようです。

           デバッグは手元にある中古のPS2コントローラを活用しています。有線のコントローラなので、下図のような試作回路回路で3,3Vの電源は使わず5V電源電圧に変更しています。
          試作した回路
          PS2コントローラのテスト
           PICマイコンの書込んだプログラムの動作確認やデバッグをするために、MR-C3024にはroboBASICでPS2コントローラ用のテスト評価プログラムを作成しました。一応、基本動作について有線のPS2コントローラで動作確認ができましたので、参考に掲載しました。プログラムソースが長いので、「続きを読む>>」を見てください。

           但し、PICマイコンにどのようにプログラミングしたかで変り、マイコンの動作に依存していますので、汎用性はまったくありませんので、ご注意ください。アナログモードではコントローラにも依存するようで、キーを押した圧力度データがとれる場合ととれない場合があります。
          0

            PS2ワイヤレスコントローラ対応の試作(1)

             まず、ロボットに適した通信方式をいろいろ調べていましたが、やはり、反応の良さでは2.4GHzのPS2ワイヤレスコントローラが一番のようです。また、世界中のホビーロボットだけでなく、移動する産業用ロボットでもPS2ワイヤレスコントローラを採用している例も多く、2.4GHzのPS2ワイヤレスコントローラ(互換機も含め)にしていれば、今後のロボット操作に統一性や一貫性を持たせることが出来ます。なお、反応の良さは搬送波だけでなく、MR-C3024との通信速度が19200bpsというのも効いているかもしれません。

             インターネントでいろいろと調べていたら、Robonova用の 2.4Ghz Wireless PS2 Controllerというのを海外では発売されているのがわかりました。なぜ、日本では発売しないのでしょうかね。発売されていたら、今度は即購入していたのに残念です。海外のインタネットショッピングはトラブル時の対応を考えると手を出しにくい。でも海外に友達がいたら購入してもらって、送ってもらうのもいいですね。

            Robonova 2.4Ghz Wireless PS2 Controller (HITEC社)
            Robonova 2.4Ghz Wireless PS2 Controller
            下記のような説明書はありました。
            http://www.active-robots.com/products/robonova/accessories/Anleitung_136080.pdf
            また、ワイヤレス用のテンプレートもありました。参考にはなりますが、肝心のインターフェイスの情報は少ないですね。

             一応、コード変換は同じようにしようと思いますが、バイブレータは当分の間はペンデングとする。説明書を見るとPS2コントローラのキーの検出がbit単位で見るのでわかりにくいように思えます。

            VS-C1とその接続コネクタ 日本のHITEC社ではPS2コントローラを発売していないので、そんなこんなで,受信モジュールの小ささとロボット専用という響に惹かれて、VS-C1とその接続コネクタを衝動買いしてしまいました。

             さて、これからどうする、どうなるのか無駄にならないように真剣に取り組まなければまらないことになりました。
             
            0

              ワイヤレスコントローラの検討

               ROBOZAKが発売されていた当時には、PS2ワイヤレスコントローラでRZ-1を操縦できるキットが発売されていましたが、すぐに完売してもう購入できません。当時は受信モジュールが大きく購入を躊躇っていたので、購入するタイミングを失ってしまいました。PS2本体もすでに発売中止となっているので、いつまでPS2ワイヤレスコントローラが入手できるのかちょっと心配で、そのうち入手できなくなるのでしょう。
              VS-1C
               PS2ワイヤレスコントローラはオークションを覗くとコピー品が安く購入できるようです。しかし、受信モジュールが大きく、コピー品を購入するのはどうも気が引けます。
               また、ヴィストン株式会社からロボット専用コントローラーとしてVS−C1というのを発売しており、基本機能はPS2ワイヤレスコントローラのようなので、現在はこれをROBOSHOPや秋月電子などで購入することができる。


                  写真はVS−C1(秋月電子より引用)

               RZ-1の改造とモーションプログラムの変更もひと段落したこともあり、以前のPS2ワイヤレスコントローラについてインターネットでいろいろ調べてみました。PS2コントローラ解析の情報はあるのですが、ROBONOVAやROBOZAKなどのMR-C3024マイコンボードに対応した情報が極端に少なくなります。受信側のモジュールは当然RZ-1本体に搭載するので小型で軽量なことが最大の要求事項で、以前に紹介した「赤外線通信とZigBee通信でロボット操縦ができる」のようにセットになっているものありますが、搭載実績がすくないようです。操作面ではPS2タイプで決まりですが、2.4GHz無線、Bluetooth、ZigBeeなどの通信方式も含め、通信データやその変換方法をどうするか総合評価が必要です。

               VS-C1は対応マイコンボードが決まっており、Robovie-X/X Lite、Robovie-i、RB2000、RB300などのVS-RC003/HV搭載ロボットと、Hotproceed社開発の「REV-1(レボ-ワン)」で近藤科学社製の「RCB-3」「RCB-3J」などのマイコンボードでご利用できるだけです。残念ながら、MR-C3024のマイコンボードには対応するアダプタがありません。どうも出来合いのキットは、購入してもうまくいかない場合や改良したくてもできないことが不満です。

               そこで、今回、勉強を兼ねてアダプタを自作してみようと思案しており、やはりデータ変換をするのは使い慣れたPICマイコンで製作したいと考えています。UARTを内蔵している16F688か16F628Aを使用して、元プログラムを参考にMR-C3024用プログラムとして改良できるようにしておくつもりです。
              0

                RZ-1用無線送信機のプチ改良

                 私はあまり使っていませんが、RZ-1用にROBOZAKで送られてきた無線送信機について、プチ改良をしてみました。無線送信機は送信部の電源電圧の関係で単3電池を6本使用するようになっています。しかし、アルカリ電池6本はもったいないので、ACアダプタで電源供給できるようにしました。ラジコン送信機といっても、RZ-1専用の2足歩行ロボット用ですから屋内限定の使用となるので、ACアダプタで十分だと思います。でも、改良はACアダプタを使わない時は単4電池でも使用できるので問題ありません。

                無線送信機 無線送信機は単3電池6本なので、1.5V×6=9Vの電源電圧となります。そこで、家の中に9VのACアダプタがあるか探してみたら、古くて少し大きいですが見つかりました。

                 リサイクルして使用できるようにしようと思いますが、電源プラグのサイズが合いません。

                電源接続部 ラジコン送信機の右側に小さな穴が開いています。これが充電用電源接続部です。

                 送信機をばらしてみて調べたら、この電源は送信機の電源SWをOFFにすると、電池を充電するようになっていました。充電用なので、電源SWをONにするとACアダプタからの電源が切断してしまうことがわかりました。

                電源プラグ 購入した電源プラグで型名不明ですが、内側は1Φ位で外形は3φ位です。外側はGNDで、内側は9Vとなるように半田付けしてACアダプタは完成です。

                回路基板 送信機本体側の回路を調べてみたところ、写真のようにSWにいっている配線(黄色と黒色の配線)の二ヵ所を短絡すれば、ACアダプタからの電源供給が内部回路に供給されます。

                 改良した後は、無線送信機のSWをONにするとLEDが点灯することで確認できます。
                0

                  送信機の中はどうなっているの?

                   無線送信機の中を見てみました。かなりゆったりとしていました。ただ、プリント基板は樹脂を溶かして固定しているので、今回はこれ以上はバラしませんでした。元に戻す時には取手の部分を組む時に注意が必要です。樹脂の凹凸がきちんと挟まることを確認してからネジを締めるとうまくいきます。

                   基板は、スティックの信号処理回路と送信回路とに分かれていました。


                   微調レバーは動かないように樹脂を溶かして固定していました。なお、スティックの変化で抵抗値(配線:赤、黄、黒)は、黄を中心に1.45〜1.55〜1.65KΩの変化をしていました。

                   基板上の見えているICの1つは、オペアンプ(多分4回路入り)ともう1つは分かりません。簡単なロジックだと推測しています。

                  0

                    無線送信機のスティックと通信コード

                     miconoさんがいろいろ調べていたので、私も調べてみました。まず、無線送信のコードを調べてみましたが、マニュアルもなく推測であることを御了承ください。モーションプログラムの助けになれば幸いです。

                    DIM RR AS BYTE '-- これがラジコンコントロールのコードが入る変数

                    どうもシステムで予約されている変数のようです。従来のプログラムを見てみると、すでに、組み込まれています。そこで、従来のモーションを無線操作してみたら、見事に動きました。ビンゴだ!

                    さらに、無線操作のプログラムのRR値を拾い集めてみました。
                    01,02,03,04.・・・・,09,16,32,48,64,80,96,112
                    でした。これらが無線操縦の左右のスティックのどこに割り当てているかを探せばいいことになります。miconoさんの方法で探せば、簡単にわかります。

                    表示している番号は、プログラムの時のRR値で表記してあります。



                     左側のスティックの「9」については、miconoさんが解析されていました。左9と右7を同時に押すと確かに、16がダブりますね。この時は、RR値は25になるらしい。16+9の組合せは発生しないので、この値にしたようだ。

                    【追伸】
                     macwinさんに教えていただいたROBOBASICのマニュアルの83ページに記載されている箇所です。初にDIMで宣言した変数がroboremocon変数として利用されるというルールのようです。roboBASICには一切何も記述されていません。macwinさん、有難う御座いました。
                    0


                      カレンダ

                           12
                      3456789
                      10111213141516
                      17181920212223
                      24252627282930
                      31      
                      << March 2024 >>