Arduinoの音声ライブラリ
Arduino Library「Talkie」として利用可能。
? Google翻訳
| トーキー電圧計の例のデモンストレーション | ガジェットの再起動による導入 |
|---|---|
| プラットフォーム | ピン普通 | ピン逆 | 8kHzタイマー | PWMタイマー | 備考 |
|---|---|---|---|---|---|
| avr(uno and nano) | ピン3 | ピン11 | タイマー1 | タイマー2 | |
| Atmega2560 | ピン6/ph3 | ピン7/PH4 | タイマー1 | タイマー4 | |
| レオナルド | ピン9/PB5 | ピン10/PB6 | タイマー1 | タイマー4 | |
| プロミクロ | ピン5/PC6 | % | タイマー1 | タイマー4 | |
| エスプロラ | ピン6/PD7 | % | タイマー1 | タイマー4 | |
| ゼロ(SAMD) | A0 | % | TC5 | DAC0 | |
| ESP32 | ピン25 | % | hw_timer_t | DAC0 | |
| ブルーピル | ピン3 | % | Timer3 | AnalogWrite | ロジャーはコアをクラークします |
| ブルーピル | PA3 | % | タイマー4 | AnalogWrite | STMコア |
| ティーンシー | ピン12/14721 | % | Intervaltimer | AnalogWrite |
タイマー1 (サーボタイマー)は、8 kHzの音声出力データを更新するために、すべてのATMEGAで使用されます。
ATMEGA328(62500 Hz / 16 µs)のタイマー2 (トーンタイマー)またはATMEGA2560 + ATMEGA32U4(5 µs)のタイマー4は、8ビットPWM出力を生成するために使用されます。
したがって、両方のタイマーは、サーボコントロールやトーン出力など、他のライブラリ /目的では利用できません。
Bluepillには2つのコアがあります。
STM32F1 。 http://dan.drown.org/stm32duino/package_stm32duino_index.jsonstm32 。 https://github.com/stm32duino/boardmanagerfiles/raw/master/stm32/package_stm_index.json高速PWMの生成は、ロジャークラークコアにとって複雑で、STMコアは簡単です。 Voltmeterayq.cppのプログラムサイズは、Roger Clark Coreで21 Kbyte 、STM Coreで32 Kbyteです。 8 kHzの割り込み処理には、Roger Clark Coreで8 µs 、STMコアで12 µsが必要です。
say...() tone()再度使用できます。write()を使用して、次のように呼び出してください。SERVOのタイマーを再度初期化するために、最初のwrite()の前にサーボ()をdetach()およびattach()必要があります。Talkie Voice(true, false); Talkie Voice;またはVoice.doNotUseInvertedOutput(); 。事前に定義された語彙は、特にvocab_us_large.hにvocab _*。hファイルにあります。
LPCデータを作成するには、Mac OS XにPython_WizardまたはBlueWizardを使用できます。
LPCデータを作成する別の方法は、XPの下で実行されているサポートされていない古いWindowsアプリケーションであるQboxProを使用することです。不足しているbwcc.dll(Borland Windowsカスタムコントロールライブラリ)は、ここにあります。プロセスについてはここで説明されており、次のようになります。
C to avoid clicks | Low pass 1600Hz
_____
D3 >-----||-----|_____|-----+-----> to Power amplifier
100nF 10k |
---
--- 10 nF
|
_|_ GND
ソフトウェアをさまざまな要件に合わせてカスタマイズするには、使用可能なコンパイルオプション /マクロがあります。
それらを有効 /無効にしてそれらを変更するか、該当する場合は値を変更します。
| 名前 | デフォルト値 | ファイル | 説明 |
|---|---|---|---|
NO_COMPATIBILITY_FOR_TONE_LIB_REQUIRED | 無効 | Talkie.H | Arduino Toneライブラリを使用しない場合、アクティブ化すると最大844バイトのプログラムサイズを節約できます。 |
FAST_8BIT_MODE | 無効 | Talkie.H | 定義されている場合、16ビット係数K1およびK2の代わりに8ビットを使用します。これにより、16 MHzの雰囲気に対して10マイクロ秒(50 USの代わりに40)を節約し、「千」という単語の「ドロップアウト」を除き、ほぼ同じ品質を備えています。 |
ENABLE_PITCH | 無効 | Talkie.H | 定義されている場合say()およびSayQ()の2番目のパラメーターaSampleRateForPitchを中訳します。これには、約160バイトのプログラムスペースが必要であり、時間のかかる部門はほとんど必要ありません。無効にした場合、パラメーターaSampleRateForPitch無視されます。 |
SAMPLE_RATE_DEFAULT | 8000 | Talkie.H | fトーキーのピッチENABLE_PITCHグローバルに設定したい場合、この値を変更できます。 |
まず、スケッチ> Show Sketch Folder(Ctrl+K)を使用します。
自分のスケッチとしてこの例をまだ保存していない場合は、すぐに適切なライブラリフォルダーにいます。
それ以外の場合は、Parallel librariesフォルダーに移動し、アクセスするライブラリを選択する必要があります。
どちらの場合も、ライブラリソースと含まれるファイルは、ライブラリsrcディレクトリにあります。
新しいライブラリバージョンごとに変更を更新する必要があります!
Platformioを使用している場合、 burtion.iniファイルのマクロをbuild_flags = -D MACRO_NAMEまたはbuild_flags = -D MACRO_NAME=macroValueで定義できます。
IDEとしてSloeberを使用している場合、プロパティを使用してグローバルシンボルを簡単に定義できます。 

ピッチ、スピード、曲げで拡張されたピーターナイツバージョンに基づく2017年からのトーキーの実装。
aSampleRateForPitchとMACRO ENABLE_PITCH追加。digitalWriteNonInvertedOutput()およびdigitalWriteInvertedOutput()追加しました。sayQTimeout()を追加しました。sayQVoltageVolts() 。Talkie(bool aUseNonInvertedOutputPin, bool aUseInvertedOutputPin);ライブラリの例は、次のボードのgithubアクションでテストされています。