ブログパーツUL5

超音波距離センサーモジュール

 昨年、超音波レーダーを作成しましたが、自作に自信ない方は秋月電子通商がパララックス社の超音波距離センサーモジュールを扱うようになったので、購入できるようになりました。

http://akizukidenshi.com/catalog/g/gM-05400/

 超音波距離センサは、非接触で正確に約2cm〜3mの範囲で距離を測定でき、3ピンとピン数の少なく1ピンの信号線で色々なマイコンから制御することが可能です。マイコン等からの5μsのパルスを信号線に入力することで超音波を発信して、その反射波を計測して距離に応じて115μs〜18.5msのパルスを信号線に出力ます。反射波パルスの長さ、時間から距離を算出します。電源電圧は5Vですが、消費電流は30mAと大きいので、注意が必要です。
 この超音波距離センサーモジュールを使って、計測値とサーボ角度をマイコンで演算すれば、超音波レーダーができます。
0

    APR9600をRZ-1ジュニアで動作テスト

     製作したAPR9600再生専用モジュールをRZ-1ジュニアの肩に載せて、RZ-1ジュニアのモーションプログラムに音声出力命令としてデジタル出力をON/OFFする信号を組み込んでテストしてみました。
    RZ-1ジュニア
     プログラムを修正する時には、動作と音声のタイミングがずれて違和感がないように、DELAYを追加して時間調整をします。
     なお、スピーカーは差し込んだだけなので音量は小さいですが、箱状の板に固定すればもう少し大きい音量になり十分に聞き取れるぐらいになりそうです。
    0

      APR9600をPICマイコンでコントロール

       PICマイコンのソフトを作成して、MR-C3024でコントロールできるか試行錯誤しながらチューニングしました。roboNBASICの命令実行時間がわからないので、MR-C3024のデジタル系の出力波形を観測しながら、PICマイコン(16F628A)を介してAPR9600モジュールから指定した音声が出るかテストしながら、タイミングを調整しました。
      通信仕様では時間が長すぎるので、コントロールできる範囲で時間短縮を行ない、半減させました。

       コントロール用16F628AのHEXソフトは下記からダウンロードできます。
      8mode_sw.HEX(ウィルスチェッ済)

       動作させるために作成したMR-C3024用のroboBASIC(v2.72)のテストプログラムも以下のようにしました。
      (テストのためRZ-1ジュニアを使用しました)
       リモコンの1〜8のボタンを押すと、それに対応してAPR9600から8つの音声がそれぞれスピーカーから出てくることを確認できました。各マイコンの発振周波数の誤差がある場合もあるので、DELAY時間は微調する必要があるかもしれません。これでMR-C3024のデジタル系の1端子のみで音声をコントロールできるようになりました。
      0

        APR9600のコントロールを検討

         APRO9600の動作確認ができたので、次はRZ-1のMR-C3024からどのようにコントロールするかを検討しないとRZ-1に搭載できません。MR-C3024のUARTとI2Cはすでに使用済みなので、そのインターフェイスは利用できないという制限があり、残るはデジタルI/Oポートで行なうしかなく、どのようにするか検討しています。

         現在、考えていることは識別コードは要らない単純な通信でいいのではと思っています。したがって、SW1からSW8を区別するのを、パルス幅かパルス数を検知して行なう方法しかない。パルス幅で検知する場合、例えば、50msでSW1から400mSでSW8がONする。パルス数を検知の場合、パルス1個ならSW1がONになり、パルスが連続して8個ならSW8がONになるという通信であれば、可能なように思うが、何をトリガーにしてカウントするかが問題である。

         実験して波形確認してみないと、確定的には言えないが可能性は高そうである。弱点はノイズによる誤動作が心配であり、テストしながら仕様を決めることにした。最初はマイコンのコントロールでAPR9600がうまく動作せずタイミングなどを調整してみました。

        テストして決定したのが、以下のような通信仕様にしました。
        ・RA1のみ入力で、RB0〜RB7全てを出力にする
        ・発振は内部発振を利用
        ・パルス幅は50mSとする(SW動作なので高速動作させない)
        ・1コードは800mSとする
        ・1パルス目がスタートビットとして認識する
        ・2パルス目からSW1〜SW8に対応したビットにする
        ・パルス幅でもパルス位置でも検出できるようにする
         →最終的にHになっているビットを検出して判定
        ・出力後、すぐにリセットする(8ビットまで待たない)

        通信のタイミングチャート
        タイミングチャート
         マイコンは発振子を無くして内部発振を使うので、PICマイコンの16F628Aを利用します。16F628Aのソフトも書き込みましたので、MR-C3924でうまく動作するかをテストする必要がありますが、MR-C3024のデジタル系端子はバッテリー電源なので、5Vではなく7.5V位になりますから絶対最大定格を越えてしまいます。従って、三端子電源で5Vに落とさないといけないことになるが、モジュールに載せられるかが問題である。載せられない場合には、電源とGNDはアナログ系から接続すれば可能である。
        0

          APR9600再生専用モジュールの製作

           ロボットの搭載するのには録音機能は使わないので、APR9600を再生専用で動作させるようにして小型化することにしました。しかし、APR9600の再生音が小さいようなので、出力アンプをを追加しました。さらに、タクトSWの代わりにPICマイコンでコントロールするように変更しました。

          (1)出力アンプの検討
          386応用回路 手持ちに386Bがあったので、386BのOPアンプを利用して出力アンプを組み込むようにしました。386Bのデータシートから応用回路を参考にして、単電源なので入力と出力をカップリング容量でDC成分をカットします。

           出力端子の0.047μFと10Ωは発振防止で、電源側の容量もノイズ低減と発振防止のために必要で省略しない方がよい。


          (2)再生専用回路
          再生専用回路
          ・APR9600の周辺回路で録音時に必要な部品と回路は削除する。

          ・切替えジャンパーも固定にする。
           再生モード固定で、8音声選択

          ・出力アンプを追加
           スピーカーは8Ω

          ・コントロールするPICマイコンを追加
           (マイコンソフトは暫定でまだ未完成)


          (3)再生専用基板の部品配置検討
          APR960再生専用モジュール
           上記の回路を出来る限り小型なモジュールするために部品配置を検討する。

           いろいろ試してみましたが、APR9600用のソケットの内側にも部品を配置することでなんとか実現しました。



          (4)APR9600の録音再生評価基板と今回の再生専用基板の比較
          基板の比較
           回路は増えましたが、評価基板の半分以下のサイズで再生専用モジュールが出来上がりました。

          右側が録音再生評価基板
          左側がアンプ付再生専用基板

           なお、APR9600が安いのでソケット代にプラスして予備にもう1つ購入して、東芝の音声合成によるリアルな音声も録音してみました。


           今後、MR-C3024からコントロールしてうまく音声が出るかの綜合テストをしながら、PICマイコンのソフトを作成していきます。
          0

            ロボット的な音声の音声合成

             APR9600に録音する音声は自分の音声でも出来るのですが、ロボット的なというか機械的な音声にしたくて音声合成ソフトを調べていたらちょうど良いものが見つかり、電子工作工房の「音声、録音・再生、APR9600を考察する」を参考にさせてもらいました。

             まず、解析エンジンMeCabをココからmecab-0.98pre3.exeをダウンロードして、インストールはデフォルトパス("C:¥Program Files¥MeCab")へ必ず行います。

             MeCabのインストールが済んだら、次は音声合成フリーソフト「青空ろーどく」は任意の場所にインストールする。以上の順にインストールすれば、問題なく動作するはずです。

             なお、青空ろーどくの設定音声を変えるには、¥AozoraRohdoku¥AquesTalk¥bin¥の下にある AquesTalkDa.dllとAquesTalk.dllをその下のディレクトリ(ロボット声1、・・・、中性的な声1)にあるAquesTalkDa.dllとAquesTalk.dllをコピーして置き換える

             動作環境が整ったら「青空ろーどく」を起動して、簡単にテキストまたはテキストファイルを音声合成できるので、その結果を聞くこともでき、音声ファイルとしても保存できます。APR9600の録音時間が短いので、1メッセージの音声は5秒以内に収まるようなにテキストを書いて、その音声は「青空ろーどく」の速度で調整する。
            「青空ろーどく」画面
             音声合成は満足できるレベルで、PCのスピーカから音声を出したAPR89600の評価ボードのマイクで録音するようにします。音声は大き目にします。APR89600のスピーカ駆動は非力なので、アンプが必要なようです。

             「青空ろーどく」で作成したサンプル音声で確認できます。

            MeCab (和布蕪)とは
             MeCabは 京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所共同研究ユニットプロジェクトを通じて開発されたオープンソース形態素解析エンジンです。
            0

              超音波レーダーの試作(4)

               試作して超音波レーダーでサーボ駆動信号がおかしかった原因がやっとわかりました。ICソケットが不良だったのと自作したプローブがおかしかったことがわかり、ともに修理してやっと正常な波形になりました。オリジナルのプログラムソーズをサーボ仕様に合せ込みをして、パルス周期を20mSに、パルス幅を0.9mS〜2.1mSの範囲で可変させてみました。
              パルス間隔
               オリジナルのプログラムの
              599行 sp_wk=1600 を sp_wk=1570 に変更して、他のsp_wk記述は削除して、統一しました。
               
              結果 20mSに合せ込みできました。


              パルス幅1
              パルス幅の調整は最小と最大を見ながら合せ込みしました。
              747行、817行などのパルス幅の計算式を変更しました。

              結果、最小パルス幅は0.914mSになりました。


              パルス幅2
              少しマージンを持たせています。

              結果、最大パルス幅は2.086mSになりました。


               これで超音波レーダーの試作は終了とします。

              【謝辞】
               最後に、サポートして頂いた石神様に感謝致します。
              0

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

                 試作したジャイロモジュールをさらに小型化してみました。専用のプリント基板を製作して、マイコンは8ピンのSOPのPIC12F675Tにして、LEDなどほかの部品は全てチップ部品にしました。マイコンはライターのアダプタを製作しておいたので、SOPパッケージでもうまく書き込むことが出来ました。
                ライターアダプタ
                 従来のPICライターでも、SOPのフラットパッケージに書き込めるようにアダプターを製作して、PIC12F675Tにうまく書き込めました。


                 チップ部品の半田付けに慣れていないので、悪戦苦闘しました。特に、LEDの裏側のパッドを半田付けには苦労しましたが、点灯の確認が出来るので何度かやり直してなんとか半田付けできました。半田のヤニが残っていますがそのままにしました。

                 左の写真で左側が試作してテストしていたジャイロ基板、真ん中が今回製作したチップ部品搭載の小型基板、右側が秋月電子のジャイロモジュール。

                 2色LEDチップは予定のものでなく、代用品にしたのでサイズが大きなり半田付けに苦労しました。小型基板にジャイロモジュールに接続した出来上がりです。


                 これでジャイロモジュール製作は終了します。
                0

                  「MICRO TALK」という音声合成LSI

                   本格的な音声合成LSIとして株式会社アクト・ブレインから「MICRO TALK」というLSIを見つけました。詳細な技術資料は、ATS001A/B 技術資料 Ver.1.16をご覧ください。
                   二足歩行ロボットに載せるのには機能的に最適な音声合成LSIのようですが、パッケージが半田付けしにくい100pinのLQFPなのが難点です。ここまでピン数は必要がないように思いますが、LSIチップが大きいのでこのようになったのでしょうが、不要ピンを減らしてピン数の少ない小型パッケージにしてほしいものです。

                   I/O 制御端子(/D11〜/D0)から音声データを制御することもできますが、UARTがあるのでロボットに搭載する時にはシリアル通信になるので不要となります。データは外付けのシリアルEEPROM I/F(I2C)に格納されるのは便利ですが、容量が512MBと小さく256メセージなのがちょっと心配です。なお、電源電圧が3.3Vですから音声出力にはにJFET 入力に音声アンプが必須となり、さらにLPF回路でノイズを減衰してからでないと直接スピーカを駆動することは出来ません。

                  千石電商でも扱ってますので、店頭かインターネットから購入できるようです。
                  規則音声合成LSI
                  規則音声合成LSI評価キット
                  0

                    録音再生APR9600の試作

                     RZ-1の音声合成の検討をしていますが、その1つ代案として秋月電子で扱っているAPLUS社(台湾)のAPR9600という録音再生のLSIを使って見ようと試作してみました。音声合成に拘っていないので録音再生の機能で音声出力が実現できればそれでもよいと思います。他にも録音再生のLSIがありますが、APR9600がもっとも低コストでかつ簡便に実現できるようなので、RZ-1の音声機能の第1案としました。

                     下記のようにAPR9600データシートが色々あるので参考にしてください。
                    (1)APR9600データシート(PDF)
                    (2)APR9600データシート(PDF)
                    (3)APR9600データシート(PDF)

                     (1)が一番詳しいようなのでこれに載っている回路を参考にしました。掲載されている4つの回路を切り替えてすべてのモードが評価できるように、APR9600の評価ボードを製作してテストしてみました。4つのモードで基本的な録音再生の機能は動作することを確認しましたが、再生音が小さく録音時には大きな声で行う必要があり、簡単な出力アンプを追加する必要がありそうです。製作したのは評価用なのですが、それにしても600milの28pinnのLSIは大きすぎて、不要な部品を省いてもサイズ的にRZ-1へ搭載するのは厳しいかもしれない。サイズも今後の検討課題になる。

                    ●データシートにあった4つの基本回路
                    APR9600回路
                    ●ジャンパーピンでモード切替
                    モード切替
                    ●DIPスイッチで録音時間設定(クロック用抵抗)
                    録音時間設定

                     製作したAPR9600の評価ボードの回路図
                    APR9600評価回路

                     製作した基板(タクトSWの4個はまだ未搭載)
                    APR9600回路基板 このAPR9600回路基板をどのようにコントロールするかその方法を検討する必要がある。
                    0


                      カレンダ

                      1234567
                      891011121314
                      15161718192021
                      22232425262728
                      293031    
                      << January 2012 >>