一种基于光电传感器的手势识别方法和装置
技术领域
本申请涉及通信技术领域,尤其是基于光电传感器的手势识别方法和装置。
背景技术
多机通信系统可以由主设备和多个光电传感器组成,主设备是多机通信系统的管理者,光电传感器是多机通信系统的被管理者,主设备和所有光电传感器挂接在同一总线(如I2C(Inter Integrated Circuit,内部集成电路)总线等),并通过总线进行通信。主设备可以向光电传感器发送命令,光电传感器在接收到主设备发送的命令后,可以执行该命令,并向主设备发送执行结果。
为了使主设备向光电传感器发送命令,主设备需要能够区分不同的光电传感器,因此,不同的光电传感器需要具有不同的节点标识,主设备能够使用节点标识来区分不同的光电传感器,即需要为光电传感器分配唯一的节点标识。
为了对光电传感器分配唯一的节点标识,可以使用拨码开关(也可称为广永开关,DIP(ouble In-line Package,双列直插式)开关,拨动开关,超频开关等),即在每个光电传感器设置拨码开关,通过拨码开关设置节点标识。
但是,上述方式需要用户手工操作拨码开关,增加了用户工作量。而且,需要在光电传感器增加额外的硬件电路(即拨码开关),导致硬件成本增加。
发明内容
本申请提供一种基于光电传感器的手势识别方法,应用于包括主设备和多个光电传感器的系统,所述方法应用于所述主设备,所述方法包括:
确定每个光电传感器的节点标识,并将每个光电传感器的节点标识发送给对应的光电传感器,以使所述光电传感器为本光电传感器设置对应的节点标识;
在接收到第一类光电传感器发送的中断信号时,获取所述第一类光电传感器的节点标识,并根据所述节点标识确定所述第一类光电传感器的节点位置;其中,所述第一类光电传感器是所述多个光电传感器中感知到手势信息的光电传感器,且所述中断信号是所述第一类光电传感器感知到手势信息后发送的;
根据所述第一类光电传感器的节点位置识别用户的手势。
本申请提供一种基于光电传感器的手势识别装置,应用于包括主设备和多个光电传感器的系统,所述装置应用于所述主设备,所述装置包括:
确定模块,用于确定每个光电传感器的节点标识;
发送模块,用于将每个光电传感器的节点标识发送给对应的光电传感器,以使所述光电传感器为本光电传感器设置对应的节点标识;
获取模块,用于在接收到第一类光电传感器发送的中断信号时,获取第一类光电传感器的节点标识,根据所述节点标识确定所述第一类光电传感器的节点位置;所述第一类光电传感器是所述多个光电传感器中感知到手势信息的光电传感器,且所述中断信号是所述第一类光电传感器感知到手势信息后发送的;
识别模块,用于根据所述第一类光电传感器的节点位置识别用户的手势。
基于上述技术方案,本申请实施例中,主设备可以将节点标识下发给各光电传感器,不需要用户手工操作拨码开关,减轻了用户工作量。而且,不需要在光电传感器增加额外的硬件电路,节约硬件成本,节省PCB(Printed Circuit Board,印制电路板)的面积。而且,上述方式可以由主设备自动分配节点标识,可以实现光电传感器的自动组网、自动检修和易扩展,能够准确识别出用户的手势,达到用户“傻瓜式”使用的效果。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1A-图1C是本申请一种实施方式中的应用场景示意图;
图2是本申请一种实施方式中的基于光电传感器的手势识别方法流程图;
图3A-图3B是本申请一种实施方式中的应用场景示意图;
图4是本申请一种实施方式中的基于光电传感器的手势识别装置结构图;
图5是本申请一种实施方式中的主设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种基于光电传感器的手势识别方法,应用于包括主设备和多个光电传感器的系统,主设备和多个光电传感器可以挂接在同一串行总线,并通过该串行总线进行通信。例如,主设备可以包括但不限于MCU(Micro Control Unit,微控制单元)、PC(Personal Computer,个人计算机)等,光电传感器的节点标识可以包括但不限于芯片标识(Chip ID),对主设备和光电传感器的类型不做限制,只要主设备和各个光电传感器挂接在同一串行总线即可。
在一个例子中,主设备可以通过串行总线与多个光电传感器连接,如主设备通过串行总线与每个光电传感器分别连接。参见图1A所示,以4个光电传感器为例进行说明,实际应用中,光电传感器的数量可以更多,对此光电传感器的数量不做限制。在图1A中,可以通过串行总线121将主设备101和各光电传感器连接起来,主设备101通过串行总线121与各光电传感器通信。如主设备101、光电传感器111、光电传感器112、光电传感器113和光电传感器114均可以连接到串行总线121,主设备101可以通过串行总线121向各光电传感器发送命令,各光电传感器在通过串行总线121接收到主设备101发送的命令后,可以执行接收到的命令,并通过串行总线121向主设备101发送执行结果。
其中,串行总线121是采用串行方式,将数据的每位依次逐位发送或接收的总线。上述串行总线121可以包括但不限于如下类型:CAN(Controller Area Network,控制器局域网络)总线、485总线、I2C总线、SPI(Serial Peripheral Interface,串行外设接口)总线、RS232总线等,对此串行总线的类型不做限制。
为了对光电传感器分配节点标识,以使主设备能够通过串行总线与光电传感器通信,还可以部署控制总线,主设备通过控制总线与多个光电传感器连接,主设备通过控制总线与光电传感器连接包括:主设备的输出端通过控制总线连接首个光电传感器的输入端,前一个光电传感器的输出端通过控制总线连接后一个光电传感器的输入端,尾光电传感器的输出端通过控制总线连接主设备。
其中,控制总线可以采用菊花链结构,菊花链结构的控制总线指:主设备的输出端通过控制总线连接到第一个光电传感器的输入端,前一个光电传感器的输出端可以通过控制总线连接到后一个光电传感器的输入端,例如,第一个光电传感器的输出端可以通过控制总线连接到第二个光电传感器的输入端,第二个光电传感器的输出端可以通过控制总线连接到第三个光电传感器的输入端,以此类推,则最后一个光电传感器的输出端可以通过控制总线连接主设备。
其中,为了对各光电传感器分配唯一的节点标识,可以采用菊花链结构的控制总线来分配节点标识,即在串行总线121的基础上,增加菊花链结构的控制总线。仍然以4个光电传感器为例,参见图1B所示,在图1A的基础上,增加了控制总线122,控制总线122可以包括但不限于如下类型:CAN总线、485总线、SPI总线、RS232总线等,对此控制总线122的类型不做限制。
如图1B所示,为菊花链结构的控制总线122的示意图,主设备101、光电传感器111、光电传感器112、光电传感器113和光电传感器114均连接到控制总线122,主设备101的输出端通过控制总线122连接到光电传感器111的输入端,且光电传感器111的输出端通过控制总线122连接到光电传感器112的输入端,且光电传感器112的输出端通过控制总线122连接到光电传感器113的输入端,且光电传感器113的输出端通过控制总线122连接到光电传感器114的输入端,光电传感器114的输出端通过控制总线122连接到主设备101。
为了实现中断功能,还可以部署能够传输中断信号的中断总线,主设备通过中断总线与每个光电传感器分别连接,即主设备和每个光电传感器均连接到中断总线。仍然以4个光电传感器为例,参见图1C所示,在图1B的基础上,增加了中断总线123,由于各光电传感器均连接到中断总线123,因此,各光电传感器均可以通过中断总线123向主设备发送中断信号。中断总线123可以包括但不限于如下类型:CAN总线、485总线、SPI总线、RS232总线等,对此中断总线123的类型不做限制。参见图1C所示,主设备101、光电传感器111、光电传感器112、光电传感器113和光电传感器114,均可以连接到中断总线123。
本申请实施例中,可以通过串行总线121和控制总线122实现节点标识的自动分配,通过串行总线121和中断总线123实现光电传感器的中断处理。
在一个例子中,光电传感器的数量可以根据实际经验任意配置,例如,光电传感器的数量可以取决于串线总线121的能力,当串线总线121最多支持112个光电传感器时,则光电传感器的数量可以为112个,对此数量不做限制。
为了支持更多的光电传感器,还可以进行分层处理,具体的,若存在支持扩展结构的第二类光电传感器,则在第二类光电传感器划分子网络;子网络包括第二类光电传感器和至少一个光电传感器,第二类光电传感器是至少一个光电传感器的主设备。例如,主设备和112个光电传感器组成第一层网络,在第一层网络中,由主设备对112个光电传感器进行管理。假设某个或者某些光电传感器(称为第二类光电传感器)支持扩展结构,则可以在第二类光电传感器划分第二层网络,在第二层网络中,该第二类光电传感器就是主设备,该主设备也可以支持112个光电传感器(即扩展的112个光电传感器),这样,主设备可以对这些扩展的光电传感器进行管理。当第二层网络存在N个能够作为主设备的第二类光电传感器时,第二层网络就可以支持112*N个光电传感器。进一步的,假设第二层网络的某个或者某些光电传感器支持扩展结构,则可以在该光电传感器划分第三层网络,以此类推,从而可以支持大量光电传感器。
无论是第几层网络,均会存在主设备,这个主设备可以对大量光电传感器进行管理,每层网络的主设备均采用本申请的技术方案处理,为方便描述,以某层网络的主设备的处理为例进行说明。每层网络的光电传感器均采用本申请的技术方案处理,为方便描述,以某层网络的光电传感器的处理为例进行说明。
在上述应用场景下,参见图2所示,为本申请实施例中提出的基于光电传感器的手势识别方法的流程图,该方法可以包括但不限于以下步骤:
步骤201,主设备确定每个光电传感器的节点标识,将每个光电传感器的节点标识发送给对应的光电传感器,以使光电传感器为自身设置对应的节点标识。
主设备确定每个光电传感器的节点标识,包括:主设备依次将每个光电传感器确定为待分配光电传感器,并为该待分配光电传感器分配一个节点标识。
例如,主设备可以按照控制总线上各光电传感器的顺序,依次将每个光电传感器确定为待分配光电传感器。例如,控制总线上各光电传感器的顺序是光电传感器111、光电传感器112、光电传感器113和光电传感器114,因此,在自动分配过程中,第一次执行自动分配时,将光电传感器111确定为待分配光电传感器,第二次执行自动分配时,将光电传感器112确定为待分配光电传感器,第三次执行自动分配时,将光电传感器113确定为待分配光电传感器,第四次执行自动分配时,将光电传感器114确定为待分配光电传感器。
在为待分配光电传感器分配节点标识时,对此节点标识的分配方式不做详加限制,只要主设备为不同的光电传感器分配不同的节点标识即可,即每个光电传感器的节点标识可以具有唯一性。例如,若节点标识的使用范围可以是0x8-0x120,即主设备从这个使用范围0x8-0x120分配节点标识,则在自动分配过程中,第一次执行自动分配时,为光电传感器111分配节点标识0x15,对此分配方式不做限制,只要每个节点标识只被分配一次,以保证为每个光电传感器分配的节点标识具有唯一性即可。第二次执行自动分配时,为光电传感器112分配节点标识0x18,第三次执行自动分配时,为光电传感器113分配节点标识0x20,第四次执行自动分配时,为光电传感器114分配节点标识0x25。
当然,上述分配方式只是一个示例,对此分配方式不做限制,例如,为了使控制总线上各光电传感器的节点标识具有顺序性,则主设备可以依据控制总线上各光电传感器的顺序,为控制总线上的各光电传感器分配节点标识。
例如,从最小的节点标识0x8开始,第一次执行自动分配时,为光电传感器111分配节点标识0x8,第二次执行自动分配时,为光电传感器112分配节点标识0x9,第三次执行自动分配时,为光电传感器113分配节点标识0x10,第四次执行自动分配时,为光电传感器114分配节点标识0x11。
又例如,从最大的节点标识0x120开始,第一次执行自动分配时,为光电传感器111分配节点标识0x120,第二次执行自动分配时,为光电传感器112分配节点标识0x119,第三次执行自动分配时,为光电传感器113分配节点标识0x118,第四次执行自动分配时,为光电传感器114分配节点标识0x117。
其中,上述使用范围0x8-0x120可以根据经验进行配置,对此不做限制。
其中,将每个光电传感器的节点标识发送给对应的光电传感器,以使光电传感器为自身设置对应的节点标识,可以包括:通过控制总线发送片选信号,该片选信号用于使光电传感器工作,以使接收到片选信号的光电传感器将自身调整为工作状态;通过串行总线发送节点标识,以使处于工作状态的光电传感器从串行总线接收节点标识,并将接收的节点标识设置为自身的节点标识。
在一个例子中,在确定待分配光电传感器,并确定待分配光电传感器的节点标识后,主设备可以通过控制总线发送片选信号,该片选信号用于使待分配光电传感器工作,与此同时,主设备还可以通过串行总线发送该节点标识。这样,由于片选信号只用于使待分配光电传感器工作,而片选信号不会触发其它光电传感器工作,因此,待分配光电传感器在接收到所述片选信号后,将自身调整为工作状态,且在工作状态下,待分配光电传感器可以从串行总线接收该节点标识,并将该节点标识设置为自身的节点标识。此外,其它光电传感器在接收到所述片选信号后,不会将自身调整为工作状态,因此,不会从串行总线接收该节点标识,这样,可以避免其它光电传感器也将该节点标识设置为自身的节点标识,从而避免多个光电传感器使用相同的节点标识,保证了唯一性。
其中,片选信号是选用某个光电传感器时使用的信号。当多个光电传感器挂在同一串行总线时,如果需要对某个光电传感器独立传输数据、地址或命令,就需要使用片选信号通知串行总线上的光电传感器,这些数据、地址或命令是传输给哪个光电传感器的,这样,其它光电传感器就会对这些数据、地址或命令没有反应,而目标的光电传感器知道这些数据、地址或命令是传输给自己的,从而做出反应,这个信号为片选信号,也称为CS(chipselect)或SS(slave select)。
因此,当需要通过串行总线将节点标识发送给待分配光电传感器(也就是目标的光电传感器)时,主设备通过控制总线发送一个片选信号,这个片选信号是针对待分配光电传感器的,即片选信号可以使待分配光电传感器工作,而不会触发其它光电传感器工作。与此同时,主设备可以通过串行总线发送为该待分配光电传感器分配的节点标识,这样,处于工作状态的待分配光电传感器就可以从串行总线接收该节点标识,并将该节点标识设置为自身的节点标识。
其中,主设备通过控制总线发送的片选信号,可以通过低电平信号实现。
其中,主设备通过控制总线发送的片选信号,可以是一个脉冲片选信号。
例如,第一次执行自动分配时,主设备为光电传感器111分配节点标识0x8后,通过控制总线发送针对光电传感器111的片选信号1,即该片选信号1用于使光电传感器111工作,与此同时,主设备还可以通过串行总线发送节点标识0x8。这样,光电传感器111在接收到片选信号后,将自身调整为工作状态,且在工作状态下,光电传感器111从串行总线接收到节点标识0x8,并将该节点标识0x8设置为自身的节点标识,即将自身的Slave Address修改为节点标识0x8。光电传感器112、光电传感器113和光电传感器114在接收到所述片选信号后,不会将自身调整为工作状态,因此,不会从串行总线接收该节点标识,也就不会将自身的Slave Address修改为节点标识0x8,保持Slave Address不变。
与第一次执行自动分配过程类似,第二次执行自动分配时,光电传感器112将节点标识0x9设置为自身的节点标识,即将自身的Slave Address修改为节点标识0x9。第三次执行自动分配时,光电传感器113将节点标识0x10设置为自身的节点标识,即将自身的SlaveAddress修改为节点标识0x10。第四次执行自动分配时,光电传感器114将节点标识0x11设置为自身的节点标识,即将自身的Slave Address修改为节点标识0x11。至此,成功完成节点标识的分配,使得每个光电传感器均设置有主设备分配的节点标识,实现自动分配,具有唯一性。
其中,各光电传感器的Slave Address的默认值可以为0x48或者0x49,且所述Slave Address的值可以被修改,因此,通过上述步骤,就可以将光电传感器的SlaveAddress修改为主设备分配的节点标识,从而自适应的分配节点标识。
其中,在节点标识分配完成后,若系统未断电、未发生其它异常,则不需要重新进行节点标识的分配,主设备可以利用上述节点标识与光电传感器通信。
综上可以看出,主设备可以将节点标识下发给各光电传感器,不需要用户手工操作拨码开关,减轻了用户工作量。而且,不需要在光电传感器增加额外的硬件电路,节约硬件成本,节省PCB的面积,自动分配节点标识。
在一个例子中,在主设备执行上述“节点标识分配过程”之前,主设备还可以通过串行总线发送第一广播指令,该第一广播指令用于使接收到该第一广播指令的光电传感器,将自身调整为准备状态;其中,当光电传感器处于准备状态时,则光电传感器可以等待从控制总线接收片选信号,而不再处理其它工作。
例如,主设备通过串行总线发送第一广播指令,光电传感器111在接收到第一广播指令后,将自身调整为准备状态,并等待从控制总线接收片选信号,不再处理其它工作。当光电传感器111接收到针对自身的片选信号1时,将自身从准备状态调整为工作状态,从串行总线接收到节点标识0x8,在将节点标识0x8设置为自身的节点标识后,退出节点标识分配过程,执行正常的数据处理。光电传感器112、光电传感器113、光电传感器114也可以接收到第一广播指令,将自身调整为准备状态,并等待从控制总线接收片选信号,不再处理其它工作。对于光电传感器112、光电传感器113、光电传感器114的处理不再赘述。
在一个例子中,在节点标识分配完成后,各光电传感器可以退出节点标识分配过程,主设备也可以退出节点标识分配过程,主设备可以利用上述节点标识与光电传感器进行通信,即主设备可以通过串行总线向各光电传感器发送操作数据,各光电传感器在通过串行总线接收到主设备发送的操作数据后,可以执行接收到的操作数据,并通过串行总线向主设备发送操作数据的执行结果。
具体的,主设备可以获取需要向目标光电传感器发送的操作数据,并通过串行总线依次发送该目标光电传感器的节点标识、该操作数据对应的寄存器地址、该操作数据,以使与该节点标识对应的目标光电传感器,根据该寄存器地址对该操作数据进行处理。而且,在通过串行总线依次发送该目标光电传感器的节点标识、该操作数据对应的寄存器地址、该操作数据之前,主设备还可以通过串行总线发送一个广播指令,以通知所有光电传感器准备接收操作数据。
例如,主设备先发送一个广播指令,光电传感器111、光电传感器112、光电传感器113和光电传感器114在接收到该广播指令后,均准备接收操作数据。然后,主设备获得针对光电传感器111的操作数据1后,通过串行总线依次发送光电传感器111的节点标识0x8、操作数据1对应的寄存器地址、操作数据1。光电传感器111在接收到节点标识0x8后,由于节点标识0x8与自身的节点标识相同,因此,会继续接收操作数据1对应的寄存器地址、操作数据1,并利用该寄存器地址对操作数据1进行处理,如将操作数据1存储到该寄存器地址。光电传感器112在接收到节点标识0x8后,由于节点标识0x8与自身的节点标识不同,因此,不会利用该寄存器地址对操作数据1进行处理。同理,光电传感器113/光电传感器114接收到节点标识0x8后,不会对操作数据1进行处理。
在一个例子中,光电传感器可以支持两种工作模式,一种工作模式是依次工作模式,另一种工作模式是同时工作模式。在依次工作模式下,上一个光电传感器结束工作后,通过控制总线发送脉冲到下一个光电传感器,下一个光电传感器在接收到该脉冲时才开始工作,以此类推,依次工作模式可以应用于节点标识的自动分配过程。在同时工作模式下,所有光电传感器同时工作,所有光电传感器可以单独使能,一个光电传感器的工作不影响另一个光电传感器。
基于此,在主设备执行上述“节点标识分配过程”之前,则主设备还可以通过串行总线发送第二广播指令,该第二广播指令用于使接收到该第二广播指令的光电传感器,将自身调整为依次工作模式;其中,当光电传感器处于依次工作模式时,则光电传感器从控制总线接收到片选信号后,可以通过本光电传感器的输出端发送所述片选信号,即可以将所述片选信号发送给下一个光电传感器。
例如,主设备通过串行总线发送第二广播指令,光电传感器111、光电传感器112、光电传感器113、光电传感器114在接收到第二广播指令后,均将自身调整为依次工作模式。这样,在节点标识的分配过程中,光电传感器111-光电传感器114就可以正确处理片选信号,完成节点标识的分配。
在节点标识分配完成后,各光电传感器可以退出节点标识分配过程,主设备也可以退出节点标识分配过程,主设备可以利用上述节点标识与光电传感器进行通信。在主设备利用节点标识与光电传感器进行通信之前,还可以通过串行总线发送第三广播指令,该第三广播指令用于使接收到该第三广播指令的光电传感器,将自身调整为同时工作模式;其中,当光电传感器处于同时工作模式时,光电传感器能够独立工作,所有光电传感器均可以同时工作,单独使能。
例如,主设备通过串行总线发送第三广播指令,光电传感器111、光电传感器112、光电传感器113、光电传感器114在接收到第三广播指令后,均将自身调整为同时工作模式。这样,在通信过程中,光电传感器111、光电传感器112、光电传感器113、光电传感器114可以正确处理操作数据,完成与主设备的通信。
步骤202,主设备在接收到第一类光电传感器发送的中断信号时,获取第一类光电传感器的节点标识,并根据该节点标识确定第一类光电传感器的节点位置。其中,第一类光电传感器是多个光电传感器中感知到手势信息的光电传感器,且所述中断信号是第一类光电传感器在感知到该手势信息后发送的。
步骤203,主设备根据第一类光电传感器的节点位置识别用户的手势。
其中,接收到第一类光电传感器发送的中断信号时,获取第一类光电传感器的节点标识,包括:若通过中断总线接收到第一类光电传感器发送的中断信号,通过串行总线发送第四广播指令,该第四广播指令用于使发生中断的光电传感器返回节点标识;通过串行总线接收第一类光电传感器返回的节点标识。
其中,根据节点标识确定第一类光电传感器的节点位置,可以包括:主设备通过该节点标识查询映射表,得到与该节点标识对应的第一类光电传感器的节点位置;其中,所述映射表用于记录节点标识与节点位置的对应关系。
以下结合具体的应用场景,对上述步骤202-步骤203进行说明。
参见图3A所示,为光电传感器的示意图,310-389均是光电传感器,当然,这些光电传感器需要采用图1A-图1C的结构进行部署,图3A只是为了方便描述给出的一个示例。进一步的,这些光电传感器可以部署在键盘、或者钢琴、或者玩具上,对此不做限制,可以在任意设备上部署这些光电传感器。
参见图3B所示,当用户在这些光电传感器上按下V字手势时,光电传感器333、光电传感器336、光电传感器343、光电传感器344、光电传感器345、光电传感器346、光电传感器354、光电传感器355、光电传感器364均可以感知到手势信息,因此,这些光电传感器就是第一类光电传感器,且这些第一类光电传感器可以向主设备发送中断信号。进一步的,主设备在接收到第一类光电传感器发送的中断信号时,还可以通过串行总线发送第四广播指令。光电传感器在接收到所述第四广播指令后,若本光电传感器是发生中断的光电传感器,则可以通过上述串行总线将本光电传感器的节点标识发送给主设备;若本光电传感器不是发生中断的光电传感器,则不会响应上述第四广播指令。因此,主设备可以通过串行总线接收第一类光电传感器返回的节点标识。
例如,第一类光电传感器(光电传感器333、光电传感器336、光电传感器343、光电传感器344、光电传感器345、光电传感器346、光电传感器354、光电传感器355、光电传感器364)可以将本光电传感器的节点标识发送给主设备。
在一个例子中,主设备可以维护一个映射表,所述映射表用于记录节点标识与节点位置(如位置坐标)的对应关系,如光电传感器310的节点标识与光电传感器310的节点位置的对应关系、光电传感器311的节点标识与光电传感器311的节点位置的对应关系、以此类推。主设备获取到光电传感器333的节点标识后,通过查询映射表,得到光电传感器333的节点位置,同理,可以得到光电传感器336、光电传感器343、光电传感器344、光电传感器345、光电传感器346、光电传感器354、光电传感器355、光电传感器364的节点位置。
基于光电传感器333、光电传感器336、光电传感器343、光电传感器344、光电传感器345、光电传感器346、光电传感器354、光电传感器355、光电传感器364的节点位置,就可以识别用户的手势,如图3B所示的V字手势。
主设备通过上述串行总线发送第四广播指令之后,若发生中断的光电传感器存在多个,如光电传感器333、光电传感器336、光电传感器343、光电传感器344、光电传感器345、光电传感器346、光电传感器354、光电传感器355、光电传感器364等,则每个光电传感器均会通过串行总线将自身的节点标识发送给主设备,由于这些光电传感器使用同一个串行总线发送节点标识,因此会造成串行总线的冲突。为了解决上述串行总线冲突的问题,则可以采用总线仲裁方式。具体的,若光电传感器333先占用串行总线,则光电传感器333可以将自身的节点标识发送给主设备,而光电传感器336后占用串行总线,无法将自身的节点标识发送给主设备。在很短的一段时间后,光电传感器336重新尝试占用串行总线,若仍然无法占用串行总线,则光电传感器336会继续尝试,以此类推,一直到光电传感器336能够占用串行总线,将自身的节点标识发送给主设备。以此类推,所有光电传感器均可以将自身的节点标识发送给主设备。
在一个例子中,为了检测光电传感器是否发生故障,则主设备还可以通过串行总线发送第五广播指令,如主设备可以定期发送第五广播指令,或者检测到特定事件(如主设备空闲、主设备收到检测指令等)时发送第五广播指令,该第五广播指令用于使接收到该第五广播指令的光电传感器,返回自身的节点标识。若未接收到针对某个光电传感器的节点标识,则可以确定该节点标识对应的光电传感器发生故障,如光电传感器的工作发生异常,或者光电传感器发生损坏等。在检测到光电传感器发生故障之后,就可以对光电传感器进行修复,如将光电传感器故障的信息通知给维护人员,以使维护人员进行修复或者更换。
例如,主设备通过串行总线发送第五广播指令,光电传感器111在接收到第五广播指令后,通过串行总线将自身的节点标识0x8发送给主设备。光电传感器112在接收到第五广播指令后,通过串行总线将自身的节点标识0x9发送给主设备。光电传感器113在接收到第五广播指令后,通过串行总线将自身的节点标识0x10发送给主设备。若光电传感器114发生故障,则不会返回节点标识0x11。若主设备接收到节点标识0x8、节点标识0x9和节点标识0x10,但是没有接收到节点标识0x11,确定节点标识0x11对应的光电传感器114发生故障。
在一个例子中,针对广播指令(如第一广播指令、第二广播指令、第三广播指令、第四广播指令、第五广播指令等),若光电传感器的数目较多,则可以为广播指令提供足够的驱动,以保证与主设备的距离不会影响广播指令的接收,也就是说,即使光电传感器与主设备的距离较远,也可以接收到广播指令。
基于与上述方法同样的申请构思,本申请实施例还提出一种基于光电传感器的手势识别装置,应用于包括主设备和多个光电传感器的系统,所述装置应用于主设备,如图4所示,为所述装置的结构图,所述装置具体可以包括:
确定模块401,用于确定每个光电传感器的节点标识;
发送模块402,用于将每个光电传感器的节点标识发送给对应的光电传感器,以使光电传感器为本光电传感器设置对应的节点标识;
获取模块403,用于在接收到第一类光电传感器发送的中断信号时,获取第一类光电传感器的节点标识,根据节点标识确定第一类光电传感器的节点位置;第一类光电传感器是多个光电传感器中感知到手势信息的光电传感器,且中断信号是第一类光电传感器感知到手势信息后发送的;
识别模块404,用于根据第一类光电传感器的节点位置识别用户的手势。
所述主设备通过控制总线与多个光电传感器连接,主设备通过串行总线与多个光电传感器连接;所述发送模块402,具体用于通过控制总线发送片选信号,片选信号用于使光电传感器工作,以使接收到片选信号的光电传感器将自身调整为工作状态;通过串行总线发送节点标识,以使处于工作状态的光电传感器从串行总线接收节点标识,并将接收的节点标识设置为自身的节点标识。
所述主设备还通过中断总线与每个光电传感器连接;所述获取模块403,具体用于在通过中断总线接收到第一类光电传感器发送的中断信号时,则通过串行总线发送第四广播指令,第四广播指令用于使发生中断的光电传感器返回节点标识;通过串行总线接收第一类光电传感器返回的节点标识;以及,通过节点标识查询映射表,得到与节点标识对应的第一类光电传感器的节点位置;其中,映射表用于记录节点标识与节点位置的对应关系。
本申请实施例中提出的主设备(如MCU等),从硬件层面而言,硬件架构示意图具体可以参见图5所示。包括:机器可读存储介质和处理器,其中:
机器可读存储介质:存储指令代码。
处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现上述示例公开的基于光电传感器的手势识别操作。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。