CN114706477B - 驱动方法、装置、设备及计算机可读存储介质 - Google Patents
驱动方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114706477B CN114706477B CN202210302909.7A CN202210302909A CN114706477B CN 114706477 B CN114706477 B CN 114706477B CN 202210302909 A CN202210302909 A CN 202210302909A CN 114706477 B CN114706477 B CN 114706477B
- Authority
- CN
- China
- Prior art keywords
- vibration
- unit
- sequence
- target
- units
- 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 61
- 230000000149 penetrating effect Effects 0.000 claims abstract description 10
- 230000000694 effects Effects 0.000 claims description 21
- 238000012163 sequencing technique Methods 0.000 claims description 14
- 238000003491 array Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 4
- 210000003811 finger Anatomy 0.000 description 4
- 230000035515 penetration Effects 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 210000001015 abdomen Anatomy 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/016—Input arrangements with force or tactile feedback as computer generated output to the user
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Apparatuses For Generation Of Mechanical Vibrations (AREA)
Abstract
本发明公开了一种驱动方法、装置、设备及计算机可读存储介质,所述驱动方法应用于振动阵列电路系统中的控制器,振动阵列电路系统还包括功率驱动电路和振动阵列,振动阵列中包括多个振动单元,驱动方法包括:从各振动单元中确定目标振动单元和各目标振动单元分别对应的振动时长;对各振动时长进行拆分,得到各目标振动单元分别对应的至少一个单元时长;将各目标振动单元对应的单元时长进行穿插排列得到振动序列;控制功率驱动电路按照振动序列中各单元时长的排列顺序,依次驱动对应的目标振动单元振动相应的单元时长。本发明实现了降低多个振动单元共用一个驱动电路时各个振动单元振动时用户所感受到的先后感,进而提高用户使用体验。
Description
技术领域
本发明涉及电路控制技术领域,尤其涉及一种驱动方法、装置、设备及计算机可读存储介质。
背景技术
在消费电子领域,振动器件能够提供与操作相匹配的振动反馈,给用户带来良好的使用体验。随着元宇宙概念的兴起,AR/VR等设备对触觉反馈的需求越来越高,单个器件所能提供的触觉反馈极其有限,已经无法满足用户对触觉体验真实性的需求,因此需要通过振动阵列来实现更真实和丰富的触觉体验。通过将所有振动单元共用一套驱动电路的方式,可以降低振动阵列所需的驱动电路成本,同时在一定程度上减小穿戴设备的体积、重量。然而,所有振动单元共用一套驱动电路就意味着同一时刻至多仅有一个振动单元产生振动,当同时需要多个振动单元产生振动时,只能通过先后振动的方式近似实现。在振动单元较少、振动时长较短时,用户不容易察觉到单元之间的振动先后差异;在振动单元较多、振动时长较长时,用户就能够察觉到单元之间的振动先后差异,这影响了使用体验。
综上,现亟需一种针对分时复用振动阵列的驱动方法,以解决所有振动单元共用一套驱动电路时产生明显的振动先后差异的问题,提升使用体验。
发明内容
本发明的主要目的在于提供一种驱动方法、装置、设备及计算机可读存储介质,旨在提出一种分时复用的驱动方法,以解决所有振动单元共用一套驱动电路时产生明显的振动先后差异的问题,提升用户使用体验。
为实现上述目的,本发明提供一种驱动方法,所述驱动方法应用于振动阵列电路系统中的控制器,所述振动阵列电路系统还包括功率驱动电路和振动阵列,所述振动阵列中包括多个振动单元,所述驱动方法包括以下步骤:
从各所述振动单元中确定目标振动单元和各所述目标振动单元分别对应的振动时长;
对各所述振动时长进行拆分,得到各所述目标振动单元分别对应的至少一个单元时长;
将各所述目标振动单元对应的所述单元时长进行穿插排列得到振动序列;
控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次驱动对应的目标振动单元振动相应的单元时长。
可选地,所述将各所述目标振动单元对应的所述单元时长进行穿插排列得到振动序列的步骤包括:
确定顺次的多个振动阶段;
对于各所述振动阶段,分别从各所述目标振动单元对应的所述单元时长中选取单元时长进行排列,得到各所述振动阶段分别对应的振动子序列,其中,至少一个所述振动子序列中包括不同的两个所述目标振动单元对应的所述单元时长;
按照各所述振动阶段的顺序将各所述振动子序列顺次组合得到振动序列。
可选地,各所述单元时长的长度相同,所述振动阶段的个数是各所述振动时长中最长的振动时长所拆分得到的单元时长的个数,所述对于各所述振动阶段,分别从各所述目标振动单元对应的所述单元时长中选取单元时长进行排列,得到各所述振动阶段分别对应的振动子序列的步骤包括:
按照各所述振动阶段的顺序,依次为各所述振动阶段确定振动子序列;
其中,为任一所述振动阶段确定振动子序列的步骤包括:
从每个可选振动单元对应的所述单元时长中选取一个单元时长进行排列,得到所述振动阶段对应的振动子序列,其中,所述可选振动单元是各所述目标振动单元中存在未选完的单元时长的振动单元。
可选地,所述从各所述振动单元中确定目标振动单元和各所述目标振动单元分别对应的振动时长的步骤之后,还包括:
按照各所述振动时长从长到短的顺序将各所述目标振动单元进行排序,得到各所述目标振动单元的优先级;
所述从每个可选振动单元对应的所述单元时长中选取一个单元时长进行排列,得到所述振动阶段对应的振动子序列的步骤包括:
从每个可选振动单元对应的所述单元时长中选取一个单元时长,按照各所述目标振动单元的优先级从高到低的顺序将选取的单元时长进行排列,得到所述振动阶段对应的振动子序列。
可选地,所述对各所述振动时长进行拆分,得到各所述目标振动单元分别对应的至少一个单元时长的步骤之后,还包括:
确定多个振动区间,并将各所述单元时长分别拆分为多个微时长,其中,振动区间的个数与每个所述单元时长拆分得到的所述微时长的个数相同;
将每个所述单元时长对应的多个所述微时长分别划分至各所述振动区间;
所述将各所述目标振动单元对应的所述单元时长进行穿插排列得到振动序列的步骤包括:
确定每个所述振动区间分别对应的区间振动序列;
将各所述区间振动序列进行顺次组合得到振动序列;
其中,确定任一所述振动区间对应的所述区间振动序列的步骤包括:
确定顺次的多个振动阶段;
对于各所述振动阶段,分别从各所述目标振动单元对应的所述微时长中选取微时长进行排列,得到各所述振动阶段分别对应的振动子序列,其中,至少一个所述振动子序列中包括不同的两个所述目标振动单元对应的所述微时长;
按照各所述振动阶段的顺序将各所述振动子序列顺次组合得到区间振动序列。
可选地,所述从各所述振动阵列的多个振动单元中确定目标振动单元和各所述目标振动单元对应的振动时长的步骤包括:
确定当前振动场景,并获取与所述当前振动场景对应预设的振动策略;
从所述振动策略中提取目标振动单元和各所述目标振动单元对应的振动时长。
可选地,所述控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次驱动对应的目标振动单元振动相应的单元时长的步骤包括:
从所述振动策略中提取各所述目标振动单元分别对应的振动效果参数;
根据各所述目标振动单元的所述振动效果参数和对应预设的硬件参数,生成各所述目标振动单元分别对应的驱动波形数据流;
将各所述驱动波形数据流输出给所述功率驱动电路,以控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次采用对应的驱动波形数据流驱动对应的目标振动单元振动相应的单元时长。
为实现上述目的,本发明还提供一种驱动装置,所述驱动装置部署于振动阵列电路系统中的控制器,所述振动阵列电路系统还包括功率驱动电路和振动阵列,所述振动阵列中包括多个振动单元,所述驱动装置包括:
确定模块,用于从各所述振动单元中确定目标振动单元和各所述目标振动单元分别对应的振动时长;
拆分模块,用于对各所述振动时长进行拆分,得到各所述目标振动单元分别对应的至少一个单元时长;
排列模块,用于将各所述目标振动单元对应的所述单元时长进行穿插排列得到振动序列;
驱动模块,用于控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次驱动对应的目标振动单元振动相应的单元时长。
为实现上述目的,本发明还提供一种驱动设备,所述驱动设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的驱动程序,所述驱动程序被所述处理器执行时实现如上所述的驱动方法的步骤。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有驱动程序,所述驱动程序被处理器执行时实现如上所述的驱动方法的步骤。
本发明中,通过在振动阵列电路系统中设置功率驱动电路、包括多个振动单元的振动阵列和控制器,通过控制器从各振动单元中确定目标振动单元和各目标振动单元分别对应的振动时长,对各振动时长进行拆分,得到各目标振动单元分别对应的至少一个单元时长;将各目标振动单元对应的单元时长进行穿插排列得到振动序列;控制功率驱动电路按照振动序列中各单元时长的排列顺序,依次驱动对应的目标振动单元振动相应的单元时长,实现了当多个振动单元需要同时振动时,可以通过不同振动单元的振动时长的穿插,以降低各个振动单元振动时用户所感受到的先后感,进而提高用户使用体验。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的结构示意图;
图2为本发明驱动方法第一实施例的流程示意图;
图3为本发明实施例涉及的一种设置振动阵列的可穿戴设备示意图;
图4为本发明实施例涉及的一种振动阵列电路系统示意图;
图5为本发明实施例涉及的一种驱动波形数据流示意图;
图6为本发明实施例涉及的一种振动阵列振动时长分布示意图;
图7为本发明实施例涉及的另一种振动阵列振动时长分布示意图;
图8为本发明驱动装置较佳实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
需要说明的是,本发明实施例驱动设备,所述驱动设备可以是振动阵列电路系统中的控制器,所述振动阵列电路系统还包括功率驱动电路和振动阵列,所述振动阵列中包括多个振动单元,所述振动阵列电路系统可以设置在智能手机、个人计算机、游戏机、VR/AR设备、可穿戴设备等电子设备中,在此不做具体限制。
如图1所示,该驱动设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对驱动设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及驱动程序。操作系统是管理和控制设备硬件和软件资源的程序,支持驱动程序以及其它软件或程序的运行。在图1所示的设备中,用户接口1003主要用于与客户端进行数据通信;网络接口1004主要用于与服务器建立通信连接;而处理器1001可以用于调用存储器1005中存储的驱动程序,并执行以下操作:
从各所述振动单元中确定目标振动单元和各所述目标振动单元分别对应的振动时长;
对各所述振动时长进行拆分,得到各所述目标振动单元分别对应的至少一个单元时长;
将各所述目标振动单元对应的所述单元时长进行穿插排列得到振动序列;
控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次驱动对应的目标振动单元振动相应的单元时长。
进一步地,所述将各所述目标振动单元对应的所述单元时长进行穿插排列得到振动序列的操作包括:
确定顺次的多个振动阶段;
对于各所述振动阶段,分别从各所述目标振动单元对应的所述单元时长中选取单元时长进行排列,得到各所述振动阶段分别对应的振动子序列,其中,至少一个所述振动子序列中包括不同的两个所述目标振动单元对应的所述单元时长;
按照各所述振动阶段的顺序将各所述振动子序列顺次组合得到振动序列。
进一步地,各所述单元时长的长度相同,所述振动阶段的个数是各所述振动时长中最长的振动时长所拆分得到的单元时长的个数,所述对于各所述振动阶段,分别从各所述目标振动单元对应的所述单元时长中选取单元时长进行排列,得到各所述振动阶段分别对应的振动子序列的操作包括:
按照各所述振动阶段的顺序,依次为各所述振动阶段确定振动子序列;
其中,为任一所述振动阶段确定振动子序列的操作包括:
从每个可选振动单元对应的所述单元时长中选取一个单元时长进行排列,得到所述振动阶段对应的振动子序列,其中,所述可选振动单元是各所述目标振动单元中存在未选完的单元时长的振动单元。
进一步地,所述从各所述振动单元中确定目标振动单元和各所述目标振动单元分别对应的振动时长的操作之后,处理器1001还可以用于调用存储器1005中存储的驱动程序,执行以下操作:
按照各所述振动时长从长到短的顺序将各所述目标振动单元进行排序,得到各所述目标振动单元的优先级;
所述从每个可选振动单元对应的所述单元时长中选取一个单元时长进行排列,得到所述振动阶段对应的振动子序列的操作包括:
从每个可选振动单元对应的所述单元时长中选取一个单元时长,按照各所述目标振动单元的优先级从高到低的顺序将选取的单元时长进行排列,得到所述振动阶段对应的振动子序列。
进一步地,所述对各所述振动时长进行拆分,得到各所述目标振动单元分别对应的至少一个单元时长的操作之后,处理器1001还可以用于调用存储器1005中存储的驱动程序,执行以下操作:
确定多个振动区间,并将各所述单元时长分别拆分为多个微时长,其中,振动区间的个数与每个所述单元时长拆分得到的所述微时长的个数相同;
将每个所述单元时长对应的多个所述微时长分别划分至各所述振动区间;
所述将各所述目标振动单元对应的所述单元时长进行穿插排列得到振动序列的操作包括:
确定每个所述振动区间分别对应的区间振动序列;
将各所述区间振动序列进行顺次组合得到振动序列;
其中,确定任一所述振动区间对应的所述区间振动序列的操作包括:
确定顺次的多个振动阶段;
对于各所述振动阶段,分别从各所述目标振动单元对应的所述微时长中选取微时长进行排列,得到各所述振动阶段分别对应的振动子序列,其中,至少一个所述振动子序列中包括不同的两个所述目标振动单元对应的所述微时长;
按照各所述振动阶段的顺序将各所述振动子序列顺次组合得到区间振动序列。
进一步地,所述从各所述振动阵列的多个振动单元中确定目标振动单元和各所述目标振动单元对应的振动时长的操作包括:
确定当前振动场景,并获取与所述当前振动场景对应预设的振动策略;
从所述振动策略中提取目标振动单元和各所述目标振动单元对应的振动时长。
进一步地,所述控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次驱动对应的目标振动单元振动相应的单元时长的操作包括:
从所述振动策略中提取各所述目标振动单元分别对应的振动效果参数;
根据各所述目标振动单元的所述振动效果参数和对应预设的硬件参数,生成各所述目标振动单元分别对应的驱动波形数据流;
将各所述驱动波形数据流输出给所述功率驱动电路,以控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次采用对应的驱动波形数据流驱动对应的目标振动单元振动相应的单元时长。
基于上述的结构,提出驱动方法的各个实施例。
参照图2,图2为本发明驱动方法第一实施例的流程示意图。
本发明实施例提供了驱动方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。在本实施例中,驱动方法应用于振动阵列电路系统中的控制器,所述振动阵列电路系统还包括功率驱动电路和振动阵列,所述振动阵列中包括多个振动单元。振动阵列电路系统可以设置在智能手机、个人电脑、游戏机、VR/AR设备、可穿戴设备等电子设备中,在本实施例中并不做限制。在本实施例中,所述驱动方法包括:
步骤S10,从各所述振动单元中确定目标振动单元和各所述目标振动单元分别对应的振动时长;
振动单元可以是能够通过驱动产生振动的器件,例如线性谐振马达或转子偏心马达等,具体在本实施例中并不做限制。振动阵列中的各个振动单元的类型可以相同也可以不同,振动单元的数量可以根据振动阵列电路系统的应用场景来确定,在本实施例中并不做限制。例如,在一实施方式中,如图3所示,为一种手套形态的可穿戴设备,在掌心和每根手指的指腹位置各安装了1个振动单元,合计6个,分别编号为M1、M2、M3、M4、M5和M6。
振动阵列中的各个振动单元可以被功率驱动电路独立驱动,由控制器在不同的时间控制功率驱动电路驱动对应的振动单元振动。功率驱动电路可以采用常规的振动单元驱动电路实现,在本实施例中并不做限制。例如,在一实施方式中,功率驱动电路可以由直流电源和功率放大器(简称功放)组成,该功放获取到驱动波形数据流,并将该驱动波形数据流转化为具备带载能力的电压(也称驱动电压)输出。
其中,控制器可通过向功率驱动电路输出指示信号的方式,或通过向控制功率驱动电路与各个振动单元之间接通与否的开关输出信号的方式,或通过其他方式,来实现控制功率驱动电路驱动对应的振动单元,在本实施例中并不做限制。
例如,在一实施方式中,振动阵列电路系统中还可以包括选择开关阵列。
各振动单元的负端与功率驱动电路的负端相连接。选择开关阵列包括与所振动阵列中各振动单元数目相同的开关,各开关的正端与功率驱动电路的正端相连接,各开关的负端与振动阵列中的各所述振动单元的正端一对一连接,各开关根据选择信号将对应的振动单元接入功率驱动电路的正端。选择开关阵列中的各个开关可以采用常规的根据信号进行导通或关断的开关,例如开关可以是接收到高电平时导通,接收到低电平时关断等,具体在本实施例中并不做限制。例如,在一实施方式中,每个开关可以由一个功率开关管和一个反向并联二极管组成。选择信号是用于使得开关导通以连接功率驱动电路和对应的振动单元的信号,例如,当开关是高电平时导通时,那么选择信号可以是一个高电平,对应地,控制器给不需要振动的振动单元对应的开关输出低电平信号。通过上述设置的振动阵列电路系统,振动阵列中的各个振动单元可以被功率驱动电路独立驱动,由控制器在不同的时间向选择开关阵列输出不同的选择信号,以控制功率驱动电路驱动对应的振动单元振动,从而实现多个振动单元共用一套功率驱动电路,降低了驱动电路的成本。如图4所示,给出了一种振动阵列电路系统的示意图,图中只示出了6个振动单元组成的振动阵列,在实际应用场景中,振动单元的个数可根据需要进行增减。
控制器先从各个振动单元中确定需要振动的振动单元(以下称为目标振动单元以示区分),以及确定目标振动单元分别对应的振动时长,也即所需要振动的振动时长。需要说明的是,由于本实施例方案应用于多个振动单元需要同时振动的场景,所以以目标振动单元的数量有多个为例来进行具体说明。
各个目标振动单元的振动时长可能相同也可能不同,具体时长与使用场景有关。
在一实施方式中,控制器可以根据当前的振动场景来确定目标振动单元和各目标振动单元对应的振动时长。不同的振动场景可能需要振动的振动单元和振动时长是不同的,例如,在如图所示的可穿戴设备中,当用户食指触摸到对应物体时,需要食指处安装的振动单元振动,当用户拇指触摸到对应物体时,需要拇指处安装的振动单元振动,根据每个指头的触摸操作所触发的振动指令,控制器可以确定当前的振动场景,进而可以确定需要振动的振动单元。
步骤S20,对各所述振动时长进行拆分,得到各所述目标振动单元分别对应的至少一个单元时长;
为实现分时复用的驱动方法,控制器在获取到各个目标振动单元的振动时长后,对各个振动时长分别进行拆分,每一个振动时长至少拆分为一个单元时长。可以理解的是,一个目标振动单元对应一个振动时长,拆分后单元时长也是与该目标振动单元对应的,也即,各个目标振动单元分别对应至少一个单元时长。拆分的意思是指将振动时长拆分后得到的单元时长进行叠加,其总时长是与该振动时长相同的,例如,振动时长是3秒,拆分为3个1秒的单元时长。对各振动时长进行拆分的规则在本实施例中并不做限制。
例如,在一实施方式中,可以设置一个最短时长,每个单元时长与该最短时长相同,那么,振动时长较长的拆分得到的单元时长个数较多,振动时长较短的拆分得到的单元时长个数较少。例如,振动单元M1的振动时长为2秒,振动单元M2的振动时长为4秒,最短时长为1秒,那么M1的振动时长拆分得到2个单元时长,M2的振动时长拆分得到4个单元时长。
又如,在另一实施方式中,可以设置每个振动时长拆分得到的单元时长个数相等,将振动时长按个数拆分为等分的单元时长,那么,不同振动单元对应的单元时长的长度是不同的。
步骤S30,将各所述目标振动单元对应的所述单元时长进行穿插排列得到振动序列;
控制器在将各个振动时长进行拆分后,将各个目标振动单元对应的单元时长进行穿插排列,得到一个由各个单元时长组成的序列,以下称为振动序列。可以理解的是,由于每个单元时长都有各自对应的目标振动单元,所以由各个单元时长排列得到的振动序列,也表示了各个目标振动单元的振动顺序。
穿插排列是指一种使得不同目标振动单元对应的单元时长交替排列的排列方式,目的是使得不同振动单元的单元时长被分隔开,不要集中在一起。需要说明的是,穿插排列并不表示每个目标振动单元的多个单元时长都得被其他目标振动单元的单元时长隔开,只要有至少一个目标振动单元的至少两个单元时长被其他目标振动单元隔开,相比于不隔开(振动时长作为一个整体)的方式,都能够达到降低两个振动单元共用一套驱动电路时的振动先后差异的效果。在具体实施方式中,可以根据需要设置不同的穿插排列方式,达到不同的穿插力度,以实现对振动先后差异的不同降低力度。在本实施例中,对穿插排列的具体方式并不做限制。
例如,在一实施方式中,可以将第一个目标振动单元对应的单元时长先进行排列,再将第二个目标振动单元对应的单元时长采用插空的方式,依次插入到已排列的单元时长的中间,在插入过程中,在有位置的情况下,保证第二个目标振动单元对应的各个单元时长不相邻,依次类推地插入第n个目标振动单元对应的单元时长。
步骤S40,控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次驱动对应的目标振动单元振动相应的单元时长。
控制器在得到振动阵列后,可以控制功率驱动电路按照该振动阵列中各个单元时长的排列顺序,依次驱动对应的目标振动单元振动相应的单元时长。控制器控制功率驱动电路按顺序驱动目标振动单元振动的具体实现方式在本实施例中并不做限制。例如,在一实施方式中,当采用如图所示4所示的振动阵列电路系统时,控制器可以按照振动序列中各个单元时长的排列顺序,从第一个单元时长开始,向选择开关阵列输出针对第一个单元时长对应的目标振动单元的选择信号,信号持续第一单元时长,选择开关阵列根据该选择信号,将功率驱动电路与该目标振动单元接通,使得功率驱动电路输出驱动电压驱动该目标振动单元振动第一单元时长;在经过第一单元时长后,控制器向选择开关阵列输出针对第二个单元时长对应的目标振动单元的选择信号,信号持续第二单元时长,选择开关振动根据该选择信号,将功率驱动电路与该目标振动单元接通,使得功率驱动电路输出驱动电压驱动该目标振动单元振动第二单元时长;依次类推,直到最后一个单元时长结束,控制器再获取下一次需要振动的目标振动单元及其振动时长。
功率驱动电路驱动振动单元时,可以根据预设或实时生成的驱动波形数据流来输出驱动电压,驱动波形数据流包括按照时间顺序排列的多个驱动电压值,表示功率驱动电路依次需要输出的驱动电压值。
进一步地,在一实施方式中,所述步骤S10包括:
步骤S101,确定当前振动场景,并获取与所述当前振动场景对应预设的振动策略;
步骤S102,从所述振动策略中提取目标振动单元和各所述目标振动单元对应的振动时长。
在本实施例中,可以预先设置不同的振动场景,并针对不同的振动场景设置振动策略,振动策略中可以规定该振动场景所需要振动的振动单元,所需振动的时长。进一步地,在一些实施方式中,振动策略还可以规定该振动场景的其它参数,例如,可以规定功率驱动电路所需的驱动波形数据流。
控制器可以先确定当前的振动场景,再获取与该振动场景对应预设的振动策略。其中,控制器确定振动场景的具体实现方式在本实施例中并不做限制,例如可以是控制器根据触发的振动指令,从振动指令中提取振动场景。
控制器在获取到振动策略后,即从振动策略中提取出目标振动单元和目标振动单元对应的振动时长。
进一步地,在一实施方式中,所述步骤S40包括:
步骤S401,从所述振动策略中提取各所述目标振动单元分别对应的振动效果参数;
在本实施方式中,驱动波形数据流可以由控制器根据目标振动单元和振动效果来实时生成,以实现振动阵列丰富的振动效果。
具体地,振动策略中还可以规定目标振动单元对应的振动效果参数,振动效果参数可以是预期振动强度、振动频率等,具体在此并不做限制。控制器从振动策略中提取出各个目标振动单元对应的振动效果参数。
步骤S402,根据各所述目标振动单元的所述振动效果参数和对应预设的硬件参数,生成各所述目标振动单元分别对应的驱动波形数据流;
控制器对每一个目标振动单元,根据该目标振动单元的振动效果参数和与该目标振动单元对应预设的硬件参数,生成该目标振动单元对应的驱动波形数据流。其中,每个振动单元预先设置了对应的硬件参数,硬件参数中可以包括振动单元的类型,还可以包括其他参数项,根据振动单元的类型不同,硬件参数可能包括其他参数项,也可能不包括其他参数项。例如,线性谐振马达的其他硬件参数项可以包括谐振频率。
根据振动效果参数和硬件参数生成驱动波形数据流的方法有多种,根据振动效果参数所包括的参数项和硬件参数所包括的参数项不同,生成驱动波形数据流的方法也不同,在本实施方式中并不做限制。
例如,在一实施方式中,当所述振动效果参数包括预期振动强度时,控制器可以提取硬件参数中的振动单元类型,若振动单元类型表征目标振动单元是线性谐振马达,那么,控制器可以计算预期振动强度对应的驱动电压幅值。其中,振动强度与电压幅值的转换公式可以预先根据需要定义,在此并不做限制,控制器可以根据该转换公式计算得到预期振动强度对应的驱动电压幅值。控制器在计算得到驱动电压幅值后,进一步生成频率为该硬件参数中的谐振频率,以及幅值为该驱动电压幅值的正弦波,将该正弦波作为目标振动单元对应的驱动波形数据流。例如,如图5所示,若目标振动单元为线性谐振马达(LRA),其谐振频率为f01,预期振动强度为Am1,产生该振动强度所需的电压幅值为Um1,则生成的驱动波形数据流为频率为f01的正弦波,其幅值为Um1;若目标振动单元为线性谐振马达(LRA),其谐振频率为f02,预期振动强度为Am2,产生该振动强度所需的电压幅值为Um2,则生成的驱动波形数据流为频率为f02的正弦波,其幅值为Um2。
又如,在另一实施方式中,当所述振动效果参数包括预期振动强度时,控制器可以提取硬件参数中的振动单元类型,若振动单元类型表征目标振动单元是转子偏心马达,那么,控制器可以计算预期振动强度对应的驱动电压幅值。其中,振动强度与电压幅值的转换公式可以预先根据需要定义,在此并不做限制,控制器可以根据该转换公式计算得到预期振动强度对应的驱动电压幅值。控制器在计算得到驱动电压幅值后,生成幅值为该驱动电压幅值的恒定直流信号,将该恒定直流信号作为目标振动单元对应的驱动波形数据流。例如,如图5所示,目标振动单元为转子偏心马达(ERM),预期振动强度为Am3,产生该振动强度所需的电压幅值为Um3,则生成的驱动波形数据流为幅值为Um3的恒定直流信号。或者,控制器在计算得到驱动电压幅值后,根据驱动电压幅值和振动阵列电路系统的直流电源电压计算得到占空比(以下称为目标占空比),具体可以将驱动电压幅值除以振动阵列电路系统的直流电源电压得到该目标占空比。控制器在计算得到目标占空比后,生成占空比为该目标占空比,幅值为该直流电源电压的高频斩波PWM(Pulse width modulation,脉冲宽度调制)信号,将该高频斩波PWM信号作为目标振动单元对应的驱动波形数据流。例如,如图5所示,若目标振动单元为转子偏心马达(ERM),预期振动强度为Am3,产生该振动强度所需的电压幅值为Um3,该振动阵列系统的直流电源电压为Udc,则计算目标占空比d=Um3/Udc,生成的驱动波形数据流为占空比为d、幅值为Udc的高频斩波PWM信号。
步骤S403,将各所述驱动波形数据流输出给所述功率驱动电路,以控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次采用对应的驱动波形数据流驱动对应的目标振动单元振动相应的单元时长。
控制器在生成驱动波形数据流后,可以将驱动波形数据流输出给功率驱动电路,以控制功率驱动电路按照振动序列中各单元时长的排列顺序,依次采用对应的驱动波形数据流驱动对应的目标振动单元振动相应的单元时长。在具体实施方式中,控制器可以将各个振动单元的驱动波形数据流按照振动阵列中各单元时长的排列顺序依次输出给功率驱动电路;也即,将第一个单元时长对应的目标振动单元的驱动波形数据流输出给功率驱动电路,在经过第一个单元时长后,再将第二个单元时长对应的目标振动单元的驱动波形数据流输出给功率驱动电路,依次类推。
在本实施例中,通过在振动阵列电路系统中设置功率驱动电路、包括多个振动单元的振动阵列和控制器,通过控制器从各振动单元中确定目标振动单元和各目标振动单元分别对应的振动时长,对各振动时长进行拆分,得到各目标振动单元分别对应的至少一个单元时长;将各目标振动单元对应的单元时长进行穿插排列得到振动序列;控制功率驱动电路按照振动序列中各单元时长的排列顺序,依次驱动对应的目标振动单元振动相应的单元时长,实现了当多个振动单元需要同时振动时,可以通过不同振动单元的振动时长的穿插,以降低各个振动单元振动时用户所感受到的先后感,进而提高用户使用体验。
进一步地,基于上述第一实施例,提出本发明驱动方法第二实施例,在本实施例中,所述步骤S30包括:
步骤S301,确定顺次的多个振动阶段;
在本实施例中,提出一种穿插排列的方式。具体地,控制器可以先确定顺次的多个振动阶段。振动阶段的个数可以根据需要进行设置,在本实施例中并不做限制。
步骤S302,对于各所述振动阶段,分别从各所述目标振动单元对应的所述单元时长中选取单元时长进行排列,得到各所述振动阶段分别对应的振动子序列,其中,至少一个所述振动子序列中包括不同的两个所述目标振动单元对应的所述单元时长;
控制器根据对于每个振动阶段,从各个目标振动单元对应的单元时长中选取单元时长进行排列,得到一个序列(以下称为振动子序列),该振动子序列作为该振动阶段所对应的振动子序列,如此,可以得到每个振动阶段分别对应的一个振动子序列。
其中,从各个目标振动单元对应的单元时长中选取单元时长来进行排列得到振动子阵列时,是无放回的选取,也即,每取一个,后面可选的单元时长就少一个。对于一个振动子序列,可以是从每一个目标振动单元的单元时长中都选取一个来组成该振动子序列,也可以是从部分目标振动单元的单元时长中选取,在本实施例中并不做限制,但,为实现降低不同振动单元振动时的先后感,在选取时,保证有至少一个振动子序列中包括不同的两个目标振动单元对应的单元时长。
在将选取出的单元时长进行排列时,可以随机排列或采取其他方式排列,在本实施例中并不做限制。
步骤S303,按照各所述振动阶段的顺序将各所述振动子序列顺次组合得到振动序列。
控制器在得到各个振动阶段对应的振动子序列后,可以按照各个振动阶段的顺序将各个振动子序列顺次组合,得到振动序列。例如,假设有3个振动阶段s1、s2、s3,分别对应的振动子序列是[t1、t2、t3]、[t4、t5]、[t6、t7],那么按照s1、s2、s3这样的排列顺序对三个振动子序列进行组合后,得到的振动序列为[t1、t2、t3、t4、t5、t6、t7]。
进一步地,在一实施方式中,所述步骤S302包括:
步骤S3021,按照各所述振动阶段的顺序,依次为各所述振动阶段确定振动子序列;
在本实施方式中,在对振动时长进行拆分时,可以使得各个单元时长的长度可以是相同的,在确定振动阶段时,可以使得振动阶段的个数是各个振动时长中最长的振动时长所拆分得到的单元时长的个数。
控制器可以按照各个振动阶段的顺序,依次地为各个振动阶段确定振动子序列,也即,先确定第一个振动阶段的振动子序列,再确定第二个振动阶段的振动子序列,依次类推。
其中,为任一所述振动阶段确定振动子序列的步骤包括:
步骤a,从每个可选振动单元对应的所述单元时长中选取一个单元时长进行排列,得到所述振动阶段对应的振动子序列,其中,所述可选振动单元是各所述目标振动单元中存在未选完的单元时长的振动单元。
为各个振动阶段中任一一个振动阶段确定振动子序列时,控制器可以从每个可选振动单元对应的单元时长中选取一个单元时长来参与排列,得到该振动阶段对应的振动子序列。可选振动单元是指目标振动单元在存在未选完的单元时长的振动单元,也即,目标振动单元的单元时长每次选一个少一个,当振动阶段的个数要大于该目标振动单元的单元时长个数时,就可能在后面几个振动阶段时,该目标振动单元的单元时长已被选完,那么该目标振动单元就不是可选振动单元。
在本实施方式中,通过按照振动阶段的排列顺序来依次为各个振动阶段选取振动子阵列,并且在前的振动阶段必须选取一个可选振动单元的单元时长,以实现各个振动单元几乎同时开始振动,避免振动时长短的振动单元快结束振动或已结束振动时,振动时长长的振动单元才开始振动,从而进一步降低了各个振动单元振动时的先后感,提高用户使用体验。
进一步地,在一实施方式中,所述步骤S10之后,还包括:
步骤S50,按照各所述振动时长从长到短的顺序将各所述目标振动单元进行排序,得到各所述目标振动单元的优先级;
在本实施方式中,控制器可以在对针对振动阶段选取的单元时长进行排列时,进一步地按照目标振动单元的优先级来进行排序。
具体地,控制器可以先按照振动时长从长到短的顺序将各个目标振动单元进行排序,得到各个目标振动单元的优先级,也即,振动时长长的目标振动时长优先级高,振动时长短的目标振动时长优先级低。
所述步骤a包括:
步骤b,从每个可选振动单元对应的所述单元时长中选取一个单元时长,按照各所述目标振动单元的优先级从高到低的顺序将选取的单元时长进行排列,得到所述振动阶段对应的振动子序列。
控制器在从每个可选振动单元对应的单元时长中选取一个单元时长后,可以按照目标振动单元的优先级从高到低的顺序,将选取的单元时长进行排列,从而得到该振动阶段对应的振动子序列。也即,一个单元时长对应的目标振动单元的优先级越高,该单元时长在振动子序列中的顺序越靠前。
通过将各个单元时长按照对应目标振动单元的优先级从高到低来排序,可以进一步地使得振动时长长的目标振动单元早点振动完,也能够保证各个目标振动单元在振动时的时间间隔更加均匀,进而使得用户更不易察觉出各个目标振动单元是在分时振动,从而提高用户的使用体验。
在一实施方式中,如图6所示,以6个目标振动单元为例进行说明。假设6个目标振动单元分别表示为M1、M2、M3、M4、M5和M6,振动时长分别为2、4、3、7、8和6(单位假设为秒)。控制器将每个目标振动单元的振动时长拆分为多个单元时长(这里假设每个单元时长为1秒),所拆分的单元时长叠加后的总时长与该目标振动单元的振动时长一致,例如振动单元M1被拆分为2个单元时长,振动单元M6被拆分为6个单元时长;控制器根据振动时长最长的振动单元所包含的单元时长个数,将一次完整振动过程划分为同等数目的多个振动阶段,例如本例中振动单元M5的振动时长最长,包含8个单元时长,则将本次完整振动过程划分为s1、s2、s3、s4、s5、s6、s7和s8这8个阶段;控制器按照振动时长由大到小的顺序,给振动单元重新排序,本例中振动单元M1、M2、M3、M4、M5和M6的振动时长分别为2、4、3、7、8和6个单元时长,因此这6个振动单元对应的顺序为6、4、5、2、1、3,即6个振动单元的先后顺序为M5、M4、M6、M2、M3和M1(也即表示各个振动单元的优先级);控制器在每个振动阶段,按照振动单元排序的先后顺序,依据每个振动单元在每个阶段至多安排1个单元时长的原则,将不同振动单元的单元时长穿插排列,若在当前阶段之前某个振动单元的单元时长均已安排完毕,则跳过该振动单元。例如在s1阶段,根据振动单元排序的先后顺序M5、M4、M6、M2、M3和M1,依次排列了一个单元时长,即在s1阶段的6个单元时长中,选择信号经历了6次变化,分别是s1阶段第一个单元时长对应的000010,第二个单元时长对应的000100,第三个单元时长对应的000001,第四个单元时长对应的010000,第五个单元时长对应的001000,第六个单元时长对应的100000;又例如在s3阶段,在该阶段之前振动单元M1的2个单元时长均已安排完毕,直接跳过,则根据振动单元排序的先后顺序M5、M4、M6、M2和M3,依次排列了一个单元时长,即在s3阶段的5个单元时长中,选择信号经历了5次变化,分别是s3阶段第一个单元时长对应的000010,第二个单元时长对应的000100,第三个单元时长对应的000001,第四个单元时长对应的010000,第五个单元时长对应的001000;以此类推,在s8阶段,在该阶段之前振动单元M4、M6、M2、M3和M1的所有单元时长均已安排完毕,直接跳过,则根据振动单元排序的先后顺序M5,依次排列了一个单元时长,即在s8阶段的1个单元时长中,选择信号经历了1次变化,分别是s8阶段第一个单元时长对应的000010;s8阶段结束后,表示本次完整振动过程结束,选择信号统一设置为000000,等待下一次完整振动过程的开始。
进一步地,基于上述第一和/或第二实施例,提出本发明驱动方法第三实施例,在本实施例中,所述步骤S20之后,还包括:
步骤S60,确定多个振动区间,并将各所述单元时长分别拆分为多个微时长,其中,振动区间的个数与每个所述单元时长拆分得到的所述微时长的个数相同;
步骤S70,将每个所述单元时长对应的多个所述微时长分别划分至各所述振动区间;
在本实施例中,提出一种穿插排列方式,进一步降低各个振动单元振动时的先后感。
具体地,控制器先确定多个振动区间,振动区间的个数可以根据需要确定,在此并不做限制。在拆分得到各个单元时长后,控制器将每个单元时长进一步地进行拆分,每个单元时长均拆分得到多个微时长,每个单元时长所拆分得到的微时长的个数与振动驱动的个数相同,这样,每个单元时长拆分得到的微时长恰好与各个振动区间一一对应,控制器将每个单元时长对应的多个微时长分别划分至各个振动区间。
所述步骤S30包括:
步骤S304,确定每个所述振动区间分别对应的区间振动序列;
步骤S305,将各所述区间振动序列进行顺次组合得到振动序列;
对于每个振动区间中的各个微时长,再采用与上述第二实施例中类似的方式去进行穿插排列,得到每个振动区间分别对应的区间振动阵列。再将各个区间振动阵列进行顺次组合,得到振动阵列。
其中,确定任一所述振动区间对应的所述区间振动序列的步骤包括:
步骤c,确定顺次的多个振动阶段;
步骤d,对于各所述振动阶段,分别从各所述目标振动单元对应的所述微时长中选取微时长进行排列,得到各所述振动阶段分别对应的振动子序列,其中,至少一个所述振动子序列中包括不同的两个所述目标振动单元对应的所述微时长;
步骤e,按照各所述振动阶段的顺序将各所述振动子序列顺次组合得到区间振动序列。
本实施例中步骤c-e的具体实施过程可参照上述第二实施例中步骤S301-S303的具体实施过程,在此不做重复追溯。
在本实施例中,通过先将整个振动过程划分为多个振动区间,再对每个振动区间划分为多个振动阶段,在每个振动阶段对各个目标振动单元对应的微时长进行穿插排列,可以进一步地加大对各个目标振动单元的振动时长的穿插力度,从而进一步降低各个振动单元振动时的先后感,提高用户使用体验。
在一实施方式中,如图7所示,以6个目标振动单元为例进行说明。假设6个目标振动单元分别表示为M1、M2、M3、M4、M5和M6,振动时长分别为2、4、3、7、8和6(单位假设为秒)。控制器将每个目标振动单元的振动时长拆分为多个单元时长,所拆分的单元时长叠加后的总时长与该振动单元的振动时长一致,例如振动单元M1被拆分为2个单元时长,振动单元M6被拆分为6个单元时长;控制器将一次完整的振动过程平均拆分为多个振动区间,本例中拆分为5个振动区间e1、e2、e3、e4和e5;控制器将每个单元时长平均拆分为更小的微时长,拆分的个数与振动区间的数目一致。例如本例中将每个单元时长拆分为5个更小的微时长,分别放置在5个振动区间e1、e2、e3、e4和e5中,每个振动区间中微时长的排列法则与上述第二实施例中每个完整振动过程单元时长的排列法则一致;控制器根据振动时长最长的振动单元所包含的单元时长个数,将一个振动区间划分为同等数目的多个振动阶段,例如本例中振动单元M5的振动时长最长,包含8个单元时长,则将该振动区间划分为s1、s2、s3、s4、s5、s6、s7和s8这8个阶段;控制器按照振动时长由大到小的顺序,给振动单元重新排序,本例中振动单元M1、M2、M3、M4、M5和M6的振动时长分别为2、4、3、7、8和6个单元时长,因此这6个振动单元对应的顺序为6、4、5、2、1、3,即6个振动单元的先后顺序为M5、M4、M6、M2、M3和M1;控制器在每个振动阶段,按照振动单元排序的先后顺序,依据每个振动单元在每个阶段至多安排1个微时长的原则,将不同振动单元的微时长穿插排列,若在当前阶段之前某个振动单元已安排的微时长个数与该振动单元所包含的单元时长个数相等,则跳过该振动单元。例如在s1阶段,根据振动单元排序的先后顺序M5、M4、M6、M2、M3和M1,依次排列了一个微时长,即在s1阶段的6个微时长中,选择信号经历了6次变化,分别是s1阶段第一个微时长对应的000010,第二个微时长对应的000100,第三个微时长对应的000001,第四个微时长对应的010000,第五个微时长对应的001000,第六个微时长对应的100000;又例如在s3阶段,在该阶段之前振动单元M1已安排的微时长个数与该振动单元所包含的单元时长个数相等,均为2,因此直接跳过,则根据振动单元排序的先后顺序M5、M4、M6、M2和M3,依次排列了一个微时长,即在s3阶段的5个微时长中,选择信号经历了5次变化,分别是s3阶第一个微时长对应的000010,第二个微时长对应的000100,第三个微时长对应的000001,第四个微时长对应的010000,第五个微时长对应的001000;以此类推,在s8阶段,在该阶段之前,振动单元M4、M6、M2、M3和M1已安排的微时长个数与该振动单元所包含的单元时长个数相等,直接跳过,则根据振动单元排序的先后顺序M5,依次排列了一个微时长,即在s8阶段的1个微时长中,选择信号经历了1次变化,分别是s8阶段第一个微时长对应的000010;s8阶段结束后,表示本振动区间结束,重复该振动区间的微时长的分配和选择信号的确定过程,直至5个振动区间均结束,表示本次完整振动过程结束,将选择信号统一设置为000000,等待下一次完整振动过程的开始。
此外,本发明实施例还提出一种驱动装置,参照图8,所述驱动装置部署于振动阵列电路系统中的控制器,所述振动阵列电路系统还包括功率驱动电路和振动阵列,所述振动阵列中包括多个振动单元,所述驱动装置包括:
确定模块10,用于从各所述振动单元中确定目标振动单元和各所述目标振动单元分别对应的振动时长;
拆分模块20,用于对各所述振动时长进行拆分,得到各所述目标振动单元分别对应的至少一个单元时长;
排列模块30,用于将各所述目标振动单元对应的所述单元时长进行穿插排列得到振动序列;
驱动模块40,用于控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次驱动对应的目标振动单元振动相应的单元时长。
进一步地,所述排列模块30还用于:
确定顺次的多个振动阶段;
对于各所述振动阶段,分别从各所述目标振动单元对应的所述单元时长中选取单元时长进行排列,得到各所述振动阶段分别对应的振动子序列,其中,至少一个所述振动子序列中包括不同的两个所述目标振动单元对应的所述单元时长;
按照各所述振动阶段的顺序将各所述振动子序列顺次组合得到振动序列。
进一步地,各所述单元时长的长度相同,所述振动阶段的个数是各所述振动时长中最长的振动时长所拆分得到的单元时长的个数,所述排列模块30还用于:
按照各所述振动阶段的顺序,依次为各所述振动阶段确定振动子序列;
其中,为任一所述振动阶段确定振动子序列的操作包括:
从每个可选振动单元对应的所述单元时长中选取一个单元时长进行排列,得到所述振动阶段对应的振动子序列,其中,所述可选振动单元是各所述目标振动单元中存在未选完的单元时长的振动单元。
进一步地,驱动装置还包括:
排序模块,用于按照各所述振动时长从长到短的顺序将各所述目标振动单元进行排序,得到各所述目标振动单元的优先级;
所述排列模块30还用于:从每个可选振动单元对应的所述单元时长中选取一个单元时长,按照各所述目标振动单元的优先级从高到低的顺序将选取的单元时长进行排列,得到所述振动阶段对应的振动子序列。
进一步地,所述拆分模块20还用于:
确定多个振动区间,并将各所述单元时长分别拆分为多个微时长,其中,振动区间的个数与每个所述单元时长拆分得到的所述微时长的个数相同;
将每个所述单元时长对应的多个所述微时长分别划分至各所述振动区间;
所述排列模块30还用于:
确定每个所述振动区间分别对应的区间振动序列;
将各所述区间振动序列进行顺次组合得到振动序列;
其中,确定任一所述振动区间对应的所述区间振动序列的操作包括:
确定顺次的多个振动阶段;
对于各所述振动阶段,分别从各所述目标振动单元对应的所述微时长中选取微时长进行排列,得到各所述振动阶段分别对应的振动子序列,其中,至少一个所述振动子序列中包括不同的两个所述目标振动单元对应的所述微时长;
按照各所述振动阶段的顺序将各所述振动子序列顺次组合得到区间振动序列。
进一步地,所述确定模块10还用于:
确定当前振动场景,并获取与所述当前振动场景对应预设的振动策略;
从所述振动策略中提取目标振动单元和各所述目标振动单元对应的振动时长。
进一步地,所述驱动模块40还用于:
从所述振动策略中提取各所述目标振动单元分别对应的振动效果参数;
根据各所述目标振动单元的所述振动效果参数和对应预设的硬件参数,生成各所述目标振动单元分别对应的驱动波形数据流;
将各所述驱动波形数据流输出给所述功率驱动电路,以控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次采用对应的驱动波形数据流驱动对应的目标振动单元振动相应的单元时长。
本发明驱动装置的具体实施方式的拓展内容与上述驱动方法各实施例基本相同,在此不做赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述存储介质上存储有驱动程序,所述驱动程序被处理器执行时实现如下所述的驱动方法的步骤。
本发明驱动设备和计算机可读存储介质各实施例,均可参照本发明驱动方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种驱动方法,其特征在于,所述驱动方法应用于振动阵列电路系统中的控制器,所述振动阵列电路系统还包括功率驱动电路和振动阵列,所述振动阵列中包括多个振动单元,所述驱动方法包括以下步骤:
从各所述振动单元中确定目标振动单元和各所述目标振动单元分别对应的振动时长;
对各所述振动时长进行拆分,得到各所述目标振动单元分别对应的至少一个单元时长;
将各所述目标振动单元对应的所述单元时长进行穿插排列得到振动序列;
控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次驱动对应的目标振动单元振动相应的单元时长;
所述将各所述目标振动单元对应的所述单元时长进行穿插排列得到振动序列的步骤包括:
确定顺次的多个振动阶段;
对于各所述振动阶段,分别从各所述目标振动单元对应的所述单元时长中选取单元时长进行排列,得到各所述振动阶段分别对应的振动子序列,其中,至少一个所述振动子序列中包括不同的两个所述目标振动单元对应的所述单元时长;
按照各所述振动阶段的顺序将各所述振动子序列顺次组合得到振动序列。
2.如权利要求1所述的驱动方法,其特征在于,各所述单元时长的长度相同,所述振动阶段的个数是各所述振动时长中最长的振动时长所拆分得到的单元时长的个数,所述对于各所述振动阶段,分别从各所述目标振动单元对应的所述单元时长中选取单元时长进行排列,得到各所述振动阶段分别对应的振动子序列的步骤包括:
按照各所述振动阶段的顺序,依次为各所述振动阶段确定振动子序列;
其中,为任一所述振动阶段确定振动子序列的步骤包括:
从每个可选振动单元对应的所述单元时长中选取一个单元时长进行排列,得到所述振动阶段对应的振动子序列,其中,所述可选振动单元是各所述目标振动单元中存在未选完的单元时长的振动单元。
3.如权利要求2所述的驱动方法,其特征在于,所述从各所述振动单元中确定目标振动单元和各所述目标振动单元分别对应的振动时长的步骤之后,还包括:
按照各所述振动时长从长到短的顺序将各所述目标振动单元进行排序,得到各所述目标振动单元的优先级;
所述从每个可选振动单元对应的所述单元时长中选取一个单元时长进行排列,得到所述振动阶段对应的振动子序列的步骤包括:
从每个可选振动单元对应的所述单元时长中选取一个单元时长,按照各所述目标振动单元的优先级从高到低的顺序将选取的单元时长进行排列,得到所述振动阶段对应的振动子序列。
4.如权利要求1所述的驱动方法,其特征在于,所述对各所述振动时长进行拆分,得到各所述目标振动单元分别对应的至少一个单元时长的步骤之后,还包括:
确定多个振动区间,并将各所述单元时长分别拆分为多个微时长,其中,振动区间的个数与每个所述单元时长拆分得到的所述微时长的个数相同;
将每个所述单元时长对应的多个所述微时长分别划分至各所述振动区间;
所述将各所述目标振动单元对应的所述单元时长进行穿插排列得到振动序列的步骤包括:
确定每个所述振动区间分别对应的区间振动序列;
将各所述区间振动序列进行顺次组合得到振动序列;
其中,确定任一所述振动区间对应的所述区间振动序列的步骤包括:
确定顺次的多个振动阶段;
对于各所述振动阶段,分别从各所述目标振动单元对应的所述微时长中选取微时长进行排列,得到各所述振动阶段分别对应的振动子序列,其中,至少一个所述振动子序列中包括不同的两个所述目标振动单元对应的所述微时长;
按照各所述振动阶段的顺序将各所述振动子序列顺次组合得到区间振动序列。
5.如权利要求1至4中任一项所述的驱动方法,其特征在于,所述从各所述振动阵列的多个振动单元中确定目标振动单元和各所述目标振动单元对应的振动时长的步骤包括:
确定当前振动场景,并获取与所述当前振动场景对应预设的振动策略;
从所述振动策略中提取目标振动单元和各所述目标振动单元对应的振动时长。
6.如权利要求5所述的驱动方法,其特征在于,所述控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次驱动对应的目标振动单元振动相应的单元时长的步骤包括:
从所述振动策略中提取各所述目标振动单元分别对应的振动效果参数;
根据各所述目标振动单元的所述振动效果参数和对应预设的硬件参数,生成各所述目标振动单元分别对应的驱动波形数据流;
将各所述驱动波形数据流输出给所述功率驱动电路,以控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次采用对应的驱动波形数据流驱动对应的目标振动单元振动相应的单元时长。
7.一种驱动装置,其特征在于,所述驱动装置部署于振动阵列电路系统中的控制器,所述振动阵列电路系统还包括功率驱动电路和振动阵列,所述振动阵列中包括多个振动单元,所述驱动装置包括:
确定模块,用于从各所述振动单元中确定目标振动单元和各所述目标振动单元分别对应的振动时长;
拆分模块,用于对各所述振动时长进行拆分,得到各所述目标振动单元分别对应的至少一个单元时长;
排列模块,用于将各所述目标振动单元对应的所述单元时长进行穿插排列得到振动序列;
驱动模块,用于控制所述功率驱动电路按照所述振动序列中各所述单元时长的排列顺序,依次驱动对应的目标振动单元振动相应的单元时长;
所述排列模块还用于:
确定顺次的多个振动阶段;
对于各所述振动阶段,分别从各所述目标振动单元对应的所述单元时长中选取单元时长进行排列,得到各所述振动阶段分别对应的振动子序列,其中,至少一个所述振动子序列中包括不同的两个所述目标振动单元对应的所述单元时长;
按照各所述振动阶段的顺序将各所述振动子序列顺次组合得到振动序列。
8.一种驱动设备,其特征在于,所述驱动设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的驱动程序,所述驱动程序被所述处理器执行时实现如权利要求1至6中任一项所述的驱动方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有驱动程序,所述驱动程序被处理器执行时实现如权利要求1至6中任一项所述的驱动方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210302909.7A CN114706477B (zh) | 2022-03-25 | 2022-03-25 | 驱动方法、装置、设备及计算机可读存储介质 |
PCT/CN2022/124563 WO2023178993A1 (zh) | 2022-03-25 | 2022-10-11 | 驱动方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210302909.7A CN114706477B (zh) | 2022-03-25 | 2022-03-25 | 驱动方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114706477A CN114706477A (zh) | 2022-07-05 |
CN114706477B true CN114706477B (zh) | 2024-07-02 |
Family
ID=82171650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210302909.7A Active CN114706477B (zh) | 2022-03-25 | 2022-03-25 | 驱动方法、装置、设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114706477B (zh) |
WO (1) | WO2023178993A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114706477B (zh) * | 2022-03-25 | 2024-07-02 | 歌尔股份有限公司 | 驱动方法、装置、设备及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882023A (zh) * | 2010-06-22 | 2010-11-10 | 友达光电股份有限公司 | 具有振动功能的触控显示装置及振动式触控板 |
CN102331838A (zh) * | 2011-11-18 | 2012-01-25 | 东南大学 | 基于深度等高线的图像的振动触觉表达方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101089850B1 (ko) * | 2009-07-20 | 2011-12-05 | 한 상 이 | 다양한 진동효과를 만들어낼 수 있는 진동 제어 방법과 이를 위한 장치 |
KR20130025759A (ko) * | 2011-09-02 | 2013-03-12 | 엘지전자 주식회사 | 파형 생성기를 이용한 햅틱 장치 및 그 제어 방법 |
EP2667582A1 (en) * | 2012-05-21 | 2013-11-27 | Motorola Mobility LLC | System and method for control of linear and rotary vibrators in an electronic device |
CN110413127B (zh) * | 2019-08-07 | 2021-02-19 | 电子科技大学 | 阵列式触觉刺激控制方法 |
CN110597393B (zh) * | 2019-09-18 | 2023-05-05 | Oppo(重庆)智能科技有限公司 | 一种马达振动控制方法、装置及计算机可读存储介质 |
CN111552377B (zh) * | 2020-03-30 | 2024-05-17 | 瑞声科技(新加坡)有限公司 | 振动信号的生成方法、装置、设备及存储介质 |
CN111796717A (zh) * | 2020-06-30 | 2020-10-20 | 东南大学 | 柔性触觉反馈电子设备及触觉反馈方法 |
CN112269895A (zh) * | 2020-11-06 | 2021-01-26 | Oppo广东移动通信有限公司 | 一种振动控制方法、装置及计算机可读存储介质 |
CN114706477B (zh) * | 2022-03-25 | 2024-07-02 | 歌尔股份有限公司 | 驱动方法、装置、设备及计算机可读存储介质 |
-
2022
- 2022-03-25 CN CN202210302909.7A patent/CN114706477B/zh active Active
- 2022-10-11 WO PCT/CN2022/124563 patent/WO2023178993A1/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882023A (zh) * | 2010-06-22 | 2010-11-10 | 友达光电股份有限公司 | 具有振动功能的触控显示装置及振动式触控板 |
CN102331838A (zh) * | 2011-11-18 | 2012-01-25 | 东南大学 | 基于深度等高线的图像的振动触觉表达方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114706477A (zh) | 2022-07-05 |
WO2023178993A1 (zh) | 2023-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8619051B2 (en) | Haptic feedback system with stored effects | |
US8179202B2 (en) | Multiple pulse width modulation | |
KR100986681B1 (ko) | 촉각 발생을 위한 다중 액튜에이터 구동 제어장치 | |
CN114706477B (zh) | 驱动方法、装置、设备及计算机可读存储介质 | |
CN105549777A (zh) | 一种电子设备及控制方法 | |
CN1914583A (zh) | 用于在移动终端设备中实现振动输出命令的方法和设备 | |
CN110058676A (zh) | 一种振动方法、电子设备及存储介质 | |
CN106681486A (zh) | 终端震动的控制方法、装置及终端 | |
CN110149428B (zh) | 振动方法、终端及存储介质 | |
CN114629396B (zh) | 振动阵列系统、驱动方法、装置、设备及介质 | |
CN108039851B (zh) | 一种lra马达驱动芯片的控制方法、装置及系统 | |
WO2011010801A2 (ko) | 다양한 진동효과를 만들어낼 수 있는 진동 제어 방법과 이를 위한 장치 | |
CN111142659A (zh) | 触感信号的实现方法、装置、终端及存储介质 | |
CN114779927B (zh) | 一种振动阵列系统及其控制方法 | |
CN114690902A (zh) | 触觉刺激装置、驱动方法、可穿戴设备和存储介质 | |
KR100588526B1 (ko) | 다채널 진동 유형의 라이브러리를 제작하기 위한 방법 및다채널 진동 제어 장치 | |
CN114924641A (zh) | 振动阵列系统、驱动方法和存储介质 | |
CN113966248A (zh) | 振动设备、信息处理装置和振动控制系统 | |
CN108693971A (zh) | 一种具有多种振动模式的触觉交互装置 | |
EP4310635A1 (en) | Information processing device, information processing method, and program | |
CN112202373B (zh) | 电子设备 | |
JP6160123B2 (ja) | 触覚装置 | |
CN105677336B (zh) | 一种发送振动文件的方法及终端 | |
JP6160124B2 (ja) | 触覚装置 | |
JP2006332893A (ja) | 高速パルスの生成装置及び高速パルスの生成方法 |
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 |