ブログパーツUL5

超音波レーダーの試作(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

          超音波レーダーの試作(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


                      カレンダ

                          123
                      45678910
                      11121314151617
                      18192021222324
                      252627282930 
                      << June 2017 >>