
年末、実家で飲みながら電子回路をいじっていたのですが、ようやくそれが完成しました。部品が揃い、知識がついてきたのも感慨深いものです。今回完成した回路が「音声合成LSIにおしゃべりさせるArduino」です。
Arduinoが音声合成LSIでしゃべりだす

去年からアルバイトでプログラミング教室の先生をはじめたのですが、そこでArduinoを使うので、自己紹介用に回路を作ってみようと思いました。LCDには話している文字を表示させています。
使った部品一覧はこちら。リンク先は秋月電子とAmazonです。
- AquesTalk pico LSI(ATP3011F4-PU)
- ダイナミックスピーカ 50mmΦ 8Ω 0.4W
- オーディオアンプIC NJM386BD
- LCD1602
- 半固定抵抗 10k
- 抵抗 1k x 3
- コンデンサ 0.047uF、0.1uF
半固定抵抗は音量の調整に使っています。

回路図もfritzingで初めて書いてみました。インストールはMacだと brew cask install fritzing
でOK。
ソースコードはGitHubをご確認ください。
/*
じんこうおんせいをつかって
Arduinoがしゃべりだす
*/
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
SoftwareSerial serial(6, 7); //RX, TX
LiquidCrystal lcd( 13, 12, 11, 10, 9, 8);
String LINE1 = "konnitiwa watashiwa/fujihara/dai/desu.";
String LINE2 = "kyouwa yorosiku/onegai/simasu\r";
void setup() {
serial.begin(9600);
}
void loop() {
lcd.begin( 16, 2 );
lcd.clear();
lcd.setCursor(0, 0);
// https://synapse.kyoto/lib/MGLCD/CharacterCode/page001.html
// コンニチハ ワタシハ
lcd.print("\xba\xdd\xc6\xc1\xca \xdc\xc0\xbc\xca");
serial.print("?");
serial.print(LINE1);
delay(1000);
// フジハラ ダイ デス
lcd.setCursor(0, 1);
lcd.print("\xcc\xbc\xde\xca\xd7 \xc0\xde\xb2 \xc3\xde\xbd");
serial.print(LINE2);
delay(1000);
}
ちなみに、これを自己紹介で使ってみたところ、子どもたちの反応はまずまずでした。みんな興味を持ってくれたみたいで良かった。何かを創るって楽しいんだぞ。
- 役に立ったサイト
- Arduino用 音声合成LSIライブラリ N.Yamazaki’s blog
- 自作スピーカーを作ってみる – アンプ版(NJM386BD) [Arduino]
- サイトに寄ってはuFだったりnFだったりするので静電容量変換カリキュレータを活用。マイクロがmじゃなくてμなのでぱっと計算ができず・・・
- LDCの文字コード表