CN113144636A - 模块化组件系统 - Google Patents

模块化组件系统 Download PDF

Info

Publication number
CN113144636A
CN113144636A CN202011228195.7A CN202011228195A CN113144636A CN 113144636 A CN113144636 A CN 113144636A CN 202011228195 A CN202011228195 A CN 202011228195A CN 113144636 A CN113144636 A CN 113144636A
Authority
CN
China
Prior art keywords
module
control module
component
host
firmware
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.)
Granted
Application number
CN202011228195.7A
Other languages
English (en)
Other versions
CN113144636B (zh
Inventor
王作冰
廖美燕
戚宏波
昝晟
周金富
王益
陈子文
周奇方
戴之光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bell Hekong Shenzhen Technology Co Ltd
Original Assignee
Bell Hekong Shenzhen Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=57374324&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN113144636(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Bell Hekong Shenzhen Technology Co Ltd filed Critical Bell Hekong Shenzhen Technology Co Ltd
Priority to CN202011228195.7A priority Critical patent/CN113144636B/zh
Publication of CN113144636A publication Critical patent/CN113144636A/zh
Application granted granted Critical
Publication of CN113144636B publication Critical patent/CN113144636B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H27/00Toy aircraft; Other flying toys
    • A63H27/001Making or assembling thereof, e.g. by folding
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H11/00Self-movable toy figures
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H27/00Toy aircraft; Other flying toys
    • A63H27/12Helicopters ; Flying tops
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H29/00Drive mechanisms for toys in general
    • A63H29/22Electric drives
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H30/00Remote-control arrangements specially adapted for toys, e.g. for toy vehicles
    • A63H30/02Electrical arrangements
    • A63H30/04Electrical arrangements using wireless transmission
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H33/00Other toys
    • A63H33/005Motorised rolling toys
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H33/00Other toys
    • A63H33/04Building blocks, strips, or similar building parts
    • A63H33/042Mechanical, electrical, optical, pneumatic or hydraulic arrangements; Motors
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H33/00Other toys
    • A63H33/04Building blocks, strips, or similar building parts
    • A63H33/06Building blocks, strips, or similar building parts to be assembled without the use of additional elements
    • A63H33/062Building blocks, strips, or similar building parts to be assembled without the use of additional elements with clip or snap mechanisms
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H33/00Other toys
    • A63H33/26Magnetic or electric toys
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0003Home robots, i.e. small robots for domestic use
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/08Programme-controlled manipulators characterised by modular constructions
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/1617Cellular, reconfigurable manipulator, e.g. cebot
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01RELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
    • H01R13/00Details of coupling devices of the kinds covered by groups H01R12/70 or H01R24/00 - H01R33/00
    • H01R13/02Contact members
    • H01R13/22Contacts for co-operating by abutting
    • H01R13/24Contacts for co-operating by abutting resilient; resiliently-mounted
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01RELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
    • H01R13/00Details of coupling devices of the kinds covered by groups H01R12/70 or H01R24/00 - H01R33/00
    • H01R13/62Means for facilitating engagement or disengagement of coupling parts or for holding them in engagement
    • H01R13/627Snap or like fastening
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01RELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
    • H01R13/00Details of coupling devices of the kinds covered by groups H01R12/70 or H01R24/00 - H01R33/00
    • H01R13/62Means for facilitating engagement or disengagement of coupling parts or for holding them in engagement
    • H01R13/627Snap or like fastening
    • H01R13/6271Latching means integral with the housing
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01RELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
    • H01R13/00Details of coupling devices of the kinds covered by groups H01R12/70 or H01R24/00 - H01R33/00
    • H01R13/62Means for facilitating engagement or disengagement of coupling parts or for holding them in engagement
    • H01R13/627Snap or like fastening
    • H01R13/6271Latching means integral with the housing
    • H01R13/6273Latching means integral with the housing comprising two latching arms
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01RELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
    • H01R24/00Two-part coupling devices, or either of their cooperating parts, characterised by their overall structure
    • H01R24/38Two-part coupling devices, or either of their cooperating parts, characterised by their overall structure having concentrically or coaxially arranged contacts
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H2200/00Computerized interactive toys, e.g. dolls

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Educational Technology (AREA)
  • Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Multimedia (AREA)
  • Automation & Control Theory (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Stored Programmes (AREA)
  • Toys (AREA)
  • Coupling Device And Connection With Printed Circuit (AREA)

Abstract

一种系统包括多个组件模块和一个或多个连接器。各个组件模块包括至少一个连接接口,且各个连接器包括适于分别配合到两个组件模块的连接接口中的两个开口端。各个连接器配置成经由两个组件模块的相应连接接口机械地且电气地连接两个组件模块。组件模块至少包括具有通信单元和处理器的控制模块。通信单元配置成从一个或多个主机获得成组主机指令。处理器配置成至少基于成组主机指令来生成用于各个组件模块的成组操作指令。

Description

模块化组件系统
本申请是提交于2016年11月07日的、标题为“模块化组件系 统”的中国专利申请201680046644.1(对应国际申请号为 PCT/CN2016/104824)的分案。
相关申请的交叉引用
本申请请求享有2016年3月31日提交的中国申请第 CN201620271418.0号的优先权,该中国申请通过引用以其整体并入本 文中。
技术领域
本公开大体上涉及机器人系统,并且更具体地涉及模块化组件机 器人玩具。
背景技术
机器人玩具是针对儿童教育的新锐产品,因为它们可以让儿童玩 耍、受教育和娱乐。不同于仅存在于显示屏上的虚拟人物,机器人玩 具可由儿童的臂握住或接触,且因此提供了出于内心的体验。现今, 一个焦点在于开发如何可将更尖端的机器人系统用于教育环境。例如, 用语"教育机器人"是指教学实践,在此期间,学生使用机器人来借助 于机器人自身或针对机器人自身构筑知识。
尽管对于此类系统存在很大潜能,但作为玩具的已知机器人系统 遇到了一些问题,诸如难以组装、功能有限,以及缺少灵活性和扩展 性,尤其是在用户是幼儿时。
发明内容
本公开大体上涉及机器人系统,并且更具体地涉及模块化组件机 器人玩具。
在一个实例中,一种系统包括多个组件模块和一个或多个连接器。 各个组件模块包括至少一个连接接口。各个连接器配置成经由两个组 件模块的相应连接接口机械地且电气地连接多个组件模块中的两个。 该多个组件模块至少包括控制模块和分析模块。控制模块包括配置成 从一个或多个主机获得成组主机指令的控制模块通信单元,以及配置 成至少基于成组主机指令来生成用于控制各个组件模块的成组操作 指令的控制模块处理器。分析模块包括配置成获得传感器信号的分析 模块传感器、配置成分析传感器信号来生成第一分析结果的分析模块 处理器,以及配置成将传感器信号或第一分析结果传输至该一个或多 个主机中的至少一个的分析模块通信单元。
在另一个实例中,组件模块包括至少一个连接接口、传感器、处 理器和通信单元。各个连接接口配置成机械地且电气地连接到连接器, 且经由连接器至少接收功率信号。传感器配置成获得传感器信号。处 理器可操作成联接到传感器和该至少一个连接接口,且配置成分析传 感器信号来生成分析结果。通信单元可操作地联接到处理器,且配置 成将传感器信号或分析结果传输至主机。
在又一个实例中,系统包括多个组件模块和一个或多个连接器。 组件模块中的至少一个包括至少一个连接接口。各个连接器配置成经 由两个组件模块中的一个的连接接口机械地且电气地连接多个组件 模块中的两个。该多个组件模块至少包括控制模块和促动模块。控制 模块包括配置成从一个或多个主机获得成组主机指令的通信单元,以 及配置成至少基于成组主机指令生成用于各个组件模块的成组操作 指令的处理器。促动模块包括成组推进器和马达,其配置成至少基于 由处理器生成的用于促动模块的成组操作指令来驱动成组推进器。
在还有另一个实例中,系统包括多个组件模块和一个或多个连接 器。各个组件模块包括至少一个连接接口。各个连接器配置成经由两 个组件模块的相应连接接口机械地且电气地连接多个组件模块中的 两个。各个连接器包括适于分别配合到两个组件模块的连接接口中的 两个开口端。该多个组件模块包括至少一个控制模块。控制模块包括 配置成从一个或多个主机获得成组主机指令的通信单元,以及配置成 至少基于成组主机指令生成用于各个组件模块的成组操作指令的处 理器。
在不同实例中,连接结构包括两个连接接口和连接器。各个连接 接口包括布置在电路板上的中心和一个或多个同心环处的多个平坦 触头,以及布置在第一壳上的多个第一锁定机构。连接器包括第二壳, 其包括两个开口端和布置在第二壳上的多个第二锁定机构,以及多个 销。各个销分别包括各自由第二壳的两个开口端中的一个露出的两个 端部。当连接器以相对于彼此的多个定向插入两个连接接口中时,连 接器的多个销与各个连接接口的多个平坦触头接触,以便两个连接接 口电连接,且连接器的多个第二锁定机构与各个连接接口的多个第一 锁定机构联锁,以便两个连接接口机械地连接。
在另一个实例中,连接结构包括两个连接接口和连接器。各个连 接接口包括布置在电路板上的多个触头,以及布置在第一壳上的多个 第一锁定机构。连接包括第二壳,其包括两个开口端和布置在第二壳 上的多个第二锁定机构以及多个同心环触头。各个同心环触头分别包 括各自由第二壳的两个开口端中的一个露出的两个端部。当连接器以 相对于彼此的多个定向插入两个连接接口中时,连接器的多个同心环 触头与各个连接接口的多个触头接触,以便两个连接接口电连接,且 连接器的多个第二锁定机构与各个连接接口的多个第一锁定机构联 锁,以便两个连接接口机械地连接。
在不同实例中,提供了一种用于登记模块化组件系统中与彼此可 操作地联接的多个组件模块中的一个的方法。包括组件模块的第一标 识符的第一消息从多个组件模块中的一个接收到。包括用于组件模块 的第二标识符的第二消息传输至组件模块。第二标识符至少基于第一 标识符生成。包括第二标识符的第三消息从组件模块接收。响应于确 定接收到第三消息,组件模块登记为模块化组件系统的新组件模块。 接收、传输、确定和登记中的至少一者由多个组件模块的控制模块执 行。
在另一个实例中,提供了一种用于更新在模块化组件中与彼此可 操作地联接的多个组件模块中的一个相关联的状态的方法。用于请求 来自组件模块的数据的第一消息传输至多个组件模块中的一个。包括 请求的数据的第二消息或包括正常状态指示物的第三消息从组件模 块接收到。响应于确定接收到第二消息或第三消息,与组件模块相关 联的状态更新为联接至模块化组件系统。传输、确定和更新中的至少 一者由多个组件模块中的控制模块执行。
在不同实例中,提供了一种用于更新模块化组件系统的控制模块 上的固件的方法。获得了与从控制模块采样的噪音相关的信息。第一 加密秘钥基于该信息计算。将在控制模块上更新的固件从模块化组件 系统的主机接收到。固件至少基于第二加密秘钥加密。响应于确定接 收到的固件可解密,解密的固件加载到控制模块中。获得、计算、接 收、确定和加载中的至少一者由控制模块执行。
在另一个实例中,提供了一种用于加密将在模块化组件系统的控 制模块上更新的固件的方法。接收到基于与从控制模块采样的噪音相 关的信息计算的加密秘钥。固件至少基于加密秘钥来加密。加密的固 件传输至控制模块。接收、加密和传输中的至少一者由模块化组件系 统的主机执行。
在不同实例中,提供了一种用于将主机指令提供至包括多个组件 模块的模块化组件系统的控制模块的方法。包括成组第一图形呈现和 成组第二图形呈现的图形编程环境呈现给用户。各个第一图形呈现对 应于包括至少一个参数的语句块。各个第二图形呈现对应于与至少一 个属性相关联的多个组件模块中的一个。促进用户选择第一图形呈现 中的至少一个,且将值提供至各个选择的第一图形呈现的至少一个参 数。促进用户提供值至第二图形呈现中的一个或多个的至少一个属性。 至少基于选择的第一和第二图形呈现及其提供的值,生成了成组主机 指令。成组主机指令传输至控制模块以用于控制多个组件模块的操作。 提供、促进、促进、生成和传输中的至少一者由模块化组件系统的主 机执行。
在另一个实例中,提供了一种用于将主机指令提供至包括多个组 件模块的模块化组件系统的控制模块的方法。包括第一组GUI元件和 第二组GUI元件的图形用户界面(GUI)呈现给用户。第一组GUI元件 允许用户在模块化组件系统操作时的运行时间交互地控制模块化组 件系统的操作。第二组GUI元件允许用户指定对应于模块化组件系统 的功能。促进用户选择第一组GUI元件和第二组GUI元件中的一个。 响应于用户选择第一组GUI元件,第一组主机指令至少基于用户与第 一组GUI的交互动态地生成,以用于在运行时间控制模块化组件系统 的操作,且生成的第一组主机指令在模块化组件系统操作时的运行时 间传输至模块化组件系统的控制模块。响应于用户选择第二组GUI元 件,第二组主机指令至少基于由用户指定的功能来获得,且获得的第 二组主机指令在模块化组件系统执行由用户指定的功能之前传输至 模块化组件系统的控制模块。提供、促进、生成、传输、获得和传输 中的至少一者由模块化组件系统的主机执行。
附图说明
由以下描述看来,当伴随下面的附图时将更容易理解实施例,且 其中相似的参考标号代表相似的元件,其中:
图1A-1C是根据实施例的包括多个组件模块和连接器的模块化组 件机器人玩具的实例的透视图;
图2是示出根据实施例的包括组件模块、主机和服务器的系统的 框图;
图3是根据实施例的组件模块的各种实例的图示。
图4是示出根据实施例的连接多个组件模块的总线的实例的示意 图;
图5是根据实施例的将主机指令从主机传输至控制模块的实例的 图示;
图6是示出根据实施例的组件模块的实例的框图;
图7是示出根据实施例的控制模块的实例的框图;
图8是示出根据实施例的分析模块的实例的框图;
图9是示出根据实施例的传感器模块的实例的框图;
图10是示出根据实施例的促动器模块的实例的框图;
图11是示出根据实施例的功率模块的实例的框图;
图12是示出根据实施例的主机和服务器的实例的框图;
图13是根据实施例的包括多个组件模块和连接器的模块化组件 无人飞行器(UAV)机器人的实例的透视图;
图14A-14B是根据实施例的连接结构的实例的透视图;
图15是根据实施例的连接结构的实例的分解视图;
图16A是根据实施例的连接器的实例的透视图;
图16B是根据实施例的图16A中的连接器的销的实例的透视图;
图17是根据实施例的连接接口的电路板的实例的平面视图;
图18是根据实施例的连接接口的实例的平面视图;
图19是根据实施例的连接结构的实例的截面视图;
图20A-20D分别是根据实施例的与带有90度偏移的四个定向下 的连接器的销接触的图19中的连接接口的平面视图;
图21A-21B是根据实施例的具有在其上的环触头的电路板的各种 实例的透视图;
图22A是根据实施例的连接器的另一个实例的透视图;
图22B是根据实施例的图22A中的连接器的截面视图;
图22C是根据实施例的图22A中的连接器的触头的透视图;
图23为根据实施例的连接接口的另一个实例的平面视图;
图24A为根据实施例的图23中的连接接口的电路板的另一个实 例的平面视图;
图24B-24D是根据实施例的包括与图23中的连接接口接触的图22A中的连接器的连接结构的另一个实例的截面视图;
图25是根据实施例的控制模块和多个组件模块与主机之间的通 信的实例的图示;
图26是示出根据实施例的用于登记组件模块的方法的实例的事 件图;
图27是示出根据实施例的用于登记组件模块的方法的实例的流 程图;
图28是示出根据实施例的用于登记组件模块的方法的另一个实 例的流程图;
图29是示出根据实施例的用于更新与组件模块相关联的状态的 方法的实例的事件图;
图30是示出根据实施例的用于更新与组件模块相关联的状态的 方法的另一个实例的事件图;
图31是示出根据实施例的用于更新与组件模块相关联的状态的 方法的实例的流程图;
图32是示出根据实施例的用于更新与组件模块相关联的状态的 方法的另一个实例的流程图;
图33是示出根据实施例的用于更新控制模块上的固件的方法的 实例的事件图;
图34是示出根据实施例的用于更新控制模块上的固件的方法的 实例的流程图;
图35是示出根据实施例的用于更新控制模块上的固件的方法的 另一个实例的流程图;
图36是示出根据实施例的在主机上运行的应用程序的实例的框 图;
图37A-37B是根据实施例的控制应用程序的实例的屏幕截图;
图38是根据实施例的控制应用程序的另一个实例的屏幕截图;
图39是示出根据实施例的将主机指令提供至控制模块的方法的 实例的流程图;
图40A-40B是根据实施例的编程应用程序的实例的屏幕截图;
图41是根据实施例的包括图形语句块的程序的实例的屏幕截图;
图42为示出根据实施例的用于将主机指令提供至控制模块的方 法的另一个实例的流程图;以及
图43为示出可用于实施本公开中提出的各种实施例的计算机系 统的实例的框图。
具体实施方式
在以下详细描述中,许多具体细节通过举例提出,以便提供相关 公开内容的彻底理解。然而,本领域的技术人员应当清楚,本公开可 在没有此类细节的情况下实施。在其它情况下,公知的方法、程序、 系统、构件和/或电路在相对高水平下描述而没有细节,以便避免不 必要地使本公开的方面模糊。
在说明书和权利要求各处,用语可具有上下文中超出明确提出的 意义的暗示或隐含的意义。类似地,如本文使用的短语"在一个实施 例/实例中"不一定表示相同的实施例,且如本文使用的短语"在另一 个实施例和/实例中"不一定表示不同的实施例。例如,期望提出的主 题包括整体或部分的示例性实施例的组合。
大体上,用语可从上下文的使用中至少部分地理解。例如,如本 文使用的用语如"和"、"或"或者"和/或"可包括至少部分地取决于使 用的此类用语的上下文。通常,"或"如果与列表(诸如A,B或C)关联 使用,则旨在意指A,B和C,此时以包括意义使用,以及A,B或C,此时以排除意义使用。此外,如本文使用的用语"一个或多个"至少部 分地取决于上下文,可用于以单数意义描述任何特征、结构或特点, 或可用于以复数意义描述特征、结构或特点的组合。类似地,至少部 分地取决于上下文,诸如"一个"、"一种"或"该"的用语又可理解为表 达单数使用或表达复数使用。此外,用语"基于"可理解为不一定旨在 表达专有的成组因素,且可改为允许存在不一定明确描述的额外的因 素,这又至少部分地取决于上下文。
如下文详细公开那样,在其它新颖性特征中,本文公开的模块化 组件的系统提供了容易从不同的组件模块组装多种机器人玩具而不 用任何组装工具的能力。在一些实施例中,连接器可用于经由其相应 的连接接口来机械地且电气地连接任何组件模块,从而提供了灵活性 和可扩展性来由用户实现机器人玩具的不同的结构、形式和功能。在 一些实施例中,组件模块可包括"智能"模块,其可独立地执行某些感 测和分析功能,且直接与远程主机和/或服务器传送感测和/或分析结 果。在一些实施例中,检测机构可用于有效且高效地实现组件模块登 记和状态更新(例如,在线和脱机),而不需要物理模块构造或用户干预。在一些实施例中,组件模块的功能可通过使用安全更新机构下载 更新的固件来进一步扩展。
本文公开的模块化组件系统还提供了便于用户容易经由各种软 件应用程序的图形界面对任何组装的机器人玩具编程的能力,以便按 期望定制组装的机器人玩具的行为和功能。在一些实施例中,图形编 程环境可由用户(例如,幼儿)使用,以输入可下载到组装的机器人玩 具上的程序。在一些实施例中,运行时间控制环境可设在便携式装置 上,以便用户可实时直观地且交互地控制组装的机器人玩具的动作。
额外的新颖性特征将在以下描述中部分地提出,且在查看下文和 附图时将对于本领域的技术人员部分地变得清楚,或可通过实例的生 产或操作来学习到。本公开的新颖特征可通过实施或使用下文论述的 详细实例中提出的方法、仪器和组合的各种方面来实现和获得。
模块化组件系统
图1A-1C是根据实施例的包括多个组件模块102,104,106和108 以及连接器110的模块化组件机器人玩具100的实例的透视图。在图 1A中,控制模块102由连接器110连接到功率模块104上。功率模块 104和其余的组件模块(两个轮模块106-1和106-2以及两个连接器模 块108-1和108-2)由连接器110-1,110-2,110-3和110-4连接。在该 实施例中,所有连接器110都是相同且可互换的。任何连接器110都 可用来经由其相应的连接接口(它们也是相同的)机械地且电气地连 接任何两个组件模块102,104,106和108。在该实施例中,功率模块 104以及连接器模块108-1和108-2中的各个均包括多个连接接口, 且因此可连接到多个组件模块102,104,106和108上。因此,功率模 块104以及连接器模块108-1和108-2可用作"集线器",以提供将多 个组件模块连接在一起的灵活性和可扩展性。例如,连接器模块108-1 可连接到功率模块104以及两个轮模块106-1和106-2。另一方面, 一些组件模块(诸如控制模块102以及轮模块106-1和106-2)各自包 括单个连接接口,且因此可布置在模块化组件机器人玩具100的"端 部"处。
如下文详细所述,控制模块102可用作模块化组件机器人玩具100 的"大脑",以通过经由连接器110与各个组件模块传送数据信号(例 如,操作指令)来控制模块化组件机器人玩具100的各个组件模块的 操作。功率模块104可提供"能量"至模块化组件机器人玩具100,例 如,通过将功率信号从电池组经由连接器110传输至各个组件。作为 促动器模块的一个实例的轮模块106可通过使它们自身沿旋转轴线旋 转来用作模块化组件机器人玩具100的"脚"。在该实施例中,各个组 件模块大致是球形的。例如,由于球形,轮模块106可在无额外结构 的情况下移动,即,可使它们自身沿旋转轴线旋转。另外,由于球形, 多个连接接口可沿连接器模块108的任何直径对称地布置,以便连接 器模块108可在模块化组件机器人玩具100中以各种定向布置,这进 一步改善了模块化组件机器人玩具100的灵活性和可扩展性。连接器 110可用作模块化组件机器人玩具100的"骨骼"和"神经",以提供组 件模块之间的机械和电学连接两者。例如,各个连接器110均包括适 于分别配合到任何两个组件模块的连接接口中的两个开口端。
图1B示出了关于图1A描述的组件模块已经组装在一起。组装的 结构可通过轮模块106来回移动,轮模块106由控制模块102控制且 由功率模块104供能。图1B还示出了模块化组件机器人玩具100可 改变其结构,且通过经由连接器110-5和跟随器114连接更多组件模 块(例如,红外传感器模块112)来扩展其功能。在该实施例中,红外 传感器模块112可通过经由连接器110-5连接到连接器模块108-2的 备用连接接口来插入模块化组件机器人玩具100中。跟随器114作为 附件的一个实例,可在无任何连接器的情况下直接地连接到连接器模 块108-2的另一个备用连接接口。
如下文更详细所述,红外传感器模块112作为传感器模块的一个 实例可用作模块化组件机器人玩具100的"眼睛"来通过红外光束检测 任何物体。由红外传感器模块112获得的传感器信号可经由连接器110 传输至控制模块102。红外传感器模块112也可大致是球形的。在该 实施例中,跟随器114可有助于支承和平衡模块化组件机器人玩具100, 且跟随轮模块106的移动。
图1C示出了关于图1B所述的组件模块已经组装在一起来构造模 块化组件机器人玩具100。模块化组件机器人玩具100可通过由控制 模块102控制且由功率模块104供能的轮模块106和跟随器114来回 移动。模块化组件机器人玩具100还可通过红外传感器模块112沿移 动路径检测物体。在一些实施例中,控制模块102可调整移动路径来 避开由传感器模块112检测到的任何物体,且根据调整的移动路径来 实时调整轮模块106的移动。如下文详细所述,模块化组件机器人玩 具100的检测和移动操作可由控制模块102根据从主机接收到的主机 指令由控制模块102控制,主机指令是在模块化组件机器人玩具100 的操作之前下载的编程指令的形式或在运行时间接收到的控制指令 的形式。即,模块化组件机器人玩具100可使用相同的连接器110通 过组装具有不同功能的多个组件模块和通过经由预先限定的程序和/ 或实时控制对组装的结构编程来定制。应当认识到,图1A-1C中所示 的模块化组件机器人玩具100仅出于示范性目的。作为模块化组件系 统,具有不同结构、形式和功能的机器人玩具可在下文详细描述的其 它实例中容易地组装和编程。
图2是示出根据实施例的包括组件模块202、主机204和服务器 206的系统200的框图。在该实施例中,系统200提供硬件、固件、 软件和服务支持以用于组装、测试和维护具有不同结构、形式和功能 的模块化组件机器人玩具。组件模块202包括不同类型的多个组件模 块202-1,202-2,202-3,...202-n。例如,图3为根据实施例的组件模 块202的各种实例的图示,其包括控制模块302(例如,图1A-1C中的 控制模块102)、传感器模块304、促动器模块306、分析模块308(也 称为"智能模块")、功率模块310(例如,图1A-1C中的功率模块104), 以及连接器模块312(例如,图1A-1C中的连接器模块108)。将认识 到,任何其它类型的组件模块可包括在其它实例中。
在该实施例中,传感器模块304可包括子类型,诸如红外传感器 模块314(例如,图1A-1C中的红外传感器模块112)、颜色识别模块 316,以及可从任何类型的一个或多个传感器获得传感器信号的任何 其它传感器模块。促动器模块306也可包括子类型,例如,运动模块 318(例如,图1A-1C中的轮模块106)、飞行促动模块320、关节模块 322,以及可通过任何类型的一个或多个促动器施加用于物理操作的 能量的任何其它促动器模块。分析模块308还可包括子类型,包括语 音识别模块324、图像识别模块326,以及可独立地获得和分析传感 器信号且将传感器信号或分析结果传输至主机204和/或服务器206 的任何其它分析模块。将认识到,在一些实施例中,相同的组件模块 (例如,在具有相同硬件的意义上)可通过下载不同类型的固件而变为 不同类型的组件模块。例如,语音识别模块324和图像识别模块326 可通过将不同类型的固件下载到相同的物理模块上来形成。在一些实 施例中,一个类型的组件模块可通过连接到附件而变为另一个类型的 组件模块。例如,运动模块318可连接到成组推进器而变为飞行促动 模块320或水促动模块(未示出)。
如图3中所示,不同类型的组件模块202可通过连接器模块312 连接到控制模块302。将认识到的是,相同类型或不同类型的任何两 个组件模块202可在没有连接器模块312的情况下彼此连接,例如, 经由如上文关于图1A-1C所述的连接器直接地连接。还将认识到的是, 连接器模块312不必连接到控制模块302,且可连接到任何类型的组 件模块202。在一些实施例中,连接器模块312可看作是"集线器", 以提供一定数目的连接接口,以便更多组件模块202可组装在一起。 不论特定的类型,各个组件模块202均包括至少一个连接接口,通过 其,组件模块202可由连接器插到模块化组件机器人玩具。在一些实 施例中,任何组件模块202的连接接口都是相同的,即,标准的连接 接口,以便相同的连接器可用于连接任何两个组件模块202。如上文 所述,在一些实施例中,各个组件模块202大致是球形的。下文将关 于图6-11描述各个组件模块202的细节。
回头参看图2,在该实施例中,主机204可包括多个主机204-1 和204-2,其中各个均可为任何适合的装置,例如,移动或便携装置(例 如,非智能手机或智能手机、平板计算机等)、笔记本计算机、桌面 计算机、上网本、媒体中心、可穿戴装置(例如,眼镜、腕表等)、虚 拟现实(VR)或增强现实(AR)装置(例如,VR头盔等)、汽车控制站、游 戏控制台、电视机、机顶盒、全球定位系统(GPS)、打印机或任何其 它适合的装置。主机204可经由任何适合的通信途径与其中一些组件 模块202(例如,控制模块302和分析模块308)通信,举例来说,诸如有线通信,例如通用串行总线(USB)、IEEE1394、Thunderbolt等, 或无线通信,例如WiFi、蓝牙、ZigBee、近场通信(NFC)等。主机204 还可经由因特网208与服务器206通信。在一些实施例中,主机204 可经由任何其它网络与服务器206通信,诸如局域网(LAN)、个人局 域网(PAN)等。
在该实施例中,应用程序可在主机204上运行以允许主机204配 置、控制和管理从组件模块202组装的任何模块化组件机器人玩具。 在一个实例中,在主机204上运行的编程应用程序可便于用户构造程 序或选择现有的演示程序,且将程序下载到控制模块302中。在另一 个实例中,在主机204上运行的控制应用程序可通过将控制指令在运 行时间传输至控制模块302来允许用户实时控制模块化组件机器人玩 具的操作。在又一个实例中,例如,主机204可从服务器206获得更 新的固件、加密固件,且对加密固件至控制模块302的下载进行管理。 在又一个实例中,主机204可接收和处理来自模块化组件机器人玩具 的数据,例如,来自控制模块302或分析模块308。例如,各个组件 模块202的状态(例如,登记或在线/脱机状态)可基于从控制模块302 接收到的状态消息显示在主机204上;传感器信号和/或传感器信号 的分析结果可从控制模块302和/或分析模块308接收,且由主机204 处理或转发至服务器206用于进一步处理。在该实施例中,多个主机 204可用于分配任务。例如,主机204-2可为笔记本或桌面计算机, 编程应用程序和固件更新应用程序在其上运行。主机204-2可经由USB 连接到控制模块302,以在模块化组件机器人玩具的操作之前将编程指令或更新的固件传输至控制模块302。主机204-1可为控制应用程 序在其上运行的移动或便携装置。主机204-1可经由蓝牙连接到控制 模块302来传输实时控制指令,且经由WiFi连接到分析模块308以 在运行时间从分析模块308接收传感器信号和/或分析结果。
在该实施例中,服务器206可在系统200的后端运行,以经由其 上运行的不同应用程序将各种服务提供至系统200。例如,人工智能 应用程序可由服务器206使用来分析任何传感器信号或分析从分析模 块308获得的结果(例如,由主机204转发),以执行诸如语音识别或 图像识别的任务。在另一个实例中,用户管理应用程序可由服务器206 使用来管理用户的信息,且储存关于模块化组件机器人玩具的使用数 据。在又一个实例中,固件管理应用程序可由服务器206使用来储存 和管理固件更新数据。如上文所述,服务器206可经由因特网208或 任何其它网络与主机204通信,以提供上文所述的服务。应当认识到, 在一些实施例中,服务器206可直接地与一些组件模块202(例如,分 析模块208)通信,以用于接收传感器信号和/或分析结果。
图4为示出根据实施例的连接多个组件模块202的总线400的实 例的示意图。在该实施例中,在多个组件模块202经由连接器与彼此 机械地且电气地连接以形成模块化组件机器人玩具时,总线400形成 为用于在组件模块202之间传输功率信号和数据信号。如图4中所示, 总线400可包括两条电力线(电源(VCC)402和地极(GND)404),以用于 传输功率信号,例如,VCC 402与GND 404之间的电压。总线400还 可包括两条数据线(数据-H 406和数据-L408),以用于传输数据信号, 例如,差分数据信号。各个组件模块202可并行地电连接到总线400。 例如,组件模块202的各个连接接口(I/F)410可包括四个触头,其中 各个均可电连接到总线400的四条线中的一个上。对于包括单个连接 接口410-1和410-2的一些组件模块202-1和202-2,例如,控制模 块302、传感器模块304或促动器模块306,组件模块202-1和202-2 分别经由单个连接接口410-1和410-2电连接到总线400。对于包括 多个连接接口410-3,410-4,410-5和410-6的一些组件模块202-3和 202-4,例如,功率模块310或连接模块312,组件模块202-3和202-4 的各个连接接口410-3,410-4,410-5和410-6独立地且分开地电连接 到总线400。如上文所述,功率信号可从功率模块310经由总线400 的VCC 402和GND 404传输至各个组件模块202。数据信号可包括从 控制模块302传输至各个组件模块202的操作指令,以及从各个组件 模块202经由总线400的数据-H 406和数据-L 408数据线传输至控 制模块302的模块数据(例如,传感器信号或状态信息)。
在该实施例中,总线400可为由国际标准组织(ISO)采用的控制 局域网(CAN)总线,例如,在ISO11898和ISO11519标准中。根据CAN 总线标准,数据-H 406和数据-L 408可为CAN-H和CAN-L数据线, 它们通过其间的电压差来传输数据信号。功率信号也可根据CAN总线 标准经由VCC 402和GND 404传输。由总线400应用的数据传输和标 识符(ID)分配协议大体上可遵循CAN总线标准。将认识到,总线400 不限于CAN总线,且可为用于在并行电连接的组件模块202之间传输 功率和数据信号的任何适合的总线,诸如但不限于,USB、RS-485总 线、串行ATA(SATA)总线、低压差分信号(LVDS)总线,等。
图5为根据实施例的主机指令从主机204到控制模块302的传输 的实例的图示。在该实施例中,控制模块302包括一个或多个处理器 502,操作系统504可在其上实施。操作系统504可为任何适合的操 作系统,诸如嵌入式操作系统或实时操作系统(RTOS),例如,嵌入的 Linux、iOS、NetBSD、Inferno、OpenWrt、嵌入的Windows等。在该 实施例中,虚拟机506可在操作系统504上运行,举例来说,诸如Java 虚拟机(JVM)、安卓运行环境(ART)、Lua虚拟机。虚拟机506可提供 在独立于平台的环境中运行编程指令508的能力。
在该实施例中,编程应用程序可在主机204-2上运行。由编程应 用程序生成的编程指令508通过集成的编程环境(IDE)或通过在主机 204-2上手动编辑而可从主机204-2直接地传输至控制模块302的虚 拟机506。例如,编程指令508可为Lua脚本。除编程指令508外, 该实施例中的主机指令也可包括控制指令510,其由在主机204-1上 运行的控制应用程序在运行时间生成。控制指令510可从主机204-1 直接地传输至操作系统504,例如,使用蓝牙低能(BLE,也称为蓝牙 智能)技术。在该实施例中,当虚拟机506未运行任何从主机204-2 接收的编程指令508时,操作系统504可生成操作指令来基于从主机 204-1在运行时间接收到的控制指令510控制对应的组件模块202的 操作。当虚拟机506运行编程指令508(例如,Lua脚本)时,操作系 统504可处理控制指令510且控制虚拟机506的特权。在这种情况下, 操作系统504可用作虚拟机506与模块化组件机器人玩具的任何其它 部分(例如,组件模块202和主机204)之间的接口,同时虚拟机506 进行运行编程指令508和控制指令510的控制。
图6为示出根据实施例的组件模块202的实例的框图。在该实施 例中,组件模块202包括处理器602、存储器604、一个或多个连接 接口606、一个或多个传感器608、一个或多个促动器610、通信单元 612、输入/输出(I/O)614,以及持久储存器616。如图6中所示,处理器602可操作地联接到存储器604、连接接口606、传感器608、促 动器610、通信单元612、I/O 614和持久储存器616。组件模块202 可经由通信单元612与主机204通信,且经由连接接口606与电连接 到总线400的任何其它组件模块202通信。
在该实施例中,处理器602可包括一个或多个处理单元,诸如微 控制器单元(MCU)、微处理器、图形处理单元(GPU)、存储器控制器等。 存储器604可为与单个集成电路中的MCU集成或与处理单元分开的任 何程序存储器(例如,RAM、闪存)或只读存储器(ROM)。处理器602可 通过执行储存在存储器604中的指令来控制组件模块202的各个构件 的操作。在该实施例中,各个连接接口606均可从总线400接收功率 信号,且根据来自处理器602的指令经由总线400传输和接收数据信 号。处理器602还可从连接接口606接收数据信号,且经由连接接口 606将数据信号传输至总线400。功率信号可经由连接接口606传输 至处理器602来供应功率。在一些实施例中,功率信号可经由连接接 口606传输至组件模块202的其它构件来供应功率。在该实施例中, 通信单元612可为任何有线或无线的通信单元,诸如可与主机204的 对应类型的通信单元通信的USB,IEEE 1394,Thunderbolt,WiFi,蓝 牙,ZigBee或NFC单元。如上文所述,从主机204传输的主机指令可 由通信单元612接收且转发到处理器602。在一些实施例中,通信单 元612可包括调制解调器或任何网络适配器,以用于经由如上文所述 的因特网208或任何其它网络与服务器206通信。从服务器206接收 到的数据也可由通信单元612转发至处理器602。
在该实施例中,传感器608可包括任何类型的传感器,举例来说, 诸如光传感器、运动传感器、温度传感器、声音传感器、电传感器、 磁传感器、化学传感器、生物传感器。不论具体的类型,传感器608 可获得传感器信号且将传感器信号传输至处理器602。处理器602可 分析传感器信号,且然后经由总线400将分析结果传输至主机204, 或经由通信单元612将原始传感器信号直接地传输至主机204。在该 实施例中,促动器610可包括任何类型的促动器,举例来说,诸如液 压促动器、气动促动器、电促动器、热促动器、磁促动器、机械促动 器。不论具体的类型,促动器610可根据由处理器602提供的指令(和 在一些情况下经由总线400和连接接口606提供的功率信号)来执行 物理动作。
在该实施例中,I/O 614可包括任何适合的I/O装置,诸如显示 屏、灯、键盘、按钮等。模块化组件机器人玩具的用户可直接经由I/O 614与组件模块202交互。例如,组件模块202或整个模块化组件机 器人玩具的状态信息(例如,功率水平、操作状态)可经由显示屏或灯 来呈现。用户可使用键盘或按钮来中断组件模块202的操作。在该实 施例中,持久储存器616可为在组件模块202断电之后保持数据的任 何数据储存装置,诸如硬盘驱动器和固态驱动器(例如,闪速驱动器)。 储存在持久储存器616中的数据可与存储器604通信,诸如编程指令 (例如,演示程序的源代码或中间代码)、操作日志、使用数据备份、 固件等。还将认识到,在一些实施例中,额外构件也可包括在组件模 块202中。还将认识到,取决于特定类型的组件模块202,图6中所 示的某些构件可不必如下文关于图7-11所述的那样。
图7为示出根据实施例的控制模块302的实例的框图。该实施例 中的控制模块302包括处理器702、存储器704、一个或多个连接接 口706、一个或多个传感器708、通信单元712、I/O 714,以及持久 储存器716。如图7中所示,处理器702可操作地联接到存储器704、连接接口706、传感器708、通信单元712、I/O 714和持久储存器716。 图7中的各个构件可执行上文关于图6所述的对应构件的相同功能, 且在该实施例中将不会再次重复。下文详细描述了控制模块302中的 一些构件的额外或备选的特征。例如,在一些实施例中,持久储存器 716可储存模块化组件机器人玩具的不但控制模块302而且其它组件 模块202的编程指令(例如,演示程序的源代码或中间代码)和操作日 志以及使用数据备份。在一些实施例中,传感器708可包括惯性传感 器,诸如陀螺仪和加速计。
除对控制模块302中的构件的操作进行控制之外,控制模块302 的处理器702可控制模块化组件机器人玩具的任何其它组件模块202 的操作。如图7中所示,主机指令可由主机204经由通信单元712提 供至处理器702。如上文所述,编程指令可在控制模块302操作之前 接收到,且然后由在处理器702上实施的操作系统504上运行的虚拟 机506执行;另一方面,控制指令可在控制模块302操作时在运行时 间接收到且直接由操作系统504运行。基于接收到的主机指令,处理 器702可生成操作指令以用于经由总线400和连接接口706控制各个 组件模块202。处理器702可将作为数据信号的部分的操作指令经由 接口706和总线400传输至对应的组件模块202。此外,处理器702 可经由通信接口706和总线400与组件模块202通信,以检测和配置 任何新加入的组件模块。在一些实施例中,更新的固件可由服务器206 经由因特网提供至主机204,且然后经由通信单元712下载至存储器 704和/或持久储存器716。另一方面,从其它组件模块202或控制模 块自身302接收到的模块数据(例如,传感器信号或状态信息)也可由 控制模块302经由通信单元712传输至主机302。在一些实施例中, 通信单元712可直接地经由因特网或任何其它网络与服务器206通信, 而不经过主机204。
在该实施例中,I/O 714还可包括物理开关,其配置成响应于来 自用户的输入来中断或恢复从主机204获得至少一些主机指令或由处 理器702生成操作指令。换言之,主机指令由处理器702的运行可经 由控制模块302由用户的物理操作部分地控制。例如,物理开关可触 发处理器702来通过虚拟机506运行主机指令,例如,编程指令(例 如,Lua脚本)。在一些实施例中,控制模块302还可包括用于开启和 关闭控制模块302和/或模块化组件机器人玩具的电力开关。电力开 关可不同于上文所述的物理开关,其用于控制主机指令由处理器702 的运行。
图8为示出根据实施例的分析模块308的实例的框图。在该实施 例中,分析模块308包括处理器802、存储器804、一个或多个连接 接口806、一个或多个传感器808、通信单元812和持久储存器816。 如图8中所示,处理器802可操作地联接到存储器804、连接接口806、 传感器808、通信单元812和持久储存器816。图8中的各个构件可 执行上文关于图6所述的对应构件的相同功能,且在该实施例中将不 会再次重复。下文将详细描述分析模块308中的一些构件的额外或备 选的特征。例如,在一些实施例中,持久储存器816还可储存由传感 器808获得的传感器信号以及由处理器802生成的信号的分析结果。
除控制分析模块308中的构件的操作外,分析模块308的处理器 802可配置成分析由传感器808获得的传感器信号来生成分析结果。 在一个实例中,分析模块308可为语音识别模块324,且传感器808 可包括配置成获得语音信号的麦克风或任何声音传感器。处理器802 然后可分析语音信号来通过实施任何适合的语音或语言识别引擎生 成语音识别结果。在另一个实例中,分析模块308可为图像识别模块 326,且传感器808可包括配置成获得图像信号的相机或任何图像传 感器。处理器802然后可分析图像信号来通过实施任何适合的图像或 视频识别引擎生成图像识别结果。在一些实施例中,识别引擎可储存 在持久储存器816中,且在运行时间读入存储器804中,以用于由处 理器802分析对应的传感器信号。将认识到,分析模块308可通过包 括适合类型的传感器808和由处理器实施适合的分析引擎而为其它类 型。
在该实施例中,由传感器808获得的传感器信号和/或由处理器 802生成的分析结果可经由通信单元812传输至主机204,而不经过 控制模块302。在接收传感器信号或分析结果之后,主机204可进一 步处理传感器信号或分析结果来生成进一步的分析结果,因为主机204对于执行更复杂的分析可具有比分析模块308更优异的计算能力。 在一些实施例中,主机204可经由因特网208或任何其它网络将传感 器信号或分析结果传输至服务器206,以便服务器206上的更强大的 处理器和/或分析引擎可执行传感器信号或分析结果的甚至更复杂的 分析。在一些实施例中,通信单元812可包括调制解调器或任何适合 的网络适配器,以用于将传感器信号或分析结果直接地传输至服务器 206,而不经过主机204。
基于来自分析模块308、主机204和/或服务器206的分析结果, 主机204可生成操作指令,且将操作指令经由通信单元812提供至处 理器802。在一些实施例中,生成的操作指令可由主机204提供至控 制模块302作为主机指令的一部分,且控制模块302然后可将操作指 令经由总线400传输至分析模块308或其它组件模块202。在一个实 例中,对于语音识别模块324,来自用户的用以控制模块化组件机器 人玩具的操作的语音命令可由主机204连同语音识别模块324和/或 服务器326识别和理解,且应用于对应的组件模块202。在另一个实 例中,对于图像识别模块326,由图像识别模块326的相机取得的视 频上的目标可由主机204连同图像识别模块326和/或服务器206识 别和跟踪,以便主机204可指示对应的促动器模块306跟随目标的移 动路径,且指示图像识别模块326保持跟踪目标。
在该实施例中,分析模块308可认作是"智能"模块,因为分析模 块308可独立地执行传感器信号分析任务,且/或与主机204或服务 器206独立地传送分析结果,而没有控制模块302的干预。在一些实 施例中,分析模块308可确定是否由处理器802来分析获得的传感器 信号,或将传感器信号传输至主机204和/或服务器206来用于分析。 在一个实例中,处理器802可基于分析任务的复杂性来进行确定,且 执行相对简单的分析任务,且将相对复杂的分析任务交给主机204和 /或服务器206。在另一个实例中,处理器802可基于通信单元812是 否能够与主机204和/或服务器206通信来进行确定。例如,如果建 立通信连接,则分析任务可交给主机204和/或服务器206。另外,分 析模块308可通过处理器802局部地执行分析任务。将认识到,甚至 在分析任务由主机204和/或服务器206执行时,预处理可由处理器 802在获得的原始传感器信号上执行。
图9为示出根据实施例的传感器模块304的实例的框图。在该实 施例中,传感器模块304包括处理器902、存储器904、一个或多个 连接接口906、一个或多个传感器908,以及持久储存器916。如图9 中所示,处理器902可操作地联接到存储器904、连接接口906、传 感器908和持久储存器916。图9中的各个构件可执行上文关于图6 所述的对应构件的相同功能,且在该实施例中将不会再次重复。下文 将详细描述传感器模块304中的一些构件的额外或备选的特征。例如, 在一些实施例中,持久储存器916还可储存由传感器908获得的传感 器信号。
在一个实例中,传感器模块304可为红外传感器模块314,且传 感器908可包括红外传感器。在一些实施例中,红外传感器可包括配 置成将第一红外光束发射至物体的红外发射器,以及配置成获得从物 体反射的第二红外光束的红外接收器。传感器信号可通过红外传感器 模块314基于第一红外光束和/或第二红外光束获得。在一些实施例 中,红外发射器可为发光二极管(LED),其可产生红外光谱中的光, 且红外接收器可基于第二光束的强度来检测物体的存在、运动或亮度。 在一些实施例中,红外传感器可为被动红外传感器(PIR),其测量在 其视场中从物体发射的红外光,这可用于检测物体的存在或运动。在 该实施例中,处理器902可基于经由总线400从控制模块302接收到 的操作指令来控制红外传感器的操作。例如,处理器902可控制红外 传感器在主动模式(反射模式)或被动模式中工作。在主动模式中,处 理器902可进一步控制红外传感器来反复地反射红外光束或反射单个 红外光束。
在另一个实例中,传感器模块304可为颜色识别模块316,且传 感器908可包括配置成从物体获得光信号的光传感器。光传感器可为 可检测当前的环境光水平(例如,RGB水平和光强度水平)的任何适合 的传感器,诸如光敏电阻器、光电二极管和光电晶体管。额外的光学 和电气构件可包括在光传感器中,诸如颜色滤波器、输入复用器和光 源(例如,RGBLED)。在一些实施例中,由光传感器获得的光信号可 提供至处理器902来基于光信号确定物体的颜色。在该实施例中,处 理器902还可基于经由总线400从控制模块302接收到的操作指令来 控制光传感器的操作。例如,处理器902可控制光传感器来在环境光 检测模式中或在R,G或B颜色检测模式中工作。处理器902可进一步 控制光源来反复地反射期望颜色的光束或反射期望颜色的单个光束。
在该实施例中,传感器信号(例如,红外信号、环境光强度信号 或RGB信号)可由处理器902根据总线400的数据传输和ID分配协议 格式化,且带有ID封装到消息中。消息可经由总线400从处理器902 传输至控制模块302。在一些实施例中,关于传感器信号的数据可储 存在持久储存器916中作为备份。将认识到,传感器模块304可通过 包括适合类型的传感器908而为任何其它类型。
图10为示出根据实施例的促动器模块306的实例的框图。在该 实施例中,促动器模块306包括处理器1002、存储器1004、一个或 多个连接接口1006、一个或多个促动器1010,以及持久储存器1016。 如图10中所示,处理器1002可操作地联接到存储器1004、连接接口 1006、促动器1008和持久储存器1016。图10中的各个构件可执行上 文关于图6所述的对应构件的相同功能,且在该实施例中将不会再次 重复。下文将详细描述促动器模块306中的一些构件的额外或备选的 特征。
在一个实例中,促动器模块306可为运动模块318,其大致是球 形的,且促动器1010可包括配置成使运动模块318的整体旋转的马 达。例如,运动模块318可为图1A-1C中所示的轮模块106,其包括 围绕球的大圆的轨迹来增大摩擦。马达可为任何电动马达,诸如伺服 马达,其可使运动模块318的整体沿旋转轴线旋转。在一些实施例中, 额外的附件可附接至运动模块318,诸如轮或适配器,任何物理结构 可通过其插到模块化组件机器人玩具,且连同运动模块318一起旋转。 例如,除运动模块化组件机器人玩具自身外,运动模块318可引起经 由适合的适配器附接到其上的玩具的任何件也旋转。将认识到,马达 不限于用于驱动运动模块318的角向移动的旋转马达。在一些实施例 中,马达可为用于驱动运动模块318的线性运动的线性马达。在该实 施例中,处理器1002可基于经由总线400从控制模块302接收到的 操作指令来控制马达的操作。例如,处理器1002可控制运动模块318 的运动速度、方向、持续时间和中断。
在另一个实例中,促动器模块306可为飞行促动模块320,且促 动器1010可包括配置成驱动成组推进器的马达。马达可为任何电动 马达,诸如伺服马达,其可使成组推进器沿旋转轴线旋转,且因此引 起模块化组件机器人玩具在空中飞行。在该实施例中,处理器1002 可基于经由总线400从控制模块302接收到的操作指令来控制马达的 操作。例如,处理器1002可控制飞行促动模块320的飞行速度、方 向、高度、姿态、持续时间和中断。在一些实施例中,控制模块302 的传感器708可在运行时间获得指出模块化组件机器人玩具在空中的 姿势的传感器信号,且控制模块302的处理器702可基于传感器信号 来生成飞行促动模块320的操作指令以调整飞行姿势。将认识到,飞 行促动模块320可通过驱动水中的适合的成组推进器变成水促动模块。
在又一个实例中,促动器模块306可为关节模块322,且促动器 1010可包括转向机构,其配置成使关节模块322沿径向方向从0度旋 转到180度(例如,作为径向关节模块),或使关节模块322沿轴向方 向从-90度旋转到+90度(例如,作为轴向关节模块)。在该实施例中, 处理器1002可基于经由总线400从控制模块302接收到的操作指令 来控制转向机构的操作。例如,处理器1002可控制关节模块322的 转速、方向、角度、持续时间和中断。
在该实施例中,用于控制促动器1010的操作指令可由控制模块 302的处理器702根据总线400的数据传输和ID分配协议格式化,且 带有ID封装到消息中。消息可经由总线400从控制模块302传输至 促动器模块306的处理器1002。在一些实施例中,关于促动器1010 的操作状态的数据可由处理器1002收集,且以适合的消息格式传输 至控制模块302。将认识到,促动器模块306可通过包括适合类型的 促动器1010而为其它类型。
图11为示出根据实施例的功率模块310的实例的框图。在该实 施例中,功率模块310包括处理器1102、存储器1104、一个或多个 连接接口1106、持久储存器1116、电池1118和充电接口1120。如图 11中所示,处理器1102可操作地联接到存储器1104、连接接口1106、持久储存器1116和电池1118。图11中的各个构件可执行上文关于图 6所述的对应构件的相同功能,且在该实施例中将不会再次重复。下 文将详细描述功率模块310中的一些构件的额外或备选的特征。例如, 在一些实施例中,持久储存器1116还可储存电池相关的信息,例如, 电池健康情况、充电状态、剩余寿命,等。
在该实施例中,电池1118可为任何适合的电池,包括一次电池, 诸如锂电池、碱性电池、锌电池或镁电池,以及二次的(可再充电池), 诸如锂离子电池、NiCd电池、铅酸电池、NiMH电池、NiZn电池或AgZn 电池。在一些实施例中,多个电池1118可形成电池组。在该实施例 中,电池1118的操作(诸如充电/放电和维护)可由处理器1102连同 任何适合的电池管理电路(未示出)基于从控制模块302接收到的操作 指令来控制。电池1118的状态(例如,电池健康、充电情况和剩余寿 命)也可由处理器1102连同任何适合的电池管理电路(未示出)监测。 在一些实施例中,来自电池1118的功率信号可经由连接接口1106和 总线400提供至功率模块310和其它组件模块202。
在该实施例中,充电接口1120可操作地联接至电池1118,且可 为用于对电池1118充电的任何适合的接口/连接器,包括有线充电接 口,诸如USB或DC插孔,以及无线(感应)充电接口,诸如Magne充 电、Qi、Rezence或电源事务联盟(PMA)。将认识到,在一些实施例中, 功率模块310可包括额外或备选的电源,诸如太阳能面板、AC到DC 的供应源、AC适配器和发电机。在一些实施例中,功率模块310还可 包括用于用户打开和关闭模块化组件机器人玩具的电力的电力开关, 以及显示电池1118的当前充电状态和/或剩余电力水平的指示器。在 该实施例中,电池1118的操作可由处理器1102基于从控制模块302 经由总线400接收到的操作指令来控制。
图12为示出根据实施例的主机204和服务器206的实例的框图。 在该实施例中,模块化组件机器人玩具的用户1202可使用多个组件 模块202来组装模块化组件机器人玩具,且使用主机204-1和204-2 来定制模块化组件机器人玩具的功能和行为。在该实施例中,主机 204-1包括处理器1204-1、存储器1206-1、通信单元1208-1和1210-1, 以及I/O 1212-1。包括控制应用程序1214的一个或多个应用程序可 载入存储器1206-1中且由处理器1204-1运行。如下文详细所述,控 制应用程序1214的图形用户界面(GUI)可由处理器1204-1生成,且 在I/O 1212-1(例如,显示屏)上呈现,以便于用户1202经由I/O 1212-1与控制应用程序1214交互。在一些实施例中,控制应用程序 1214可从用户1202接收输入,且在控制模块302操作时基于运行时 间的用户输入来生成成组主机指令(例如,控制指令)。成组主机指令可经由通信单元1210-1传输至控制模块302。例如,用户输入可包括 从由主机204-1呈现的GUI接收到的命令、由主机204-1上的一个或 多个传感器检测到的运动或手势,以及由主机204-1上的麦克风检测 到的语音。换言之,用户1202可使用控制应用程序1214经由任何适合的人机界面(HMI)来控制模块化组件机器人玩具。
类似地,在该实施例中,主机204-2包括处理器1204-2、存储器 1206-2、通信单元1208-2和1210-2,以及I/O 1212-2。包括编程应 用程序1216和固件更新应用程序1218的多个应用程序可载入存储器1206-2中且由处理器1204-2运行。如下文详细所述,编程应用程序 1216的GUI可由处理器1204-2生成,且呈现在I/O 1212-1(例如, 显示屏)上,以便于用户1202经由I/O 1212-2与编程应用程序1216 交互。在一些实施例中,编程应用程序1216可从用户1202接收输入, 且在控制模块302操作之前生成成组主机指令(例如,编程指令)。成组主机指令可经由通信单元1210-2传输至控制模块302。例如,用户 输入可包括与图形编程环境的交互,例如,通过语句块的图形表示的 拖放来编程。在一些实施例中,用户1202可选择现有的演示程序。 在该实施例中,固件更新应用程序1218可经由通信单元1208-2从服务器206下载要在控制模块302上更新的固件,加密固件,且将加密 的固件经由通信单元1210-2传输至控制模块302。固件更新状态可呈 现于固件更新应用程序1218的GUI上来通知用户1202。
将认识到的是,额外或备选的应用程序可载入存储器1206中且 由主机204的处理器1204运行以用于关于模块化组件机器人玩具的 各种构造、控制和维护功能。在一个实例中,分析应用程序可实施成 分析由传感器模块304或分析模块308获得的传感器信号,以生成分 析结果,例如,语音或图像识别结果。在另一个实例中,组件模块管 理应用程序可实施为显示目前登记(例如,已经插入模块化组件机器 人玩具中)的组件模块202的列表、目前在线(例如,目前插入模块化 组件机器人玩具中且在操作)的组件模块202的列表,和/或目前脱机 (例如,目前与模块化组件机器人玩具分开且未操作)的组件模块202 的列表。
在该实施例中,通信单元1210可经由有线或无线通信(诸如USB、 WiFi或蓝牙)与组件模块202(例如,控制模块302)通信。例如,控制 指令可由通信单元1210-1经由蓝牙实时传输至控制模块302,且编程 指令可由通信单元1210-2经由USB传输至控制模块302。组件模块 202的模块数据也可由通信单元1210-1经由蓝牙实时接收,或在控制 模块302的操作完成之后由通信单元1210-2经由USB接收。在该实 施例中,通信单元1208可经由因特网与远程服务器206通信。例如, 传感器信号、传感器信号的分析结果、用户信息或使用数据可经由因 特网由通信单元1208传输至服务器208。传感器信号的进一步的分析 结果(例如,语音和图像识别结果、更新的固件、用户信息或使用数 据)可从服务器206经由因特网由通信单元1208接收。
在该实施例中,服务器206包括处理器1220、存储器1222和通 信单元1224。包括人工智能应用程序1226、用户管理应用程序1228 和固件管理应用程序1230的多个应用程序可载入存储器1222中且由 处理器1220运行。服务器206可经由因特网或任何其它网络通过通 信单元1224与主机204通信,通信单元1224例如可为调制解调器或 任何适合的网络适配器。
在该实施例中,人工智能应用程序1226可实施任何人工智能算 法,诸如但不限于机器学习、自然语言处理、查找和优化、逻辑编程 和自动推理、概率统计方法、分类和统计学习方法、神经网络和深度 学习。如上文所述,人工智能应用程序1226可使用任何适合的人工 智能途径来分析来自主机204和/或分析模块308的传感器信号或传 感器信号的分析结果以生成分析结果,且经由通信单元1224将分析 结果提供至主机204。例如,通过人工智能应用程序1226使用任何适 合的人工智能途径,语音或语言识别可在语音信号上执行,且图像或 视频识别可在图像信号上执行。
在该实施例中,用户管理应用程序1228可储存和组织关于用户 1202的任何信息,例如,用户资料、人口统计资料、账户、活动、偏 好和兴趣。在一些实施例中,用户管理应用程序1228可执行用户认 证,以验证用户1202是否授权组装和定制模块化组件机器人玩具。在一些实施例中,用户管理应用程序1228可便于用户1202在专用在 线社区或任何社交媒体中与模块化组件机器人玩具的其它用户交互。 例如,老师可经由服务器206上的用户管理应用程序1228来远程地 帮助学生组装和定制模块化组件机器人玩具。在该实施例中,固件管 理应用程序1230可获得、储存和分配将在模块化组件机器人玩具的 控制模块302上更新的固件。固件可动态地或定期地更新来修复故障、 添加新功能和改善硬件性能。固件管理应用程序1230可通过版本(反 映固件的近况)或类别(用于模块化组件机器人玩具的不同结构、形式 和功能)来组织固件。在一些实施例中,一旦其变得可用,可通知固 件更新且推送至主机204,或根据更新计划定期更新。
图13为根据实施例的包括多个组件模块1302,1304和1306以及 连接器1308的模块化组件无人飞行器(UAV)机器人玩具1300的实例 的透视图。如上文所述,模块化组件机器人玩具可组装和定制来实现 多种结构、形式和功能,例如,图1A-1C中所示的模块化组件机器人 玩具100。作为另一个实例,模块化组件UAV机器人玩具1300包括控 制模块1302以及四个飞行促动模块1304-1,1304-2,1304-3和1304-4。 各个飞行促动模块1304均可经由相应的连接器1308和控制模块1302 的连接接口1310电气地且机械地连接到控制模块1302。成组推进器 1306可附接到各个飞行促动模块1304,且由相应飞行促动模块1304 中的马达驱动。控制模块1302和各个飞行促动模块1304均可包括备 用连接接口1310来用于连接额外的组件模块、附件或任何其它物理 结构。在一个实例中,有效负载可附接到控制模块1302的底部,例 如,万向接头、相机或额外的电池组。在该实施例中,模块化组件UAV机器人玩具1300可不包括单独的功率模块。作为替代,功率模块可 整体结合到控制模块1302和/或飞行促动模块1304中。在一些实施 例中,单独的功率模块可插入模块化组件UAV机器人玩具1300中。
如上文详细所述,控制模块1302和飞行促动模块1304的结构和 功能可分别与控制模块302和飞行促动模块320相同。关于连接器 1308,尽管形状不同于连接器110的形状以便适应UAV的空气动力形 状,但各个连接器1308仍包括适于分别配合到两个组件模块的连接 接口1310中以及机械地且电气地连接如上文关于连接器110所述的 两个组件模块的两个开口端。将认识到,在一些实施例中,不同的连 接器可用于机械地且电气地连接模块化组件UAV机器人玩具1300的 两个组件模块,例如,控制模块1302和飞行促动模块1304。例如, 连接器的一端可与组件模块整体结合,且因此,连接器包括适于配合 到另一组件模块的连接接口1310中的一个开口端。换言之,连接器 可为组件模块的一部分,且可附接至另一个组件模块以及从其分开, 这和可与两个组件模块分开的单独构件相反。在一些实施例中,连接 器可经由任何适合的手段(诸如磁体)机械地连接至连接接口1310。
连接结构
图14A-14B是根据实施例的连接结构的实例的透视图。在该实施 例中,如图14A中所示,连接结构包括连接器1402、第一组件模块 1406-1上的第一连接接口1404-1,以及第二组件模块1406-2上的第 二连接接口1404-2。连接器1402可与上文关于图1A-1C所述的连接 器110相同,且各个连接接口1404也可与上文关于图1A-1C所述的 连接接口相同。如图14A中所示,连接接口1404-1和1404-2分别是 颜色识别模块和连接器模块的部分。然而,将认识到,连接接口1404 可为本文所述的任何组件模块202的部分。如上文所述,并未限制组件模块202的连接接口1404的数目。例如,第一组件模块1406-1(诸 如图14A中所示的颜色识别模块)可包括单个连接接口1404-1,而第 二组件模块1406-2(诸如图14A中所示的连接器模块)可包括多个连接 接口1404-2。
如图14B中所示,连接器1402的两端分别插入连接接口1404-1 和1404-2中,以便机械地且电气地连接第一组件模块1406-1和第二 组件模块1406-2。如下文详细所述,连接器1402可以以相对于彼此 的多个定向插入连接接口1404-1和1404-2中。在一些实施例中,连 接器1402可以以相对于彼此的任何定向插入连接接口1404-1和 1404-2中。因此,用户不再需要以特定定向使连接器1402与各个连 接接口1404对准以确保机械和电连接性。在该实施例中,第二组件 模块1406-2上的备用连接接口1404-2可用于将额外组件模块经由额 外连接器1402连接到第二组件模块1406-2。在该实施例中,连接器 1402在插入连接接口1404-1和1404-2中之后可与各个连接接口1404 分开。本文公开的连接结构因此提供了容易的方式来组装组件模块 202以构造模块化组件机器人玩具以及将模块化组件机器人玩具拆卸 成单独的组件模块202。
图15为根据实施例的连接结构的实例的分解视图。在该实施例 中,连接结构包括连接器1402,以及具有壳1502和电路板1504的连 接接口。将认识到,尽管图15中示出了一个连接接口,但具有与图 15中所示的连接接口相同的结构的另一个连接接口可为连接结构的 一部分。
图16A为根据实施例的连接器1402的实例的透视图。在该实施 例中,连接器1402包括:具有两个开口端1508-1和1508-2的壳1506、 包括卡扣1510-1和1510-2的锁定机构、凸起1512-1和1512-2和凹 部1514-1和1514-2,以及突出的环1516。各个开口端1508可适于配合到连接接口1404-1和1404-2中。在该实施例中,壳1506是大 致圆柱形的形状,且包括关于突出的环1516的两个对称部分。壳1506 可由任何适合的材料(诸如塑料)制成。内空间(未示出)在壳1506内 侧形成在两个开口端1508-1和1508-2之间。在该实施例中,连接器1402还包括布置和固定在壳1506的内空间中的四个销1518。
图16B为根据实施例的图16A中的连接器的销1518的实例的透 视图。在该实施例中,各个销1518均包括两个端部1602-1和1602-2, 以及本体1604。弹簧(未示出)可设置在本体1604的内部空间中,且 连接在两个端部1602-1和1602-2之间。销1518的各个端部1602因 此可由于弹簧的回弹性而上下移动。各个销1518(包括端部1602、本 体1604和弹簧)可由任何适合的导电材料(诸如铜或铝)制成。一旦销 1518的各个端部1602与表面(例如,触头)接触,则端部1602由弹簧 朝表面下压以保持可靠的电连接性。销1518的两个端部1602-1和 1602-1分别由壳1506的开口端1508-1和1508-2露出。各个销1518 均与彼此平行,且与壳1506的中心轴线平行。销1518在连接器1402 插入两个连接接口中时提供两个连接接口之间的电连接。将认识到, 在该实施例中,销1518的数目对应于总线400的数目,且因此可在 其它实例中不同。如图15和16A中所示,在该实施例中,四个销1518 包括沿壳1506的中心轴线布置的中心销,以及相对于壳1506的中心 轴线布置在同心环处的三个外周销。
在该实施例中,当连接器1402插入两个连接接口中时,锁定机 构提供两个连接接口之间的机械连接和稳定性。卡扣1510-1和1510-2 分别设置在壳1506的开口端1508-1和1508-2处的环形边缘上。如 图15和16A中所示,各个开口端1508处的卡扣1510可由形成在壳 1506上的凹部1514等距间隔开。凸起1512-1和1512-2分别设置在 壳1506的外表面的由突出环1516分隔的两个对称部分上。如图15 和16A中所示,壳1506的外表面的各个部分上的凸起1512也可由凹 部1514等距间隔开。将认识到,在一些实施例中,锁定机构可包括 卡扣1510、凸起1512和凹部1514中的一个或一些,但不是全部。在 一些实施例中,除卡扣1510、凸起1512和凹部1514外的锁定机构可 形成在连接器1402中。
现在参看图15和18,在该实施例中,连接接口的壳1502包括盖 1520、孔1522,包括凹部1524、凸起1526和下环形边缘(未示出)的 锁定机构,以及上环形边缘1528。壳1502可由任何适合的材料(诸如 塑料)制成。在该实施例中,壳1502的孔1522是大致圆柱形的形状, 其适合连接器1402的大致圆柱形的形状。当连接器1402的一端插入 连接接口中时,锁定机构提供连接接口与连接器1402之间的机械连 接和稳定性。下环形边缘和上环形边缘1528分别设置在壳1502的孔 1522的两端处。凹部1524形成在壳1502中。如图15和18中所示, 凹部1524可与彼此等距间隔开。凹部1524的数目与壳1506的外表 面的一部分上的凸起1512-1的数目相同。凸起1526设置在壳1502 的内表面上。如图15和18中所示,凸起1526可由凹部1524等距间 隔开。凸起1526的数目与壳1506的一部分中的凹部1514-1的数目 相同。将认识到,在一些实施例中,锁定机构可包括凹部1524、凸起 1526和下环形边缘中的一个或一些,但不是全部。在一些实施例中, 除凹部1524、凸起1526和下环形边缘的机构可形成在连接接口中。
如图18中所示,在该实施例中,引导孔1802形成于布置在壳1502 的孔1522的下端处且连接至壳1502的内表面的面板上。当连接器 1402插入连接接口中时,各个销1518的包括端部1602-1的部分穿过 一个引导孔1802以达到电路板1504。在该实施例中,引导孔1802的 数目与电路板1504上的触头的数目相同,且大于连接器1402的销 1518的数目。
现在参看图15和17,在该实施例中,连接接口的电路板1504包 括布置在电路板1504的中心处的平坦中心触头1530,以及分开地布 置在电路板1504上的同心环处的平坦外周触头1532。在该实施例中, 如图17中所示,在电路板1504的最外环处,第一组四个外周触头 1532-3通过电路板1504与彼此电连接,例如,通过电路板1504内侧 或电路板1504的另一侧上的线。类似地,在电路板1504上的最外侧 环处,第二组四个外周触头1532-2通过电路板1504与彼此电连接, 例如,通过电路板1504内侧或电路板1504的另一侧上的线。第一组 外周触头1532-3和第二组外周触头1532-2与彼此电分离。在电路板 1504上的最内环处,所有四个外周触头1532-1通过电路板1504与彼 此电连接,例如,通过电路板1504内侧或电路板1504的另一侧上的 线。成组外周触头1532-1与第一组外周触头1532-3和第二组外周触 头1532-2电分离。即,对应于中心触头1530、外周触头1532-1、外 周触头1532-2和外周触头1532-3的四个单独的电触头形成在电路板 1504上。四个单独的电触头中的各个均电连接到总线400的四条线中 的一条上。另一方面,当连接器1402插入连接接口中时,连接器1402 的四个销1518中的各个与四个单独的电触头中的相应一个接触。具 体而言,中心销与中心触头1530接触,且各个外周销与成组相应的 外周触头1532中的一个接触,这取决于连接器1402插入连接接口的 定向。在一些实施例中,最内环中的成组四个单独的外周触头1532-1 可由单个环触头替换。
图19为根据实施例的连接结构的实例的截面视图。在该实施例 中,连接器1402以多个定向中的一个插入上文关于图15-18所述的 两个连接接口中。连接器1402的销1518与各个连接接口的平坦触头 接触,以便两个连接接口电连接。具体而言,各个销1518的一端1602-1 与一个连接接口的电路板1504-1上的平坦触头1530和1532接触, 且各个销1518的另一端1602-2与另一个连接接口的电路板1504-2 上的平坦触头1530和1532接触。各个销1518均穿过各个连接接口 的一个引导孔1802。取决于连接器1402插入连接接口的定向,连接 器1402的各个外周销可穿过不同的引导孔1802且与电路板1504上 的不同外周触头1532接触。
图20A-20D为根据实施例的分别以90度偏移的四个定向与连接 器1402的销1518接触的连接接口的平面视图。在图20A-20D中,各 个实点代表穿过引导孔1802且与电路板1504上的对应的平坦触头 1530或1532接触的一个销1518。如上文所述,四个销1518均包括沿壳1506的中心轴线布置的中心销,以及沿同心环相对于中心销布 置的三个外周销。在该实施例中,彼此电分离的两个外周销相对于中 心销布置在最外环处,且一个外周销布置在最内环处。如图20A-20D 中所示,不论定向如何,中心销始终穿过中心引导孔且与电路板1504 上的中心触头1530接触。
关于最外环处布置的外周销,外周销可穿过最外环处的四个引导 孔中的一个,且取决于定向与布置在电路板1504上的最内环处的四 个外周触头1532-1中的一个接触。在该实施例中,四个引导孔和外 周触头1532-1在最内环处以90度偏移等距间隔开。关于最外环处布 置的两个外周销,两个外周销中的各个可在最外环处以90度偏移穿 过四个引导销中的一个,且取决于定向在电路板1504上的最外环处 以90度偏移与四个外周触头1532-2或1532-3中的一个接触。即, 通过将两组外周触头1532-2和1532-3布置在电路板1504上的相同 最外环处,其中各个均以45度偏移间隔开,两个电分离的外周销可 布置在相同的最外环处,以节省将销1518布置在连接器1402中所需 的空间。另一方面,此布置可在连接器1402以多个定向插入连接接 口中时确保电连接性,从而提高了对应的连接结构的灵活性。将认识 到,连接器1402可插入连接接口中的定向的数目不限于如该实施例 中所示的四个。在其它实例中,通过改变用于外周销、引导孔和外周 触头的同心环的数目,布置在各个同心环处的外周销、引导孔和外周 触头的数目,和/或布置在各个同心环处的相邻外周销、引导孔和外 周触头之间的角偏移,连接器1402可以以任何适合数目的定向插入 连接接口中。
回到图19,除电连接外,当连接器1402以相对于彼此的多个定 向中的一个插入两个连接接口中时,连接器1402的锁定机构与各个 连接接口的锁定机构联锁,以便两个连接接口也机械地连接。在该实 施例中,当连接器1402插入两个连接接口中时,壳1502的孔1522 的中心轴线与壳1506的中心轴线对准。如图19中所示,壳1506的 一个环形边缘上的卡扣1510-1卡扣配合至一个连接接口的壳1502-1 的下环形边缘1902-1,且壳1506的另一个环形边缘上的卡扣1510-2 卡扣配合至另一个连接接口的壳1502-2的下环形边缘1902-2。如图 19中所示,壳1506的外表面的一部分上的各个凸起1512-1插入一个 连接接口的壳1502-1中的相应凹部1524-1中,且壳1506的外表面 的另一个部分上的各个凸起1512-2插入另一个连接接口的壳1502-2 中的相应凹部1524-2中。尽管图19中未示出,但在一些实施例中, 连接接口的壳1502的内表面上的各个凸起1526可插入壳1506中的 相应凹部1514中,以进一步加强两个连接接口经由连接器1402的机 械连接。
连接器1402和连接接口的锁定机构不仅可向对应结构提供机械 稳定性,而且可引导连接器1402以某些定向插入连接接口中。在该 实施例中,一个连接接口的壳1502-1的上环形边缘1528-1抵靠连接 器1402的壳1506的突出环1516的一侧,且另一个连接接口的壳 1502-2的上环形边缘1528-2抵靠突出环1516的另一侧,其可向对应 的连接结构提供额外的机械稳定性和轴向引导。在该实例中,连接器 1402可插入两个连接接口中的可能的定向的数目与壳1502中的凹部 1524的数目、壳1506中的凹部1514的数目、壳1502上的凸起1526 的数目和壳1506上的凸起1512的数目相同。例如,凹部1524或1514 中的各个与相邻凹部1524或1514偏离90度,且凸起1526或1512 中的各个也与相邻的凸起1526或1512偏离90度。将认识到,连接 器1402可插入连接接口中的定向的数目不限于如该实施例中所示的四个。在其它实例中,通过改变锁定机构的数目和/或相邻锁定机构 之间的角偏移,连接器1402可以以任何适合数目的定向插入连接接 口中。
图21A-21B是根据实施例的具有在其上的环触头2106的电路板 2102或2108的各种实例的透视图。在该实施例中,各自布置在电路 板2102或2108上的一个同心环处的多个环触头2106替换图17中所 示的外周触头1532。类似于关于图17所述的实施例,中心触头2104 布置在电路板2102或2108的中心处。在该实施例中,对应的连接器 包括沿壳的中心轴线布置的中心销,以及相对于中心轴线布置在同心 环处的多个外周销。在该实施例中,环触头2106的数目与对应连接 器的外周销的数目相同。例如,在图21A中,电路板2102包括三个 环触头2106,且因此,对应的连接器包括三个外周触头,其中各个均 可与相应的环触头2106接触。在图21B中,电路板2108包括四个环 触头2106,且因此,对应的连接器包括四个外周触头,其中各个均可 与相应的环触头2106接触。
相比于关于图15-20的其中一些外周销布置在相同的最外环处的 实施例,将外周销布置在连接器中且将外周触头布置在电路板2102 或2108上所需的空间在该实施例中增大。另一方面,该实施例中公 开的布置可在连接器以相对于连接接口的任何定向插入时确保连接 器与连接接口之间的电连接性,即,可实现360度旋转。另外,该实 施例中公开的布置对于将更多电触头加入连接器与连接接口之间很 简单,即,通过在连接接口的电路板2102或2108上的外同心环处加 入额外的环触头和将对应的外周销加到连接器。将认识到,在该实施 例中,对应的连接器和连接接口的锁定机构可不同于上文关于图 15-20的实施例中所述的锁定机构,以在该实施例中实现连接结构的 "360度旋转"。
图22A和22B分别是根据实施例的连接器2202的另一个实例的 透视图和截面视图。在该实施例中,壳和其上的机械锁具有与关于图 15-20的实施例中所述的结构相同的结构,且因此将不会再次重复。 在该实施例中,连接器2202包括中心销2204和三个同心环触头 2206-1,2206-2和2206-3。中心销2204沿壳的中心轴线布置,且各 个环触头2206布置成与中心销2204(中心轴线)同心。中心销2204和 环触头2206中的各个均包括两端,其中各个分别由连接器2202的壳 的两个开口端中的一个露出。图22C为根据实施例的连接器2202的 触头2204和2206的透视图。如图22B和22C中所示,环触头2206 的长度是不同的。例如,环触头2206-1布置在最外环处,且具有三 个环触头2206中的最大长度;环触头2206-2布置在中间环处,且具 有三个触头2206中的第二大长度;环触头2206-3布置在最外环处, 且具有三个环触头2206中的最小长度。在该实施例中,中心销2204 具有比环触头2206-2和2206-3的长度大的长度,但小于环触头 2206-1的长度。在该实施例中,由于三个环触头2206同心地布置, 故最内环触头2206-1具有最小直径,且最外环触头2206-3具有三个 环触头2206中的最大直径。中心销2204和各个环触头2206可由任 何适合的导电材料(诸如铜或铝)制成。
图23为根据实施例的连接接口的另一个实例的平面视图。图24A 为根据实施例的图23中的连接接口的电路板2402的另一个实例的平 面视图。该实施例中的连接接口可结合图22A-22C中所示的连接器 2202使用。连接接口可包括壳2302和电路板2402。在该实施例中, 壳2302上的机械锁具有与关于图15-20的实施例中所述的那些相同 的结构,且因此将不会再次重复。在该实施例中,替代具有布置在如 图18中所示的面板上的中心和同心环处的引导孔1802,中心引导孔 和三个环开口形成在面板上,以允许对应的中心销2204和环触头2206 分别穿过。在该实施例中,中心触头2404和三个外周触头 2406-1,2406-2和2406-3布置在电路板2402上。中心触头2404布置 在电路板2402的中心处,且各个外周触头2406布置在离中心触头 2404的不同距离处。换言之,各个外周触头2406布置在相应的同心环处。具体而言,外周触头2406-1布置在最内环中且具有三个外周 触头2406中离中心销2404最短的距离;外周触头2406-2布置在中 间环中且具有三个外周触头2406中离中心销2404第二短的距离;外 周触头2406-3布置在最外环中,且具有三个外周触头2406中离中心销2404最长的距离。
图24B-24D是根据实施例的与图23中的连接接口接触的包括图 22A中的连接器2202的连接结构的另一个实例的截面视图。在该实施 例中,当连接器2202插入连接接口中时,中心触头2404可穿过壳 2302(见图23)中的中心引导孔,以与连接器2202的中心销2204接触, 且各个外周触头2406可穿过壳2302(见图23)中的相应的环开口以与 相应的环触头2206接触。结果,四个电触头由对应于总线400的四 条线的连接结构形成。为了确保可靠的电连接性,在该实施例中,中 心触头2404和外周触头2406中的一个或多个可变形,以便在连接器 2202插入连接接口中时压入连接器2202的相应触头2204或2206。 例如,中心触头2404可包括连接到如图24B-24D中所示的弹簧的端 部。各个外周触头2406均可包括可在压力下变形的回弹性的锯齿部 分。
关于图22-24在该实施例中公开的布置可在连接器以相对于连接 接口的任何定向插入时确保连接器2202与连接接口之间的电连接性, 即,可实现360度的旋转。另外,该实施例中公开的布置对于将更多 电触头加入连接器2202与连接接口之间很简单,即,通过在连接接 口的电路板2402上的外同心环处加入额外的外周触头以及将对应的 环触头加到连接器2202。此外,如下文所述,该实施例中的连接接口 和连接器2202的其它结构(诸如锁定机构)与关于图15-20的实施例 中的对应结构相同。类似于关于图15-20的实施例,当连接器2202 以相对于彼此的多个定向插入两个连接接口中时,连接器2202的锁 定机构与各个连接接口的锁定机构联锁,以便两个连接接口机械地连 接。在该实施例中,连接器2202在插入连接接口中之后可与各个连 接接口分开。本文公开的连接结构因此提供了容易的方式来组装组件 模块以构造模块化组件机器人玩具以及将模块化组件机器人玩具拆卸成单独的组件模块。
组件模块登记和状态更新
图25为根据实施例的控制模块302和多个组件模块202与主机 204之间的通信的实例的图示。在该实施例中,控制模块302可使用 USB和/或蓝牙执行与主机204的双向通信。在一个实例中,由主机 204生成的主机指令(例如,控制指令)可使用BLE技术传输至控制模 块302。在另一个实例中,由主机204生成的主机指令(例如,编程指 令)可使用USB传输至控制模块302。错误检测和校正码(诸如循环冗 赘核对(CRC)代码)可加到主机指令的原始数据以确保主机指令的可 靠传递。另一方面,模块数据(例如,由传感器模块304获得的传感 器信号和各个组件模块202的状态数据)可使用BLE技术从控制模块 302传输至主机204。
在该实施例中,固件也可使用BLE或USB从主机204传输至控制 模块302。如下文详细所述,在一些实施例中,固件文件可分成具有 相同或不同大小的多个数据包,其中各个均包括头标以及错误检测和 校正码。各个数据包可按顺序传输至控制模块302,且检查数据错误。 结束数据包可加入来指出固件数据包流的传输的结束。在一些实施例 中,固件文件可使用对于控制模块302唯一的信息来加密,以确保仅 正确的控制模块302可解密且更新接收的固件。
在该实施例中,如上文所述,控制模块302可在模块化组件机器 人玩具中经由总线400执行与任何组件模块202的双向通信。例如, 总线400可为CAN总线,且CAN数据传输和ID分配协议可用于控制 模块302与组件模块202之间的通信。在该实施例中,各个组件模块202均包括初始ID,其可唯一地识别组件模块202。初始ID可储存在 对应组件模块202的持久储存器616中,例如,ROM或闪存,且不可 改变。在一些实施例中,指出对应组件模块202的类型的模块类型ID 可为初始ID的一部分,或可从初始ID推导出。相同类型的组件模块 (例如,所有功率模块310或所有连接器模块312)可具有相同的模块 类型ID。初始ID可由控制模块302和主机204使用来识别对应的组 件模块202和组件模块202的更新状态(例如,在线或脱机)。在一些 实施例中,初始ID可在通信ID分配至组件模块202之前用作对应的 组件模块202的通信地址。
在该实施例中,经由总线400用作通信地址(例如,源地址或目 标地址)的通信ID可基于初始ID生成,且由控制模块302分配至对 应的组件模块202。在一些实施例中,通信ID可包括传输ID和接收 ID。例如,传输ID可在消息从控制模块302传输至对应组件202时使用,且接收ID可在消息由控制模块302从对应组件模块202接收 时使用。在一些实施例中,接收ID可从对应的传输ID推导出。因此, 控制模块302可仅需要提供传输ID至对应的组件模块202,且组件模 块202可基于接收到的传输ID推导出对应的接收ID。在一个实例中,接收ID可为传输ID+0x0100。例如,如果传输ID是0x0060,则接收 ID是0x0160。
在该实施例中,控制模块302可使用对应组件模块202的传输ID 通过总线400的两条数据线将操作指令传输至各个组件模块202。操 作指令可以以数据消息的形式传输,其中各个均包括对应组件模块 202的传输ID作为目标地址。以下的表1示出了从控制模块302传输 至红外传感器模块314的操作指令的消息的一个实例。
表1
Figure BDA0002764296780000411
另一方面,各个组件模块202可将模块数据(例如,传感器信号 或状态数据)通过总线400的两条数据线传输至控制模块302。模块数 据可以以数据消息的形式传输,其中各个均包括对应组件模块202的 接收ID以识别消息源。以下的表2示出了从功率模块310传输至控 制模块302的模块数据的消息的一个实例。
表2
字节 字段
0 Rx ID 0x01
1 功率水平低字节
2 功率水平高字节
3 N/A N/A
4 N/A N/A
5 N/A N/A
6 N/A N/A
7 N/A N/A
当组件模块202第一次联接到模块化组件机器人玩具中时,组件 模块202可需要由控制模块302登记为模块化组件机器人玩具的一部 分。例如,对于图1A-C中所示的模块化组件机器人玩具100,当用户 第一次将红外传感器模块112插入模块化组件机器人玩具100中来加 入物体检测能力时,新加入的红外传感器模块112可能需要登记为模 块化组件机器人玩具100的一部分。图26为示出根据实施例的登记 组件模块202的实例。在该实施例中,新组件模块202的登记可由控 制模块302通知至主机204,以便主机204可管理模块化组件机器人 玩具的所有登记的组件模块202,且将登记信息提供至用户和/或服务 器206。
在2602处,组件模块202可取得其初始ID。例如,对于组件模 块202唯一的初始ID可在组件模块202制造时储存到组件模块202 的持久储存器616中,其不可在之后改变。在一些实施例中,初始ID 可以储存在持久储存器616中具有预先限定的长度的预先限定的地址 处,且组件模块202可通过从具有预先限定的长度的预先限定的地址 读取数据来取得初始ID。如果没有数据储存在预先限定的地址处,则 组件模块202不可工作。在一些实施例中,单独的指示物可储存在持 久储存器616中,且组件模块202可首先读取指示物来查看初始ID 是否适当分配和储存。该过程可在组件模块202插入模块化组件机器 人玩具中时自动地触发,且由来自总线400的电力线的功率信号供能。
在2604处,组件模块202可将包括取得的初始ID的模块初始消 息经由总线400的数据线传输至控制模块302。以下的表3示出了从 组件模块202传输至控制模块302的模块初始消息的一个实例。在该 实例中,字段"标记"指出了六字节的初始ID从消息的下一字节开始。 在一些实施例中,模块初始消息还可包括组件模块202的模块类型ID。
表3
Figure BDA0002764296780000431
在2606处,在从组件模块202接收到模块初始消息之后,控制 模块302可将通信ID分配至组件模块202,其未来可用于组件模块 202与控制模块302之间经由总线的通信。通信ID可基于模块初始消 息中的信息生成,例如,组件模块202的初始ID和/或模块类型ID。例如,如果组件模块202是与模块化组件机器人玩具登记的同一类型 的唯一组件模块,则控制模块302可基于模块类型ID生成通信ID。 如果存在同一类型的一个以上的组件模块202,即,模块类型ID不再 是唯一的,则控制模块302可基于组件模块202的初始ID生成通信ID,其唯一地识别如上文所述的对应的组件模块202。在一些实施例 中,一定范围的通信ID可对于各类型的组件模块202保留。例如, 用于运动模块318的通信ID可在0x31到0x3F的范围中。在一些实 施例中,通信ID可包括如上文所述的传输ID和接收ID。
在2608处,控制模块302可传输ID分配消息,其包括经由总线 400的数据线至组件模块202的分配的通信ID。在一些实施例中,如 果通信ID包括传输ID和接收ID两者,则ID分配消息可包括传输ID 和接收ID两者或仅传输ID(如果接收ID可从传输ID推导出)。以下 的表4示出了从控制模块302传输至组件模块202的ID分配消息的 一个实例。如上文所述,在该实例中,ID分配消息包括组件模块202 的初始ID作为消息的目标地址。初始ID可不用于通信ID传递至组 件模块202之后的组件模块202与控制模块302之间的未来通信。
表4
Figure BDA0002764296780000441
在2610处,在从控制模块302接收到包括分配的通信ID的ID 分配消息之后,组件模块202可开始将指出组件模块202的正常状态 的"心跳"消息定期传输至控制模块302。各个心跳消息均可包括通信 ID(例如,接收ID)来验证消息源。
在2612处,一旦控制模块302从对应的组件模块202接收到第 一心跳消息,且识别到组件模块202之前未与模块化组件机器人玩具 登记,则控制模块302可将对应组件模块202的初始ID加入在线模 块列表。在线模块列表可包括与模块化组件机器人玩具登记且目前联 接至模块化组件机器人玩具的所有组件模块202的初始ID。在2614 处,控制模块302还可将资源分配至组件模块202。在2616处,控制 模块302可重置组件模块202的阈值周期的值。阈值周期的值可随时 间过去而连续地减小。阈值周期可由控制模块302使用来确定对应的 组件模块202是否与模块化组件机器人玩具分开(即,变为脱机的)。 新近加入的组件模块202然后认作是由控制模块302与模块化组件机 器人玩具登记。
在2618处,一旦完成组件模块202的登记过程,则控制模块302 可将指出组件模块202登记的模块登记消息传输至主机204。在一些 实施例中,主机204可更新登记列表以包括组件模块202,且将通知 组件模块202的登记的消息提供给用户。
图27为示出根据实施例的用于登记组件模块202的方法2700的 实例的流程图。将参照以上附图来描述其。然而,可使用任何适合的 电路、逻辑、单元或模块。方法2700可由可包括硬件(例如,电路、 专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置上运行 的指令)或它们的组合的任何适合的电路、逻辑、单元或模块执行。 将认识到,可能并非所有步骤都需要来执行本文提供的公开内容。此 外,一些步骤可同时执行,或以不同于图27中所示的顺序执行,这 将由本领域的普通技术人员理解到。
在2702处开始,控制模块302可接收具有组件模块202的第一 ID的第一消息。第一ID可储存在组件模块202的持久储存器616中 且唯一地识别组件模块202。在一些实施例中,第一消息还可包括指 出组件模块202的类型的第三ID。第三ID可与第一ID分开,为第一ID的一部分,或可从第一ID推导出。
在2704处,控制模块302可基于组件模块202的第一ID生成组 件模块202的第二ID。第二ID可用于控制模块302与组件模块202 之间的未来通信。在一些实施例中,第二ID可基于第一ID和第三ID 两者或单独基于第三ID生成。在一些实施例中,第二ID可包括两个子ID,例如,传输ID和接收ID,或可为传输ID和接收ID中的一个。 在2706处,控制模块302可将具有第二ID的第二消息传输至组件模 块202。在一些实施例中,第二消息可也可包括组件模块202的第一 ID和/或第三ID。
在2708处,控制模块302可确定具有用于组件模块202的第二 ID的第三消息是否从组件模块202接收到。在一些实施例中,第三消 息还包括正常状态指示物,且由组件模块202定期地传输至控制模块 302。换言之,第三消息可为心跳消息。第二ID由控制模块302分配 至组件模块202,且传输至组件模块202以用于控制模块302与组件 模块202之间的未来通信,包括心跳消息。如果未接收到第三消息, 则控制模块302可继续检查第三消息的接收。如果接收到第三消息, 则在2710处,控制模块302可将组件模块202登记为模块化组件系 统(例如,机器人玩具)的新组件模块。
现在将更详细地描述2710的实施例。具体而言,在2712处,控 制模块302可将组件模块202的第一ID加入在线模块列表。即,组 件模块202可与状态关联为联接至模块化组件系统。在2714处,控 制模块302可将资源分配至组件模块202。在2716处,控制模块302 可重置组件模块202的阈值周期。在2718处,控制模块302可将具 有组件模块202的状态的第四消息传输至主机204。状态可指出组件 模块202联接到模块化组件系统,且登记为模块化组件系统的新组件 模块。
图28为示出根据实施例的用于登记组件模块202的方法2800的 另一个实例的流程图。将参照以上附图来描述其。然而,可使用任何 适合的电路、逻辑、单元或模块。方法2800可由可包括硬件(例如, 电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置 上运行的指令)或它们的组合的任何适合的电路、逻辑、单元或模块 执行。将认识到,可能并非所有步骤都需要来执行本文提供的公开内 容。此外,一些步骤可同时执行,或以不同于图28中所示的顺序执 行,这将由本领域的普通技术人员理解到。
在2802处开始,组件模块202可从持久储存器616获得第一ID。 在一些实施例中,2802可响应于通电的组件模块202来自动地执行。 在2804处,组件模块202可将具有第一ID的第一消息传输至控制模 块302。第一消息可包括指出组件模块202的类型的第三ID。在2806 处,组件模块202可确定具有第二ID的第二消息是否从控制模块302 接收到。如果未接收到第二消息,则组件模块202可继续检查第二消 息的接收。如果接收到第二消息,则在2808处,组件模块202可将 具有第二ID的第三消息传输至控制模块302。在一些实施例中,组件 模块202可将包括指出心跳消息的来源的第二ID的心跳消息定期传 输至控制模块302。
在一些情形中,模块化组件系统的登记的组件模块可例如由于松 开的连接器、较差的接触等有意或无意地与模块化组件系统分开。因 此,可能期望有效且高效地检测和更新模块化组件系统的各个登记的 组件模块的状态(例如,在线或脱机),而不关闭模块化组件系统的电 力。例如,对于图1A-1C中所示的模块化组件机器人玩具100,当登 记的红外传感器模块112与模块化组件机器人玩具100意外分开时, 控制模块102可快速检测此事件,且将红外传感器模块112的状态更 新为脱机的。在红外传感器模块112插回到模块化组件机器人玩具100 中时,控制模块102也可快速检测此事件,且将红外传感器模块112 的状态更新为在线的。图29为示出根据实施例的更新与组件模块202 相关联的状态的实例的事件图。在该实施例中,组件模块202的状态 更新可由控制模块302通知到主机204,以便主机204可管理模块化 组件机器人玩具的所有登记的组件模块202的状态,且将状态信息提 供至用户和/或服务器206。
在2902处,组件模块202可将指出组件模块202的正常状态的 心跳消息定期传输至控制模块302。各个心跳消息均可包括通信ID(例 如,接收ID)来验证消息源。在一些实施例中,心跳消息的传输可为 不管该实施例中的其它事件或过程而无条件执行的独立过程。在一些 实施例中,心跳消息的传输可取决于该实施例中的其它事件或其它过 程的结果,这将在下文中详细描述。
在2904处,主机204可将数据请求消息传输至控制模块302来 从组件模块202请求数据。例如,主机204可从传感器模块304请求 状态数据或传感器信号。在2906处,响应于接收数据请求消息,控 制模块302可将数据请求消息经由总线400的数据线传输至对应的组件模块202以用于从组件模块202请求数据。数据请求消息可包括分 配至组件模块202的传输ID作为如上文所述的数据请求消息的目标 地址。
在2908处,响应于从控制模块302接收到数据请求消息,组件 模块202可取得请求数据,例如,从持久储存器616、存储器604和/ 或任何其它适合的构件。在2910处,组件模块202可将数据消息经 由总线400的数据线传输至控制模块302。数据消息可包括指出数据消息的来源的组件模块202的接收ID和请求的数据。在2912处,响 应于从组件模块202接收数据消息和基于接收ID识别数据消息的来 源,控制模块302可将包括请求数据的数据消息传输至主机204。在 一些实施例中,如果组件模块202以时间间隔保持传输数据消息至控制模块302,则组件模块202可跳过传输心跳信息至控制模块302, 因为数据消息还可指出组件模块202的正常状态。
在2914处,响应于在2902处接收心跳消息或在2910处从组件 模块202接收数据消息,控制模块302可确定组件模块202目前联接 到模块化组件机器人玩具(即,在线),且因此将对应的组件模块202 的初始ID加入在线模块列表。在一些实施例中,分配至组件模块202 的通信ID可也可记录于在线模块列表中。在2916处,控制模块302 还可重置组件模块202的阈值周期的值。在2918处,控制模块302 可将状态消息传输至主机204,其指出对应组件模块202的在线状态。 在一些实施例中,主机204可更新在线模块列表来包括组件模块202, 且将通知组件模块202的在线状态的消息提供给用户。
图30为示出根据实施例的更新与组件模块202相关联的状态的 另一个实例的事件图。在3002处,主机204可将数据请求消息传输 至控制模块302以用于从组件模块202请求数据。例如,主机204可 从传感器304请求状态数据或传感器信号。在3004处,响应于接收数据请求消息,控制模块302可将数据请求消息经由总线400的数据 线传输至对应的组件模块202来从组件模块202请求数据。数据请求 消息可包括分配至组件模块202的传输ID作为如上文所述的数据请 求消息的目标地址。
在3006处,控制模块302直到对应的组件模块202的阈值周期 到期都未从组件模块202接收数据消息作为3004处传输的数据请求 消息的响应,也未从组件模块202接收心跳消息。控制模块302因此 可确定组件模块202目前与模块化组件机器人玩具分开(即,变为脱 机)。在3008处,控制模块302可将组件模块202的初始ID移动至 脱机模块列表。在一些实施例中,分配给组件模块202的通信ID也 可记录在脱机模块中。在一些实施例中,在3004处,控制模块302 可不将数据请求消息传输至组件模块202。在3006处,如果控制模块302直到组件模块202的阈值周期到期都未从组件模块202接收到心 跳消息,则控制模块302也可将组件模块202的初始ID移动到脱机 模块列表。在3010处,控制模块302可将状态消息传输至主机204, 其指出对应组件模块202的脱机状态。在一些实施例中,主机204可更新脱机模块列表来包括组件模块202,且将通知组件模块202的脱 机状态的消息提供给用户。
图31为示出根据实施例的用于更新与组件模块202相关联的状 态的方法3100的实例的流程图。将参照以上附图来描述其。然而, 可使用任何适合的电路、逻辑、单元或模块。方法3100可由可包括 硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置上运行的指令)或它们的组合的任何适合的电路、逻辑、 单元或模块执行。将认识到,可能并非所有步骤都需要来执行本文提 供的公开内容。此外,一些步骤可同时执行,或以不同于图31中所 示的顺序执行,这将由本领域的普通技术人员理解到。
在3102处开始,控制模块302可将第一消息传输至组件模块202 来从组件模块202请求数据。第一消息可包括分配到组件模块202的 通信ID作为目标地址。如上文所述,通信ID可由控制模块302基于 组件模块202的初始ID生成。在一些实施例中,第一消息可响应于从主机204接收到数据请求消息而生成。
在3104处,控制模块302可确定包括请求数据的第二消息是否 从组件模块202接收到。如果控制模块302并未从组件模块202接收 到第二消息,则在3106处,控制模块302可确定包括正常状态指示 物的第三消息(例如,心跳消息)是否从组件模块202接收到。如果控 制模块302并未从组件模块202接收到第三消息,则控制模块302可 检查组件模块202的阈值周期是否过期。如果阈值周期过期,则在3118 处,控制模块302可将组件模块202的状态更新为与模块化组件系统 分开(即,脱机)。如果在3116处,阈值周期未过期,则方法3100回 到3102。
如果控制模块302在3104处接收第二消息或在3106处从组件模 块202接收第三消息,则在3108处,控制模块302可将组件模块202 的状态更新为联接至模块化组件系统(即,在线)。现在将更详细地描 述3108的实施例。具体而言,在3110处,控制模块302可确定组件模块202的初始ID和/或通信ID是否在在线模块列表中。如果组件 模块202的初始ID和/或通信ID不在在线模块列表中(例如,意味着 组件模块202在与模块化组件系统分开之后可快速再插入模块化组件 系统中),则在3112处,控制模块302可将组件模块202的初始ID和/或通信ID加入在线模块列表。在一些实施例中,之前分配给组件 模块202的资源可恢复。在3114处,控制模块302还可重置组件模 块202的阈值周期的值。如果在3110处,组件模块202的初始ID和 /或通信ID在在线模块列表中(例如,意味着组件模块202保持插入 模块化组件系统中),则控制模块302可跳过3112,且在3114处重置 组件模块202的阈值周期的值。
在3118或3114之后,控制模块302可在3120处传输包括组件 模块202的当前状态(在线或脱机)的第四消息至主机204。在一些实 施例中,主机204可更新在线模块列表或脱机模块列表以包括相应的 组件模块202,且将通知组件模块202的当前在线或脱机状态的消息 提供给用户。
图32为示出根据实施例的用于更新与组件模块202相关联的状 态的方法3200的另一个实例的流程图。将参照以上附图来描述其。 然而,可使用任何适合的电路、逻辑、单元或模块。方法3200可由 可包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置上运行的指令)或它们的组合的任何适合的电路、 逻辑、单元或模块执行。将认识到,可能并非所有步骤都需要来执行 本文提供的公开内容。此外,一些步骤可同时执行,或以不同于图32 中所示的顺序执行,这将由本领域的普通技术人员理解到。
在3202处开始,组件模块202可从控制模块302接收第一消息 来从组件模块202请求数据。在3204处,组件模块202可取得请求 的数据。在3206处,组件模块202可将包括请求的数据的第二消息 传输至控制模块302。并行地,在3208处,组件模块202可将包括正 常状态指示物的第三消息定期传输至控制模块302。将认识到,如上 文所述,在一些实施例中,如果第二消息在一定时间段内传输至控制 模块302,则组件模块202可跳过将第三消息传输至控制模块302。 在一些实施例中,第二消息和第三消息中的各个还可包括由控制模块302分配至组件模块202的通信ID,其指出第二消息或第三消息的来 源。
控制模块固件更新
在一些情形中,可能期望更新组件模块202的固件,诸如控制模 块302。在一个实例中,前一个版本的固件中检测到的故障可在更新 的固件中修复。在另一个实例中,新功能可加到更新的固件。在又一 个实例中,组件模块202可通过下载不同固件而变为不同类型的组件 模块202。在任何情况下,存在由特定组件模块202下载的固件由于 错误或由于恶意复制的批量下载而不用于组件模块202的风险。图 33-35公开了以确保待更新的固件用于正确的控制模块的安全方式更 新控制模块302上的固件的实例。
图33为示出根据实施例的更新控制模块302上的构件的实例的 事件图。在3302处,控制模块302可采样控制模块302自身的噪音 信号。将理解,某些噪音信号(例如,高斯白噪音)在任何时间都是随 机信号,且因此对于噪音信号的来源可为唯一的,例如,该实例中的 控制模块302。将认识到,在一些实施例中,采样的信号可不限于噪 音信号,且可为对于控制模块302唯一的任何信号。在该实施例中, 控制模块302可首先采样控制模块302的某些构件(例如,电源),以 获得初始信号(例如,功率信号)。在一个实例中,采样可由模数转换 (ADC)执行。控制模块302然后可对初始信号滤波以用于除去噪音信 号,以获得滤波信号,例如,滤波的功率信号。滤波可由卡尔曼滤波、 一次时滞或低通滤波、加权平均递归滤波、勃特沃斯滤波、切比雪夫 滤波或任何其它适合的滤波器来执行。控制模块302可基于初始信号 和滤波信号来计算噪音信号。例如,噪音信号的值可通过将初始信号 的值减去滤波信号的值来获得。
在3304处,控制模块302可基于噪音信号计算加密秘钥。例如, 模除运算可用于计算加密秘钥。在一个实例中,噪音信号的值可模除 16(NoiseValue%16)来获得加密秘钥。在一些实施例中,可检查加 密秘钥的长度来看其是否满足安全要求。如果加密秘钥的长度不满足 安全要求,则不同的模除运算可用来生成另一个加密秘钥。在3306 处,控制模块302可将加密秘钥储存在例如持久储存器716中。将认 识到,加密秘钥可储存在任何适合的储存器中。
将认识到,在一些实施例中,加密秘钥可由其它途径生成。在一 个实例中,任何适合的计算随机数生成器(RNG)都可由控制模块302 用于生成加密秘钥,诸如线性线性同余生成器、平方取中法、Mersenne Twister算法、CryptGenRandom、概率密度函数或任何伪随机数生成 器(PRNG)等。在另一个实例中,控制模块302的初始ID或控制模块 302的任何构件的任何ID(例如,处理器702的ID)可由控制模块302 用于生成加密秘钥。
在3308处,主机204可将固件更新请求消息传输至控制模块302。 将认识到,3308可在3302之前发生。换言之,在一些实施例中,控 制模块302可采样噪音信号来响应于接收固件更新请求消息生成加密 秘钥。在一些实施例中,控制模块302可执行3302,而不论是否接收 到构件更新请求消息。例如,当控制模块302通电时,控制模块302 可首次自动地执行3302。在任何情况下,在3310处,控制模块302 可将加密秘钥消息传输至主机204。控制模块302可取得储存在持久 储存器716中的加密秘钥,且包括加密秘钥消息中的加密秘钥。
在3312处,主机204可加密固件来基于接收到的加密秘钥更新。 任何适合的加密算法都可由主机204使用以用于加密,诸如但不限于 高级加密标准(AES)、数据加密标准(DES)或三重DES(3DES)。在3314 处,主机204可将固件文件分成M个数据包。在该实施例中,各个数 据包可具有相同大小且包括头标以及错误检测和校正码。以下的表5 示出了固件数据包的一个实例。在表5中,头标包括标记、包大小和 包数目。包大小并未算入头标以及错误检测和校正码,但包括包数目 和数据。数据的大小是包大小减去两字节。
表5
Figure BDA0002764296780000531
在3316处,主机204可将第一固件数据包传输至控制模块302。 在该实施例中,控制模块302可基于CRC16代码检查第一固件数据包。 如果通过CRC检查,则控制模块302可发送消息来通知主机204继续 传输下一个固件数据包。如果未通过CRC检查,则控制模块302可发 送消息来通知主机204重新发送前一个固件数据包。在一些实施例中, 如果在通知主机204重新发送前一个固件数据包之后未在一定时段内 从主机204接收到响应或如果在一定次数内未通过CRC检查,则固件 更新过程可终止。相同的过程可在3318处重复,主机204可将最后 的(例如,第M个)固件数据包传输至控制模块302。即,主机204可 将M个固件数据包中的各个按顺序传输至控制模块302。将认识到, 在一些实施例中,可跳过CRC检查,且主机204可继续传输各个固件 数据包,而不等待来自控制模块302的通知。
在3320处,在接收到所有固件数据包(即,整个固件文件)之后, 控制模块302可取得加密秘钥,例如,从持久储存器716或可储存加 密秘钥的任何储存器。在3322处,控制模块302可使用取得的加密 秘钥来解密固件文件。如果取得的加密秘钥匹配由主机204用于加密 固件文件的加密秘钥,即,固件文件传输至正确的控制模块,则固件 文件可解密(即,解密成功)。在3324处,控制模块302可加载固件 来完成固件更新过程。否则,例如,如果由于取得的加密秘钥不匹配 用于由主机204加密固件文件的加密秘钥或由于控制模块302不可取 得任何加密秘钥而解密失败,则固件更新过程失败。在任何情况下, 在3326处,控制模块302可将固件更新状态消息传输至主机204来 报告固件更新成功与否。
图34为示出根据实施例的用于更新控制模块302上的固件的方 法3400的实例的流程图。将参照以上附图来描述其。然而,可使用 任何适合的电路、逻辑、单元或模块。方法3400可由可包括硬件(例 如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置上运行的指令)或它们的组合的任何适合的电路、逻辑、单元或 模块执行。将认识到,可能并非所有步骤都需要来执行本文提供的公 开内容。此外,一些步骤可同时执行,或以不同于图34中所示的顺 序执行,这将由本领域的普通技术人员理解到。
在3402处开始,控制模块302可获得从控制模块302自身采样 的噪音信息。现在将更详细地描述3402的实施例。具体而言,在3404 处,控制模块302可采样某些构件(诸如电源),以获得初始信号,例 如,使用ADC。在3406处,控制模块346可对初始信号滤波来获得滤波信号,例如,使用卡尔曼滤波。在3408处,控制模块302可基于 初始信号和滤波信号来计算噪音信号,例如,使用减法运算。在3410 处,控制模块302可基于噪音信息来计算第一加密秘钥。例如,计算 可在噪音信号上由模除运算执行。在3412处,控制模块302可将第 一加密秘钥储存在控制模块302的持久储存器716中。
在3414处,控制模块302可确定请求固件更新的消息是否从主 机204接收到。如果未接收到消息,则控制模块302可继续检查,直 到接收到消息。在3416处,控制模块302可将第一加密秘钥传输至 主机204。
在3418处,控制模块302可从主机204接收加密的固件。固件 可由主机204基于第二加密秘钥加密。在一些实施例中,加密的固件 可分成多个数据包,其按顺序从主机204传输至控制模块302。各个 数据包的大小可为相同的。在接收到加密的固件(例如,所有数据包) 之后,在3420处,控制模块302可从控制模块302的持久储存器716 取得第一加密秘钥。在3422处,控制模块302可基于取得的第一加 密秘钥来解密固件。在3424处,控制模块302可确定解密是否成功。 在该实施例中,如果第一加密秘钥匹配第二加密秘钥,则解密成功。在3426处,控制模块302可加载解密的固件来完成固件更新过程。 否则,解密失败,且固件更新过程失败。
图35为示出根据实施例的用于更新控制模块302上的固件的方 法3500的另一个实例的流程图。将参照以上附图来描述其。然而, 可使用任何适合的电路、逻辑、单元或模块。方法3500可由可包括 硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置上运行的指令)或它们的组合的任何适合的电路、逻辑、 单元或模块执行。将认识到,可能并非所有步骤都需要来执行本文提 供的公开内容。此外,一些步骤可同时执行,或以不同于图35中所 示的顺序执行,这将由本领域的普通技术人员理解到。
在3502处开始,主机204可将请求固件更新的消息传输至对应 的控制模块302,在该处,执行固件更新。在3504处,主机204可从 控制模块302接收加密秘钥。加密秘钥可基于从控制模块302采样的 噪音信息计算,诸如控制模块302的电源。在3506处,主机204可 基于接收到的加密秘钥,使用任何适合的加密算法(诸如AES、DES或 3DES)来加密固件。在3508处,主机204可将固件分成多个数据包。 例如,各个包的大小可为相同的。在3510处,主机204可按顺序将 各个固件数据包传输至控制模块302。在一些实施例中,主机204还 可从控制模块302接收固件更新状态(例如,成功或失败)。
主机应用程序
本文公开的模块化组件系统(例如,模块化组件机器人玩具)的功 能可由用户经由在主机204上运行的主机应用程序来定制,且模块化 组件系统的行为也可由用户在运行时间经由在主机204上运行的主机 应用程序来控制。例如,上文关于图12所述的控制应用程序1214、 编程应用程序1216和固件更新应用程序1218是在主机204上运行的 主机应用程序的实例。现在关于图36-42来更详细地描述控制应用程 序1214和编程应用程序1216的实施例。
图36为示出根据实施例的在主机204上运行的应用程序的实例 的框图。将认识到,本文公开的应用程序3602,3604和3606可在单 个主机204上或多个主机204上运行。仅出于示范性目的,该实施例 中的应用程序3602,3604和3606将描述为在单个主机204上运行。 还将认识到,一些应用程序3602,3604和3606可集成到单个应用程 序中。例如,脚本控制环境3604可与运行时间控制环境3602集成来 形成控制应用程序1214,或可与图形编程环境3606集成来形成编程 应用程序1216。如图36中所示,用户界面3608可由主机204呈现来 用作用户1202与任何应用程序3602,3604和3606之间的界面。此外, 主机指令生成器3622可在主机204上运行来基于用户对应用程序 3602,3604和3606中任一者的输入生成主机指令,且将主机指令提供 至在控制模块302上运行的操作系统504和/或虚拟机506。
在该实施例中,运行时间控制环境3602可允许用户1202在模块 化组件系统操作时的运行时间交互地控制模块化组件系统的操作。运 行时间控制环境3602可包括虚拟手柄3610、照明控制器3612和手势 控制器3614。用户1202与运行时间环境3602的任何功能构件之间的 交互可记录和转发到主机指令生成器3622中的控制指令生成器3624 来生成对应的控制指令。控制指令可从主机204传输至控制模块302 的操作系统504,且转换成用于模块化组件系统的各个对应组件模块 202的操作指令。例如,控制指令可使用BLE技术传输至控制模块302。
在该实施例中,虚拟手柄3610可允许用户1202通过与虚拟手柄 3610交互来控制模块化组件系统的运动。在一些实施例中,虚拟手柄 3610可模仿模块化组件系统的组件模块202中的一个的外形。例如, 运动模块318可大致是球形的,且在虚拟手柄3610在主机204的显 示屏上呈现时,虚拟手柄3610可模仿运动模块318的球形形状。用 户1202可以以各种方式与虚拟手柄3160交互。在一个实例中,主机 204的显示屏可为触摸屏,以便用户1202可触摸虚拟手柄3160的不 同部分,且/或使用不同触摸姿势来控制促动器模块306的动作,例如,向前、向后、向上和向下移动,左转和右转,或向前和向后倾斜。 在另一个实例中,主机204可为具有惯性传感器的移动或便携装置, 诸如陀螺仪和加速计。主机204因此感测由用户1202引起的移动装 置的运动(例如,捕捉移动装置由用户1202倾斜的角度),且虚拟手柄3610可通过模仿移动装置的运动或手势(例如,倾斜角)来控制促 动器模块306的动作。例如,用户1202可首先保持移动装置放平来 设置零角点。然后,虚拟手柄3160可控制促动器模块306在移动装 置分别向前或向后倾斜时向前或向后移动,且控制促动器模块306在移动装置分别向左或向右倾斜时左转或右转。将认识到,在一些实施 例中,用户1202可以以任何其它适合的方式与虚拟手柄3610交互, 举例来说,诸如语音命令、眼球运动,或头部、身体、手和手指姿势。 将认识到,在一些实施例中,虚拟手柄3610可呈现在模块化组件系 统的组件模块202(诸如控制模块302或分析模块308)的显示屏上。 例如,语音命令识别或用户手势识别可至少部分地由分析模块308执 行。
在该实施例中,照明控制器3612可允许用户1202控制模块化组 件系统的照明。在该实施例中,灯可布置在一个或多个组件模块202 上,诸如控制模块302和运动模块318。用户1202可设置模块化组件 系统的照明方案,例如,灯的颜色、照明持续时间和间隔、不同组件 模块上的照明的同步性等。手势控制器3614可允许用户1202控制模 块化组件系统或其一个或多个组件模块202来呈现某些手势。将认识 到,额外的功能构件可包括在运行时间控制环境3602中以便于用户 1202在运行时间控制模块化组件系统。
在该实施例中,脚本控制环境3604可允许用户1202指定对应于 特定模块化组件系统的功能或行为。在该实施例中,脚本控制环境 3604可将成组预先限定的基本功能3616-1...3616-n提供给用户 1202来选择。各个预先限定的基本功能3616可对应于模块化组件系 统中一个,且对于特定模块化组件系统的各个组件模块202包括一系 列动作。用户1202可进一步改变或配置选择的基本功能3616来指定 将由特定模块化组件系统执行的期望的功能或行为。在该实施例中, 主机指令生成器3622中的编程指令生成器3626可基于改变或配置的 基本功能3616来生成对应的编程指令,例如,Lua脚本。主机204可 在模块化组件系统执行由用户1202指定的功能或行为之前将编程指 令传输至控制模块302的虚拟机506。例如,编程指令可使用BLE技 术传输至控制模块302。虚拟机506可将编程指令转换成用于模块化 组件系统的各个组件模块202的操作指令,以执行改变或配置的基本 功能3616中的一系列动作定势。如上文所述,在一些实施例中,控 制模块302上的物理开关可用于中断编程指令由控制模块302的虚拟 机506的运行。例如,直到触发物理开关,编程指令才可由控制模块 302运行。
各个基本功能3616可基于特定模块化组件系统预先限定,即, 插入模块化组件系统中的特定组件模块。例如,基本功能3616可包 括自平衡、跟踪、颜色识别、避开障碍物,以及以下的。例如,用于 自平衡基本功能的特定模块化组件系统可至少包括具有陀螺仪和运动模块318的控制模块302。自平衡基本功能允许模块化组件系统在 移动的同时保持平衡。具体而言,控制模块302上的陀螺仪可在运行 时间检测模块化组件系统的倾斜角,且控制模块302可基于模块化组 件系统的实时倾斜角控制运动模块318来保持平衡。在另一个实例中, 用于跟踪基本功能的特定模块化组件系统可至少包括颜色识别模块 316和运动模块318。跟踪基本功能允许模块化组件系统沿上色的路 径移动。具体而言,具有特定颜色的路径可在地面上画出,且颜色识 别模块316可识别特定上色的路径,且将传感器信号提供至控制模块 302。控制模块302然后控制运动模块318来沿上色的路径移动。
在该实施例中,图形编程环境3606可便于用户1202在模块化组 件系统(例如,控制模块302)操作之前输入程序,例如,语句块。图 形编程环境3606可包括图形语句块3618和图形组件模块3620。用户 1202与图形编程环境3606的任何功能构件之间的交互可被记录且转 发到主机指令生成器3622中的编程指令生成器3626,以生成对应的 编程指令。编程指令可由主机204传输至控制模块302的虚拟机506, 且转换成模块化组件系统的各个对应组件模块202的操作指令。例如, 编程指令可使用USB传输至控制模块302。在一些实施例中,在将编 程指令传输至控制模块302之前,图形编程环境3606可根据编程指 令来提供模块化组件系统的组件模块202的操作的预览。
在该实施例中,用户1202可通过拖放来选择图形语句块3618, 且将值提供至选择的图形语句块3618的参数来构造程序。在一些实 施例中,图形语句块3618可分组成类别,且至少一些类别涉及模块 化组件系统的组件模块202的功能,诸如运动、照明或感测。在一些 实施例中,一些图形语句块3618的参数可与控制模块302上的物理 开关相关联,诸如压下物理开关作为触发事件的状态的持续时间。在 该实施例中,各个图形组件模块3620可为对应于模块化组件系统的 组件模块202中的一个的图形呈现,且可与至少一个性质相关联,诸 如名称、图标、颜色等。在一些实施例中,图标可模仿对应的组件模 块202的外形。在该实施例中,用户1202可提供图形组件模块3620 的性质的值来配置图形组件模块3620和/或对应组件模块202。将认 识到,额外的功能构件可包括在图形编程环境3606中以便于用户1202 编程模块化组件系统。
图37A-37B是根据实施例的控制应用程序的实例的屏幕截图。在 图37A中,屏幕截图代表虚拟手柄3610和照明控制器3612的示例性 GUI。GUI元件3702代表用户实时控制模块化组件系统的运动模块318 的运动方向(例如,向前、向后、向左和向后)的虚拟手柄3610。GUI 元件3704允许用户调整运动模块318的运动速度。在GUI的右侧上, GUI元件3706和3708代表照明控制器3612。GUI元件3706允许用户 控制控制模块302上的照明,且GUI元件3708允许用户控制运动模 块318上的照明。在图37B中,在GUI的右侧,GUI元件3710代表手 势控制器3614,且允许用户选择可由颜色识别模块316呈现的三个预 先限定的手势中的一个。
图38是根据实施例的控制应用程序的另一个实例的屏幕截图。 在该实例中,屏幕截图代表脚本控制环境3604的一个基本功能3616 的示例性GUI。如图38中所示,GUI元件3802指出了选择的基本功 能3616是"避开障碍物"。GUI元件3804代表对应模块化组件系统执 行选择的基本功能所需的组件模块,以及目前在线的各个类型的组件 模块的数目。GUI元件3806允许用户例如通过模拟模块化组件系统的 行为来进一步改变或配置选择的基本功能。
图39是示出根据实施例的用于提供主机指令至控制模块302的 方法3900的实例的流程图。将参照以上附图来描述其。然而,可使 用任何适合的电路、逻辑、单元或模块。方法3900可由可包括硬件(例 如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理 装置上运行的指令)或它们的组合的任何适合的电路、逻辑、单元或 模块执行。将认识到,可能并非所有步骤都需要来执行本文提供的公 开内容。此外,一些步骤可同时执行,或以不同于图39中所示的顺 序执行,这将由本领域的普通技术人员理解到。
在3902处开始,主机204可将具有第一组GUI元件和第二组GUI 元件的GUI提供给用户。第一组GUI元件可允许用户在模块化组件系 统操作时在运行时间交互地控制模块化组件系统的操作。模块化组件 系统的操作例如可包括运动、照明和手势。在一个实例中,如上文详 细所述,第一组GUI元件可代表运行时间控制环境3602,其包括虚拟 手柄3610、照明控制器3612和手势控制器3614。第二组GUI元件可 允许用户指定对应于模块化组件系统的功能或行为。例如,第二组GUI 元件可代表脚本控制环境3604,其包括如上文详细所述的预先限定的 基本功能。
在3904处,主机204可便于用户选择第一组GUI元件或第二组 GUI元件。在3906处,主机204可确定第一组GUI元件或第二组GUI 元件是否由用户选择。如果选择第一组GUI元件,则在3908处,主 机204可基于用户与第一组GUI元件的交互来动态地生成第一组主机指令,例如,控制指令,以用于控制模块化组件系统的操作。在3910 处,当模块化组件系统操作时,主机204可将生成的第一组主机指令 在运行时间传输至模块化组件系统的控制模块302。如果选择第二组 GUI元件,则在3912处,主机204可基于由用户执行的功能或行为获得第二组主机指令,例如,编程指令。在3914处,主机204可在模 块化组件系统执行由用户指定的功能或行为之前将获得的第二组主 机指令传输至模块化组件系统的控制模块302。将认识到,用户可选 择第一组GUI元件和第二组GUI元件,且主机204可并行地或按顺序 生成和传输第一组和第二组主机指令。
图40A-40B是根据实施例的编程应用程序的实例的屏幕截图。在 图40A中,屏幕截图代表图形编程环境3606的示例性GUI。GUI元件 4002和4004代表组织成用于用户选择的类别的图形语句块3618。GUI 元件4002代表类别,诸如"流"、"运动"、"灯"、"传感器"、"逻辑"、 "数学"和"变量"。GUI元件4004代表目前选择的类别"流"下的可用的 图形语句块3618。如上文所述,图形语句块3618可包括参数。用户 可将期望的图形语句块3618拖放到GUI元件4006中来构成程序。选 择的图形语句块3618的参数的值也可输入到GUI元件4006中。
例如,图41是根据实施例的包括图形语句块的程序4100的实例 的屏幕截图。在该实例中,程序4100以"开始"图形语句块开始。程 序4100然后将两个功率模块310的"球功率"参数的值设置为"30"和 "-30"。程序4100的下一个图形语句块指出重复随后的图形语句块。 程序4100还包括指示运动模块318停止而无制动的图形语句块,以 及指示所有组件模块闪绿色光的图形语句块。在该实例中,程序4100 可实现以下功能或行为:(1)模块化组件机器人玩具在30瓦的输出功 率下向前移动一秒,同时所有组件模块都闪绿光;(2)在一秒的空闲 时间之后,切换两个运动模块的功率输出来引起模块化组件机器人玩 具向后移动一秒,同时所有组件模块闪绿光;以及(3)重复(1)和(2), 直到中断执行程序4100。
回到图40A-40B,GUI元件4008代表图形编程环境3606的图形 组件模块3620。在该实例中,GUI元件4008示出了模块化组件机器 人玩具的图标4010、模块化组件机器人玩具的名称4012,以及模块 化组件机器人玩具的各个组件模块202的图标、名称和数目。例如,GUI元件4014示出了控制模块302的图标,GUI元件4016示出了输 入控制模块302的名称的字段,且GUI元件4018示出了选择用于控 制模块302的颜色的字段。GUI元件4018提供用于运动模块318的类 似呈现或选择。即,GUI元件4008允许用户将值提供至模块化组件机 器人玩具的各个组件模块202的性质(例如,图标、名称或颜色),或 模块化组件机器人自身的性质。在该实施例中,模块化组件机器人玩 具的图标和各个组件模块202的图标分别模仿对应的模块化组件机器 人玩具和组件模块202的外形。
图42是示出根据实施例的用于提供主机指令至控制模块302的 方法4200的另一个实例的流程图。将参照以上附图来描述其。然而, 可使用任何适合的电路、逻辑、单元或模块。方法4200可由可包括 硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如, 在处理装置上运行的指令)或它们的组合的任何适合的电路、逻辑、 单元或模块执行。将认识到,可能并非所有步骤都需要来执行本文提 供的公开内容。此外,一些步骤可同时执行,或以不同于图42中所 示的顺序执行,这将由本领域的普通技术人员理解到。
在4202处开始,主机204可呈现GUI,例如,图形编程环境3606, 包括成组第一图形呈现和成组第二图形呈现。各个第一图形呈现(例 如,图形语句块3618)可对应于包括至少一个参数的语句块。各个第 二图形呈现(例如,图形组件模块3620)可对应于与至少一个性质(诸 如图标、名称或颜色)相关联的一个组件模块202。成组第一图形呈现 可分组成类别,其中一些涉及组件模块202的功能,诸如运动、照明 或感测。
在4204处,主机204可便于用户选择第一图形呈现中的至少一 个,且提供用于各个选择的图形呈现的参数的值。选择可通过拖放第 一图形呈现来进行。换言之,用户可以以视觉和图形方式构造程序。 在4206处,主机204可便于用户将值提供给第二图形呈现的性质。 即,用户可定制组件模块202的性质。将认识到,主机204可独立地 或并行地执行4204和4206。在一些实施例中,可不促进用户将值提 供给第二图形呈现的性质。
在4208处,主机204可基于选择的第一和第二图形呈现和其提 供的值生成成组主机指令,例如,编程指令。例如,主机指令可为源 代码或中间代码。将认识到,在一些实施例中,主机指令可基于选择 的第一图形呈现和其提供的值来生成,即,程序,但并未基于选择的 第二图形呈现和其提供的值。换言之,在一些实施例中,组件模块202 经由第二图形呈现的性质的定制可由主机204使用,但不由控制模块 302使用。在4210处,主机204可将生成的成组主机指令传输至控制 模块302来控制模块化组件系统的组件模块202的操作。在该实施例 中,传输可在控制模块302操作之前发生。在一些实施例中,主机204 可在传输之前根据成组主机指令呈现组件模块202的操作的预览。
例如,可使用一个或多个计算机系统(诸如图43中所示的计算机 系统4300)来实施各种实施例。例如,一个或多个计算机系统4300可 用于实施图27的方法2700、图28的方法2800、图31的方法3100、 图32的方法3200、图34的方法3400、图35的方法3500、图39的 方法3900以及图42的方法4200,以及图26、图29、图30和图33 的事件图。例如,计算机系统4300可根据各种实施例更新模块化组 件系统的控制模块上的固件和/或提供主机指令至其。计算机系统 4300可为能够执行本文所述的功能的任何计算机。
计算机系统4300可为能够执行本文所述的功能的任何公知的计 算机。计算机系统4300包括一个或多个处理器(也称为中央处理单元 或CPU),诸如处理器4304。处理器4304连接到通信基础结构或总线 4306。一个或多个处理器4304可各自为图形处理单元(GPU)。在实施 例中,GPU是设计成处理数学密集型应用程序的专用电子电路。GPU 可具有足以用于大型数据块(诸如计算机图形应用程序、图像、识别 等共同的数学密集型数据)的并行处理的并行结构。
计算机系统4300还包括用户输入/输出装置4303,诸如监视器、 键盘、指示装置等,其通过用户输入/输出界面4302与通信基础结构 4306通信。
计算机系统4300还包括主存储器或主要存储器4308,诸如随机 存取存储器(RAM)。主存储器4308可包括一个或多个级别的高速缓存。 主存储器4308具有储存在其中的控制逻辑(即,计算机软件)和/或数 据。计算机系统4300还包括一个或多个副储存装置或存储器4310。 例如,副存储器4310可包括硬盘驱动器4312和/或可除去的储存装 置或驱动器4314。可除去的储存装置4314可为软盘驱动器、磁带驱 动器、光盘驱动器、光储存装置、带备份装置和/或任何其它储存装 置/驱动器。可除去的储存驱动器4314可与可除去的储存单元4318 交互。可除去的储存单元4318包括计算机可用或可读的储存装置, 其具有储存在其上的计算机软件(控制逻辑)和/或数据。可除去的储 存单元4318可为软盘、磁带、光盘、DVD、光储存盘和/或任何其它 计算机数据储存装置。可除去的储存驱动器4314以公知的方式从可 除去的储存单元4318读取和/或写入。
根据示例性实施例,副存储器4310可包括其它器件、工具或其 它途径,以用于允许计算机程序和/或其它指令和/或数据由计算机系 统4300访问。此类器件、工具或其它途径例如可包括可除去的储存 单元4322和接口4320。可除去的储存单元4322和接口4320的实例 可包括程序盒和盒接口(诸如视频游戏装置中发现的)、可除去的存储 器芯片(如,EPROM或PROM)和相关联的插座、存储棒和USB端口、存 储卡和相关联的存储卡槽,和/或任何其它可除去的储存单元和相关 联的接口。
计算机系统4300还可包括通信或网络接口4324。通信接口4324 允许计算机系统4300与远程装置、远程网络、远程实体等(由参考标 号4328独立地和共同地表示)的任何组合通信和交互。例如,通信接 口4324可允许计算机系统4300与远程装置4328通过通信路径4326 通信,通信路径4326可为有线和/或无线的,且其可包括LAN、WAN、 因特网等的任何组合。控制逻辑和/或数据可经由通信路径4326传输 至计算机系统4300和从其传输。
在实施例中,包括具有储存在其上的控制逻辑(软件)的有形的计 算机可用或可读介质的有形的设备或制品也在本文中称为计算机程 序产品或程序储存装置。这包括但不限于计算机系统4300、主存储器 4308、副存储器4310和可除去的储存单元4318和4322,以及体现以 上任何组合的有形制品。此类控制逻辑在由一个或多个数据处理装置 (诸如计算机系统4300)运行时引起此类数据处理装置如本文所述操 作。
基于本公开中包含的教导内容,相关领域的技术人员将清楚如何 使用除图43中所示之外的数据处理装置、计算机系统和/或计算机架 构来制作和使用本公开的实施例。具体而言,实施例可利用除本文所 述的那些外的软件、硬件和/或操作系统实施方式来操作。
将认识到,详细描述部分且不是概述和摘要部分(如果有)旨在用 于阐释权利要求。概述和摘要部分(如果有)可提出由发明人构想出的 本公开的一个或多个但不是全部的示例性实施例,且因此不旨在以任 何方式限制本公开或所附权利要求。
尽管本文参照示例性领域和应用的示例性实施例描述了本公开, 但将理解的是,本公开不限于此。其它实施例和其改型也是可能的, 且在本公开的范围和精神内。例如,且不限制该段落中的普遍性,实 施例不限于附图中所示和/或本文所述的软件、硬件、固件和/或实体。 此外,实施例(不论本文是否明确描述)具有超出本文所述的实例的领 域和应用的显著实用性。
已经借助于示出特定功能和其关系的实施方式的功能构造块在 本文中描述了实施例。这些功能构造块的边界在本文中为了描述方便 而任意限定。只要特定的功能和关系(或其等同物)适当执行,则可限 定备用的边界。另外,备选实施例可使用不同于本文所述的那些的顺 序来控制功能块、步骤、操作、方法等。
本公开的宽度和范围不应当由前述示例性实施例中的任何限制, 而是应当仅根据以下权利要求和其等同物限定。

Claims (15)

1.一种用于更新模块化组件系统的控制模块上的固件的方法,所述方法包括:
获得与从所述控制模块采样的噪音相关的信息;
基于所述信息计算第一加密秘钥;
从所述模块化组件系统的主机接收将在所述控制模块上更新的固件,所述第一固件至少基于第二加密秘钥加密;
确定接收的固件可基于所述第一加密秘钥解密;以及
响应于确定所述接收的固件可解密,将解密的固件加载到所述控制模块中,
其中所述获得、计算、接收、确定和加载中的至少一者由所述控制模块执行。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述第一加密秘钥储存在所述控制模块的持久储存器中。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
响应于接收待更新的所述固件,从所述持久储存器取得所述第一加密秘钥。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从所述主机接收用于请求固件更新的消息;以及
响应于接收所述消息,将所述第一加密秘钥传输至所述主机。
5.根据权利要求1所述的方法,其特征在于,所述接收的固件可在所述第一加密秘钥和所述第二加密秘钥相同时基于所述第一加密秘钥解密。
6.根据权利要求1所述的方法,其特征在于,所述噪音从所述控制模块的电源采样。
7.根据权利要求1所述的方法,其特征在于,所述获得还包括:
采样所述控制模块来获得初始信号;
将所述初始信号滤波来获得滤波信号;以及
基于至少所述初始信号和所述滤波信号来计算噪音信号。
8.根据权利要求7所述的方法,其特征在于,
所述采样由模数转换(ADC)执行;
所述滤波由卡尔曼滤波执行;以及
所述计算由减法运算执行。
9.根据权利要求1所述的方法,其特征在于,将在所述控制模块上更新的所述固件被分成按顺序传输至所述控制模块的多个包。
10.根据权利要求9所述的方法,其特征在于,所述多个包中的各个的大小是相同的。
11.一种用于加密将在模块化组件系统的控制模块上更新的固件的方法,所述方法包括:
从所述控制模块接收基于与从所述控制模块采样的噪音相关的信息计算的加密秘钥;
至少基于所述加密秘钥来加密固件;以及
将加密的固件传输至所述控制模块,
其中所述接收、加密和传输中的至少一者由所述模块化组件系统的主机执行。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
将用于请求固件更新的消息传输至所述控制模块。
13.根据权利要求11所述的方法,其特征在于,所述传输还包括:
将所述固件分成多个包;以及
将所述多个包中的各个按顺序传输至所述控制模块。
14.根据权利要求13所述的方法,其特征在于,所述多个包中的各个的大小是相同的。
15.根据权利要求11所述的方法,其特征在于,所述噪音从所述控制模块的电源采样。
CN202011228195.7A 2016-03-31 2016-11-07 模块化组件系统 Active CN113144636B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011228195.7A CN113144636B (zh) 2016-03-31 2016-11-07 模块化组件系统

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201620271418.0U CN205752715U (zh) 2016-03-31 2016-03-31 连接结构及应用该连接结构的电子装置
CN202011228195.7A CN113144636B (zh) 2016-03-31 2016-11-07 模块化组件系统
PCT/CN2016/104824 WO2017166816A1 (en) 2016-03-31 2016-11-07 Modular assembly system
CN201680046644.1A CN108292816B (zh) 2016-03-31 2016-11-07 模块化组件系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201680046644.1A Division CN108292816B (zh) 2016-03-31 2016-11-07 模块化组件系统

Publications (2)

Publication Number Publication Date
CN113144636A true CN113144636A (zh) 2021-07-23
CN113144636B CN113144636B (zh) 2023-04-28

Family

ID=57374324

Family Applications (5)

Application Number Title Priority Date Filing Date
CN201620271418.0U Active CN205752715U (zh) 2016-03-31 2016-03-31 连接结构及应用该连接结构的电子装置
CN202011227361.1A Active CN113144634B (zh) 2016-03-31 2016-11-07 模块化组件系统
CN201680046644.1A Active CN108292816B (zh) 2016-03-31 2016-11-07 模块化组件系统
CN202011228195.7A Active CN113144636B (zh) 2016-03-31 2016-11-07 模块化组件系统
CN202011228185.3A Pending CN113144635A (zh) 2016-03-31 2016-11-07 模块化组件系统

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN201620271418.0U Active CN205752715U (zh) 2016-03-31 2016-03-31 连接结构及应用该连接结构的电子装置
CN202011227361.1A Active CN113144634B (zh) 2016-03-31 2016-11-07 模块化组件系统
CN201680046644.1A Active CN108292816B (zh) 2016-03-31 2016-11-07 模块化组件系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202011228185.3A Pending CN113144635A (zh) 2016-03-31 2016-11-07 模块化组件系统

Country Status (3)

Country Link
EP (1) EP3424108B1 (zh)
CN (5) CN205752715U (zh)
WO (1) WO2017166816A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116442204A (zh) * 2023-05-22 2023-07-18 浣江实验室 一种体素型机器人及包含其的系统

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108961979B (zh) * 2018-09-04 2020-10-20 付芃棵 一种教学机器人系统和组装方法
CN109240682B (zh) * 2018-09-30 2021-11-30 上海葡萄纬度科技有限公司 基于ar的交互编程系统、方法、介质及智能设备
WO2020124403A1 (en) * 2018-12-19 2020-06-25 Shenzhen Bell Creative Science and Education Co., Ltd. A connection structure of a robotic toy system
CN109358726A (zh) * 2018-12-24 2019-02-19 四川易简天下科技股份有限公司 模块化助教一体机及其识别方法、人工智能控制方法
WO2020156722A1 (en) * 2019-01-31 2020-08-06 Lego A/S Method of controlling an interacting toy construction model
CN112181400B (zh) * 2019-07-03 2023-09-22 福建天泉教育科技有限公司 基于脚本的机器人配置方法及机器人
CN114867540B (zh) * 2019-12-27 2024-04-30 索尼集团公司 信息处理装置、信息处理方法和信息处理程序
CN111216111B (zh) * 2020-01-07 2023-02-10 北京可以科技有限公司 一种模块单元及模块化机器人
CN111190387B (zh) * 2020-01-07 2022-07-05 北京可以科技有限公司 机器人控制方法及系统
JP7434576B2 (ja) * 2020-01-07 2024-02-20 北京可以科技有限公司 結合固定モジュール及びモジュラーロボット
CN111781871B (zh) * 2020-06-30 2021-10-01 镇江宇诚智能装备科技有限责任公司 一种智能体结构及其多外设模块拼接与识别方法
CN111836409B (zh) * 2020-06-30 2023-06-09 镇江宇诚智能装备科技有限责任公司 一种多智能体系统结构及其控制方法
CN112071314B (zh) * 2020-07-31 2023-09-05 深圳市捷视飞通科技股份有限公司 语音控制方法、装置、计算机设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6724894B1 (en) * 1999-11-05 2004-04-20 Pitney Bowes Inc. Cryptographic device having reduced vulnerability to side-channel attack and method of operating same
US20040158711A1 (en) * 2003-02-10 2004-08-12 Intel Corporation Methods and apparatus for providing seamless file system encryption and redundant array of independent disks from a pre-boot environment into a firmware interface aware operating system
CN1954540A (zh) * 2004-02-05 2007-04-25 Ctam美国股份有限公司 多协议网络加密系统
US20100008510A1 (en) * 2008-07-10 2010-01-14 Zayas Fernando A Method And System For Secure Download Of Firmware
CN103257872A (zh) * 2013-04-15 2013-08-21 中国信息安全测评中心 一种计算机的嵌入式控制系统及其更新方法
US20150121070A1 (en) * 2013-10-28 2015-04-30 Disney Enterprises, Inc. Firmware security
CN105812570A (zh) * 2016-04-21 2016-07-27 深圳市旭子科技有限公司 终端固件更新方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6605914B2 (en) * 2001-08-24 2003-08-12 Xerox Corporation Robotic toy modular system
US6454624B1 (en) * 2001-08-24 2002-09-24 Xerox Corporation Robotic toy with posable joints
CN100388257C (zh) * 2006-03-23 2008-05-14 王斌 设置即插即用扩展模块的无线终端及其方法
CN100446942C (zh) * 2007-03-08 2008-12-31 华中科技大学 一种模块化嵌入式多足机器人运动控制器
CN201156186Y (zh) * 2007-06-11 2008-11-26 陈宇 可扩展型通用机器人开发平台
SG149730A1 (en) * 2007-07-30 2009-02-27 Molex Inc Inverse coplanar electrical connector
DK2918319T3 (en) * 2007-10-11 2017-04-03 Lego As Toy construction system
US8206181B2 (en) * 2009-04-29 2012-06-26 Sony Ericsson Mobile Communications Ab Connector arrangement
CN101908989B (zh) * 2010-08-16 2016-01-13 海尔集团公司 一种智能家电的控制方法
CN102033764B (zh) * 2010-11-30 2014-08-20 公安部第三研究所 一种tf卡cos固件更新方法
CN102563168A (zh) * 2010-12-18 2012-07-11 西安迅腾科技有限责任公司 一种多气路气体压力远程控制系统
WO2013066901A1 (en) * 2011-10-31 2013-05-10 Modular Robotics Incorporated Modular kinematic construction kit
US8371894B1 (en) * 2011-12-23 2013-02-12 LaRose Industries, LLC Illuminated toy construction kit
US9600443B2 (en) * 2012-01-30 2017-03-21 International Business Machines Corporation Tracking entities by means of hash values
US10188939B2 (en) * 2014-03-11 2019-01-29 Microsoft Technology Licensing, Llc Modular construction for interacting with software
CN105364943B (zh) * 2014-08-29 2020-04-17 鸿富锦精密工业(深圳)有限公司 固接装置及使用该固接装置的机械臂与机器人
US9592603B2 (en) * 2014-12-01 2017-03-14 Spin Master Ltd. Reconfigurable robotic system
US10758836B2 (en) * 2015-05-20 2020-09-01 Robo Technologies Gmbh Connecting structures in a modular construction kit
CN205659409U (zh) * 2016-06-06 2016-10-26 合肥市融宇电子有限公司 一种智能儿童玩具组装模块机器人与面感知模块的连接装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6724894B1 (en) * 1999-11-05 2004-04-20 Pitney Bowes Inc. Cryptographic device having reduced vulnerability to side-channel attack and method of operating same
US20040158711A1 (en) * 2003-02-10 2004-08-12 Intel Corporation Methods and apparatus for providing seamless file system encryption and redundant array of independent disks from a pre-boot environment into a firmware interface aware operating system
CN1954540A (zh) * 2004-02-05 2007-04-25 Ctam美国股份有限公司 多协议网络加密系统
US20100008510A1 (en) * 2008-07-10 2010-01-14 Zayas Fernando A Method And System For Secure Download Of Firmware
CN103257872A (zh) * 2013-04-15 2013-08-21 中国信息安全测评中心 一种计算机的嵌入式控制系统及其更新方法
US20150121070A1 (en) * 2013-10-28 2015-04-30 Disney Enterprises, Inc. Firmware security
CN105812570A (zh) * 2016-04-21 2016-07-27 深圳市旭子科技有限公司 终端固件更新方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116442204A (zh) * 2023-05-22 2023-07-18 浣江实验室 一种体素型机器人及包含其的系统
CN116442204B (zh) * 2023-05-22 2024-02-23 浣江实验室 一种体素型机器人及包含其的系统

Also Published As

Publication number Publication date
CN113144636B (zh) 2023-04-28
EP3424108A1 (en) 2019-01-09
CN108292816A (zh) 2018-07-17
CN113144635A (zh) 2021-07-23
EP3424108A4 (en) 2019-03-27
CN113144634A (zh) 2021-07-23
CN113144634B (zh) 2022-05-13
CN108292816B (zh) 2021-11-02
CN205752715U (zh) 2016-11-30
EP3424108B1 (en) 2021-06-02
WO2017166816A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
CN113144634B (zh) 模块化组件系统
US10491380B2 (en) Firmware of modular assembly system
EP3116617B1 (en) Modular construction for interacting with software
US20170076194A1 (en) Apparatuses, methods and systems for defining hardware-agnostic brains for autonomous robots
US8571781B2 (en) Self-propelled device with actively engaged drive system
WO2017152067A1 (en) Drone and robot control systems and methods
CN105264452A (zh) 多用途自推进装置
CN107251570A (zh) 来自远程设备的传感器数据可用性
US20170282383A1 (en) System for content recognition and response action
CN112516605B (zh) 模块化组件系统
US20210213356A1 (en) Reader participation type electronic book system using module and operation method
Staple Learn Robotics Programming: Build and control AI-enabled autonomous robots using the Raspberry Pi and Python
EP3905056A1 (en) Reader participation type e-book system and operation method using modules
EP2994804B1 (en) Multi-purposed self-propelled device
US11738470B2 (en) Tool changer and tool change system having the same
KR102479950B1 (ko) Ar을 통한 모듈 조립이 가능한 코딩 교육용 시스템
KR102207517B1 (ko) 스마트 큐브 및 이의 동작방법
Lai et al. Demonstration of wireless synchronisation methods in autonomously controlled fleet of drones
Magnenat Software integration in mobile robotics, a science to scale up machine intelligence
Dosu et al. Development of a Mobile Application for Monitoring and Controlling Stage Lights

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