ห้องสมุดคำพูดสำหรับ Arduino
มีให้บริการในห้องสมุด Arduino "Talkie"
- Google แปล
| การสาธิตตัวอย่าง Voltmeter Talkie | Intoduction โดย Gadget Reboot |
|---|---|
| แพลตฟอร์ม | พินปกติ | PIN inverted | ตัวจับเวลา 8kHz | ตัวจับเวลา PWM | ข้อสังเกต |
|---|---|---|---|---|---|
| AVR (Uno และ Nano) | พิน 3 | พิน 11 | ตัวจับเวลา 1 | ตัวจับเวลา 2 | |
| Atmega2560 | PIN 6/Ph3 | PIN 7/Ph4 | ตัวจับเวลา 1 | ตัวจับเวลา 4 | |
| เลโอนาร์โด | PIN 9/PB5 | PIN 10/PB6 | ตัวจับเวลา 1 | ตัวจับเวลา 4 | |
| ต่อมน้ำเหลือง | PIN 5/PC6 | - | ตัวจับเวลา 1 | ตัวจับเวลา 4 | |
| esplora | PIN 6/PD7 | - | ตัวจับเวลา 1 | ตัวจับเวลา 4 | |
| ศูนย์ (SAMD) | A0 | - | TC5 | DAC0 | |
| esp32 | พิน 25 | - | hw_timer_t | DAC0 | |
| สีม่วง | พิน 3 | - | ตัวจับเวลา 3 | การเขียนแบบอะนาล็อก | Roger Clarks Core |
| สีม่วง | PA3 | - | ตัวจับเวลา 4 | การเขียนแบบอะนาล็อก | STM Core |
| วัยรุ่น | พิน 12/14721 | - | ช่วงเวลา | การเขียนแบบอะนาล็อก |
ตัวจับเวลา 1 (ตัวจับเวลาเซอร์โว) ถูกใช้ใน ATMEGAS ทั้งหมดสำหรับการอัปเดตข้อมูลเอาต์พุตเสียงที่ 8 kHz
ตัวจับเวลา 2 (ตัวจับเวลาเสียง) บน Atmega328 (62500 Hz / 16 µs) หรือ ตัวจับเวลา 4 บน Atmega2560 + Atmega32U4 (5 µs) ใช้เพื่อสร้างเอาต์พุต PWM 8 บิต
ตัวจับเวลาทั้งสองจึงไม่สามารถใช้ได้สำหรับห้องสมุด / วัตถุประสงค์อื่น ๆ เช่นการควบคุมเซอร์โวหรือเอาต์พุตเสียง
มี สองคอร์สำหรับ bluepill
STM32F1 โดย Roger Clark; http://dan.drown.org/stm32duino/package_stm32duino_index.jsonstm32 ที่ใช้ CMSIS โดย ST Microsystems; https://github.com/stm32duino/boardmanagerfiles/raw/master/stm32/package_stm_index.jsonการสร้าง PWM ความเร็วสูงนั้น ซับซ้อน สำหรับ Roger Clark Core และ ง่าย สำหรับ STM Core ขนาดโปรแกรมสำหรับ Voltmetersayq.cpp คือ 21 kbyte สำหรับ Roger Clark Core และ 32 kbyte สำหรับ STM Core การจัดการขัดจังหวะ 8 kHz ต้องใช้ 8 µs สำหรับ Roger Clark Core และ 12 µs สำหรับ STM Core
say...() คุณสามารถใช้ tone() อีกครั้งwrite() หลังจากการโทรเพื่อบอกว่า ... คุณต้อง detach() และ attach() เซอร์โวก่อน write() เพื่อเริ่มต้นตัวจับเวลาอีกครั้งสำหรับเซอร์โวTalkie Voice(true, false); แทนที่จะเป็น Talkie Voice; หรือ Voice.doNotUseInvertedOutput(); -คำศัพท์ที่กำหนดไว้ล่วงหน้าสามารถพบได้ในไฟล์คำศัพท์ _*. H โดยเฉพาะใน VOCAB_US_LARGE.H
ในการสร้างข้อมูล LPC คุณสามารถใช้ python_wizard หรือ BlueWizard สำหรับ Mac OS X
อีกวิธีหนึ่งในการสร้างข้อมูล LPC คือการใช้ QboxPro ซึ่งเป็นแอปพลิเคชัน Windows เก่าที่ไม่ได้รับการสนับสนุนภายใต้ XP ซึ่งสามารถสร้างสตรีมข้อมูลที่เข้ากันได้กับ Talkie สามารถพบ BWCC.DLL ที่หายไป (Borland Windows Custom Control Library) เช่นที่นี่ กระบวนการอธิบายไว้ที่นี่และเป็นเช่นนี้:
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 | หากกำหนดเราใช้ 8 บิตแทนค่าสัมประสิทธิ์ 16 บิต K1 และ K2 สิ่งนี้จะช่วยประหยัด 10 ไมโครวินาที (40 แทนที่จะเป็น 50 US) สำหรับ ATMEGA 16 MHz และมีคุณภาพเกือบเท่ากันยกเว้น "Dropouts" เพียงไม่กี่ตัวเช่นในคำว่า "พัน" |
ENABLE_PITCH | พิการ | talkie.h | หากกำหนดเราจะตีความพารามิเตอร์ที่สอง aSampleRateForPitch ของ say() และ SayQ() สิ่งนี้ต้องการพื้นที่โปรแกรมประมาณ 160 ไบต์และหน่วยงานที่ใช้เวลาไม่กี่ครั้ง หากปิดใช้งานพารามิเตอร์ aSampleRateForPitch จะถูกละเว้น |
SAMPLE_RATE_DEFAULT | 8000 | talkie.h | หากคุณต้องการตั้งค่าระดับเสียงทั่วโลกสำหรับ Talkie คุณสามารถเปลี่ยนค่านี้ได้สิ่งนี้จะช่วยประหยัดค่าใช้จ่ายโดยการเปิดใช้งาน ENABLE_PITCH |
ก่อนอื่นให้ใช้ ร่าง> แสดงโฟลเดอร์ร่าง (Ctrl+K)
หากคุณยังไม่ได้บันทึกตัวอย่างเป็นร่างของคุณเองคุณจะอยู่ในโฟลเดอร์ห้องสมุดที่ถูกต้องทันที
มิฉะนั้นคุณต้องนำทางไปยังโฟลเดอร์ libraries คู่ขนานและเลือกไลบรารีที่คุณต้องการเข้าถึง
ในทั้งสองกรณีแหล่งที่มาของไลบรารีและไฟล์รวมอยู่ในไดเรกทอรีไลบรารี src
การปรับเปลี่ยนจะต้องต่ออายุสำหรับแต่ละเวอร์ชันไลบรารีใหม่!
หากคุณใช้ platformio คุณสามารถกำหนดมาโครในไฟล์ platformio.ini ด้วย build_flags = -D MACRO_NAME หรือ build_flags = -D MACRO_NAME=macroValue
หากคุณใช้ Sloeber เป็น IDE ของคุณคุณสามารถกำหนดสัญลักษณ์ทั่วโลกได้อย่างง่ายดายด้วย คุณสมบัติ> Arduino> CompileOptions 

การใช้งาน Talkie ตั้งแต่ปี 2560 ขึ้นอยู่กับรุ่น Peter Knights ขยายไปด้วยระดับเสียงความเร็วและการดัด
aSampleRateForPitch และ macro ENABLE_PITCHdigitalWriteNonInvertedOutput() และ digitalWriteInvertedOutput()sayQTimeout() ใน talkieutils.cppsayQVoltageVolts()Talkie(bool aUseNonInvertedOutputPin, bool aUseInvertedOutputPin);ตัวอย่างห้องสมุดจะถูกทดสอบด้วยการกระทำของ GitHub สำหรับบอร์ดต่อไปนี้: