2025年3月20日木曜日

音声合成LSI(ATP3011とATP3012)を使ってみる〜MacBook Proからコントロールする

以前の続きです。(長くなってしまったので、2回に分けました)株式会社アクエストが開発している「音声合成LSI」を秋月電子通商で購入して、使えるように準備するところまで書きました。念の為、「音声合成LSI「AquesTalk pico LSI」」の「ATP3011」と「ATP3012」のデータシートのリンクも再掲しておきます。

前回は、この「ATP3011」と「ATP3012」がMICROCHIPAtmelを買収)のAtmega328をベースにして作られていて、Arduino(及びその互換マイコンボード)のATmega328と載せ替えれば簡単に使えるようになるという情報をもとに準備をしました。秋月電子通商で販売されているAE-Atmegaを使って作った「Diavolino」ベースの自作Arduino互換ボードを引っ張り出してきて、実験環境を整えるところまで書きました。今回は、その続きをやっていきたいと思います。

まずは自作Arduino互換ボードに元々挿していたATmega328Pを慎重に取り外して、ATP3012R5-PU(小型ロボットの音声)に挿し替えました。これをMacBook ProにつないでArduino IDEを起動して音声が出せるか実験をしていきました。大小様々なつまずきがありましたが、最終的には使えるようになりました。注意点を以下にまとめておきます。
#Arduino IDE(実験時の最新版はver.2.3.4)の起動は、配線を済ませてからの方が良いと思います。

  • スピーカーは、アンプを経由するかアンプ内蔵のものを使う。(YAZAWATVR35WHを使用)
    IchigoJam実験をしたときに作ったケーブルでアンプをつなぎました。電源なしで圧電スピーカーをつないでも動きませんでした。(シリアル通信すらできない感じ)
    →ATP3011系は、GNDとDIGITAL 6番にアンプをつなぎます。ATP3012系はGNDとDIGITAL 9番にアンプをつなぎます。
  • ボードを「Arduino Duemilanove or Diecimila」にする。
    ※動作解説動画では、Arduino UNOが使われていましたが、Diavolinoは、Duemilanoveをベースにして開発されたものなので。
  • ポートを「/dev/cu.usbserial-xxxxx(ターミナルから「ls -l /dev/cu.*」コマンドで接続されているシリアルポートを確認できる)」にする。
  • 「ツール」メニューから「シリアルモニタ」を開く。
    ※ここで、シリアル接続の確認もしてくれるので、とても便利です。
  • 改行コードは「CRのみ」を選択する。
    ※ATP3011/3012は、コマンドの最後に「CR」を送らないと実行しない仕様とのことなので。

実は、USBシリアル変換アダプターモジュールでつないだときに、ポートの設定をしようとしたところでつまずきました。元々Prolific社製のPL2303HXというUSBシリアル変換アダプターモジュールを使っていたのですが、これがMacBook Pro(macOS)からはシリアルポートとして認識されないのです。「ターミナル」を起動させて「ls -l /dev/cu.*」で確認しても、接続前と接続後で何も変わりません。しばらく使っていなかったので、ドライバが古くなっているかもしれないと思い、最新のドライバをインストールしてみましたが、認識されないのは変わりませんでした。新しいmacOSでは使えないのだろうと諦めることにしました。

仕方がないので、FTDI社製の(ド定番の)FT232RLを載せたUSBシリアル変換ケーブル(半分自作)を使うことにしました。これを使うと、シリアルポートが認識されて使えそうな感じになったので、テストのためにいくつかローマ字を打ち込んで音声を出させてみたところ、無事に音声が出てくれました。ということで、macOSではFT232RLのUSBシリアル変換ケーブルを使うことにします。
Linux MIntでは、PL2303HXでも問題なく動作してくれました。Arduino IDEは、レガシーIDE ver.1.8.19、最新版IDE ver.2.3.4の両方で動作確認しました。

試行錯誤しながらいろいろやってみましたが、とりあえず音声が出るところまではできました。配線を変更したり、コマンドでエラーが出てしまったりした場合は、無理に作業を続けようとしないでArduino IDEを終了してから、再度起動してシリアルでの接続が確認されてから作業をすると動作が確実になると思います。一つ一つ、自分がやったことを検証しながら問題を解決して行ったので、いちいち再起動するのは面倒ではありましたが、急がば回れということだと思いました。
#アクエストのオンラインデモのサイトで、日本語をAquesTalk Pico用のローマ字表記にしてもらえるのは地味に便利でした。

【前回記事】
音声合成LSI(ATP3011とATP3012)を使ってみる〜まずは基本的な準備をする

0 件のコメント: