ブログパーツUL5

簡単なフローチャートを作成

 簡単なフローチャートを作成してみました。この通りできるかは疑問ですが、今後の奮戦によるでしょう。

 そろそろRZ-1にどのように格納するかの検討もしないと実装回路の問題や実装部品の選定もあります。3つのマイクの格納場所と実装方法も検討する必要があります。

 そろそろマイクも購入しなければなりませんが、7月にセミナーで東京に行くので、その時に購入してこようと思います。

 今週は、ROBOZAKが送られてこないので、このような検討をしています。図書館から「二足歩行ロボット製作超入門」という本のうち、サーボコントロールの所の参考にしようと借りてきました。

0

    サーボモータの初の制御テスト

     今回は、サーボモーターをコントロールできるかテストプログラムを組んでみてテストしました。当初は、ワンショットパルスでいくつもりでしたが、テストしてみたところPWMモードでないとうまく動作しませんでした。このV850ボードで、はじめてサーボを動かすことができました。これで、要素技術のテストはテストボード上で出来たことになります。そこで、サーボの角度コントロールがちゃんとできるかも同時にテストを行いました。

    【サーボの仕様】
     90°→2100µs
      0°→1500µs
    −90°→ 900µs

    【V850のPWMテストプログラムの一部】
    */************ PWM出力モード (抜粋)************
    void TMP3_Init(void)
    {
    int msec;
    TP3CE = 0; /* TP3CTL0.7:TMP3動作禁止 */
    /* port register setting */
    PFC9L.4 = 0; /* TOP31端子に設定(PWM出力) */
    PFCE9L.4 = 1;
    PMC9L.4 = 1;
    /* timer register setting */
    TP3CTL0 = 0x06; /* 内部カウント・クロック設定:fxx */
    TP3CTL1 = 0x04; /* PWM出力モード */
    TP3IOC0 = 0x04; /* TOP31出力許可 TOP31ハイ・アクティブ */
    TP3CCR0 = (20000*20/256) - 1; /* 周期:20ms */
    TP3CCR1 = (1500*20/256) - 1; /* 1500us(TP3CCR0設定値 > TP3CCR1設定値)*/
    }
    */***************************************

    */************ Main.c (抜粋)************

    TMP3_Init(); /* TMP3 initiate */
    TP3CE = 1; /* PWM出力(TMP3)動作許可 */
    while(1){
    ;
    }

    */***************************************

     InterfaceにV850ボードが付属していた時に、無料の開発ソフトもありましたので、PM+とデバッグを利用して開発を行います。フラッジュへの書き込みソフトもあるので、PCのUSBから書き込みできるので、簡単である。

     次に、サーボコントロールは1つだけを考えており、首のサーボだけをコントロールするだけですから、複雑なことはしません。リモコン操作でなく、音に反応して首の向くようにしますので、マイク入力による音量で方向を決まるように演算が必要です。

    【音方向の検知】
     3つマイク出力をどのように演算するかの検討をして見ました。
    (左側のマイク出力=VL、右側のマイク出力=VR、後側のマイク出力=VB)

    (1)前面の音と後側の音の比較(音が後の場合)
       √(VL^2+VR^2)がVBよりも小さい時
       ・VL>VRの場合、左真横
       ・VL≦VRの場合、右真横
    (2)左側の音と右側の音の比較(音が前の場合)
       VL/(VL+VB)=係数K
       ・K=0.5 で真正面(頭部向きのオフセット調整)
       ・1.0≦K<0.5 で左側に、角度⇒180*(K-0.5)
       ・0.5<K≦0  で右側に、角度⇒180*(K-0.5)
       パルス幅は、1500+180*(K-0.5)*20/3 µs
    このようになるか、MEMSのマイクを購入したらテストする予定。
    0

      音がする方に首を回す

       音のする方向に首を回すことを考えてみました。まず、方向を決められるように、右、左、後ろの3つの向きにマイクを内蔵して音をいます。このマイクはシリコンマイクといってMEMS技術を使ってSiチップで出来ていて隣にアンプも内蔵しているのでノイズにも強く、電気信号に変えてくれます。そのアナログ信号の出力をそのままCPUボードのA/D端子に接続すれば、音の大きさのデータが採れて、その値から音の方向を計算して求めルことが出来るはずです。

       アナログ入力は、3軸加速度センサーでテスト済みですからプログラムグラムもそのまま利用できます。新規に作らなければいけないは、その値からサーボのか回転角度を求め、それをサーボ駆動のためのパルス幅にしなければなりません。電位はCPU電源の3.3Vでもサーボはコントロールできそうなので、レベルシフト回路は省きます。
      サーボ角度と駆動パルス幅
      −90°→ 900us
        0°→1500us
      +90°→2100us
      上記の範囲で変化させます。首は他の所のサーボと違い、一度、動けば次の信号が来るまでお休みしていていいはずですから、ワンショットパルスで十分といことになります。その方が貴重な消費電流の節約になります。

       RZ-1にV850ボードをどのように格納するかという大きな問題もあります。一応、胸に格納するつもりですが、胸のカバーは別途、作製しなければなりません。

      米国Atmel社製Atmega128にはA/D変換ポートが8CHありますので、V850を諦めても、この動作を搭載できることはソフトさえできれば、可能だと考えています。V850で勉強してテストしてから、Atmega128に追加するのもありかな。
      0

        V850ボードをどう使うか

         ここまでいろいろと検討してきましたが、そろそろV850ボードをどのように活用するか概要仕様をまとめようと考えています。

         右側のボードがUSB学習リモコンで、すでに、動作確認できていますので、フラッシュにソフトを書き込んで、ケースに収めれば出来上がりです。但し、テストした3軸加速度センサーは外して、もう1つのボードに移します。

         左側のボードは音声出力ができるようになっています。そこで、このボードには次の機能を要求仕様として開発しようと思います。参考書が全くないV850のソフト開発ができるか、不安ですができるかな?
        (1)各センサーとアナログ入力
         ・3つのマイクアンプを追加して、音の方向がわかるようにします。
         ・3軸加速度センサーを追加して、姿勢の向きがわかるようにします。
         ・光センサーを追加して、明るさがわかるようにします。
          (アナログ入力は12chあるので、残り5Chです)
        (2)出力はまずは出来る範囲の動作
         ・音声出力(上記に対応した6種類ぐらいの短い音声を内臓します)
         ・音に反応して首を回すサーボへのパルス出力
          (ワンショットパルスにして、消費電力を稼ぐ予定です)
         ・暗い時に、RZ-1の手から懐中電灯(白LED)で照らす
          (手の中に、LEDを内蔵させる)
        0

          RZ-1に頭脳が出来る

           RZ-1の背中に、マイコンボードを取り付けたところです。ボードの上部端子部分には、透明な端子カバーが被せてありました。マイコンボードの回路図ぐらいはほしい所ですね。また、LEDはコネクター合わせてを交換する予定です。

           マイコンボードは予想したよりも小型で小さく感じます。残念ながら電源がありませんので、動作出来るようになるのは当分先のようです。

           V850ボードの活用方法の検討も本格的にしなければと、通勤電車の中で考えています。RZ-1の改造は最小限とする条件にして、ドキッとする動きにしたいという現在の構想は、V850にはMIC Ampを搭載して音声/音の方向を感知して、首が音の方向に回り、「何か御用ですか?」または「お呼びですか?」と話しかけてくるという動きをさせようと考えています。これなら自律動作なので、リモコンも関係なく、ソフトもあまり苦労しないで出来そうです。

           もう1つのV850ボードはUSB学習リモコンとしてPCからのコントロールができるようにすることにしました。これは雑誌に出ていたものそのままで、ケースに格納すれば、出来上がりです。後は、リモコンが供給されるのを待つだけです。その時に、リモコン信号を学習して出来上がりとなります。

           USB学習リモコンすれば、リモコンのコマンドの連続送信をして動作の組み合わせが容易にかつプログラムの可能性も出ます。

          0

            21、22号がキタ〜

             RZ-1の頭脳となるマイコンボードが22号で、やっと来ました。

            【21号部品一覧】
            A.『RZ-1 モーションCD-ROM 2』×1
            B.H型ブラケット×1
            C.M3x5mmサポートピン×4
            D.M3x4mmタッピングネジ×4
            E.M2x5mmタッピングネジ×2

            【22号部品一覧】
            A.マイコンボード×1

             今回は、左足の太もも部分の組立ですぐ終わります。そのほかに、マイコンボードとモーションの追加データがありました。
            【組立-21】
             H型ブラケットを組立てるのは初めてですから、サーボモータを取付けるのにH型ブラケットの向きがるので確認しましょう。次に、マイコンボードを取付けるサポートピンをRZ-1の背中の決まった位置に付けます。ペンチなどで少し堅く締めておきます。

            0

              19,20号が届く

               本日、定期購読している第19号と第20号が届く。今回から左足の組立に入ることになります。

              【19号部品一覧】
              A.ボトムケースB×1
              B.ワッシャー×1
              C.M2x18mmタッピングネジ×2
              D.M2x12mmタッピングネジ×2
              E.M2.6x6mmタッピングネジ×2
              F.M2x4mmタッピングネジ×8
              G.『RZ-1 モーションCD-ROM 1』×1

              【20号部品一覧】
              A.サーボモーター×1
              B.ステッカー×1

               今回の組立から左足の組立に入ります。そこで、本に書いてる注意事項はチェックしておきましょう。
              (1)サーボモーターを付けるU型ブラケットは、折返しの小さい方でタップのない方です。それはネジの頭が見えている側になります。
              (2)U型ブラケットに厚型スプラインホーンを取付ける時、今回はU型ブラケットは、「1」でなく「2」に傾けて取付ける。

               このロボットは正座が出来るのでしょうか?
              0

                加速度センサーのテスト

                 V850ボードのA/Dで加速度センサーのテストをしてみました。しかし、ハイパーターミナルでその出力を見てみるとどうもおかしな値が出ているものがありました。

                 アナログ入力端子に、GND、X軸出力、Vdd/2、Y軸出力、Vdd、Z軸出力と接続してその他の端子はオープンにしました。データログをみると左から並んでいることがわかります。


                 出力は下記のようになるはずです。
                 GND X軸出力、Vdd/2、Y軸出力、Vdd、Z軸出力
                 0000 XXXX 512 XXXX 1023 XXXX

                一応、ちゃんと出ているようですが、センサー出力は、中点の512近辺になるはずなのですが、X軸とY軸は正常値です。Z軸だけが中点でないのです。センサーの向きを変えると、一応、値は変化しますが、どうもおかしい値のようです。今更、初期不良で返品ができないので、オフセット調整して3軸センサーで使うか、2軸センサーとして使うことにします。

                注意書きに、強い衝撃を与えると元に戻らないことがあると注意書きがあり、購入後は与えていないので購入前に衝撃があったのかもしれません。

                訂正の追記:
                Inerfaceの7月号に加速度センサー(同じ物)を使ったゲーム機の特集が載っていましたので、参考に読んでみました。すると、3軸加速度センサーは、水平に置いてある状態では、Z軸のみ1Gが加わった状態なので,Z軸出力はVdd/2+Vdd/5となるようです。ということは、理論値は 0716 で実際は 0710 なので問題なく正常動作していることになりました。水平状態で1Gかかっていると言われればその通りでした。

                オマケに、加速度センサーの動作を直接確認できるコンテンツも提供してくれたようです。私は、すでに、数値で確認できているので要りませんが、参考になると思います。
                0

                  加速度センサー(MEMS)を衝動買い

                   秋葉原に行った時に、将来、サーボモーターのバランスコントロールすることを考えていたら、秋月電気で3軸加速度センサー(MEMS)モジュールが安く売っていたので、衝動買いをしてしまいました。

                   電源が2.7V〜5.5V(標準3.3V)なので、0gの時は中点で電源÷2となるようです。3軸加速センサーですから、当然、x軸、y軸、z軸の3つの出力があります。その出力をマイコンのA/Dに入力して、データが取れれば、あとは演算してコントロールできるようになりますが、いつ実現できることやら、当分はプログラムのお勉強となりそうです。
                  0

                    V850ボードから音声出力にチャレンジ

                     V850ボードにマザーボードを付けてUSB型学習リモコンがやっと完成したので、1ステップクリアです。次のマザーボードを付けて、そこには音声出力の回路を組み込みます。V850ボードからの音声出力にチャレンジします。
                     InterFace6月号の第4章にV850を使ってADPCM音声出力させる「しゃべる抽選機」の事例であるので、まず、この基本形をマスターすることにします。

                     早くも音声出力に成功しているブログを発見しましたので、参考にさせてもらいことにしました。

                     音声出力はなんのトラブルもなく、呆気なく音声が出てしまいました。「う、残念!」「アッタリー」という声がしました。スピーカーが2cmとRZ-1に内蔵することを考慮したので、音質はよくないが聞き分けられました。スピーカーをどうするかが今後の課題かも。

                     2ステップ目をクリアしたので、本格的に、リモコン操作で音声が出るようにプログラムして、2つを合体していくことになります。リモコン操作すると「電源をONにします」とするのでなく、RZ-1をリモコン操作すると音が出るようにしたいのです。
                    0


                      カレンダ

                         1234
                      567891011
                      12131415161718
                      19202122232425
                      262728293031 
                      << August 2018 >>