ソフトウエア

Voice driver( 概要 )

MCUの DAC( Digital to Analog Converter )を使用して発音や発話を行う機能です。

◀ この記事の前に: 複数のMCUをつなぐ
▶ この記事の次に: 

発音発話の概要

オプションとして追加搭載する回路構成は以下のとおりです。

標準では Peripheral MCUの DAC出力で発音発声を行います。

MCUの DAC出力は増幅器を通して、スピーカーで鳴らします。スピーカーは胴体前面に設置しています。

発音発声機能を使用しない場合に、省電力を行う目的で、Periperal MCUのプログラムから増幅器の ON/OFFできます。

Technical Considerations  DAC と ADC
DAC は Digital to Analog Converter の略で、デジタル・アナログ変換器です。ADC は Analog to Digital Converter の略で、アナログ・デジタル変換器です。
ADC は アナログ情報をデジタル信号に変換します。MCU などはプログラムも含めてデジタルで動いています。しかし、システムの外部(環境)はアナログの場合が少なくありません。温度、湿度、質量、電圧、変位、… これらの値はアナログ値です。MCU でこれらを扱うためにはアナログ値をデジタル値に変換する必要があります。DAC はその逆です。MCU 内でデジタル処理していた情報をアナログ値として出力するときに使用します。今回のように 音声で出力するときはアナログに変換する必要があります。

プログラミングの情報

コーディングに必要な必要な仕様は以下のとおりです。

ポートの割り当て

名 称ESP32 PinESP32 ポート使 途
AMP-P10IO25 / DAC1DAC出力

ESP32 の DAC出力は GPIO25( DAC1 )と GPIO26( DAC2 )です。Qumcum Lab. は DAC1を使用しています。
コードの出力ポートの定義は、ESP32 ポートの番号で指定します。( 例:const uint8_t AMP_P = 25; )

省電力制御

DAC出力回路( 発音・発話回路 )の電力は +5Vアナログ系として独立しています。この電源はスイッチ IC( TPS22918DBVR )により ON/OFFができます。発音、発声をする場合は事前にこの回路の電源を有効( PS-AMP( IO26 )をHigh )にしておきます。使用していない場合はこの回路の電源を遮断することにより消費電力を低減できます。

名 称ESP32 PinESP32 ポート使 途
PS-AMP11IO26 / GPIO省電力制御
High: 電源 ON
Low: 電源 OFF

ライブラリ

発音はライブラリを使用していません。
発話は ESP32向けの音声合成ライブラリである AquesTalk-ESP32 Ver.2.0( 株式会社アクエスト )を使用しています。発音に関してはこちらをご覧ください。

データの構造

データの構造は以下のとおりです。

グローバル定義

グローバル定義は以下のとおりです。

名 称説 明
DAC_ONintHIGHDAC 増幅回路の電源 ON( 正論理 )
DAC_OFFintLOWDAC 増幅回路の電源 OFF( 正論理 )

コード

コードは以下のとおりです。

外部関数


DAC 増幅回路の電源を ON / OFF します。

引 数:

・電源の操作( switchPower ):
 DAC_ON : DAC 増幅回路の電源 ON
 DAC_OFF: DAC 増幅回路の電源 OFF

setDACpowerControl( int switchPower )  {

	digitalWrite( PIN_PS_AMP, switchPower );

}	

内部関数


void setup( void ) {

	・・・

	/* Initialize DAC */
	pinMode( PIN_AMP_P, OUTPUT );
	setDACpowerControl( DAC_OFF );	//

	・・・

}	

参考情報

参考になる情報は以下のとおりです。

このホームページ内

他のWebサイト

カテゴリー
最近の記事 おすすめ記事

記事一覧を表示するには、カスタム投稿「ブログ」にて、4つ以上記事を作成してください。

記事一覧を表示するには、カスタム投稿「ブログ」にて、4つ以上記事を作成してください。

TOP