智能颈部按摩仪设计——3.功能模式实现

news/2024/11/16 20:37:08/

一、前言

按摩仪主要有物理按摩和电脉冲两种,本项目为电脉冲类型,其原理是通过电极感应金属片,用脉冲技术对颈椎进行刺激,从而缓解颈椎酸痛。
市场上按摩仪的常见功能主要有敲打、锤击、揉捏、针灸、推拿、刮痧、恒温热敷等,本项目中实现了舒缓、活力、锤击拍打、刮痧、智能五个模式。

1、原理图

各种模式的实现是通过P9和P24两个IO口控制三极管的通断从而产生电脉冲来实现。
在这里插入图片描述

2、波形图

P9和P24分别产生正占空比为26.5%,周期为1ms的PWM波,但不能同时为高电平,否则会烧毁三级管(需特别注意)。
一次产生四束PWM波后等待30ms再次产生四束波,循环往复即可实现舒缓模式的功能效果。
在这里插入图片描述
图中一个脉冲中有四束PWM波,其波形如上图所示。脉冲与脉冲之间的时间为30ms。
在这里插入图片描述

3、各模式实现原理

舒缓、活力、锤击拍打、刮痧、智能五个模式是通过脉冲之间的时间间隔来实现的,如下表:

模式脉冲时间间隔
舒缓模式30ms
活力模式20ms
锤击拍打模式40ms
刮痧模式50ms
智能模式随机产生20 30 40 50ms
4、功能代码

相关引脚初始化

void pattern_pin_init(void)
{gpio_set_func(PATTERN_PIN_A, AS_PWM1_N);gpio_set_func(PATTERN_PIN_B, AS_PWM5);gpio_set_func(HEAT_PIN, AS_GPIO);gpio_set_output_en(PATTERN_PIN_A, 1);gpio_set_output_en(PATTERN_PIN_B, 1);gpio_set_output_en(HEAT_PIN, 1);gpio_write(PATTERN_PIN_A, 0);gpio_write(PATTERN_PIN_B, 0);
//    gpio_write(HEAT_PIN, 1);//PWM0 1ms cycle  26.5% duty 	1000Hz  pwm_set_mode(PWM1_ID, PWM_NORMAL_MODE);pwm_set_clk(CLOCK_SYS_CLOCK_HZ, CLOCK_SYS_CLOCK_HZ);pwm_set_phase(PWM1_ID, 0);   //no phase at pwm beginningpwm_set_cycle_and_duty(PWM1_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (0 * CLOCK_SYS_CLOCK_1US) );pwm_polo_enable(PWM1_ID, 1);	//to enable the pwm polaritypwm_start(PWM1_ID);//PWM5 1ms cycle  26.5% duty	1000Hz  pwm_set_mode(PWM5_ID, PWM_NORMAL_MODE);pwm_set_clk(CLOCK_SYS_CLOCK_HZ, CLOCK_SYS_CLOCK_HZ);pwm_set_phase(PWM5_ID, 0);   //no phase at pwm beginningpwm_set_cycle_and_duty(PWM5_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (265 * CLOCK_SYS_CLOCK_1US) );}

由于GPIO_PC1(PATTERN_PIN_A)与档位调节GPIO_PC2(BOOST_PIN)都用到了PWM功能且GPIO_PC1(PATTERN_PIN_A)引脚仅支持PWM_0通道,所以GPIO_PC2(BOOST_PIN)使用PWM_0通道,GPIO_PC1(PATTERN_PIN_A)使用AS_PWM1_N通道,这里我们只需要pwm_polo_enable(PWM1_ID, 1)将PWM极性改变一下就可以了。
在这里插入图片描述
控制PWM个数以及脉冲时间间隔都是通过延时来实现的难免会有误差,大家有更好的实现方式也可以提出来一起交流。由于SDK没有涉及到RTOS所以整个程序是跑在裸机上的,因此该函数执行时需放在while(1)大循环里面。

void switching_pattern(unsigned char pat)
{if (pat > 4) {TUYA_APP_LOG_ERROR("*********No such model!!!**********");}switch (pat) {case relieve:pwm_start(PWM5_ID);sleep_us(450);		// 延时480us,防止同时置高烧毁三极管pwm_set_cycle_and_duty(PWM1_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (265 * CLOCK_SYS_CLOCK_1US) );sleep_us(5 * TIME_MS);pwm_stop(PWM5_ID);pwm_set_cycle_and_duty(PWM1_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (0 * CLOCK_SYS_CLOCK_1US) );sleep_us(30 * TIME_MS);break;case vitality:pwm_start(PWM5_ID);sleep_us(450);pwm_set_cycle_and_duty(PWM1_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (265 * CLOCK_SYS_CLOCK_1US) );sleep_us(5 * TIME_MS);pwm_stop(PWM5_ID);pwm_set_cycle_and_duty(PWM1_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (0 * CLOCK_SYS_CLOCK_1US) );sleep_us(20 * TIME_MS);break;case hammering:pwm_start(PWM5_ID);sleep_us(450);pwm_set_cycle_and_duty(PWM1_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (265 * CLOCK_SYS_CLOCK_1US) );sleep_us(5 * TIME_MS);pwm_stop(PWM5_ID);pwm_set_cycle_and_duty(PWM1_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (0 * CLOCK_SYS_CLOCK_1US) );sleep_us(40 * TIME_MS);break;case scraping_therapy:pwm_start(PWM5_ID);sleep_us(450);pwm_set_cycle_and_duty(PWM1_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (265 * CLOCK_SYS_CLOCK_1US) );sleep_us(5 * TIME_MS);pwm_stop(PWM5_ID);pwm_set_cycle_and_duty(PWM1_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (0 * CLOCK_SYS_CLOCK_1US) );sleep_us(50 * TIME_MS);break;case intelligent:pwm_start(PWM5_ID);sleep_us(450);pwm_set_cycle_and_duty(PWM1_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (265 * CLOCK_SYS_CLOCK_1US) );sleep_us(5 * TIME_MS);pwm_stop(PWM5_ID);pwm_set_cycle_and_duty(PWM1_ID, (u16) (1000 * CLOCK_SYS_CLOCK_1US),  (u16) (0 * CLOCK_SYS_CLOCK_1US) );sleep_us(((rand() % 4 + 2) * 10) * TIME_MS);	// 随机延时20/30/40/50msbreak;default:break;}return;
}

http://www.ppmy.cn/news/438279.html

相关文章

哇,这夸张的硬件设计——神奇的智能颈部按摩仪!

一、智能颈部按摩仪简介 现代人的生活忙忙碌碌,不少人下班之后还在地铁上用电脑做着未完成的工作,用手机回着各种消息,久而久之,我们的颈椎就会出现疲劳、酸痛的问题,有些甚至会发生眩晕、恶心的症状。 为此&#xff…

拆给你看!智能颈部按摩仪内部图片分享。

智能颈部按摩仪拆机研究 网上买了一款智能颈部按摩仪拆机研究了一下,下面来聊下我的拆机结果。 智能颈部按摩仪原理:是由电极贴片接触肌肤,利用低电压的脉冲电流作用于神经或肌肉等,从而促进局部血液循环,改善肌肉状态…

ASP.NET模块化动态电子商务网站的开发(源代码+论文+开题报告+外文翻译)

本文对用ASP.NET和ACCESS开发中小型电子商务网站的分析、设计、实施做了详尽的阐述。系统采用模块化设计方法,根据程序的应用与维护的易用性,将系统各个部分分置于不同的模块当中,方便了程序的扩展与维护。 论文首先对当今电子商务网站的应用进行了现状分析,分析了网站开发…

leetcode-hot目录

哈希 1. 两数之和 2. 字母异位词分组 3. 最长连续序列 双指针 4.移动零 5. 盛最多水的容器 6. 三数之和 7. 接雨水 滑动窗口 8. 无重复字符串的最长子串 9. 找到字符串中所有字母异位词 字串 10. 和为K的子数组 11. 滑动窗口最大值 12. 最小覆盖字串 普通数组…

ps4计算机,一台电脑价格等于Switch+PS4 PC和主机谁更省钱

不少主机玩家认为,PC玩家需要花费更多的钱来组装一台电脑,才能体验到主机游戏的乐趣。然而,他们忽视了游戏打折这一环节。 让我们先来看看主机的价格:一台PS4 Slim大约230英镑,一台PS4 Pro大约300英镑。Xbox One S售价…

HIT校园网ps4联机教程

准备: 交换机 (解决寝室只有一个网口的问题 极路由 (还可以是小米路由,等各种可以安装openwrt的路由,这里推荐极路由,用于锐捷连接和加速器配置 加速器 (我自己用的是奇游加速器,360一年,加速器主要看价格,支持的平台,支持的游戏,效果… 网线若干…

3月ps游戏总结

整个3月份没有学啥新的东西,也没敲代码,整天就是改论文,改结构,调格式,降重,没啥好说的,除此之外,就是整了个ps5,休息时间都在玩。 算是第一次接触索尼游戏机&#xff0c…

【python游戏制作】大富翁游戏源码

前言 大富翁,又名地产大亨。是一种多人策略图版游戏。参与者分得游戏金钱,凭运气(掷骰子)及交易策略,买地、建楼以赚取租金。英文原名monopoly意为“垄断”,因为最后只得一个胜利者,其余均破产…