#author("2018-05-22T17:20:23+09:00","default:qua","qua")
* 音声合成LSI ATP3012 [#j8f5543f]
#ref(http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/img/atp3012f6.jpg)
** ピン配置 [#id9bdb49]
,左側(写真黒矢印上から),==,右側(写真青矢印上から),==
,名称,説明,名称,説明
,GND1,Ground(0V),AOUT,音声出力
,GND2,Ground(0V),MOSI,SPI通信マスタ→スレーブ
,VCC,+5V,MISO,SPI通信スレーブ→マスタ
,/RESET,リセット,SCK,SPI通信クロック
,RXD,シリアルデータ受信,SDA,I2C通信データ
,TXD,シリアルデータ送信,SCL,I2C通信クロック
#author("2019-04-21T23:43:41+09:00","default:qua","qua")

ジャンパs0, s1, p0, p1は通信方式や動作モードを指定。表の0/1は、3つのピンのうち、中央と右をジャンパでつなぐときに0、それ以外は1とする。写真ではp0, p1にジャンパが付いていて、ともに、状態は1である。
|s0|s1|動作|
|1|1|シリアル通信|
|0|1|I2C通信|
|1|0|SPI通信MODE3|
|0|0|SPI通信MODE1|

#br
|p0|p1|動作|
|1|1|通常モード|
|0|1|セーフモード|
|0|0|デモモード|

** 接続 [#a433a510]
スピーカーには、AOUTとGNDを接続する。アンプつきスピーカーでない場合は、[[アンプ>音声出力.#amp]](下の写真)を通す。
#ref(http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/img/ae7368.jpg,300x185)
*** シリアル通信の場合 [#a0e16baf]
|ピン名称|接続|
|RXD|ArduinoのTxに接続。下記の例を使うのであれば、11番ピンへ。|
|TXD|ArduinoのRxに接続。下記の例を使うのであれば、10番ピンへ。|
|VCC|Arduinoの5Vに接続|
|GND1|スピーカーのGND(アンプのGピン)に接続|
|GND2|ArduinoのGNDに接続|
|AOUT|スピーカー(アンプのINピン)に接続|

** プログラミング [#hc3092cc]
シリアル通信を用いて、PCから入力した文字を音声出力する。
PCとの間の通信もシリアル通信なので、Arduinoと音声合成LSIの間はSoftwareSerialを用いる。
シリアルモニタを起動し、通信速度9600Bps(デフォルト)、行末はCRのみと設定する。ローマ字で入力して「送信」ボタンをクリックすれば、音声が出力される。

 #include <SoftwareSerial.h>
 
 SoftwareSerial mySerial(10, 11); // RX, TX
 
 void setup() {
   Serial.begin( 9600 );
   pinMode( 10, INPUT );
   pinMode( 11, OUTPUT );
   mySerial.begin( 9600 );
   mySerial.println( "?" );
 }
 
 void loop() {
    if (mySerial.available()) {
      Serial.write(mySerial.read());
    }
    if (Serial.available()) {
      mySerial.write(Serial.read());
    }
 }

音声データについては基本は小文字のローマ字入力だが、(日本語の高低)アクセントやポーズを入れることができる。詳しくは、
[[ATP3012:http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/pdf/atp3012_datasheet.pdf]]
を見ること。


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS