当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]Arduino保持其通常的作用:读取传感器,运行逻辑,并通过串行端口发送纯文本。TinyTTS通过一个3.5 毫米的音频插孔接收这些文本,然后自己生成语音。没有网络,没有带音频文件的SD卡,没有编解码器。

本项目展示了一种简单、可重复的方法,使用TinyTTS文本到语音模块使Arduino“说话”。

Arduino保持其通常的作用:读取传感器,运行逻辑,并通过串行端口发送纯文本。TinyTTS通过一个3.5 毫米的音频插孔接收这些文本,然后自己生成语音。没有网络,没有带音频文件的SD卡,没有编解码器。

您将构建和测试两个具体场景:

1.USB演示-您在PC上的串行终端输入文本,Arduino将其转发到TinyTTS,然后您听到它说话。

2.传感器驱动版本- Arduino读取传感器值,格式化短句子,TinyTTS宣布结果

一旦这工作,你可以把TinyTTS作为一个小的“语音层”,你可以进入任何未来的Arduino项目,只要你需要语音反馈,而不是(或除了)led和显示器。

项目概述

我们将在两种模式下使用相同的基本连接:

•场景1 - USB演示

PC→Arduino (USB Serial)→TinyTTS (UART)。

你从电脑上的终端发送文本,TinyTTS会说出来。

•场景2 -传感器驱动

传感器→Arduino→TinyTTS。

Arduino读取一个传感器(在示例中是温度),构建一个字符串,如“温度是23度”,并将其发送给TinyTTS。

这两个场景之间唯一的真正区别是文本的来源。

在这两种情况下,TinyTTS接口保持相同。

它是如何工作的

TinyTTS的行为就像一个简单的UART设备:

•它在RX上监听文本行。

•当它接收到以换行符(\n)结尾的行时,它将该文本转换为语音并在音频输出中播放。

在Arduino端:

•PC机接口:用于调试和接收计算机输入的文本。

•TinyTTS接口:用于向模块发送文本。

Arduino Mega:该板有多个硬件串行端口。您可以使用PC的标准USB连接和第二个硬件串行(例如,Serial1或serial2)以高速可靠地与TinyTTS交谈。

对于Arduino Uno/Nano:这些板只有一个硬件串行(引脚0和1)。为了确保可靠的音频性能,我们将TinyTTS连接到硬件串行。为了与PC同时通信,我们使用单独的USB-TTL适配器,通过数字引脚上的SoftwareSerial连接。

在代码中,这可以归结为一个操作:

在场景1中,您使用来自PC的文本调用speak()。

在场景2中,使用根据传感器读数构建的文本调用speak()。

硬件

您可以使用常见的Arduino部件重现此项目。

核心组件

•TinyTTS模块

- UART文本输入接口

- 3.5 毫米耳机或扬声器音频插孔

•Arduino -兼容的董事会

测试:

- Arduino Uno

- Arduino Nano

- Arduino Mega 2560

任何电路板都有一个用于TinyTTS的硬件串行端口和一个用于USB的第二个串行端口(硬件或软件)。

•扬声器或耳机

插入TinyTTS 3.5 mm输出。

•USB TTL适配器

对电路板进行编程,并在场景1中从PC机发送文本。

场景2传感器(示例)

•BME680传感器

您可以将其替换为您熟悉的另一个传感器(DHT11/DHT22,光敏电阻,HCSR04,土壤湿度等)。TinyTTS部分不依赖于传感器类型。

布线

常见连接(TinyTTS↔Arduino)

两种情况的基本连接是相同的:

•TinyTTS VCC→Arduino 5 V(检查模块的额定电压)

•TinyTTS GND→Arduino GND

•TinyTTS RX→用于TinyTTS的串行端口的Arduino TX (Hardware Serial)引脚

•TinyTTS TX→Arduino RX(硬件串行)

•TinyTTS音频插孔→扬声器或耳机

例如,在Arduino Mega上,您可以使用Serial1:

•TinyTTS RX→Arduino pin 18 (TX1)

•TinyTTS TX→Arduino引脚19 (RX1)

在Uno/Nano上,你可以使用Hardware Serial:

•TinyTTS RX→Arduino pin 1 (TX)

•TinyTTS TX→Arduino引脚0 (RX)

Arduino Uno/Nano的具体布线:

因为引脚0和1是由TinyTTS模块使用的,所以您必须添加一个USB TTL适配器才能从计算机发送文本。

附加传感器接线(场景2)

•BME680传感器(温度、湿度、压力、气体)

•BME680 VCC→Arduino 5 V

•BME680 GND→Arduino GND

•BME680 SCL→Arduino模拟输入(例如A5)

•BME680 SDA→Arduino模拟输入(如A4)

如果您使用不同的传感器,请按照其文档中的建议进行连接。TinyTTS部分的布线保持不变。

代码概述和上传

场景1 - USB演示:输入文本,听语音

在这种情况下,Arduino充当PC和TinyTTS之间的桥梁。

1. 上传草图

在Arduino IDE中选择您的板和端口。

上传演示草图:

•从串行(USB)读取行

•通过Serial1转发给TinyTTS。

Uno用户注意事项:上传时断开TinyTTS引脚0和1的连接,然后重新连接并按Reset。

2. 在PC上打开串口终端

以下任何一种都可以:

•Arduino Uno:将USB-TTL适配器连接到您的PC。打开终端软件(PuTTY或Python miniterm)并选择适配器的COM端口。波特率设置为9600。

•Mega:连接单板的标准USB线。打开串行监视器。波特率设置为115200。

3. 发送文本

•输入一个简短的短语,比如Hello TinyTTS

•用换行符发送(串行监视器:设置“换行符”或“NL & CR”)。

•Arduino接收文本并调用speak(line);TinyTTS会说。

此时,您已经验证了:

•TinyTTS供电和接线正确。

•Arduino和TinyTTS之间的串行链路正在工作。

•辅助函数speak()完成了它应该做的工作。

场景2 -传感器驱动的语音

现在我们从PC上输入的文本切换到由传感器读取生成的文本。

1. 保留现有的TinyTTS线路

这方面不需要更改。

2. 添加传感器接线

通过I2C连接BME680,连接方法请参见接线。

3. 修改草图

包括必要的库(例如CloseCube_BME680),并将串行输入环路替换为传感器逻辑:

4. 测试说话传感器

•为Arduino供电(USB或外部5 V)。

•听TinyTTS音频输出。

•触摸或轻轻地加热传感器,检查语音温度是否发生变化。

从这里,你可以替换任何传感器:距离,光照水平,土壤湿度等。

在其他项目中重用此模式

这个构建的主要目标不是一个单独的会说话的温度计,而是一个可以重用的通用模式:

1. 为TinyTTS预留一个串口。

2. 实现一个小函数,比如speak(text)。

3. 在你的项目中决定何时调用它以及该说什么。

您可以将其放入:

•偶尔读出最后测量值的数据记录器。

•简单的实验室工具,你的手很忙,你可以听,但不能看显示器。

•可访问性导向的设备,可以显示价值,而不仅仅依赖于屏幕或led。

•应用程序代码的其余部分可以保持原样。

下一个步骤

扩展这个项目的想法:

•阈值警报

只在值超过限制时说话,例如:

•模式公告

使用TinyTTS确认状态变化:

•结合显示器

在OLED或LCD上显示数值,并同时说出来。

•连接到另一个MCU

TinyTTS UART协议与其他板(例如ESP32)工作相同。您只需要一个备用串行接口。

如果您使用此模式构建自己的支持语音的工具或实验,请考虑将其作为单独的项目发布,并将其作为TinyTTS基础引用。这样,其他人就可以看到重用同一语音层的不同方法。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