CN116418270B - 一种线性马达的控制方法及电子设备 - Google Patents
一种线性马达的控制方法及电子设备 Download PDFInfo
- Publication number
- CN116418270B CN116418270B CN202310616592.9A CN202310616592A CN116418270B CN 116418270 B CN116418270 B CN 116418270B CN 202310616592 A CN202310616592 A CN 202310616592A CN 116418270 B CN116418270 B CN 116418270B
- Authority
- CN
- China
- Prior art keywords
- vibration
- duration
- linear motor
- waveform
- type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004422 calculation algorithm Methods 0.000 claims description 15
- 230000001052 transient effect Effects 0.000 claims description 15
- 230000009471 action Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 3
- 239000010410 layer Substances 0.000 description 28
- 238000005457 optimization Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 230000001133 acceleration Effects 0.000 description 16
- 238000007726 management method Methods 0.000 description 16
- 238000010295 mobile communication Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 239000012792 core layer Substances 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013016 damping Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000005672 electromagnetic field Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000035807 sensation Effects 0.000 description 2
- 230000004617 sleep duration Effects 0.000 description 2
- 229910000831 Steel Inorganic materials 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P25/00—Arrangements or methods for the control of AC motors characterised by the kind of AC motor or by structural details
- H02P25/02—Arrangements or methods for the control of AC motors characterised by the kind of AC motor or by structural details characterised by the kind of motor
- H02P25/06—Linear motors
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P23/00—Arrangements or methods for the control of AC motors characterised by a control method other than vector control
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P25/00—Arrangements or methods for the control of AC motors characterised by the kind of AC motor or by structural details
- H02P25/02—Arrangements or methods for the control of AC motors characterised by the kind of AC motor or by structural details characterised by the kind of motor
- H02P25/032—Reciprocating, oscillating or vibrating motors
Abstract
本申请提供了一种线性马达的控制方法及电子设备,涉及马达驱动技术领域。该方法可以在线性马达的振动时长较小时使线性马达快速启动、快速停止,使线性马达具有清晰的振感。该方法包括:接收用户触发线性马达振动的第一振动事件;在第一振动事件对应的振动时长小于或等于预设的第一时长的情况下,控制线性马达以第一振动波形振动,第一振动波形对应第一启动时间及第一停止时间,第一启动时间小于第二启动时间,第一停止时间小于第二停止时间。
Description
技术领域
本申请涉及马达驱动技术领域,尤其涉及一种线性马达的控制方法及电子设备。
背景技术
目前,为了提高用户在使用电子设备时的使用体验,当用户对终端执行某些操作时,终端可以通过振动的方式对用户进行提示。例如用户在使用终端玩游戏时,终端可在用户进行预设操作时进行振动,以给用户触觉反馈,使用户沉浸式体验。其中,终端的振动是通过安装于该终端中的马达的振动来实现的。
现有技术中,一些第三方应用存在振动需求时,可调用操作系统提供的通用振动接口向马达驱动发送振动请求,以使马达驱动输出额定频率、额定电压的驱动电压持续驱动马达振动。在驱动电压的作用下,马达的振动强度随时间逐渐增大至最大强度并保持最大强度持续振动。对于某些极短的振动而言,线性马达的振动强度还未达到最大就需要停止振动,使得用户感觉整机振动较弱。同时,在需要停止马达振动时则停止输出驱动电压,这使得马达停止振动是依靠马达自身衰减,这会导致马达的刹车阶段较长,用户感觉终端振动较为拖沓松散。
发明内容
本申请实施例提供一种线性马达的控制方法及电子设备,可以在线性马达的振动时长较小时使线性马达快速启动、快速停止,使线性马达具有清晰的振感。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请提供一种线性马达的控制方法,应用于包括线性马达的电子设备,方法包括:接收用户触发线性马达振动的第一振动事件;在第一振动事件对应的振动时长小于或等于预设的第一时长的情况下,控制线性马达以第一振动波形振动,第一振动波形对应第一启动时间及第一停止时间,第一启动时间小于第二启动时间,第一停止时间小于第二停止时间;其中,第一启动时间为线性马达以第一振动波形振动时从开始振动的时刻到达到第一振动波形的最大振幅的时刻所需的时间,第一停止时间为线性马达以第一振动波形振动时从达到第一振动波形的最大振幅的时刻到停止振动的时刻所需的时间;第二启动时间为线性马达以第二振动波形振动时从开始振动的时刻到达到第二振动波形的最大振幅的时刻所需的时间,第二停止时间为线性马达以第二振动波形振动时从达到第二振动波形的最大振幅的时刻到停止振动的时刻所需的时间,第二振动波形为线性马达在第一驱动电压作用下的振动波形,第一驱动电压的输出频率为线性马达的谐振频率,第一驱动电压的输出时间为振动时长。本申请实施例通过缩短线性马达的启动时间和停止时间,可给用户带来强烈且紧凑的振感,既能有效提醒用户,又能提升用户的振动体验。
在第一方面提供的一种实现方式中,控制线性马达以第一振动波形振动,包括:根据振动时长及线性马达的类型生成振动描述数据,振动描述数据用于描述第一振动波形;根据振动描述数据控制线性马达以第一振动波形振动。也就是说,通过将振动时长转换为一个具备完整振动描述的振动描述数据,并根据该振动描述数据生成一个能使线性马达快速启动和快速停止的电压波形,以此使得马达能够快速启动以及快速停止振动,给用户带来强烈且紧凑的振感,既能有效提醒用户,又能提升用户的振动体验。
在第一方面提供的一种实现方式中,振动描述数据包括锐度、振动类型及事件持续时间;若线性马达为第一类型,振动类型为稳态振动类型、锐度为预设的第一数值且事件持续时间为振动时长;若线性马达为第二类型且振动时长小于或等于预设的第二时长,振动类型为瞬态振动类型、锐度为第二数值且事件持续时间为预设的第二时长,第二数值与振动时长呈负相关,预设的第二时长小于预设的第一时长。其中,第一类型可以为X轴线性马达,第二类型为Z轴线性马达,考虑到不同类型的线性马达的振动波形有所区别,适应性调整振动描述数据使其与线性马达的类型匹配,可以缩短不同类型的线性马达的启动时间和停止时间,使不同类型的线性马达均能够有清晰的振感。
在第一方面提供的一种实现方式中,根据振动时长及线性马达的类型生成振动描述数据,包括:若第一振动事件对应的振动时长小于或等于预设的第一时长,将振动描述数据的事件持续时间设置为振动时长,将振动描述数据的锐度设置为预设的第一数值,以及将振动描述数据的振动类型设置为稳态振动类型;判断线性马达是否为第二类型且振动时长是否小于或等于预设的第二时长;若线性马达为第二类型且振动时长小于或等于预设的第二时长,将振动描述数据的事件持续时间调整为预设的第二时长,将振动描述数据的锐度调整为第二数值,以及将振动描述数据的振动类型调整为瞬态振动类型,预设的第二时长小于预设的第一时长,第二数值与振动时长呈负相关。
在第一方面提供的一种实现方式中,第一振动事件包括以下各项之一:接收到用户解锁电子设备的操作、接收到用户在线支付的操作、接收到用户录入人脸的操作、接收到用户释放技能的操作、或者接收到用户下拉聊天界面的操作。
在第一方面提供的一种实现方式中,电子设备还包括振动芯片,电子设备中部署有第一应用、振动服务、振动硬件抽象层HAL及振动算法库;在第一振动事件对应的振动时长小于或等于预设的第一时长的情况下,控制线性马达以第一振动波形振动,包括:响应于第一振动事件,第一应用向振动服务发送振动请求,振动请求包括振动参数,振动参数包括振动时长;振动服务向振动HAL发送振动请求;在振动参数指示振动接口为第一接口的情况下,振动HAL根据振动时长及线性马达的类型生成振动描述数据,振动描述数据用于描述第一振动波形;振动HAL向振动算法库发送振动描述数据;振动算法库根据振动描述数据生成电压驱动波形数据,并向振动HAL发送电压驱动波形数据,电压驱动波形数据用于描述第一振动波形对应的驱动电压;振动HAL向振动芯片发送电压驱动波形数据;振动芯片根据电压驱动波形数据向线性马达输出驱动电压,以使线性马达以第一振动波形振动。
在第一方面提供的一种实现方式中,振动HAL根据振动时长及线性马达的类型生成振动描述数据,包括:振动HAL判断振动时长是否小于或等于预设的第一时长;若振动时长小于或等于预设的第一时长,振动HAL将振动描述数据的事件持续时间设置为振动时长,将振动描述数据的锐度设置为预设的第一数值,以及将振动描述数据的振动类型设置为稳态振动类型;振动HAL判断线性马达是否为第二类型以及振动时长是否小于或等于预设的第二时长;若线性马达为第二类型且振动时长小于或等于预设的第二时长,振动HAL将振动描述数据的事件持续时间调整为预设的第二时长,将振动描述数据的锐度调整为第二数值,以及将振动描述数据的振动类型调整为瞬态振动类型,预设的第二时长小于预设的第一时长,第二数值与振动时长呈负相关。
在第一方面提供的一种实现方式中,振动HAL根据振动时长及线性马达的类型生成振动描述数据,还包括:若线性马达为第一类型或振动时长大于预设的第二时长,振动HAL保持振动描述数据不变。
第二方面,本申请还提供了一种电子设备,电子设备包括:存储器、一个或多个处理器、振动芯片和线性马达;存储器、振动芯片与处理器耦合,振动芯片与线性马达连接;其中,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令;当计算机指令被处理器执行时,使得电子设备执行第一方面中任一实施方式的方法。
第三方面,本申请还提供了一种计算机可读存储介质,包括计算机指令;当计算机指令在电子设备上运行时,使得电子设备执行第一方面中任一实施方式的方法。
第四方面,本申请提供一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行如第一方面及其任一种可能的设计方式的方法。
第五方面,本申请提供一种芯片系统,该芯片系统包括一个或多个接口电路和一个或多个处理器。该接口电路和处理器通过线路互联。上述芯片系统可以应用于包括通信模块和存储器的电子设备。该接口电路用于从电子设备的存储器接收信号,并向处理器发送接收到的信号,该信号包括存储器中存储的计算机指令。当处理器执行该计算机指令时,电子设备可以执行如第一方面及其任一种可能的设计方式的方法。
其中,第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为X轴线性马达的布局示意图;
图2为Z轴线性马达的布局示意图;
图3为一种驱动电压信号S1和线性马达的振动加速度信号S2的波形图;
图4为一种驱动电压信号S3和线性马达的振动加速度信号S4的波形图;
图5为机型1在聊天界面下拉场景下的振动波形示意图;
图6为机型2在聊天界面下拉场景下的振动波形示意图;
图7为本申请实施例提供的一种电子设备的结构示意图;
图8为本申请实施例提供的一种电子设备的软件架构框图;
图9为本申请实施例提供的模块交互示意图;
图10为本申请实施例提供的一种线性马达的控制方法的流程示意图;
图11为相关技术中X轴线性马达在不同振动时长下的振动波形图;
图12为相关技术中Z轴线性马达在不同振动时长下的振动波形图;
图13为在微信™下拉场景下的X轴线性马达在优化前后的振动波形示意图;
图14为在微信™下拉场景下的Z轴线性马达在优化前后的振动波形示意图;
图15为X轴线性马达在优化前后不同振动时长的振动波形示意图;
图16为Z轴线性马达在优化前后不同振动时长的振动波形示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍。
线性马达,是通过脉冲电压信号产生变化的电磁场,由变化的电磁场来驱动磁钢带动质量块(也可称为动子)进行周期运动的机构。其中,脉冲电压信号的频率、幅度不同,则线性马达的振动强度可以不同。
按照动子的振动方向,线性马达可包括两类,分别为X轴线性马达和Z轴线性马达。
如图1所示,假设X轴为水平轴,Y轴为竖直轴,Z轴为垂直于X轴和Y轴的轴,则依据摆放方向,X轴线性马达的动子可以在X轴或Y轴方向运动,可以做到更长的行程。若X轴线性马达在电子设备中沿X轴方向安装,则能够提供X轴方向的振感,若沿Y轴方向安装,则能提供Y轴方向的振感。
如图2所示,Z轴线性马达的动子可以在Z轴方向运动。Z轴线性马达设置在电子设备中,能够带来沿电子设备的厚度方向(即Z轴方向)的振感。
谐振频率,也可称为固有频率,指能够使线性马达发生共振的频点。当驱动电压的频率为该谐振频率时,线性马达可以在很小的驱动电压的作用下达到很大的振幅。因此,一般驱动线性马达以谐振频率运行。
目前,终端除了可以通过声音的方式对用户进行提示外,还可以通过振动的方式对用户进行提示,以提高终端的用户使用体验。比如,对于会议场景,当用户对手机执行某些操作时,为了避免手机提示音对会议场景中的其他用户造成干扰,手机可以通过振动的方式提示用户。又比如,当手机接收到来电请求时,为了提示用户及时回应该来电请求,手机可以同时通过响铃和振动的方式对用户进行提示。特别地,当用户在终端中执行某些操作时,为了提高用户使用体验,终端可以在检测到用户的操作时及时进行振动反馈。在一些场景下,终端进行振动的时间较短,也即终端此时进行的是短时振动。此时终端振动的时间不宜过长,以免影响用户使用体验。也即,需要终端中的线性马达能够快速启停。
一些第三方应用存在振动需求时,可调用操作系统提供的通用振动接口下发振动参数,以使振动芯片输出额定频率、额定电压的驱动电压驱动马达振动。如图3所示,为一种驱动电压信号S1和线性马达的振动加速度信号S2的波形图。其中,驱动电压信号S1为振动芯片输出至线性马达的驱动电压,其持续时间为0~500ms。该振动加速度信号S2用于指示线性马达在该驱动电压信号S1的作用下所产生的振动加速度。另外,该驱动电压信号S1的频率为线性马达的谐振频率f0,相应地,该振动加速度信号S2的频率也为线性马达的谐振频率f0。根据图3可知,在驱动电压信号S1的作用下,线性马达从启动到停止的振动过程可包括三个阶段,分别为:启动阶段P1、稳态阶段P2和刹车阶段P3。在启动阶段P1和稳态阶段P2,振动芯片稳定输出驱动电压信号S1。在停止输出驱动电压信号S1后,进入刹车阶段P3。其中,在启动阶段P1(第0~80ms),振动加速度信号S2的振幅由0开始增加至最大值(例如为0.65V),表明线性马达启动振幅逐渐增大。在稳态阶段P2(第80~500ms),振动加速度信号S2的振幅持续保持在最大值,表明线性马达的振幅保持在最大值。在刹车阶段P3(第500~710ms),振动加速度信号S2的振幅由最大值逐渐降低为0,表明线性马达进行阻尼振动直至停止振动。
可以看出,在驱动电压的作用下,线性马达的振幅(也可以称为振动强度)随时间逐渐增大至最大值并保持在最大值;在未接收到驱动电压后,线性马达以阻尼振荡结束振动。这对于那些线性马达需要快速启停的场景而言,线性马达的振动强度还未达到最大就需要停止振动。示例性的,图4示出了一种驱动电压信号S3和线性马达的振动加速度信号S4的波形图。其中,驱动电压信号S3为振动芯片输出至线性马达的驱动电压,其持续时间为0~50ms。该振动加速度信号S4用于指示线性马达在该驱动电压信号S3的作用下所产生的振动加速度。根据图4可知,振动芯片从第0秒开始输出驱动电压信号S3至线性马达,并于第50ms时停止输出驱动电压信号S3。同时,在第0~50ms期间振动加速度信号S4的振幅逐增加,并于第50ms开始逐渐减小直至为0。
对比图3和图4可知,线性马达在驱动电压信号S3的作用下先进入启动阶段P1(第0~50ms),接着由于驱动电压信号S3消失而直接进入刹车阶段P3(第50~189ms)。也即,在线性马达的振动幅度还未达到最大值就开始减小。
示例性的,在电子设备接收到用户下拉聊天界面的操作时,该电子设备会短暂地振动以给用户触觉反馈。参阅图5、图6,分别示出了机型1和机型2在聊天界面下拉场景下的振动波形示意图。如图5、图6所示,在聊天界面下拉场景下,机型1和机型2的振动波形均包括启动阶段P1和刹车阶段P3。
可见,在线性马达需要快速启停的场景中,现有技术中存在由于线性马达快速启停过程中振幅过小导致用户感知到的振动较弱,以及由于刹车阶段过长导致振感比较拖沓的问题。
有鉴于此,本申请提供了一种线性马达的控制方法,应用于包括线性马达的电子设备。该电子设备可以通过将仅包括振动时长的振动参数转换为一个具备完整振动描述的振动描述数据,并根据该振动描述数据生成一个能使线性马达快速启动和快速停止的电压波形,以此使得马达能够快速启动以及快速停止振动,给用户带来强烈且紧凑的振感,既能有效提醒用户,又能提升用户的振动体验。
需要说明的是,本实施例所述的电子设备,可以为手机、平板电脑、个人通信业务(personal communication service,PCS)电话、虚拟现实(virtual reality,VR)电子设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等,在此不作具体限制。
图7为本申请实施例提供的一种电子设备的结构示意图。如图7所示,电子设备可以包括:处理器210,外部存储器接口220,内部存储器221,通用串行总线(universalserial bus,USB)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及用户标识模块(subscriber identification module,SIM)卡接口295等。
其中,处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器210可以是电子设备的神经中枢和指挥中心。处理器210可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
外部存储器接口220可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口220与处理器210通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器210通过运行存储在内部存储器221的指令,从而执行电子设备的各种功能应用以及数据处理。例如,在本申请实施例中,处理器210可以通过执行存储在内部存储器221中的指令,内部存储器221可以包括存储程序区和存储数据区。
其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)、马达291的配置文件等。存储数据区可存储电子设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
充电管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为电子设备供电。
电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器221,外部存储器,显示屏294,摄像头293,和无线通信模块260等供电。在一些实施例中,电源管理模块241和充电管理模块240也可以设置于同一个器件中。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调处理器以及基带处理器等实现。在一些实施例中,电子设备的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。
天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块250可以提供应用在电子设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块250可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块250可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。
移动通信模块250还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块250的至少部分功能模块可以被设置于处理器210中。在一些实施例中,移动通信模块250的至少部分功能模块可以与处理器210的至少部分模块被设置在同一个器件中。
无线通信模块260可以提供应用在电子设备上的包括WLAN(如(wirelessfidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigationsatellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(nearfield communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
电子设备可以通过音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
传感器模块280可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器和骨传导传感器等传感器。电子设备可通过传感器模块280采集各种数据。
电子设备通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏294用于显示图像,视频等。该显示屏294包括显示面板。
电子设备可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。ISP用于处理摄像头293反馈的数据。摄像头293用于捕获静态图像或视频。在一些实施例中,电子设备可以包括1个或N个摄像头293,N为大于1的正整数。
按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。马达291可以产生振动提示。马达291可以用于来电振动提示,也可以用于触摸振动反馈。指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口295用于连接SIM卡。SIM卡可以通过插入SIM卡接口295,或从SIM卡接口295拔出,实现和电子设备的接触和分离。电子设备可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口295可以支持Nano SIM卡,Micro SIM卡,SIM卡等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在另一些实施例中,电子设备也可以包括比上述实施例提供的更多或者更少的模块,各个模块之间也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
上述电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以Android系统的分层架构为例,示例性说明电子设备的软件结构。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过接口通信。在一些实施例中,Android系统可以包括应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,硬件抽象层(hardware abstraction layer,HAL)以及内核层。需要说明的是,本申请实施例以Android系统举例来说明,在其他操作系统中(例如IOS系统等),只要各个功能模块实现的功能和本申请的实施例类似也能实现本申请的方案。
其中,应用程序层可以包括一系列应用程序包。如图8所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,设置,音乐,锁屏,短信息等应用程序。当然,应用程序层还可以包括其他应用程序包,例如支付应用,购物应用、银行应用、聊天应用或理财应用等第三方应用,本申请不做限定。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。例如可以包括活动管理器、窗口管理器,内容提供器,视图系统,资源管理器,通知管理器,振动服务(vibrator service)等,本申请实施例对此不做任何限制。振动服务用于提供振动相关支持的服务。
系统库可以包括多个功能模块。例如,表面管理器(surface manager),媒体库(media libraries),用于嵌入式系统的OpenGL(OpenGL for Embedded Systems,OpenGLES),skia图形图(Skia Graphics Library,SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式。
OpenGL ES用于实现三维图形绘图,图像渲染,合成,和图层处理等。
SGL是2D绘图的绘图引擎。
安卓运行时(android runtime)包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
HAL层是对Linux内核驱动程序的封装,向上提供接口,屏蔽底层硬件的实现细节。
HAL层中可以包括振动HAL(vibrator HAL),相机HAL(camera HAL)以及振动算法库等。
其中,振动HAL可包括通用振动接口(也可称为第一接口)、自研振动接口(也可称为第三接口)和4D振动接口(也可称为第二接口)等。该通用振动接口、自研振动接口和4D振动接口均可与内核层的振动驱动交互。区别在于,三种振动接口可以处理的振动参数不同。其中,关于三种振动接口具体所处理的振动参数的内容,参见S1001及相关描述,在此不予赘述。
振动算法库可与振动HAL交互,根据振动描述数据构建电压驱动波形以及将构建的电压驱动波形数据传输给振动HAL。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,音频驱动,相机驱动,振动驱动等。其中,振动驱动是一个允许高级计算机软件与硬件交互的程序,也就是驱使马达工作的一组程序。
如图8所示,电子设备还包括硬件层。硬件层包括存储器、振动芯片和线性马达等。其中,振动芯片用于输出驱动电压给线性马达,以驱动线性马达振动。线性马达用于振动以给用户带来振感。
下面对本申请实施例提供的线性马达的控制方法所涉及的软件模块和模块间的交互进行说明。如图9所示,应用层中的第一应用可以通过调用预设的应用程序接口(application programming interface,API)接口与应用程序框架层中的振动服务交互,振动服务可以与HAL层中的振动HAL交互。振动HAL可以包括通用振动接口、自研振动接口和4D振动接口。其中,振动HAL可以在确定振动服务调用的振动接口为通用振动接口,且振动时长小于第一时长时,通过通用振动接口、4D振动接口与内核层的振动驱动交互,或者直接通过通用振动接口、自研振动接口或4D振动接口与内核层的振动驱动交互。具体的,在振动服务调用的振动接口为通用振动接口的情况下,若通用振动接口可以在确定振动时长小于第一时长时向4D振动接口发送振动时长,该4D振动接口可根据振动时长生成振动描述数据并向振动算法库发送振动描述数据,振动算法库可以根据该振动描述数据生成电压驱动波形并将电压驱动波形反馈给4D振动接口。然后,4D振动接口将该电压驱动波形传输至振动驱动,振动驱动可按照该电压驱动波形配置硬件层中的振动芯片,以使振动芯片按照该电压驱动波形输出驱动电压驱动线性马达振动。
下面将结合附图说明本申请提供的线性马达的控制方法。
在本申请的一些实施例中,电子设备可以接收第一振动事件,第一振动事件用于触发线性马达振动。
其中,第一振动事件包括接收到用户解锁电子设备的操作,接收到用户在线支付的操作,接收到用户录入人脸的操作,接收到用户释放技能的操作,接收到来电请求,接收到用户下拉聊天界面(例如微信™应用的聊天界面)的操作,接收到用户使用输入应用(例如**输入法应用)输入信息的操作,或者当前时间与预设时间匹配等。
在第一振动事件对应的振动时长小于或等于预设的第一时长的情况下,控制线性马达以第一振动波形振动。其中,第一振动波形对应第一启动时间及第一停止时间,第一启动时间小于第二启动时间,第一停止时间小于第二停止时间。
其中,第一启动时间为线性马达以第一振动波形振动时从开始振动的时刻到达到第一振动波形的最大振幅的时刻所需的时间,第一停止时间为线性马达以第一振动波形振动时从达到第一振动波形的最大振幅的时刻到停止振动的时刻所需的时间。
第二启动时间为线性马达以第二振动波形振动时从开始振动的时刻到达到第二振动波形的最大振幅的时刻所需的时间,第二停止时间为线性马达以第二振动波形振动时从达到第二振动波形的最大振幅的时刻到停止振动的时刻所需的时间,第二振动波形为线性马达在第一驱动电压作用下的振动波形,第一驱动电压的输出频率为线性马达的谐振频率,第一驱动电压的输出时间为振动时长。
简单来说,第一振动波形为以本申请实施例提供的方法驱动线性马达振动时线性马达的振动波形(可称为优化后的振动波形)。第二振动波形以相关技术驱动线性马达振动时线性马达的振动波形(可称为优化前的振动波形)。本申请通过缩短线性马达的启动时间和停止时间,可给用户带来强烈且紧凑的振感,既能有效提醒用户,又能提升用户的振动体验。
参阅图10,为本申请实施例提供的一种线性马达的控制方法的流程示意图。如图10所示,该线性马达的控制方法包括:
S1001,响应于接收到第一振动事件,第一应用向振动服务发送振动请求。
第一应用可以接收第一振动事件,并在接收到第一振动事件后向振动服务发送打开马达的请求。根据实际应用场景不同,该第一振动事件可以不同,详情参见前文的描述,在此不再赘述。
其中,振动请求中携带有振动参数。该振动参数用于指示第一应用需求的振动方式。在本实施例中,根据第一应用所调用的振动接口,该振动参数包括的内容可以不同。其中,第一应用所调用的振动接口可包括:通用振动接口、原生振动接口以及4D振动接口。下面分别对几种接口进行详细说明。
通用振动接口也可以称为谷歌振动接口,可通过振动驱动实现对线性马达和非线性马达的控制。对于调用通用振动接口的应用,其发送的振动参数可包括振动时长、起始时间等线性马达和非线性马达均能够使用的参数。其中,振动时长是指向线性马达输出驱动电压的时长,起始时间是指驱动芯片接收到指示向线性马达输出驱动电压的时间到驱动芯片输出驱动电压的时间之间的时间间隔。
原生振动接口是设备厂商自己研发的振动接口,可通过振动驱动实现对线性马达的控制。对于调用原生振动接口的应用,其发送的振动参数可包括振动波形的名称和休眠时长等信息。其中,电子设备中存储有开发人员预先设计的多种振动波形的描述文件,其中每个振动波形具有不同的名称,该原生振动接口可通过接收到的振动波形的名称查找到相应的描述文件,并基于描述文件解析得到振动波形数据。这种振动波形数据用于描述振动波形。
4D振动接口可以是设备厂商和第三方联合开发的振动接口,可通过振动驱动实现对线性马达的控制。对于调用4D振动接口的应用,其发送的振动参数包括波形ID和波形文件数据等。该波形文件数据用于指示描述文件的存储地址。
可以理解地,第一应用可调用预设的API接口向振动服务发送振动请求。
S1002,振动服务根据振动请求中携带的振动参数确定振动接口。
例如,在振动参数包括振动时长和/或起始时间的情况下,振动服务可以确定振动接口为通用振动接口。
又例如,在振动参数包括振动波形的名称和休眠时长的情况下,振动服务可以确定振动接口为原生振动接口。
还例如,在振动参数包括波形ID和波形文件数据的情况下,振动服务可以确定振动接口为4D振动接口。
本申请实施例以振动服务确定振动接口为通用振动接口为例进行说明。
S1003,振动服务向通用振动接口发送振动请求。
其中,关于振动请求的描述参见S1001的相关内容,在此不予赘述。
S1004,通用振动接口判断振动时长是否小于或等于第一时长。
其中,第一时长可以与根据多次试验确定的线性马达在额定电压的作用下从振幅为0变化至最大值所需的时长相关。
参阅图11、图12,分别示出了相关技术中X轴线性马达和Z轴线性马达在不同振动时长下的振动波形。如图11所示,在振动时长小于或等于100ms的情况下,X轴线性马达的振幅随着振动时长的增加而增加,例如振动时长为15ms时对应的振幅(0.5),明显低于振动时长为35ms时对应的振幅(0.8);在振动时长大于100ms的情况下,X轴线性振幅趋于平稳,例如振动时长为101ms对应的振幅与振动时长为110ms对应的振幅接近(均为1.2)。如图12所示,Z轴线性马达在振动时长小于或等于100ms时的振幅明显弱于振动时长大于100ms时的振幅。
也就是说,在振动时长小于或等于100ms的情况下,X轴线性马达和Z轴线性马达均很有可能达不到其最大振幅就进入刹车阶段,可能会导致振感较弱。因此,在本申请实施例中,该第一时长可以为100毫秒。当然,该第一时长也可以在100毫秒的基础上进行上下浮动。
在本申请实施例中,若振动时长大于第一时长,通用振动接口可直接向振动驱动发送该振动请求。振动驱动接收到该振动请求后,会根据该振动请求中的振动参数配置振动芯片,以使得振动芯片在该振动时长内向线性马达输出驱动电压。例如,振动时长为120ms,则振动芯片可以在120ms内向线性马达输出驱动电压,并在120ms结束时停止输出驱动电压,使线性马达依靠阻尼停止振动。
若振动时长小于或等于第一时长,通用振动接口可执行S1005。
S1005,通用振动接口向4D振动接口发送振动请求。
通用振动接口在确定振动时长小于第一时长时,向4D振动接口发送振动请求,以使4D振动接口转换振动方式。
S1006,4D振动接口根据振动时长生成振动描述数据。
其中,振动描述数据可以描述线性马达从开始振动到停止振动的完整振动波形(即为第一振动波形)。在本申请实施例中,该振动描述数据的数据结构满足国际标准振动协议,振动描述数据包括但不仅限于起始时间、事件持续时间、振动类型、振动幅度以及锐度(也可以称为频率)等参数。
其中,起始时间为驱动芯片输出驱动电压以使线性马达振动,相对于该驱动芯片接收到指示线性马达振动的指令的时间间隔。例如起始时间为0,则驱动芯片接收到指示线性马达振动的指令后,便立刻输出驱动电压以使线性马达振动;若例如起始时间为t,则驱动芯片接收到指示线性马达振动的指令后等待时间t后,再输出驱动电压以使线性马达振动。
振动类型包括稳态振动和瞬态振动。其中,稳态振动是指振动系统(例如线性马达)在外力(例如驱动电压)作用下作振动时,振动的位移、速度或加速度可呈周期性变化的状态。例如,图1所示的振动波形即为一种稳态振动。瞬态振动是指由外加瞬态激励引起的振动,其基本特征为持续时间较短的突发性过程,其振动的位移、速度或加速度具有随机性。简单来说,稳态振动的波形一般比较规律、稳定,例如图1所示的振动波形,而瞬态振动的波形则比较无规律,且不规则,例如图12中振动时长小于50毫秒时的振动波形。
事件持续时间,用于指示线性马达开始振动到线性马达停止振动所持续的时间。
强度用于指示线性马达的振幅。需要说明的是,该强度的范围可以为0-1,其中强度为0代表线性马达以最小振幅振动,强度为1代表线性马达以最大振幅振动。
锐度用于指示线性马达的振动频率。需要说明的是,该锐度的范围可以为0-1,其中锐度为0表示线性马达以最小频率进行振动,锐度为1表示线性马达以最大频率进行振动。
在本申请实施例中,4D振动接口将振动请求中携带的振动时长设置为振动描述数据中的事件持续时间。例如,振动请求指示振动时长为80ms,则4D振动接口可将振动描述数据中的事件持续时间设置为80ms。
此外,4D振动接口可以将振动类型、振动幅度、锐度分别设置为其对应的预设值。在本申请实施例中,考虑到线性马达大部分情况下进行稳态振动,因此先将振动类型设置为稳态振动(即振动类型的预设值为稳态振动)。4D振动接口可将振动幅度设置为1(即振动幅度的预设值为1),使线性马达可以其最大振幅进行振动。4D振动接口还可以将锐度设置为0.5(即锐度的预设值为0.5),使线性马达可以其谐振频率F0进行振动。需要说明的是,在其他实施方式中,振动类型、振动幅度、锐度的预设值也可以为其他。
S1007,4D振动接口判断线性马达是否为Z轴线性马达。
在一种可选的实施方式中,4D振动接口可以读取线性马达的配置文件,以确定线性马达是否为Z轴线性马达。其中,该配置文件中包括线性马达的标识和/或谐振频率,4D振动接口可通过线性马达的标识或线性马达的谐振频率来确定马达为Z轴线性马达或X轴线性马达。
例如,Z轴线性马达的标识为0,X轴线性马达的标识为1,则若4D振动接口读取到的马达标识为0,则可确定马达为Z轴线性马达;若4D振动接口读取到的马达标识为1,则可确定马达为X轴线性马达。
又例如,4D振动接口可以从配置文件中读取线性马达的谐振频率,若该谐振频率在第一范围内,则可确定该线性马达为X轴线性马达;若该谐振频率在第二范围内,则可确定该线性马达为Z轴线性马达。其中,第一范围可以为(170±δ1)Hz,第二范围可以为(235±δ2)Hz,该δ1、δ2可以为任意数值。
若4D振动接口判断线性马达为Z轴线性马达,则可执行S1008;若4D振动接口判断线性马达不是Z轴线性马达(为X轴线性马达),则可执行S1010。
S1008,4D振动接口判断振动时长是否小于或等于第二时长。
其中,第二时长可以为根据多次试验确定的,Z轴线性马达进行稳态振动所需的时长。如图12所示,在振动时长小于50ms时,Z轴线性马达的振幅存在不对称、无规律变化的情况,即进行瞬态振动;而在振动时长为50ms~100ms期间,Z轴线性马达的振幅比较稳定,即进行稳态振动;在振动时长大于100ms时,Z轴线性马达的振幅则再次增大,同样进行稳态振动。在本申请实施例中,该第二时长可以为50毫秒。当然,该第二时长也可以在50毫秒的基础上进行上下浮动。
若4D振动接口判断振动时长小于或等于第二时长,则可执行S1009;若4D振动接口判断振动时长大于第二时长,则可执行S1010。
S1009,4D振动接口调整振动描述数据。
根据图12可知,在线性马达为Z轴线性马达,且振动时长小于或等于第二时长时,Z轴线性马达进行瞬态振动。因此,在本申请实施例中,4D振动接口可将振动类型调整为瞬态振动。
此外,4D振动接口还可以将事件持续时间设置为第二时长以及将锐度设置为第一数值。其中,该第一数值与振动时长呈负相关。换句话说,振动时长越大,则锐度越小。考虑到锐度可用于表征频率,且锐度越小则频率越小。也就是说,振动时长越大,则频率越小。
如图12所示,在振动时长小于50ms以及频率不变的情况下,若振动时长越大,则该Z轴线性马达所经历的振动周期越多,则该Z轴线性马达的振幅越大。在本申请实施例中,通过使频率与振动时长呈负相关,可以达到在振动时长一定的情况下,通过降低频率增大线性马达所经历的振动周期的效果,进而尽可能的增大Z轴线性马达的振幅。
在一种可选的实施方式中,第一数值与振动时长满足算式:S=(100-2T)/100,其中,S为第一数值,T为振动时长。
需要说明的是,该振动描述数据中的其他振动参数可以保持不变。
S1010,4D振动接口向振动算法库发送振动描述数据。
其中,若在S1007中4D振动接口判断线性马达不为Z轴线性马达,则4D振动接口向振动算法库发送的振动描述数据为4D振动接口在S1006中生成的振动描述数据,该振动描述数据中的振动类型为稳态振动,事件持续时间为振动时长,锐度为0.5,强度为1。
若在S1007中4D振动接口判断线性马达为Z轴线性马达,且在S1008中4D振动接口判断振动时长小于或等于第二时长,则4D振动接口向振动算法库发送的振动描述数据为4D振动接口在S1009中调整得到的振动描述数据,该振动描述数据中的振动类型为瞬态振动,事件持续时间为第二时长,锐度为第一数值,强度为1。
S1011,振动算法库根据振动描述数据生成驱动电压波形数据。
其中,驱动电压波形可以理解为驱动电压的一种位移码流,用于体现驱动电压在不同时间点下的幅度和频率。该驱动电压波形可使线性马达以该振动描述数据指示的振动方式进行振动。
S1012,振动算法库向4D振动接口发送驱动电压波形数据。
S1013,4D振动接口向振动驱动发送驱动电压波形数据。
S1014,振动驱动根据驱动电压波形数据配置马达芯片。
S1015,振动芯片向线性马达输出驱动电压,以使线性马达按照振动描述数据指示的振动方式进行振动。
在本申请实施例中,振动描述数据指示的振动波形可以为第一振动波形,即振动芯片可向线性马达输出驱动电压,以使线性马达以第一振动波形进行振动。
在相关技术中,通用振动接口在接收到振动请求后可以不执行S1004,4D振动接口也无需执行S1007~S1009。通用振动接口在接收到振动请求后,可直接向振动驱动发送该振动请求中携带的振动参数,振动驱动根据该振动参数配置振动芯片,使振动芯片向线性马达输出第一驱动电压,以使线性马达按照第二振动波形振动。其中,该第一驱动电压的输出频率为线性马达的谐振频率,第一驱动电压的输出时间为振动时长。
需要说明的是,若在S1002中,振动服务根据振动请求中携带的振动参数确定振动接口为4D振动接口或自研振动接口,则振动服务可直接向4D振动接口或自研振动接口发送该振动请求,由4D振动接口或自研振动接口与振动驱动进行交互,以控制线性马达振动。
还需要说明的是,在一种可选的实施方式中,该通用振动接口接收到的振动请求中也可能不包括振动时长,若振动请求中不包括振动时长,则该通用振动接口可以无需执行S1004,而是直接向振动驱动发送该振动请求,以控制线性马达振动。在这种情况下,第一应用可以在预设时间后通过振动服务向振动驱动发送停止振动的指令,以控制线性马达停止振动。
下面结合微信™下拉场景,说明X轴线性马达、Z轴线性马达在使用本申请实施例提供的线性马达的控制方法前、后(简称为优化前/优化后)的振动效果。
参阅图13、图14,分别为在微信™下拉场景下的X轴线性马达、Z轴线性马达在优化前后的振动波形示意图。具体的,图13中的(a)所示为在微信™下拉场景下的X轴线性马达在优化前的振动波形(即第二振动波形)示意图。图13中的(b)所示为在微信™下拉场景下的X轴线性马达在优化后的振动波形(即第一振动波形)示意图。图14中的(a)所示为在微信™下拉场景下的Z轴线性马达在优化前的振动波形示意图。图14中的(b)所示为在微信™下拉场景下的Z轴线性马达在优化后的振动波形示意图。
对比图13中的(a)和图13中的(b),以及对比图14中的(a)和图14中的(b)可知:对于X轴线性马达以及Z轴线性马达,在优化前:该线性马达在振动过程中,直接从启动阶段切换至刹车阶段,导致其很可能还未达到最大振幅就进行阻尼振动直至停止振动,这会导致振感并不清晰;而在刹车阶段是通过阻尼来使自身停止振动,导致刹车阶段的时间较长,使得振感比较拖沓。而经过本申请实施例优化后:振动波形具有快起和快停阶段,该线性马达可以在极短的时间内达到一个较大的振幅,并停止振动,马达从静止-振动-静止这个过程的时间远远小于优化前该过程所花的时间,可以给用户带来清晰、紧凑的振感,有利于提升用户的振动体验。
进一步的,参阅图15、图16,分别为振动时长小于100ms的情况下,X轴线性马达、Z轴线性马达在优化前后的振动波形示意图。具体的,图15中的(a)为振动时长小于100ms的X轴线性马达在优化前的振动波形,图15中的(b)为振动时长小于100ms的X轴线性马达在优化后的振动波形。图16中的(a)为振动时长小于100ms的Z轴线性马达在优化前的振动波形,图16中的(b)为振动时长小于100ms的Z轴线性马达在优化后的振动波形。
对比图15中的(a)、图15中的(b)可知:在振动时长小于100ms的情况下,在优化前,X轴线性马达的振幅随振动时长的增加而增加并不稳定,且刹车阶段的时间明显较长;而在优化后,X轴线性马达的振幅稳定在一个较大值,且刹车阶段的时间明显相较于优化前的刹车阶段的时间更短。
对比图16中的(a)、图16中的(b)可以看出,在振动时长小于100ms的情况下,在优化前,在振动时长小于50ms时,Z轴线性马达的振幅存在不对称、无规律变化的情况,即进行瞬态振动,同时存在刹车阶段的时间比较长的情况;而在振动时长为50ms~100ms期间,Z轴线性马达的振幅比较稳定,同时存在刹车阶段的时间比较长的情况。而在优化后,Z轴线性马达的振动强度明显更高,马达从静止-振动-静止这个过程的时间远远小于优化前该过程所花的时间,给用户带来的感觉振动不再有拖沓感。
综上所述,本申请通过将仅包括振动时长的振动参数转换为一个具备完整的振动描述的振动数据,并根据该振动数据生成一个能使线性马达快速启动和快速停止的电压波形,以此使得马达能够快速启动以及快速停止振动,给用户带来强烈且紧凑的振感,既能有效提醒用户,又能提升用户的振动体验。
本申请一些实施例提供了一种电子设备,该电子设备可以包括:存储器和一个或多个处理器。该存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中电子设备执行的各个功能或者步骤。该电子设备的结构可以参考图7所示的电子设备的结构。
本申请实施例还提供一种线性马达,该线性马达可以用于实现上述实施例中各种配置参数下的振动波形等,安装有该线性马达的电子设备可以执行上述方法实施例中电子设备执行的各个功能或者步骤。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中电子设备执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行上述方法实施例中电子设备执行的各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种线性马达的控制方法,其特征在于,应用于包括线性马达的电子设备,所述方法包括:
接收用户触发所述线性马达振动的第一振动事件;
在所述第一振动事件对应的振动时长小于或等于预设的第一时长的情况下,控制所述线性马达以第一振动波形振动,所述第一振动波形对应第一启动时间及第一停止时间,所述第一启动时间小于第二启动时间,所述第一停止时间小于第二停止时间;
其中,所述第一启动时间为所述线性马达以所述第一振动波形振动时从开始振动的时刻到达到所述第一振动波形的最大振幅的时刻所需的时间,所述第一停止时间为所述线性马达以所述第一振动波形振动时从达到所述第一振动波形的最大振幅的时刻到停止振动的时刻所需的时间;
所述第二启动时间为所述线性马达以第二振动波形振动时从开始振动的时刻到达到所述第二振动波形的最大振幅的时刻所需的时间,所述第二停止时间为所述线性马达以所述第二振动波形振动时从达到所述第二振动波形的最大振幅的时刻到停止振动的时刻所需的时间,所述第二振动波形为所述线性马达在第一驱动电压作用下的振动波形,所述第一驱动电压的输出频率为所述线性马达的谐振频率,所述第一驱动电压的输出时间为所述振动时长。
2.根据权利要求1所述的方法,其特征在于,所述控制所述线性马达以第一振动波形振动,包括:
根据所述振动时长及所述线性马达的类型生成振动描述数据,所述振动描述数据用于描述所述第一振动波形;
根据所述振动描述数据控制所述线性马达以第一振动波形振动。
3.根据权利要求2所述的方法,其特征在于,所述振动描述数据包括锐度、振动类型及事件持续时间;
若所述线性马达为第一类型,所述振动类型为稳态振动类型、所述锐度为预设的第一数值且所述事件持续时间为所述振动时长;
若所述线性马达为第二类型且所述振动时长小于或等于预设的第二时长,所述振动类型为瞬态振动类型、所述锐度为第二数值且所述事件持续时间为所述预设的第二时长,所述第二数值与所述振动时长呈负相关,所述预设的第二时长小于所述预设的第一时长,所述第一类型为X轴线性马达,所述第二类型为Z轴线性马达。
4.根据权利要求2或3所述的方法,其特征在于,所述根据所述振动时长及所述线性马达的类型生成振动描述数据,包括:
若所述第一振动事件对应的振动时长小于或等于预设的第一时长,将所述振动描述数据的事件持续时间设置为所述振动时长,将所述振动描述数据的锐度设置为预设的第一数值,以及将所述振动描述数据的振动类型设置为稳态振动类型;
判断所述线性马达是否为第二类型且所述振动时长是否小于或等于预设的第二时长,所述第二类型为Z轴线性马达;
若所述线性马达为第二类型且所述振动时长小于或等于预设的第二时长,将所述振动描述数据的事件持续时间调整为所述预设的第二时长,将所述振动描述数据的锐度调整为第二数值,以及将所述振动描述数据的振动类型调整为瞬态振动类型,所述预设的第二时长小于所述预设的第一时长,所述第二数值与所述振动时长呈负相关。
5.根据权利要求1-3中任意一项所述的方法,其特征在于,所述第一振动事件包括以下各项之一:接收到用户解锁所述电子设备的操作、接收到用户在线支付的操作、接收到用户录入人脸的操作、接收到用户释放技能的操作、或者接收到用户下拉聊天界面的操作。
6.根据权利要求1-3中任意一项所述的方法,其特征在于,所述电子设备还包括振动芯片,所述电子设备中部署有第一应用、振动服务、振动硬件抽象层HAL及振动算法库;
所述在所述第一振动事件对应的振动时长小于或等于预设的第一时长的情况下,控制所述线性马达以第一振动波形振动,包括:
响应于所述第一振动事件,所述第一应用向所述振动服务发送振动请求,所述振动请求包括振动参数,所述振动参数包括所述振动时长;
所述振动服务向振动HAL发送所述振动请求;
在所述振动参数指示振动接口为第一接口的情况下,所述振动HAL根据所述振动时长及所述线性马达的类型生成振动描述数据,所述振动描述数据用于描述所述第一振动波形;
所述振动HAL向所述振动算法库发送所述振动描述数据;
所述振动算法库根据所述振动描述数据生成电压驱动波形数据,并向所述振动HAL发送所述电压驱动波形数据,所述电压驱动波形数据用于描述所述第一振动波形对应的驱动电压;
所述振动HAL向所述振动芯片发送所述电压驱动波形数据;
所述振动芯片根据所述电压驱动波形数据向所述线性马达输出驱动电压,以使所述线性马达以所述第一振动波形振动。
7.根据权利要求6所述的方法,其特征在于,所述振动HAL根据所述振动时长及所述线性马达的类型生成振动描述数据,包括:
所述振动HAL判断所述振动时长是否小于或等于所述预设的第一时长;
若所述振动时长小于或等于所述预设的第一时长,所述振动HAL将所述振动描述数据的事件持续时间设置为所述振动时长,将所述振动描述数据的锐度设置为预设的第一数值,以及将所述振动描述数据的振动类型设置为稳态振动类型;
所述振动HAL判断所述线性马达是否为第二类型以及所述振动时长是否小于或等于预设的第二时长;
若所述线性马达为第二类型且所述振动时长小于或等于预设的第二时长,所述振动HAL将所述振动描述数据的事件持续时间调整为所述预设的第二时长,将所述振动描述数据的锐度调整为第二数值,以及将所述振动描述数据的振动类型调整为瞬态振动类型,所述预设的第二时长小于所述预设的第一时长,所述第二数值与所述振动时长呈负相关,所述第二类型为Z轴线性马达。
8.根据权利要求7所述的方法,其特征在于,所述振动HAL根据所述振动时长及所述线性马达的类型生成振动描述数据,还包括:
若所述线性马达为第一类型或所述振动时长大于所述预设的第二时长,所述振动HAL保持所述振动描述数据不变,所述第一类型为X轴线性马达。
9.一种电子设备,其特征在于,所述电子设备包括:存储器、一个或多个处理器、振动芯片和线性马达;所述存储器、所述振动芯片与所述处理器耦合,所述振动芯片与所述线性马达连接;
其中,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-8中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,包括计算机指令;
当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-8中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310616592.9A CN116418270B (zh) | 2023-05-29 | 2023-05-29 | 一种线性马达的控制方法及电子设备 |
CN202311344489.XA CN117578949A (zh) | 2023-05-29 | 2023-05-29 | 一种线性马达的控制方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310616592.9A CN116418270B (zh) | 2023-05-29 | 2023-05-29 | 一种线性马达的控制方法及电子设备 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311344489.XA Division CN117578949A (zh) | 2023-05-29 | 2023-05-29 | 一种线性马达的控制方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116418270A CN116418270A (zh) | 2023-07-11 |
CN116418270B true CN116418270B (zh) | 2023-11-03 |
Family
ID=87051320
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310616592.9A Active CN116418270B (zh) | 2023-05-29 | 2023-05-29 | 一种线性马达的控制方法及电子设备 |
CN202311344489.XA Pending CN117578949A (zh) | 2023-05-29 | 2023-05-29 | 一种线性马达的控制方法及电子设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311344489.XA Pending CN117578949A (zh) | 2023-05-29 | 2023-05-29 | 一种线性马达的控制方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN116418270B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102347678A (zh) * | 2010-07-27 | 2012-02-08 | 日本电产精密株式会社 | 振动发生装置 |
CN110380664A (zh) * | 2019-06-24 | 2019-10-25 | 瑞声科技(新加坡)有限公司 | 一种马达振动控制方法、装置及计算机可读存储介质 |
CN114995629A (zh) * | 2021-12-30 | 2022-09-02 | 荣耀终端有限公司 | 振动方法和振动装置 |
CN115378302A (zh) * | 2021-05-20 | 2022-11-22 | 荣耀终端有限公司 | 线性马达的控制方法、装置、设备及可读存储介质 |
CN115459643A (zh) * | 2021-05-20 | 2022-12-09 | 荣耀终端有限公司 | 线性马达的振动波形调整方法及装置 |
CN116094412A (zh) * | 2021-11-05 | 2023-05-09 | 荣耀终端有限公司 | 线性马达驱动方法、电路及相关装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10097126B2 (en) * | 2013-12-27 | 2018-10-09 | Intel Corporation | Method and apparatus to change resonance frequency of an electronic device |
-
2023
- 2023-05-29 CN CN202310616592.9A patent/CN116418270B/zh active Active
- 2023-05-29 CN CN202311344489.XA patent/CN117578949A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102347678A (zh) * | 2010-07-27 | 2012-02-08 | 日本电产精密株式会社 | 振动发生装置 |
CN110380664A (zh) * | 2019-06-24 | 2019-10-25 | 瑞声科技(新加坡)有限公司 | 一种马达振动控制方法、装置及计算机可读存储介质 |
CN115378302A (zh) * | 2021-05-20 | 2022-11-22 | 荣耀终端有限公司 | 线性马达的控制方法、装置、设备及可读存储介质 |
CN115459643A (zh) * | 2021-05-20 | 2022-12-09 | 荣耀终端有限公司 | 线性马达的振动波形调整方法及装置 |
CN116094412A (zh) * | 2021-11-05 | 2023-05-09 | 荣耀终端有限公司 | 线性马达驱动方法、电路及相关装置 |
CN114995629A (zh) * | 2021-12-30 | 2022-09-02 | 荣耀终端有限公司 | 振动方法和振动装置 |
Non-Patent Citations (1)
Title |
---|
虚拟按键的触觉反馈建模与渲染;李萌芽;《中国优秀硕士论文电子期刊网》;第13-53页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117578949A (zh) | 2024-02-20 |
CN116418270A (zh) | 2023-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020191685A1 (zh) | 一种应用于终端的频率调整方法、装置及电子设备 | |
US11683850B2 (en) | Bluetooth reconnection method and related apparatus | |
CN111464689A (zh) | 一种音频输出方法及终端设备 | |
JP2022548734A (ja) | デバイス能力スケジューリング方法および電子デバイス | |
CN113778574A (zh) | 卡片分享方法、电子设备及通信系统 | |
US10795442B2 (en) | Method of providing vibration and electronic device for supporting same | |
CN115016706B (zh) | 一种线程的调度方法及电子设备 | |
CN117354772A (zh) | 与手写笔建立连接的方法和电子设备 | |
CN116418270B (zh) | 一种线性马达的控制方法及电子设备 | |
CN113641634A (zh) | 一种日志流量控制的方法以及电子设备 | |
CN114253737B (zh) | 电子设备及其内存回收方法、介质 | |
CN116345984B (zh) | 一种线性马达的控制方法及电子设备 | |
CN113380240B (zh) | 语音交互方法和电子设备 | |
CN113079332B (zh) | 移动终端及其录屏方法 | |
CN115309547A (zh) | 处理异步binder调用的方法和装置 | |
CN116524919A (zh) | 设备唤醒方法、相关装置及通信系统 | |
CN114398108A (zh) | 电子设备及其驱动加载方法、介质 | |
CN114828098A (zh) | 数据传输方法和电子设备 | |
CN114548141A (zh) | 生成波形文件的方法、装置、电子设备和可读存储介质 | |
CN113950033A (zh) | 数据传输方法和设备 | |
EP4207782A1 (en) | Screen mirroring method and apparatus, device, and storage medium | |
CN116321089B (zh) | 基于蓝牙播放音频时的调整方法、设备以及存储介质 | |
CN116684521B (zh) | 音频处理方法、设备及存储介质 | |
EP4344220A1 (en) | Electronic device for recording content data and method therefor | |
CN114844984B (zh) | 通知消息的提醒方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |