咦?智能颈部按摩仪还能语音播报,快搞起来!

一、档位切换实现

1、档位实现原理

按摩仪共设置15个档位,可以控制按摩的力度,通过BOOST升压电路实现。
在这里插入图片描述

通过P8口产生PWM波,调节PWM输出的正占空比来实现升压,详细的硬件原理可参考硬件部分关于升压原理的介绍,具体数值如下:

档位123456789101112131415最大档
升压值(V)12151922262933364043475054576060
占空比(%)12467912161822242630343636

档位调节是通过按键的单击和双击来实现的,单击档位加,双击档位减。由于SDK配置原因,在程序烧录后复位模组时P8口已经被拉高,所以在此处对其做拉低处理。

void boost_init(void)
{gpio_set_func(BOOST_PIN, AS_PWM0);gpio_set_output_en(BOOST_PIN, 1);//PWM0 1ms cyclepwm_set_mode(PWM0_ID, PWM_NORMAL_MODE);pwm_set_clk(CLOCK_SYS_CLOCK_HZ, BOOST_PWM_CLOCK_HZ); //设定BOOST升压时PWM频率为 16M / (968-1) ≈ 16.55KHzpwm_set_phase(PWM0_ID, 0);   //no phase at pwm beginningpwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (0 * CLOCK_SYS_CLOCK_1US) );pwm_start(PWM0_ID);
}

2、实现过程

初始化完成后通过输入参数的具体值改变占空比升压到对应值。

void switching_gear(unsigned char gears)
{if (gears > 15) {TUYA_APP_LOG_ERROR("*********There is no such gear!!!**********");}switch (gears) {case first_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (10 * CLOCK_SYS_CLOCK_1US) );break;case second_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (20 * CLOCK_SYS_CLOCK_1US) );break;case third_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (40 * CLOCK_SYS_CLOCK_1US) );break;case fourth_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (60 * CLOCK_SYS_CLOCK_1US) );break;case fifth_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (70 * CLOCK_SYS_CLOCK_1US) );break;case sixth_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (90 * CLOCK_SYS_CLOCK_1US) );break;case seventh_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (120 * CLOCK_SYS_CLOCK_1US) );break;case eighth_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (160 * CLOCK_SYS_CLOCK_1US) );break;case ninth_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (180 * CLOCK_SYS_CLOCK_1US) );break;case tenth_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (220 * CLOCK_SYS_CLOCK_1US) );break;case eleventh_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (240 * CLOCK_SYS_CLOCK_1US) );break;case twelfth_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (260 * CLOCK_SYS_CLOCK_1US) );break;case thirteenth_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (300 * CLOCK_SYS_CLOCK_1US) );break;case fourteenth_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (340 * CLOCK_SYS_CLOCK_1US) );break;case fifteenth_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (360 * CLOCK_SYS_CLOCK_1US) );break;case max_gear:pwm_set_cycle_and_duty(PWM0_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (360 * CLOCK_SYS_CLOCK_1US) );break;default:break;}
}

二、语音播报


1、功能简述
本次用到了WTN6系列的离线语音模块,WTN6系列产品为多功能单芯片语音合成4位元为控制器。


(1) 工作电压:2.4V~5.2V
(2) 待机模式下,静态电流小于5uA
(3) 精准的+/-1%内部震荡,有低压复位(LVR=1.8V)看门狗计时
(4) 12位元PWM纯音频输出,可直接驱动8Ω/0.5W喇叭和蜂鸣器,DAC音频输出,可外接功放
(5) 内置看门狗;
(6) 具备串口控制模式:一线串口,两线串口(最多可以加载224段语音,后续有详解),数脉冲
(7) 支持BUSY状态输出功能
 

Pad NamePad No.ATTR.Description 描述
PA21I/O忙信号输出
PA12I/O两线串口时钟信号输入端/一线串口数据信号输入端/数脉冲数据信号输入端
PA03I/O两线串口数据信号输入端/复位脚
PA34I/O

暂未使用(NC)

PWM-5outPWM 输出脚
VDD6Power电源正极
PWM+/DAC7I/OPWM、DAC 输出脚
GND8Power电源负极

2、一线串口通讯

本次仅用到了一线串口通讯,一线串口模式可以利用 MCU 通过 DATA 线给 WTN6 系列语音芯片发送数据以达到控制的目的。可以实现控制语音播放、停止、循环等。
(1)管脚分配:

管脚作用
PA1DATA
PA2BUSY

(2)一线语音地址对应关系:

数据(十六进制)功能
00H播放第 0 段语音
01H播放第 1 段语音
02H播放第 2 段语音
…………
DFH播放第 222 段语音

3、一线串口时序图

先把数据线拉低 5ms 后,发送 8 位数据,先发送低位,再发送高位,使用高电平和低电平比例来表示
每个数据位的值。
在这里插入图片描述
在这里插入图片描述

4、功能代码

(1)功能引脚初始化

void voice_prompt_init(void)
{gpio_set_func(WTN6_DATA_PIN | WTN6_BUSY_PIN, AS_GPIO);gpio_set_input_en(WTN6_BUSY_PIN, 1);gpio_set_output_en(WTN6_DATA_PIN, 1);gpio_write(WTN6_BUSY_PIN, 0);
}

(2)声音播放

void voice_playing(uint8_t sb_data)
{uint8_t s_data, j;bool b_data;s_data = sb_data;gpio_write(WTN6_DATA_PIN, 0);sleep_us(5000);		//延时 5msb_data = s_data & 0X01;for (j=0; j<8; j++) {if (b_data == 1) {gpio_write(WTN6_DATA_PIN, 1);sleep_us(600); //延时 600usgpio_write(WTN6_DATA_PIN, 0);sleep_us(200); //延时 200us} else {gpio_write(WTN6_DATA_PIN, 1);sleep_us(200); //延时 200usgpio_write(WTN6_DATA_PIN, 0);sleep_us(600); //延时 600us}s_data = s_data >> 1;b_data = s_data & 0X01;}gpio_write(WTN6_DATA_PIN, 1);
}

输入参数填入对应地址voice_playing(0x01)即可播放离线语音。

三、加热功能

加热功能是通过控制P7引脚的拉高拉低来实现加热开、加热关的,内置温度检测模块,加热时当温度超过40℃会自动关闭加热功能以免过热引起不适或被烫伤。

int switching_heat(unsigned char warm)
{if (warm > 1) {TUYA_APP_LOG_ERROR("*********No such model!!!**********");}
//	printf("wram%d massage_state.heat%d\r\n", warm, massage_state.heat);switch (warm) {case strong_heat:TUYA_APP_LOG_INFO("**********strong_heat************");gpio_write(HEAT_PIN, 1);temperature_detection();break;case off_heat:TUYA_APP_LOG_INFO("**********off_heat************");gpio_write(HEAT_PIN, 0);break;default:break;}return 0;
}
/*温度检测,弱热强热功能开启时调用*/
int temperature_detection(void)
{int Rntc = 0, Vcc = 0;adc_channel_checkout(channel_x1);Vcc = adc_sample_and_get_result();	//uint:mvRntc = Vcc*R25 / (3300-Vcc);TUYA_APP_LOG_INFO("Rntc_val=%dΩ", Rntc);if (Rntc >= 5311) {		// NTC在40℃时电阻值为5311ΩTUYA_APP_LOG_WARNING("********High Temperature Warning!!!********");gpio_write(HEAT_PIN, 0);	//超过40℃关闭加热功能}return 0;
}

NTC温度与阻值对照表

戳我:更多物联网应用在这里! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32569.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电动牙刷/洗牙器出口欧盟CE认证测试标准EN 60335

电动牙刷/洗牙器在这两年开始被很多厂家看中这块的发展&#xff0c;因为据调查了解到&#xff0c;电动牙刷比普通牙刷更能够清除牙菌减少牙龈&#xff0c;更好的做到了清洁的作用。 在欧美国家几乎所有的人都使用电动牙刷&#xff0c;是一款普遍流行的日用品&#xff0c;因此在…

oh-my-posh - 终端个性化工具 - 美化PowerShell / cmd - 好物分享,真香~

一. 什么是oh-my-posh? Oh My Posh 是一款终端个性化工具&#xff0c;支持 Windows、Linux&#xff08;WSL&#xff09;、macOS 系统上的 PowerShell、bash、zsh 等终端&#xff0c;可以配置不同主题达到个性化的效果。 本篇文章&#xff0c;将以PowerShell终端为例&#xff0…

酷科技 | Amabrush电动牙刷:10秒就可以完成刷牙

刷牙是我们每天都要做的事情&#xff0c;虽然整个过程不过两三分钟&#xff0c;但无论是早上急急忙忙的起床&#xff0c;还是晚上困意来袭&#xff0c;忘记刷牙或者随便糊弄一下&#xff0c;已经成为了很多人经常会做的事情。 牙齿的健康很重要&#xff0c;因此刷牙这件事虽小但…

PaddleSpeech 流式语音识别系统 PP-ASR

(以下内容搬运自 PaddleSpeech) PP-ASR 目录 1. 简介2. 特点3. 使用教程 3.1 预训练模型3.2 模型训练3.3 模型推理3.4 服务部署3.5 支持个性化场景部署 4. 快速开始 1. 简介 PP-ASR 是一个 提供 ASR 功能的工具。其提供了多种中文和英文的模型&#xff0c;支持模型的训练&a…

飞利浦 PHILIPS 电动牙刷HX6730 拆解

今日&#xff0c;一直比较喜欢用的电动牙刷&#xff0c;飞利浦HX6730坏掉了&#xff0c;初步感觉考虑飞利浦的保修&#xff0c;但是发现发票找不到了。飞利浦的客服也说&#xff0c;电动牙刷的两年保修依据分别是&#xff1a;1、发票开据日期&#xff1b;2、在无发票的情况下&a…

CES Asia:藏在儿童电动牙刷里的科技

科技巨头苹果公司常常对外表达的观念是&#xff0c;产品的核心是使用者&#xff0c;科技是用来解决问题&#xff0c;让产品设计得能帮助使用者生活得更美好&#xff0c;科技要做的是帮助人们拥有完成原本无法做到的事的能力。苹果公司认为科技应当藏身幕后&#xff0c;而不是走…

两款黑科技、高颜值电动牙刷正面PK,如何选择性价比是关键

随着人们生活水平的提升,近年来,各种黑科技层出不穷,对我们的生活带来了巨大的改变,甚至可以说是“武装到了牙齿”——例如目前不少厂商推出了智能声波电动牙刷(以下简称:电动牙刷),让刷牙也变得极具科技感。 目前市面上的电动牙刷品牌众多、鱼龙混杂,但在性能、质量…

WTV380语音芯片在儿童电动牙刷应用,可降低企业30% BOM成本!

概述&#xff1a;儿童电动牙刷控制的组成&#xff0c;需要一颗丰富资源的MCU芯片&#xff0c;主要起到按键信号采集、压力传感器信号采集、电机控制、音乐/提示功能&#xff0c;而需要实现电动牙刷的这些功能&#xff0c;产品开发设计工程师需要用到一颗IO资源丰富&#xff0c;…

2021年中国电动牙刷销售及发展趋势分析:国产品牌崛起[图]

一、电动牙刷产业链 电动牙刷是利用振动的机芯带动刷头旋转或振动以达到洁牙的效果。电动牙刷产业链随着市场产品的不断推出&#xff0c;产业链生态逐步完善&#xff0c;推动市场稳步发展。电动牙刷上游主要是牙刷丝、塑料外壳材料和电机、电池等&#xff0c;中游各类别电动牙刷…

文华财经数据导出工具

软件用于文华财经数据的格式化导出&#xff0c;通过简单设置文华财经的安装路径即可。当第一次打开工具时&#xff0c;出现文华财经的安装路径设置。请点击浏览并定位到文华财经的安装目录&#xff0c;如&#xff1a;D:\Tools\wh6通用版&#xff0c;确认后进入主程序。 第二次更…

如何用python爬取新浪财经

通过python爬取新浪财经的股票历史成交明细 要求 通过新浪财经爬取历史数据&#xff1a;http://market.finance.sina.com.cn/transHis.php?symbolsz000001&date2021-04-27&page60 要求&#xff1a;输入日期和股票代码后将一天所有的记录存入一个csv文件&#xff0c;…

