Biblioteca de habla para Arduino
Disponible como la Biblioteca Arduino "Talkie".
? Google Translate
| Demostración del ejemplo de voltímetro de talkie | Introducción por reinicio de gadgets |
|---|---|
| Plataforma | Pin Normal | Pin invertido | Temporizador de 8 kHz | Temporizador de PWM | Observaciones |
|---|---|---|---|---|---|
| AVR (Uno y Nano) | Pin 3 | Pin 11 | temporizador1 | temporizador2 | |
| ATMEGA2560 | Pin 6/Ph3 | Pin 7/Ph4 | temporizador1 | temporizador4 | |
| Leonardo | PIN 9/PB5 | Pin 10/PB6 | temporizador1 | temporizador4 | |
| Promicro | Pin 5/PC6 | De % | temporizador1 | temporizador4 | |
| Esplora | Pin 6/PD7 | De % | temporizador1 | temporizador4 | |
| Cero (samd) | A0 | De % | TC5 | DAC0 | |
| ESP32 | Pin 25 | De % | hw_timer_t | DAC0 | |
| Bluepill | Pin 3 | De % | temporizador3 | Analogwrite | Núcleo de Roger Clarks |
| Bluepill | PA3 | De % | temporizador4 | Analogwrite | Núcleo stm |
| Adolescente | Pin 12/14721 | De % | Intervaltimero | Analogwrite |
El temporizador 1 (Timer de servo) se usa en todos los ATMEGA para actualizar los datos de salida de voz a 8 kHz.
Temporizador 2 (temporizador de tono) en ATMEGA328 (62500 Hz / 16 µs) o temporizador 4 en ATMEGA2560 + ATMEGA32U4 (5 µs) se usa para generar la salida PWM de 8 bits.
Por lo tanto, ambos temporizadores no están disponibles para otras bibliotecas / propósitos, como el control de servo o la salida de tono.
Hay dos núcleos para el bluepill .
STM32F1 por Roger Clark; http://dan.drown.org/stm32duino/package_stm32duino_index.jsonstm32 basado en CMSIS por ST Microsystems; https://github.com/stm32duino/boardmanagerfiles/raw/master/stm32/package_stm_index.jsonLa generación del PWM de alta velocidad es complicada para Roger Clark Core y fácil para el núcleo STM. El tamaño del programa para VoltMetersayq.cpp es 21 Kbyte para Roger Clark Core y 32 Kbyte para STM Core. El manejo de interrupción de 8 kHz requiere 8 µs para el núcleo de Roger Clark y 12 µs para el núcleo STM.
say...() puede usar tone() nuevamente.write() después de una llamada para decir ... debe detach() y attach() el servo antes de write() para inicializar el temporizador nuevamente para servo.Talkie Voice(true, false); en lugar de Talkie Voice; o Voice.doNotUseInvertedOutput(); .El vocabulario predefinido se puede encontrar en los archivos Vocab _*. H, especialmente en VOCAB_US_LARGE.H.
Para crear datos de LPC, puede usar Python_Wizard o BlueWizard para Mac OS X.
Otra forma de crear datos de LPC es usar QboxPro, una aplicación de Windows antigua no compatible que se ejecuta en XP, que puede producir flujos de datos compatibles con Talkie. El BWCC.DLL faltante (Borland Windows Custom Library) se puede encontrar, por ejemplo, aquí. El proceso se describe aquí y va así:
C to avoid clicks | Low pass 1600Hz
_____
D3 >-----||-----|_____|-----+-----> to Power amplifier
100nF 10k |
---
--- 10 nF
|
_|_ GND
Para personalizar el software a diferentes requisitos, hay algunas opciones de compilación / macros disponibles.
Modifíquelos habilitándolos / deshabilitándolos, o cambie los valores si corresponde.
| Nombre | Valor predeterminado | Archivo | Descripción |
|---|---|---|---|
NO_COMPATIBILITY_FOR_TONE_LIB_REQUIRED | desactivado | Talkie.h | Si no usa la biblioteca de tono Arduino, la activación puede ahorrar hasta 844 bytes del tamaño del programa. |
FAST_8BIT_MODE | desactivado | Talkie.h | Si se define, usamos 8 bits en lugar de coeficientes de 16 bits K1 y K2. Esto ahorra 10 microsegundos (40 en lugar de 50 EE. UU.) Para un Atmega de 16 MHz y tiene casi la misma cualidad, excepto algunos "abandonos" por ejemplo, en la palabra "mil". |
ENABLE_PITCH | desactivado | Talkie.h | Si se define, interpretamos el segundo parámetro aSampleRateForPitch de say() y SayQ() . Esto requiere alrededor de 160 bytes de espacio de programa y pocas divisiones de tiempo. Si está deshabilitado, el parámetro aSampleRateForPitch simplemente se ignora. |
SAMPLE_RATE_DEFAULT | 8000 | Talkie.h | f Desea establecer el lanzamiento global para Talkie, puede cambiar este valor, esto guarda la sobrecarga implícita activando ENABLE_PITCH |
Primero, use Sketch> Mostrar carpeta de boceto (CTRL+K) .
Si aún no ha guardado el ejemplo como su propio boceto, entonces está instantáneamente en la carpeta de la biblioteca correcta.
De lo contrario, debe navegar a la carpeta libraries paralelas y seleccionar la biblioteca a la que desea acceder.
En ambos casos, la fuente de la biblioteca e incluir archivos se encuentran en el directorio src de las bibliotecas.
¡La modificación debe renovarse para cada nueva versión de la biblioteca!
Si está utilizando Platformio, puede definir las macros en el archivo Platformio.ini con build_flags = -D MACRO_NAME o build_flags = -D MACRO_NAME=macroValue .
Si está utilizando Sloeber como su IDE, puede definir fácilmente símbolos globales con propiedades> Arduino> compilaciones . 

Implementación de Talkie de 2017, basada en la versión de Peter Knights extendida con tono, velocidad y flexión.
aSampleRateForPitch y Macro ENABLE_PITCH .digitalWriteNonInvertedOutput() y digitalWriteInvertedOutput() .sayQTimeout() en talkieUtils.cpp .sayQVoltageVolts() .Talkie(bool aUseNonInvertedOutputPin, bool aUseInvertedOutputPin);Los ejemplos de la biblioteca se prueban con acciones de GitHub para las siguientes juntas: