ブログパーツUL5

EEPROMライターの製作

 何かとEEPROMに関連した回路があると、どうしてもPICマイコンのライターのようにEEPROMのライターがあると便利かなと思っていました。マイクロチップ社のPICkit 2/PICkit 3や秋月電子のAKI−PIC2プログラマボードは多機能なライタで、各種PICマイコンだけでなくEEPROMも書き込めるようなのでそのライターを購入されている方は書き込めていいですね。

Current PICkit 2 Device Support (March 2011)
PICkit 2 Device Support List

 私は自作のPICライターのためATMEL社の24C512などは書き込めないので、手持ちの部品を使って自作のEEPROMを製作してみることにしました。EEPROMといっても8ピンのみの24C512や24C1024が出来ればよいのですが、EEPROMライターのソフトウェアも含めてあまり良いものがなく、インターネットでI2C 2線式シリアルEEPROMをプログラムできるフリーソフトの「シリアルEEPROMライター」というソフトを見つけました。
シリアルEEPROMライター
 回路図も一緒にあったのでライターを製作してみました。3つのLEDが有り合わせのためバラバラですが、これはこれで良しとして残り物のユニバーサル基板にうまく収まりました。ソフトでの動作確認したところ、最初は動かず何度も回路チェックして原因がわかりませんでした。しかし、ライターのソフトのボタンはワンクリックでは動作せず、マニュアルに2度クリックしないと動作しない記述されており、操作には注意が必要です。

 よく調べたらRCDライターでもEEPROMに書き込めるらしいが、PICとEEPROMのピン配置が合わないので、ピン変換の基板か変換コードで引き出す必要があるようです。また、PICライターのソフトウェアもPICのみだと思っていましたが、EEPROMにも対応しているものもあるようです。但し、ビット単位で書き込みや修正は出来ないようでファイル単位での書込みのようです。
0

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

     RZ-1ジュニアに仮に取り付けて様子を見ていますが、揺れもPG-03レベルのようで、温度特性はPG-03よりも優れているようです。miconoさんのRZ1Peekというツールを使って,MR-C3024に読み込まれたジャイロの値(SRAMの&H530の値)を調べてみました。

    (1)ロール軸(RZ-1の左右方向)のジャイロ値(MR-C3024の&H530の値)
       少し揺れていたのが分布でもわかる。異常値を除くとσ=0.1と優秀な値である。
    ジャイロ値 RZ1Peekで500ポイント測定

    (2)ピッチ軸(RZ-1の前後方向)のジャイロ値(MR-C3024の&H530の値)
       全く揺れなかったことがわかる。一瞬、壊れたかと疑い、ゆすったらジャイロがちゃんと働きました。
    ジャイロ値 RZ1Peekで500ポイント測定。なお、コネクターを差し替えて測定したので同じアドレス。

     このぐらいの値でないとジャイロも安定動作しないということなります。急激な動きに対しての俊敏性はジャイロ本体の特性に依存することによる。安定化のために積分したことによる影響は小さく、デメリットにはなっていないようである。

     プリント基板を設計中で、インクジェットプリンタでOHPシートに2重印刷して、ずれていないかチェックして原版が出来上がりである。今後、プリント基板の製作とチップ部品の半田付けがうまくいくかが問題となる。

    0

      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


                      カレンダ

                           12
                      3456789
                      10111213141516
                      17181920212223
                      24252627282930
                      31      
                      << December 2017 >>