ブログパーツUL5

「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

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

       試作した超音波レーダーのサーボ用出力波形を観測してみました。サーボの仕様が違うため、まず、観測してからプログラムの修正をすることに。
      サーボ用出力波形1
       オリジナルプログラムの高速旋回という出力波形です。
      プログラムで設定しているパルス間隔:800=0.01秒(100Hz)


      サーボ用出力波形2
       オリジナルプログラムの低速旋回という出力波形です。
      プログラムで設定しているパルス間隔:1600=0.02秒(50Hz)


       HSR-4898HBを動かすためには、パルス間隔を20mSに固定すればいいので、1600に統一する。上記の出力波形をよく見ると異様にパルス幅が狭いのが問題である。これではサーボが動作しない。
      サーボ用出力波形3
       オリジナルのプログラムの仕様では0.5mS〜2.5mSのはずですが、大幅に小さい値なので拡大してみると、パルス幅は0.2mSもない状態である。ここら辺にどうもバグがありそうである。

       ソースがうまく解読できていないせいもあるが、それらしきパラメータを変更してもうまく調整できない。ソース解析が問題となりそうである。


       当分はサーボを1個追加するつもりはないので、超音波センサーとして利用は出来そうである。それにしてもプログラムにはコメントが入っていて解析しやすいのですが、プログランムソースを見てもサーボの仕様変更がどのようにしていくのかわかりにくく難航しそうである。現象を見るとパルス幅が0.2mSで固定されていてパルス間隔が変化しており、パルス間隔と可変パルス幅を変数設定でわかりやすく可変できるようにしてほしかった。

       さらに、静止状態で観測してみると、超音波センサーの受信強度は±10%の誤差ですが、角度は40〜178と全く使い物にならない範囲でばらついています。これはアルゴリズム的に問題があるかもしれませんが、もう少し精度があるかと思って試作しましたが、2回試作して、超音波センサーは赤外線距測モジュールに比べるとノイズに弱く精度がでないようである。遊び程度なら良いが精度を要求されるような場合には、赤外線距測モジュールをお薦めします。

       参考までに超音波レーダーの受信強度と距離の関係をグラフにしました。
      受信強度グラフ
      0

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

         運動不足解消のために秋葉原までサイクリングしてやっとPIC12F683を入手しました。現在、超音波レーダーのオリジナルのソフトを解読しながら改造してテストをしています。データ送信ではLCD表示用に少し改良し、現在はサーボ仕様を20mS周期で、パルス幅を0.9〜1.5〜2.1mSの可変範囲に改良しています。この改良のために、オリジナルのプログラムソースがcc5xのコンパイラを利用していたので、cc5xをインストールしてプログラムソースを変更しています。

        cc5xのインストールはCC5X C Compilerの設定を参照してください。
        CQ_sonicテスト
        上の写真は基本動作のテストで、超音波センサーの動作とデータ送信の確認中。
        LCDの表示で上段のP=****が受信センサー強度で、下段のA=***がサーボ角度(方向)

         ロボットに搭載する超音波センサーは測定器でないので、正確な距離測定でなくて反射強度の測定で十分だと思います。そのため、自作でも最軽量で小型化できるのですが、それでも赤外線距測モジュールに比べると大きく重いですね。そのため二足歩行のロボットには向いておらず、災害ロボットのように走行していくロボットにはこのような超音波レーダーが障害物の方向(高度に解析できれば形状もわかるかも?)がわかるので向いているのでしょう。
        0

          音声合成の検討

           ROBOZAK(RZ-1)の機能で不足しているのが、音声合成です。簡単な音声認識は標準装備していますが、音声合成の機能がないため、音声での命令はできても返事がありません。一時はID01の音声認識/音声合成モジュールを搭載しようと調べていましたが、仕様がわからずカスタマイズもできないので搭載を諦めた経緯があります。
           その代わりにRZ-1に搭載しているLCDに返事を表示するようにしていましたが、やはり、ロボットからの返事がないとさびしいものです。
           音声認識は高度なファームウェアを必要としますので専用LSIが必要ですが、音声合成はそれほどではないので、PICマイコンでも音声合成を実現できるのではないかと思い、いろいろと探してみました。フラッシュメモリを内蔵した音声録音再生のICもありますが、手始めにPICマイコンを使用した簡単な音声合成に取り組んでみようと思います。

           そのままではロボットに利用できませんが、参考になるサイトとして2つほど見つけました。
          しゃべる豚しゃべる豚のキット
          8ピンPICで作る喋る時計

           キット
          ●専用ICのISD1700シリーズを使用したロボット・装置がしゃべる!

          音声合成回路基板
           現在、手持ち部品でしゃべる豚を試作中で、AT24C1024のEEPROMがないのでAT24C512で代用しようとしていますが、うまくいっていません。

           専用IC(ISD1700やAPR9600など)は大きいのですが、録音時間は短いですがなかなか小型の出来ますね。

          0

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

            超音波回路基板1 以前に、超音波センサー回路を試作で製作した超音波センサーの基板が大きくロボットへの搭載は諦めました。

             左側の写真が以前に製作した回路基板です。これをバラバラにして一部の部品をリサイクルして再利用します。
             この超音波センサーを再利用して、超音波距離測定器ではなくて、ロボットに必要な機能のみにして搭載できるサイズに小型化したモジュールにしようと考えました。CQ出版社の「8ピンPICではじめてのマイコン工作を始める」という本に、ロボット用超音波レーダー・モジュールを作ろうというのがあり、これを参考に製作することにしました。

             この本を図書館で借りようと予約しているのですが、まだ、借りれません。でも、データは下記のURLから入手できます。
            http://www.eleki-jack.com/support/-no2/
            超音波回路基板2
             ただ、12F683というPICマイコンが手持ちになく、12F675に移植しようとも考えましたが、内部発振周波数は8MHzと高く12F675は4MHzなので、取り合えず12F683にすることにしました。ところが、PICマイコンだけがなく、なかなか購入に行けなくて延び延びになってしまいました。入手する前に、マイコンはICソケットにしてユニバーサル基板でモジュールを製作しました。

             小型化したとはいえ、まだまだ大きく、RZ-1(またはRZ-1ジュニア)にどのように搭載するかアイデアはなく、しばらくは検討中です。
            0

              EEPROMライターについて

               先日、EEPROMライターを製作しましたが、一括してEEPROMに書込み場合にはPIC用に製作していつも使っているRCDライターが、PICProg4Uのバージョンアップ(v0.83→v1.32B)で書き込めることがわかりました。但し、RCDライターにEEPROMをセッティングする時に、そのセッティング位置を5pinほど下にズラす必要があります。
              RCDライター
               PICProg4U(v1.32B)のメニュ画面のデバイス選択にはEEPROMもあります。
              PICProg4U画面
               製作したEEPROMライターはマニュアル用に、RCDライターは一括書き込み用に使い分けることにしました。これで短い音声データならEEPROMに書き込むことが出来ます。
              0

                CC5X C Compilerの設定

                 以前に試作した超音波モジュールが大きかったので、そのままではロボットに搭載は出来ませんでした。そこで、モジュールを作り直そうと思い、超音波センサーは再利用してロボットにも搭載できるサイズに小型化したモジュールにしようと考えました。インターネットで検索してみたら、ちょうどよさそうなのがあったのでが、よく調べてみるとCコンパイラーが今までのものと違い、初めてのものでした。

                 まず、CソースをそのままでのHI-TECH C Compilerではうまくいきませんので、新たにCC5Xの開発環境をMPLAB IDE(v8.xもサポート)に整備することにしました。どちらもPICマイコン用のフリーソフト版のC Compilerなので、費用はかかりません。

                CC5XのCC5X free editionとマニュアルは、下記のURLにあります。
                http://www.bknd.com/cc5x/download.shtml

                cc5x画面
                【CC5X設定手順】
                (1)上記URLからcc5xfree.zip とマニュアルをダウンロードします。
                 ・cc5xfree.exe の実行形式はMcAfeeウィルスチェックでひっかかりましたので避けた方がよい。
                 ・マニュアルのcc5x-34.pdf (~460k) CC5X User's Manual、device (header) filesは
                  headers.zip
                (2)自分PCに適切な格納場所にディレクトリを作成して、cc5xfree.zipを解凍したファイルを全て
                  格納する。
                 ・RELOC.INCだけをワーク領域にコピーする。
                (3)MPLAB IDEを起動して、C Compilerを設定する
                 ・最初はProjectWizardからデバイスを指定していくと、select language toolsuiteでCC5Xを
                  選択する。
                 ・Browse.でCC5Xの格納場所を指定する
                 ・MPASMとMPLINKに×がついていることがあるが、後で設定する
                (4)Set Language Tool Location でB knudsen Data CC5X を選択する
                 ・ExecutablesのMPASMとMPLINKの格納場所を確認し、指定にする。
                 ・Default Search Paths & Directories の Include Search Path,${INCDIR}を選択して、
                  Browse.で格納場所を指定する。但し、格納場所は""で囲みます。
                   例:"C:¥Program Files¥cc5x"

                以上を設定してOKをすれば、開発環境が出来上がります。
                0

                  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


                      カレンダ

                      1234567
                      891011121314
                      15161718192021
                      22232425262728
                      293031    
                      << July 2018 >>