#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]] を見ること。