Arduino의 연설 도서관
Arduino Library "Talkie"로 제공됩니다.
? Google 번역
| Talkie Voltmeter 예제의 시연 | 가제트 재부팅에 의한 소개 |
|---|---|
| 플랫폼 | 정상을 고정하십시오 | 핀을 뒤집습니다 | 8kHz 타이머 | PWM 타이머 | 발언 |
|---|---|---|---|---|---|
| AVR (Uno and Nano) | 핀 3 | 핀 11 | 타이머 1 | Timer2 | |
| ATMEGA2560 | 핀 6/ph3 | 핀 7/pH4 | 타이머 1 | Timer4 | |
| 레오나르도 | 핀 9/pb5 | 핀 10/pb6 | 타이머 1 | Timer4 | |
| 프롬코 | 핀 5/PC6 | 비율 | 타이머 1 | Timer4 | |
| 에스플 로라 | 핀 6/PD7 | 비율 | 타이머 1 | Timer4 | |
| 제로 (SAMD) | A0 | 비율 | TC5 | DAC0 | |
| ESP32 | 핀 25 | 비율 | HW_TIMER_T | DAC0 | |
| 블루 필 | 핀 3 | 비율 | 타이머 3 | 아날로그 라이팅 | 로저 클라크스 핵심 |
| 블루 필 | PA3 | 비율 | Timer4 | 아날로그 라이팅 | STM 코어 |
| 십대 | 핀 12/14721 | 비율 | IntervalTimer | 아날로그 라이팅 |
타이머 1 (서보 타이머)은 8kHz에서 음성 출력 데이터를 업데이트하는 데 모든 ATMEGAS에서 사용됩니다.
ATMEGA328 (62500 Hz / 16 µs)의 타이머 2 (톤 타이머) 또는 ATMEGA2560 + ATMEGA32U4 (5 µs)의 타이머 4를 사용하여 8 비트 PWM 출력을 생성하는 데 사용됩니다.
따라서 두 타이머는 서보 제어 또는 톤 출력과 같은 다른 라이브러리 / 목적으로 사용할 수 없습니다.
Bluepill에는 두 개의 코어가 있습니다.
STM32F1 ; http://dan.drown.org/stm32duino/package_stm32duino_index.jsonstm32 ; https://github.com/stm32duino/boardmanagerfiles/raw/master/stm32/package_stm_index.json고속 PWM의 생성은 Roger Clark Core의 경우 복잡 하고 STM 코어의 경우 쉽습니다 . Voltmetersayq.cpp의 프로그램 크기는 Roger Clark Core의 경우 21 KBYTE , STM Core의 경우 32 KBYTE 입니다. 8kHz 인터럽트 처리에는 Roger Clark Core의 경우 8 µs , STM 코어에는 12 µs가 필요합니다.
say...() 다시 tone() 사용할 수 있습니다.write() detach() 하십시오 ... 서보의 타이머를 다시 초기화하려면 첫 번째 write() 전에 서보를 attach() 해야합니다.Talkie Voice(true, false); Talkie Voice; 또는 Voice.doNotUseInvertedOutput(); .사전 정의 된 어휘는 어휘 _*. H 파일, 특히 vocab_us_large.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 톤 라이브러리를 사용하지 않으면 활성화하면 최대 844 바이트 프로그램 크기를 절약 할 수 있습니다. |
FAST_8BIT_MODE | 장애가 있는 | Talkie.h | 정의 된 경우 16 비트 계수 K1 및 K2 대신 8 비트를 사용합니다. 이것은 16MHz atmega에 대해 10 마이크로 초 (50 US 대신 40)를 절약하고 "천 명"이라는 단어의 몇 가지 "드롭 아웃"을 제외하고는 거의 같은 품질을 갖습니다. |
ENABLE_PITCH | 장애가 있는 | Talkie.h | 정의되면 say() 및 SayQ() 의 두 번째 매개 aSampleRateForPitch 해석합니다. 이를 위해서는 약 160 바이트의 프로그램 공간과 시간이 많이 걸리는 부분이 필요합니다. 비활성화 된 경우 매개 변수 aSampleRateForPitch 무시됩니다. |
SAMPLE_RATE_DEFAULT | 8000 | Talkie.h | f 전 세계적으로 Talkie 피치를 설정하려는 경우,이 값을 변경할 수 있습니다. 이는 ENABLE_PITCH 활성화하여 암시하는 오버 헤드를 저장합니다. |
먼저 Sketch> show sketch 폴더 (ctrl+k)를 사용하십시오.
아직 예제를 자신의 스케치로 저장하지 않았다면 즉시 올바른 라이브러리 폴더에 있습니다.
그렇지 않으면 병렬 libraries 폴더로 이동하여 액세스하려는 라이브러리를 선택해야합니다.
두 경우 모두 라이브러리 소스와 포함 파일은 라이브러리 src 디렉토리에 있습니다.
각 새로운 라이브러리 버전에 대해 수정을 갱신해야합니다!
Platformio를 사용하는 경우 build_flags = -D MACRO_NAME 또는 build_flags = -D MACRO_NAME=macroValue 사용하여 Platformio.ini 파일에서 매크로를 정의 할 수 있습니다.
Sloeber를 IDE로 사용하는 경우 속성> Arduino> CompileOptions 로 글로벌 기호를 쉽게 정의 할 수 있습니다. 

Peter Knights 버전을 기반으로 한 2017 년의 Talkie 구현은 피치, 속도 및 굽힘으로 확장되었습니다.
aSampleRateForPitch 및 Macro ENABLE_PITCH 추가.digitalWriteNonInvertedOutput() 및 digitalWriteInvertedOutput() .sayQTimeout() 추가되었습니다.sayQVoltageVolts() .Talkie(bool aUseNonInvertedOutputPin, bool aUseInvertedOutputPin);라이브러리 예제는 다음 보드에 대한 Github 조치로 테스트됩니다.