ブログパーツUL5

PG-03相当のジャイロモジュールを試作(8)

 PG-03相当のジャイロモジュールを試作したところ、ノイズかジッタでドリフトが大きくてRZ-1の揺れがひどく、PG-03の置き換え迄には至りませんでした。PG-03相当としてはある程度までうまく動作したので、ちょっとチューニングと改良をしてみました。自作では少しづつ思いついたアイデアで改良できるのが、いいですね。
 ムラタの推奨回路のままのジャイロモジュール(AE-GYRO-SMD)のドリフトを解析したところ、GNDのノイズではなくて、モジュールのアナログ値自体がドリフトしているので、ハードとソフトの両面で積分するように対策してみました。

【対策】
・ソフトではアナログ値を読み取るのを1回から時間差を設定して2回読み取り、移動平均とする。
 (AD読み取りができるようにサンプリング時間の間隔をあけて時間差を設定する)
・ハードではジャイロのアナログ出力に容量を入れる。
 (暫定的に、100µFの電解コンデンサーをアナログ出力とGNDに入れる)

 2軸ジャイロモジュールの全体回路図
全体回路図
 ジャイロモジュールをRZ-1ジュニアの肩に乗せて揺れを確認してみる。
ジャイロのテスト
 ソフトは12F675に書き込み、中点(静止点)を読み込んで、赤と緑のLEDが同時に点灯する電圧調整のチューニングを行い、ハードは電解コンデンサーをモジュールに半田付けした。予備のMR-C3024はRZ-1ジュニアに搭載したので、早速、実験台になりました。ほとんどゆれなくなり、PG-03と同じレベルにまでになったようです。
 本番のモジュールにするには小型化にするため、12F675のSOP、チップ電解コンデンサ、チップLEDなどが必要である。部品はまったく手持ちになく、チップ部品なのでプリント基板も製作しないととてもPG-03と同じ大きさにならない。しばらくはどうするか検討することにする。

【追記】
 対策で追加した電解コンデンサーは大きいため、試作モジュールの搭載が難しかった。手持ちに100μFのチップコンデンサーがあるのを見つけたので、ノイズ対策にはチップコンデンサーの方が特性的にも良さそうで、早速、交換しました。現在は、時間経過で簡易的に温度特性の良し悪しを見ています。
0

    MR-16202互換にLCDモジュールを改良

     私のRZ-1には自作LCDを搭載していますが、SC1602BSを使った自作LCDの制御コマンドはroboBASICとは互換性がありませんでした。そこで、roboBASICのLCDのコマンドで動作するようにMR-16202に準拠させるように改良を検討しました。MR-16202はすでに購入できないようなので、自作される方がいれば便利なようにまとめてみました。

     基本としたLCDは「超ローコストRS232Cモニター」を参考にしたので、詳細はそちらを参照してください。

     今回、改良するために整理した命令語一覧表です。
    LCD命令語表
     MR-16202と違う点は以下の通りです。
    (1)CONTはハード対応していないので、カーソルのブリンク指定に変更する。数字は無視する。
    (2)FORMATでは形式指定のみとする。桁数指定では記述する必要があるが有効桁数を表示する。

     16F628Aに書き込んですぐに使用できるようにASMファイルとHEXファイルを置いておきます。
     (修正点:LOCATE(y,x)をLOCATE(x,y)に修正しました。)
    ●16F628A用プログラム → lcd_2.asm(9KB)
    ●16F628A実行ファイル → lcd_2.hex(5KB)
    ●LCDテストプログラム  → LCD_test.bas(1KB)

     シリアルLCDモジュールの回路図(2011/7/28訂正)

    シリアルLCDモジュールの回路図

     RZ-1にLCDを内蔵する場合には、設定変更しないのでDIP-SWは固定して部品を減らして軽量化する方がよいでしょう。

     LCDテストプログラムによる動作テスト(携帯電話で動画をとっているので、解像度と画質が悪い)

    【画面の説明】
     左上の000表示で待機状態で、リモコンの1〜9のボタンを押すことによりLCDの動作テストをします。左上の表示は押されたキーの番号が表示されています。詳細は上記のLCDテストプログラムをご覧ください。
    0

      RZ-1(ROBOZAK)ジュニア(6)

       RZ-1(ROBOZAK)ジュニアはサーボ数が少ないので、倒れると起き上がれません。しかし、横倒しになった場合だけは起き上がれるようにモーションを作成しました。P1、P2を起き上がりモーションに割り当てて、v1の自己防衛機能のON/OFFはPowerSWに割り当ててトグルSW(一度押すとON、もう一度押すとOFF)動作にしました。
       横倒しになった場合だけは起き上がれるようにモーションは、重心が上半身にあるためそのままではひっくり返るため、まず肩を回してから起き上がるようにして実現しました。

      ここからダウンロード → MiniROBO_v2.bas(25KB)

       横倒しからの起き上がりモーションの動画

       仰向けとうつ伏せからの起き上がりはどうしてもできないので、助けを呼ぶモーションを□ボタンに割り当てました。手足をバタバタして助けを求めます。これで、加速度センサーを搭載すると姿勢を検出して、各モーションを自動的に動作させることもできます。

      0

        RZ-1(ROBOZAK)ジュニア(5)

         オークションで入手したサーボをRZ-1ジュニアに付いて、両腕が揃いこれで完成となりました。センサー類は特に追加しておらず、MR-C3024のアナログポートには、基本的な赤外線受光モジュールと電圧検出だけが繋がっています。
        RZ-1(ROBOZAK)_Jr
        RZ-1ジュニアは電源が入っていなくても立っているので机の脇に置いておける。


        このRZ-1ジュニアの特徴というか海外版との大きな違いに3つあります。
        ・ロボゼロの頭部をそのまま取り付けた。
        ・股関節の部分に自作の部品を使用した。
        ・肩のサーボにRS306MDを使用して、動作範囲を45度だけ前側にずらしている。
         (190〜70〜10という範囲で180〜0〜-90°の稼動範囲に設定)
         ロボゼロよりも一足先に完成したようです。一部にロボゼロの部品を使っていますが、あくまでも中身はRZ-1ジュニアです。

         モーションプログラムを作成していましたが、MR-C3024にはRZ-1の基本姿勢がファームウェアに入っているので、サーボを順番に接続したため、ゼロポイント調整で変な方向に向きます。RZ-1のサーボに合わせて飛び飛びの場所にサーボを接続すれば、この問題は回避できます。でもサーボの数が少なく、ゼロポイント調整も難しくないのでそのままにしました。この点だけがモーションプログラム作成上、注意しなければなりません。

        サーボ:0,1,2
        サーボ:6,7
        サーボ:12,13
        サーボ:18,19,20
        ※サーボ6,12の肩の部分はRS306MDです。サーボ6はTTLコマンドで方向変更済。

         同じ仕様のRZ-1ジュニアを考えている方に、参考となるようにオリジナルのモーションプログラム(roboBASICv2.72対応)をダウンロードできるように掲載しました。

         ココからダウンロード → MiniROBO_v1.bas(23KB)

        はじめて携帯電話の動画をYouTubeに投稿してみました。解像度は悪いですが、プログラムの動作はわかると思います。

        (1)Key_1〜Key_0までのモーション(挨拶、片足、相撲、足踏み、フラダンス、337拍子、WING、SWIMING、足回し、万歳)


        (2)前歩行、後歩行、右移動、左移動、右回転、左回転のモーション
        M


        (3)左右アタック、斜め前、斜め後、前、後などのアタックモーション、最後にストップモーション(音はパクリ)


        (4)Key_E〜Key_Gの簡単な体操とバイバイのモーション


         構造が単純なので、このプログラムには遊びで自己防衛機能(?)を搭載しました。標準立ちポーズで腕を押すと、ディフォルトの15のサーボ位置から15以下ずれたと判断すると反発するように組み込み、この機能はP1でON、P2でOFFとなるようにしました。詳細はモーションプログラムをみてください。

         加速度センサーが1個余っているので、今後、組み込もうと思っており、追加のモーションを試行錯誤で作成中です。横向きから起き上がるモーションがなんとかできましたが、まだ腹ばいとうつ伏せから起き上がることができず悪戦苦闘で検討中です。
        0

          RZ-1(ROBOZAK)ジュニア(4)

           RZ-1(ROBOZAK)ジュニアはただ今、訓練中(?)でモーションプログラムを作成しています。
          RZ-1_jr
           そのため、残っていたサーボ(HSR-8498HB-3型)はサイズが合わないが暫定的に取り付けて、動作を見ています。さらに、RZ-1ジュニアのフロントカバーとバックカバーが味気ないので、ついでに些細な加工をしてみました。リアル感をプラスしてちょっと格好よくなったでしょ。
           また、RZ-1と同じように足の裏には滑り止めの加工もしました。


           片腕だけ付けて動作を確認しています。但し、バランスが悪いので両腕が付いた時には、再調整が必要ですが、当分は、この状態でモーションプログラムを作成していきます。
          RZ-1_jrアタック動作
           RZ-1ジュニアはサーボ数が少ないので、モーションはあまりできないかと思っていましたが、意外といろいろなモーションが簡単に作成できておもしろい。複雑な動作はできませんが、逆に単純化したモーションとなるので、見ているとなぜかユーモラスな動きになります。


           すでに、前後移動、左右移動、回転ターンなどもこなして基本動作ができ、写真のようにアタック動作もできるようになりました。RZ-1ジュニアは軽量なのでパワーが無いですが、動作の安定感は抜群によいロボットになっており、なかなか倒れないのがいいです。
          0

            RZ-1(ROBOZAK)ジュニア(3)

             腕のサーボをどうすか検討している間に、RZ-1ジュニアに搭載したサーボの動作確認のテストを行いました。特に問題も無く次のステップに進みます。
            ジュニアにMR-C3024を搭載
             予備としてテストなどに使用していたマイコンボードMR-C3024をRZ-1ジュニアに取り付けて、基本動作のテストの準備をしました。

             なお、肩のサーボはRS306MDなので、取り付け角度を変更して70で真下になるように設定しました。稼動範囲が広いので、真後の-90°から真上の+190°になるようにしました。これでサーボ数の少なさをカバーする。


             サーボの数が少ないのですぐに接続が完了します。さらに、ROBOZAK純正品のLEDとIR受光モジュールを頭部に搭載しました。LEDの搭載には、RZ-1と構造が違うロボゼロの頭部に追加加工してLEDの光が上下に漏れないように囲い、前面にスモークのプラスチックを設置して直接LEDが見えないようにしました。

            RZ-1ジュニア
             腕はまだですが、簡単なモーションプログラムを作って、早速、動作確認してみました。LEDの点灯、赤外線リモコン、サーボ方向、ゼロポイント調整などを無事にクリアして、偉そうにしているRZ-1ジュニアが誕生しました。


             複雑な動作はできませんが、何か愛嬌のある動作になるから不思議です。写真は奴ポーズですが、これを発展させて早くも方向転換ができるようになったRZ-1ジュニアです。
            奴ポーズ?
            0

              RZ-1(ROBOZAK)ジュニア(2)

              RZ-1(ROBOZAK)ジュニアの基本仕様

              <基本仕様>
              ●サイズ:220×175×90mm
              ●重量:約0.8バッテリーを含む)
              ●トルク:7.4kg/cm(標準6.0Vバッテリー)
              ●稼働時間:平均1.5以上(フル充電時)
              ※約60分でフル充電可能。バッテリーの消耗状態により稼働時間は変化
              ●マイコンボード:MR-C3024(24軸まで対応)×1式
              ●サーボモーター:HSR8498HB×8個、RS306MD×2個
              ●バッテリー:Ni-MHバッテリー(6V、1000mAh)×1個

              <付属部品>
              ●専用IRリモコン×1個

              <HSR-8498HBの特徴>
              ●動作電圧:6V
              ●動作速度:0.2秒/60度(at 6V)
              ●トルク:7.4Kgcm(at 6V)
              ●動作範囲:最大180度
              ●重量:55g(Typ)
              ●寸法:40×20×47mm(Typ)

              <RS306MDの特徴>
              ●動作電圧:6V〜7.4V
              ●動作速度:0.16秒/60度(at 7.4V)
              ●トルク:5Kgcm(at 7.4V)
              ●動作範囲:最大288度
              ●重量:21g(Typ)
              ●寸法:25×19.6×35.8mm(Typ)

              0

                RZ-1(ROBOZAK)ジュニア(1)

                 予備部品、RZ-1改造で取り外した部品、壊れた所を補修した部品、自作した部品の一部などを集めるとこんなにもあります。そこで、何かロボットができるだろうと考えて、試しに組んでみました。
                部品一覧
                       【追記】2011/7/17  参考にした海外サイトのFase 4 RoboPenguinです。
                股関節を製作
                 海外のサイトを参考に、追加部品を製作しました。股関節のサーボを簡単に固定できるようにしました。また、サーボのバックカバーはRZ-1の直交化に使ってしまったので無いため、部品が落ちて回路がショートしては困るので、いらなくなったアクリル板を再利用してカバーを付けました。

                ジュニアの胴体
                 股関節を組み込んで、バッテリーが入るか確認したところスペース的には問題なし。肩のサーボをRS306MDにしたので収まりましましたが、バッテリー交換は胴体の上板をはずすことにしました。

                 足裏の部品は拡張部品の足高でしたが、標準の足裏の部品に改造しました。カバーも付けられますが、手持ちに無いので、ここままです。

                 今日はここまで組み上がりました。ヘッドは、ロボゼロのものをそのまま取り付けました。胴体の大きさに合っていてちょうどよい感じで、バランスがいいかもしれない。でもロボゼロのファンにおこられるかも。
                RZ-1(ROBOZAK)ジュニア 現時点ではHSR-8498HBが2個足りないので、RZ-1(ROBOZAK)ジュニアの腕が付けられませんでした。これをどのようにするかが課題となりました。それにしてもシンプルでサーボの数も少ないので、軽いこと軽いこと。さすが、RZ-1(ROBOZAK)ジュニアだ。自作部品を加えたので、海外版よりはスマートにできました。

                 HSR-8498HBは新規に購入すると高いので、やはり、ちょ〜軽くするためにもRS-306MDを取り付けるのがいいのかもしれない。そうするとハンドを作り直さないといけなくなる。RZ-1の改造も含めて、しばらく思案することにする。
                0

                  RS306MDのギアを補修

                   VS-C1(PS2ワイヤレスコントローラ互換)対応のモーションプログラムの作成中に、股関節のRS306MDの稼動範囲を間違えて、ギアが欠けてしまいました。以前にもRS306MDのギアが欠けていましたので、まとめて3個補修することにしました。金属ギアにはしたいのですが、金属ギアは高価なのでプラスチックギアにしました。
                  購入したギアとグリス
                   プラスチックギアは補修用に3つと予備用に1つの計4個、ギア用グリスを1つ購入しました。発注時にプラスチックギアの在庫がなかったのですが、意外とすぐに入手できました。

                   モーション作成で大きな負荷がかかると、RS306MDはすぐにギアが欠けるので注意が必要である。

                  改良部品 RS306MDのギアを交換するため股関節の部分を分解したついでに、弱そうな箇所の部品を強化してみました。回転させる箇所で、隙間にちょうどよい厚さの廃棄するプラスチックがあったので、リサイクルして切り出しました。サーボホーンを逃げるように大きな穴を開けて、股関節部分のU字型ブラケットに貼り付けました。プラスチックの形状はリサイクルのためこのような形になっただけで、一部欠けている形状に意味はありません。

                   組み上げてみたところ、気持ち遊びが無くなりしっかりとしたようです。テフロン製ではありませんが、スベリはいい感触で、動作的にもスムーズです。
                  改良部分
                  0

                    モーションプログラムの修正と作成

                     VS-C1の受信モジュールをRZ-1に搭載したので、胸のフロントカバーが厚くなり、モーションプログラムの全てを点検および修正が必要となりました。VS-C1の無線コントローラ対応のモーションプログラムの作成と同時に行いました。

                    (1)点検および修正したモーション
                    ●基本モーション(21関節)
                    ●音声認識モーション(21関節)
                    ●ラジオ体操モーション(21関節)
                    ●自律歩行モーション(21関節)

                    (2)新規に作成したモーション
                    ●無線コントローラモーション(21関節)
                     (Key1〜Key80に割振る)
                     [コントローラ操作]
                     ・R1,L1,R2,L2,R3,L3,SELECTをシフトキーにする
                     ・シフトキーを押すと左右のジョイスティックでアナログ操作を可能に
                      →手、腕、肩、首、股がアナログ操作が可能
                     ・前後と左右の動作は、+文字キーで基本的に操作
                     ・R1,L1,R2,L2のシフトキーで各キーにモーションを割当てる
                     ・SELECTシフトキーには、首の動作と長いモーションを割当てる
                     ・R3,L3だけはジョイスティックのアナログ操作のみにする
                     ・STARTキーは、RZ-1のリセットのみにする
                     ・各Keyには、LCD表示にモーション名とアナログ値を表示

                     シフトキーを設定していると、押した時点でジョイスティックの中間のアナログ値100が出力されるので、プログラムを作成するときに注意する必要がある。アナログ値で動作するように設定する場合にはIF文できちんと動作範囲を制限しておく。バイブレータはバッテリーが短くなるので、基本的に使用しない。

                     MR-C3024のEEPROMに音声認識モーション(21関節)を、増設EEPROMの2個(格納の関係で2個に)はラジオ体操モーション(21関節)と無線コントローラモーション(21関節)を搭載してDIP-SWですぐに切り替えられる。  
                    0

                      1

                      カレンダ

                           12
                      3456789
                      10111213141516
                      17181920212223
                      24252627282930
                      31      
                      << July 2011 >>