文华财经期货K线多周期画线技术,多重短线技术共振通道线指标公式——多周期主图自动画线

期货指标公式是通过数学逻辑角度计算而来&#xff0c;仅是期货分析环节中的一个辅助工具。期货市场具有不确定性和不可预测性的&#xff0c;请正常对待和使用指标公式! 期货指标公式信号本身就有滞后性&#xff0c;周期越大&#xff0c;滞后性越久。指标公式不是100%稳赚的工具…

文华财经期货指标短线精灵,期货多空信号5分钟K线战法短线操作技巧

期货指标公式是通过数学逻辑角度计算而来&#xff0c;仅是期货分析环节中的一个辅助工具。期货市场具有不确定性和不可预测性的&#xff0c;请正常对待和使用指标公式! 期货指标公式信号本身就有滞后性&#xff0c;周期越大&#xff0c;滞后性越久。指标公式不是100%稳赚的工具…

文华财经指标公式源码学习

HJ_1:(HHV(HIGH,36)-CLOSE)/(HHV(HIGH,36)-LLV(LOW,36))*100; HJ_2:SMA(HJ_1,3,1); HJ_3:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; HJ_4:SMA(HJ_3,5,1)-8; 常态能量监控:HJ_4-HJ_2,COLORYELLOW,LINETHICK0; 狂飙临界能量:HJ_4-HJ_2,COLORRED,LINETHICK0; 0; STICKLIN…

财经郎眼:区块链是陷阱还是馅饼?颠覆性概念技术如何真正落地

2014年1月27日&#xff0c;财经郎眼首次聊比特币&#xff0c;题目是《比特币真相》&#xff1b;那时比特币的市场价是800美元。 2017年1月23日&#xff0c;财经郎眼再次聊比特币&#xff0c;题目是《五问比特币》&#xff1b;那时比特币的市场价是900美元。 2017年11月20日&…

叩问教育公平:财经郎眼20150209

郎咸平&#xff0c;祖籍山东潍坊&#xff0c;中国台湾学者&#xff0c;经济学家。 王牧笛&#xff0c;主持人&#xff0c;北京大学法学、哲学双学位学士&#xff0c;外交学硕士&#xff0c;与郎咸平一道从经济的视角解读新闻&#xff0c;从新闻概念讲述经济。 古语有云&#…

数字人解决方案——实时对话数字人源码与环境配置

前言 1.从技术角度来看&#xff0c;现在的数学人就是一个缝合怪&#xff0c;把各种技术点都整合在一起&#xff0c;用来实现直播、对话等数字人。技术流程大概如下图&#xff1a; 其实最重要的一环应该属于LLM(大型语言模型)&#xff0c;LLM相当于一个人的意识&#xff0c;如果…

亚马逊运营listing优化A+页面

亚马逊A页面可以通过丰富的图文和视频更好的展示商品特点&#xff0c;提高产品的吸引力&#xff0c;有利于商品转化率的提高。今天海熹跨境人才网就来给大家说说关于A页面的优化技巧&#xff0c;一起来了解一下吧。 一、什么是A页面 亚马逊A页面与普通产品描述页面不同的是&am…

英语一大作文模板如何自己制作?

文章目录 &#xff08;一&#xff09;本人花费三个月制作模板过程1.1 考研同学通病1.2 三个月制作模板的历程1.2.1初始模板&#xff08;来在凯文老师的课&#xff09;1.2.2 更改模板 &#xff08;薛非老师的作文课&#xff09;1.2.3 花钱请专业老师批改作文中不断该进模板的结构…

介绍计算机的英语作文,总算晓得写一篇介绍电脑的英语作文

电脑的使用变得越来越普及&#xff0c;我们要正确使用电脑。在英语中也有关于介绍电脑的作文题材&#xff0c;那你想知道写一篇介绍电脑的英语作文怎么写吗?下面小编告诉你如何写一篇介绍电脑的英语作文&#xff0c;大家一起来看看吧! 写一篇介绍电脑的英语作文&#xff1a; C…