被配置消费者对智能电话或触控板编程的云计算系统的制作方法

文档序号:6377549阅读:144来源:国知局
专利名称:被配置消费者对智能电话或触控板编程的云计算系统的制作方法
技术领域
本发明涉及使得非专业消费者能够设计、构建物品(article)或消费者设计的系统并对其进行编程的云计算系统。智能电话/触控板被提供用于消费者控制被提供以构建所述消费者设计的物品的所选ー组附件构件。
背景技术
传统构建工具包(building kit)要求用户获悉关于微处理器的详细技术结构、用以对微处理器进行编程的汇编语言和支持电子电路的设计。汇编语言对于初学者是极其难以掌握和调试的。诸如IXD显示器的支持电路设计也要求对电子设计技术的深入知识。本发明的目的是提供允许非专业消费者获悉并开始尝试用智能电话/触控板在一天内构建其自己的设计或发明并对其进行编程的系统。用于消费者对其业余爱好设计的智能电话/触控板进行编程的容易的编程环境对鼓励消费者在智能电话/触控板变革中參与主动角色起重要作用。其还鼓励蜂窝电话制造商为智能电话/触控板提供附加的不寻常特征,这可能是消费者扩展其设计探索冒险所需要的。另外,由消费者发明的新产品设计可以向市场提供新商业机会并对智能电话/触控板的供应链有益。这些因素驱动本发明的发起。

发明内容
定义由于本专利申请的应用领域和编程系统当前对于市场而言是非常新的,所以适当的术语解释对于具有本领域中的普通知识的人要理解本发明的创新特性而言是重要的。因此,本节提供明确的术语定义以便控制说明书和权利要求的适当解释。针对术语“零售构建工具包”,子术语“构建工具包”被定义为使得消费者能够构建由其设计的物品的许多元件或部件构件的集合。子术语“零售”的添加意指元件或部件出于零售目的被封装,或者部件通过传统零售渠道被分配而到达消费者。“非专业消费者”或“非技术性用户”被定义为普通用户,其几乎不具有关于处理工程设计工作的知识,包括一般在技术领域中使用的传统编程语言的知识,诸如汇编语言、C或Java,或者关于智能电话/触控板的传统开发者编程系统的知识的要求,诸如AppleiPhone、iPad 和 Google Android 系统的那些。“蜂窝电话”被定义成能够通过公共蜂窝电话网络与另ー蜂窝电话进行语音/数据通信的便携式无线电话。典型示例是通过AT & T和Verizon无线蜂窝电话网络来通信的蜂窝电话。“触控板”被定义为是能够连接到w1-fi因特网网络或公共蜂窝电话网络以进行数据、语音、图像或视频的通信的便携式触控板。典型的示例是iPad和Android兼容板。
“蜂窝电话/触控板”被定义为是蜂窝电话“或”触控板。
“智能电话/触控板”被定义为是能够执行被下载到所述蜂窝电话/触控板上的应 用程序的蜂窝电话或触控板。典型的示例是iphone、iPad和Android兼容电话和触控板。
“专有蜂窝电话/触控板”被定义为是出于本申请的“构建工具包”目的而设计的 蜂窝电话/触控板的特殊版本,其中,可以由于成本改善原因而删除传统蜂窝电话/触控板 正常地要求的特征;或者,添加传统蜂窝电话/触控板正常地不要求的特征。从传统蜂窝电 话/触控板衍生出“专有蜂窝电话/触控板”通常地使其对于传统蜂窝电话触控板用户而言 是不期望的。添加特征的示例是图16A的蜂窝电话1608,其从用于将蜂窝电话牢固地安装 到消费者设计组件1600中的四个特殊安装孔1632 1635开始。减少的特征的示例是图 23的蜂窝电话2300,其中,没有可用的拨号盘或IXD显示器。该衍生将使得蜂窝电话1608 和2300对于正常蜂窝电话用户而言不那么吸引人。
“标准化通信连接器”被定义为由蜂窝电话/触控板提供以与外部电路传送数据的 行业标准连接器。iPhone、iPad的标准化通信连接器是这些产品的标准化Apple连接器。 用于Android电话的标准化通信连接器通常指的是为这些设备提供的串行数据USB连接器。
“智能电话/触控板主控系统”被定义为由已知主控实体提供和保持以便对蜂窝 电话/触控板产品的标准系列进行服务的标准化或已调节系统,在标准化或已调节系统下 所写的应用程序可由该系列的不同型号执行。在市场上可获得当前两个众所周知的“智能 电话/触控板主机系统” 一用以对iPhone和iPad进行服务的Apple的iOS系统和用以对 Android电话和触控板进行服务的Google的Android系统。
“应用库”或“应用市场”被定义为是消费者能够利用其选购或购买或下载由专业 开发者开发的应用程序的营销系统。
术语“用于专业开发者的平台系统”和“被配置成用于专业应用开发者的平台系 统”被定义为为了专业开发者编写应用程序而提供的硬件和软件开发系统的组合。
“应用程序”被定义为由专业开发者在由主控实体提供的“用于专业开发者的平台 系统”的支持下编写的用于分配到消费者的智能电话/触控板的程序。当前在市场中可获得 “用于专业开发者的平台系统”的两个示例。第一个是Apple iOS系统,其包括但不限于iOS 模拟器、Xcode工具套装、Xcode IDE和Apple LLVM编译器。第二示例是Google Android 系统,其包括但不限于Android SDKandroid NDK伙伴、AVD管理器、Google USB驱动器以 及适合于在Android平台中工作的C、C++编程工具。
“用于非专业消费者的平台系统”被定义为用于非专业消费者编写用于控制器单 元或用于智能电话/触控板的程序、从而用于控制器单元或智能电话/触控板用由消费者 设计和/或编程的物品或系统进行工作的硬件和软件开发系统的组合。
“消费者编程软件”被定义为为了非专业消费者在“用于非专业消费者的平台系 统”的支持下编写程序提供的软件。
“消费者可编程系统”被定义为可由非专业消费者编程的设计的系统。
术语“消费者设计物品”和“消费者设计系统”被定义为是由非专业消费者设计的 物品或系统。消费者设计物品或系统可以包括由非专业消费者提供的硬件设计和软件编程的组合。
“机器级软件系统”被定义为用以用处理器进行工作的机器代码或汇编语言水平的软件。
“OS”根据商业意义被定义为计算设备的基元“操作系统”。OS的典型示例是由 Microsoft提供的Windows系列、由Apple提供的iOS、由Google提供的Android OS和 Linux、开放源OS。
“操作级软件系统”被定义为支持OS (包括用于OS与支持硬件相交互的驱动程序) 并支持用于OS与高级语言相交互的程序的软件环境。
“编译器”根据商业意义被定义为被配置成将由程序员所编写的程序编译或翻译成可由计算设备或智能电话/触控板执行的代码的计算系统。
术语“计算机存储器”和“数字存储介质”被定义为能够存储数字数据并用于使数据在需要时被检索的任何种类的存储器或存储介质。这些术语的范围包括但不限于半导体存储器、磁介质和光学介质。
术语“易编程语言”和“易编程软件”被定义为编程的方法,包括以下步骤(a)定义用于计算设备接收数据、触发或信号的m个输入端,其中,m是等于或大于一的整数;(b)定义用于所述计算设备传送触发、数据或信号的η个输出端,其中,η是等于或大于一的整数;·(C)指定X个配置状态,其中,每个配置状态定义至少一个输入端和/或一个输出端的配置,并且X是等于或大于一的整数;Cd)指定将由所述计算设备来执行的y个事件,其中,y是等于或大于一的整数;Ce)当由输入端接收到的信号、触发或数据满足预定义合格条件时,指定要执行的事件;以及(f)使得事件能够从当前配置状态切换到另一配置状态。
应注意的是上文定义的“易编程语言”的进一步显著技术改进变成本发明的某些核心部分,其使得非专业消费者能够针对控制器单元或智能电话/触控板进行编写程序从而对由消费者设计的消费者系统进行构建和编程。
第一母发明的意图是提供一种用以支持没有专业工程或软件知识的普通人的发明或物品构建爱好的可编程构建工具包的完整解决方案。此解决方案得到由在名为Easy Format的美国专利5,867818中公开的由申请人发明的编程方法的显著改进型式的支持。 在本文中称为“易编程语言”的Easy Format的改进型式是非常适合于支持发明或爱好构建工具包的事件驱动编程方法。这是因为不要求非专业消费者获悉微处理器的汇编语言和开发工具。术语“编程方法”、“编程语言”或“编译软件”与传统软件相比是非常不同的。这些术语表示与编程计算机相结合地提供以用于用户编写传统软件程序的“工具”。用各种计算机前和计算机后活动导致的使用这些工具的过程取决于要用编程语言编写的程序的性质。 当与汇编语言及其它高级编程语言相比时,由用易编程语言所写的程序定义的“易程序”非常容易被其它程序员阅读和理解。此特性使得其成为用于非专业消费者的特选的编程语言,其能够与其它构建工具包业余爱好者共享并讨论软件程序。当与其它二维流程图类型的编程语言相比时,易编程语言是优越的,因为其提供用以用两个至三个表对多维程序流程进行结构化的手段。用易编程语言进行的编程仅仅是根据在消费者的脑内结构化的程序流程来填充表元素的工作。Easy Format的传统形式已变成用于专业电子工程师和微处理器程序员的行业标准。美国专利5,867,818已经公布了參考指令,其已被授权给公共领域中的许多微处理器供应商。因此,在本申请中不再详细地重复为专业工程师/程序员设计的传统Easy Format软件的进ー步深入描述。总而言之,Easy Format或易编程语言是使得用户能够对微处理器IC或控制器单元进行编程以与硬件/软件触发器或外部电路相交互的编程语言或编程方法。传统或原始Easy Format被设计成用于专业工程师/程序员对微处理器进行编程。其不适合于对诸如智能电话或触控板的更复杂的电子设备进行编程。因此,在本专利申请中研究并公开了对传统Easy Format编程方法的显著改迸。提供语言的改进特征是为了支持用于非专业人员、特别是用于应用对智能电话/触控板进行编程的编程构建工具包的特殊应用。这些改进利用计算机屏幕的增强交互式视觉特征来使编程工作和错误最小化。在计算机屏幕上提供用户友好的符号和图形标签以促进创作用增强易编程语言编写的程序。该编程过程通过提供被针对改进的易编程语言的性质进行自定义的非常特殊的下拉菜单和拖放进程而被进ー步增强。添加了特殊的新指令以便微控制器处理串行数据通信。添加了用以直接控制诸如电动机、灯泡的构建工具包部件的命令。新的指令允许直接向显示器或LCD面板发送消息。提供了用于控制器単元或智能电话/触控板与诸如无线电话的远程设备通信的新接ロ/协议。在本系统中提供的远程控制器的大多数按钮键是用户可编程的,并且因此添加了用于用户定义输入键的性质的标签区域。本申请公开了用于用户用改进的易编程语言来编写程序的优选实施例。程序的可执行代码被传输到闪速存储器以便与控制器单元对接。将可执行代码下载到诸如智能电话/触控板的目标设备的其它方法是对于本行业而言是已知的,因此被视为在本发明的范围内。为了减少控制器単元/智能电话/触控板与附件构件之间所需的连接线的数目,并且为了減少主控制器単元或智能电话/触控板处理器的实时工作负荷,向附件构件的内部结构添加了多个微小的控制器以共享控制附加构件的本地作业,诸如调整电动机速度、将电位计读数转换成数字数据、对音频和/或视觉数据进行编码和解码。在本申请中稍后公开的机器人构建项目中证明了构建工具包特征的益处。还应指出的是所公开的工具包的大多数构建块被配置成用螺钉或钉子安装在一件核心材料上。在针对此研究在搜索完美的核心结构时对不同的材料和设计进行实验之后,已发现木块是非常优选的核心安装材料。成本低且在许多家庭中广泛地可获得的木块还提供其它显著的优点。木材易于被修整成要构建的物品的期望形状。还可以将不同的木块组合或胶合以形成特殊物品构建项目所需的特殊形状。接近控制器单元的结构的高级遥控构件被添加到该系统以便用户有效地与控制器单元进行通信。此遥控构件被用电缆线或用诸如射频、红外或超声波通信设计的无线方法连接到控制器単元。遥控构件还可以装配有用于提供与控制器単元的音频/视觉通信的LED或!XD显不面板或扬声器。在另一应用样本中,可以用移动电话来表不遥控构件。在这种情况下,构建工具包将要求用于控制器単元的拨号电路和/或调制解调器电路以与无线电话进行通信。可以将此拨号和/或调制解调器电路安装在控制器单元内部或作为外部附 件构件定位于外部。在消费者设计的物品包括智能电话/触控板的情况下,通过连接两个 蜂窝电话的蜂窝电话网络来执行控制通信。因此,本系统中的附件构件被定义为支持用于 构件消费者设计的物品的控制器单元所需的任何模块化构件。附件构件包括被结构化而被 安装在一起以形成消费者设计物品的任何机械部件。
第二母发明的目的是提供能够由非专业消费者来容易地处理的可编程玩具系统。 在本文中讨论East Format软件编译器的改进型式以使得没有任何技术知识的消费者能够 根据他/她的想象和期望来对玩具进行编程。可以用许多不同形式的玩具物品来提供可编 程玩具系统,包括但不限于玩偶、男性动作人物、机器人、机动车辆、跑道、玩具组以及游戏。 可编程玩具物品的特性是被连接到在玩具构件内部提供的微控制器的传感器和换能器的 结构。然后将玩具内部的微控制器编程成根据从传感器接收到的信号来将换能器激活。传 感器的典型示例是运动传感器,诸如电动机和螺线管;位置传感器;不同种类的开关;声音 传感器,诸如电容式麦克风和光传感器,包括数字照相机传感器。换能器的典型示例是热换 能器;光换能器,诸如灯泡和LED、LCD显示器;声音换能器;以及运动换能器。可编程玩具 还可以装配有计算机接口电路且可能有调制解调器或拨号电路、诸如w1-fi电路的无线数 据电路,或者还装配有用于玩具在没有与计算机钩在一起的情况下与远程电话或网站通信 的可编程智能电话/触控板电路。
该玩具还优选装配有识别电路的有线或无线设计以便主可编程构件与一系列的 附件玩具构件对接。在另一优选设计中,在可编程玩具物品的顶部上提供诸如数字小键盘 的小键盘以提供交互响应或在玩具物品被编程之后由用户来指挥不同的游戏模式。数字键 盘对于玩具而言具有特殊意义,其允许用许多的操作模式对玩具进行编程,并且还允许用 户用涉及数字的活动来设计玩具,诸如用特殊的代码序列来激活或锁定的功能。可编程玩 具还优选装配有用于用户远程地控制玩具、并且还使得用户能够在期望时远程地超过编程 序列的遥控器。
在市场中促销的大多数可编程玩具实际上不是可编程玩具。由玩具提供的不同游 戏模式实际上是在工厂中被预编程的。用户仅被允许选择预编程游戏模式中的一个。另一 类型的可编程玩具允许用户选择连续的一系列预编程功能。这些类型的可编程玩具实际上 是序列控制器而不是如在本申请中定义的真正的用户可编程玩具。在本申请中定义的用户 或消费者缩写程序要求用户访问软件编译器,编写或创作程序并随后将程序编译成可由玩 具的微控制器来执行的代码。用户程序的编译代码被直接下载到玩具中或传输到存储器模 块或盒中,并且然后用于将存储器模块连接到玩具以便由内部的微控制器来执行。
提供可编程玩具产品线的玩具公司被推荐提供支持网站。用此网站,用户可以从 远程帮助台获得交互支持以使用系统或创作用户程序。用于用户编程的远程帮助台还不是 成功的,因为用汇编语言以及甚至诸如C和Java的高级语言编写的大多数程序非常难以被 第三方理解。由于易编程语言现在是使得大多数人容易地理解由另一个人编写的程序的程 序流程的用户友好编程语言,所以用以支持消费者编程的远程帮助台概念现在有意义。
在另一应用示例中,消费者可以通过不同远程粉丝俱乐部网站和由玩具公司支持 的网站来交换由其他消费者编写的程序。虽然玩具公司及其它消费者可以将应用程序张贴 在网站上,但易编程语言的用户友好性质使得消费者能够对程序进行修改或细微调整,并在程序被下载到玩具中之前用某些个性化声音文件或消息来替换程序。在另ー商业模型中,出售可编程玩偶产品线的玩具公司可以每个星期或每个月发布应用软件的ー个版本。每个版本将为玩偶提供不同的个性。在这种情况下,消费者每个月或者甚至每个星期获得不同的玩偶。由于装配在玩偶内部以存储程序代码和表示声音文件的压缩数字数据的存储器大小始终是有限的,所以可以通过在网站上张贴用于每个玩偶的大型语音消息库以支持新代码发布来为此商业模型提供另ー刺激特征。此玩具发明所允许的另ー商业模型是用于消费者将其自己的程序张贴在网站上以用于与其它消费者交換或共享。消费者还可以将他/她的玩具程序设计提交给玩具公司,并帮助玩具公司在稍后的时间准备刺激的新个性化程序发布。当然,鼓励玩具公司在消费者的程序被选中时对他/她给予报酬。除在每个时间间隔向玩具提供不同的个性之外,玩具公司可以向玩偶发布程序的连续生长版本。此商业模型使得玩偶能够在玩具公司的控制下每个星期或每个月地生长。程序的周期性发布对于在CD ROM上提供个性化程序的所有不同阶段的方法而言是优选的,因为其教授孩子要有耐心,并且与不同个性的他/塔的玩具在一起,无论他/她喜欢不喜欢,即人们在真实世界中之中面对的情況。其还为玩具公司提供对及时特征的控制和将在不同的时间帧期间发布的连续代码的质量更新。另ー技术问题是解决生长玩偶概念的周期性发布。这是因为并不是所有玩偶都被同时地购买。因此,在不同的时间出售的玩偶可能要求不同的发布阶段。此问题的解决方案是在用户登录到远程网站中时分配用户ID。网站中的新用户登录是在发布的第二阶段提供的。程序发布的后续阶段是ー个月接一个月或一周接一周地提供的。在エ厂中安装发布的第一阶段是优选的。实时时钟对于用户可编程玩具而言也是优选的。此特征还使得玩具能够根据日历的日期或时间来提供交互功能。因此,编译软件需要与实时时钟功能有关的指令。可以通过激活小键盘来实现设置当天的实际时钟时间,或者通过在玩具通过计算机或直接地通过调制解调器/拨号器被连接到网站时由网站提供的程序或自动操作。母专利申请引入了与智能电话类似的控制器単元的小键盘、拨号电路和通信能力。公开了用于消费者用改进易编程语言来编写消费者程序或将消费者程序下载到类似的智能电话的高级软件特征。结果,智能电话变成用以控制由消费者设计的设备的交互的可编程控制器。智能电话的这些消费者可编程特征当前是不可从市场获得的。这是由于以Apple的iOS系统和Google的Android系统为代表的两个主要主流智能电话/触控板可控系统的系统限制。Apple的iOS和Google的Android系统的关键限制是缺少消费者友好的软件环境;这是用于非专业消费者以智能电话作为控制器来学习和编写消费者控制程序所需的。本发明的目的是提供一种补充Apple的现有iOS、Google的Android系统或将来流行的任何其它智能电话/触控板主控系统的系统。本补充系统源自于2004年11月15日提交的待决美国母专利申请10/988,822和2005年I月21日提交的待决美国专利申请号11/041,048的基础。在本申请中公开了根据研究实现的智能电话/触控板所特定的软件编程环境的进ー步显著改善。由于在市场中可获得的智能电话/触控板的不同型号的高复杂性和市场条件的急剧变化,所以设计了云计算系统以支持本发明的系统,使得能够在云处编译由消费者编写的程序,而不是用位于消费者的家处的全功率计算机来进行编译。由于以下原因,当前的云计算系统对于iPhone, iPad、Android电话/板的应用开发平台而言不是优选的Ca)处理专业开发者的编程需要的广泛变化所需的开发系统的高复杂性;(b)要求将安装在专业开发者的办公室或家庭处的调试工具;(C)如果调试工具被重新定位于云,则不能向专业开发者提供令人满意的服务。由于意 外的原因,代码的编译可能未在云系统处被成功地完成。此问题常常可能由于现场的目标 应用程序的高复杂性和广泛变化而发生。
(d)不能提供某些应用所要求的快速实时响应,对于该应用而言,快速响应是关键 的。
虽然消费者设计/程序也具有广泛的变化,但易编程平台提供使得云计算成为优 先选择的以下优点(1)易编程语言的明显更简单的结构允许消费者与在线的其它消费者共享其程序并讨 论其问题。此独特特征显著地减少了主控实体所需的技术客户支持的量;(2)由于高程序效率,所以与用其它高级语言编写的程序相比,用易编程语言编写的程 序的尺寸明显更小。此性质减少了将程序上传到云计算系统所需的时间。
(3)易编程语言不要求调试工具的显著支持。消费者能够在几分钟内容易地实现 连续的几轮已编译代码测试。与针对专业应用开发者配置的传统平台系统相比,这是使得 能够实现云编译的显著优点。
存在用于对易编程平台进行修改以便消费者对智能电话/触控板进行编程的多 个可能布置。第一布置是用于智能电话充当消费者设计系统的电话拨号器、小键盘输入选 择器、扬声器和语音电路及数字照相机。具有微处理器的控制单元充当系统的主控制器。添 加了诸如电动机和灯泡的附件元件以补充由消费者设计的系统。更复杂的替换设计是将智 能电话/触控板的微控制器配置成充当由消费者设计的系统的主控制器。在此配置中,已 编译消费者程序的代码被下载到智能电话/触控板而不是第一布置的控制单元。为了替换 布置用诸如电动机和灯泡的外部附件元件进行工作,智能电话/触控板的输出数据端口被 连接到解码器,其将智能电话/触控板的输出数据串解码成多个双稳定I/O信号,其中,每 个I/O信号被连接到外部附件元件。
在典型布置中,用于非专业消费者编写程序的平台系统包括消费者程序编译器, 其将消费者程序翻译成可由智能电话/触控板执行的代码。还存在用以设计软件开发系统 的不同方式。在第一布置中,由专业应用开发者来提供并维护用于非专业消费者的平台系 统。在此布置中,应用开发者提供用于消费者通过由主控实体提供的应用库来下载到他/ 她的智能电话/触控板中的插件程序。此插件程序的目的是指挥智能电话/触控板将已编 译可执行代码下载到智能电话/触控板中。该插件程序还服务用于智能电话/触控板的内 部处理器翻译通过电话线接收到的数据的功能。已翻译代码随后被发送到连接外部解码器 的接口端口,其进一步与消费者设计的外部附件构件对接。消费者然后根据诸如易编程编 译器的消费者语言编译器的指令指南来编写消费者程序。然后在消费者的计算机处或在云 计算系统处编译此程序以提供可执行代码。该可执行代码然后通过在其中提供的插件程序 被下载到智能电话/触控板中。在替换布置中,由诸如Apple或Google的智能电话/触控 板主控实体来直接提供用于非专业消费者的平台系统。这是提供以下优点的优选布置(I)直接由主控实体用操作级软件系统的内部资源以及用于专业应用开发者的平台系统的资源来支持用于非专业消费者的平台系统。(2)用以使用云计算资源的明显更高的效率;
(3)避免来自竞争消费者设计市场的应用开发者的过分竞争,其可能导致不兼容的消费者编程平台。在本申请人的观点中,最佳的系统是用于诸如Apple或Google的主控实体提供和维护用于非专业消费者的平台系统;同时将附件元件业务委托给应用开发者,其提供不同性质的消费者构建工具包。向增强易编程软件提供的特殊指令使得消费者能够通过蜂窝电话无线网络对两个智能电话/触控板之间的通信连接进行编程。消费者可以将ー个蜂窝电话编程为遥控器以控制被组装而形成位于远程位置处的消费者设计系统的另一智能电话/触控板的运动、交互。远程智能电话能够向控制器电话发送视频和音频信号。在所附权利要求中特别地阐述了本发明的新颖特征。结合附图来阅读时,根据以下描述将最好地理解本发明。


图1A举例说明用传统Easy Format编写的程序的状态表;
图1B举例说明用传统Easy Format编写的程序的路径表;
图2举例说明在计算机屏幕上显示的改进易程序的可见形式;
图3举例说明以改进型式设计以表示改进易程序中的路径等式元素的输入、输出和性质的图形符号;
图4举例说明将在改进可见易编程的状态表中使用的标签的示例;
图5举例说明改进可见易编程的路径表中使用的符号和标签;
图6举例说明被提供用于用户编译改进易程序并将控制器単元可执行代码下载到闪速存储器的实施例;
图7举例说明用本发明的零售构件工具包的部件构建的机器人;
图8举例说明用具有内置照相机图像传感器的数字式照相机表示的附件构件的实施
例;
图9A举例说明数字式照相机附件构件实施例的顶视透视 图9B举例说明附件数字式照相机实施例的侧视透视 图10举例说明控制器単元的实施例的放大外视 图11举例说明表示机器人手的另ー附件构件的运动方向;
图12举例说明本发明的构建工具包的实施例的方框 图13A举例说明用将用不同的附件玩具构件进行工作的车辆表示的主玩具构件,每个附件玩具构件具有识别部件;
图13B举例说明用于用户控制编程玩具物品的键盘;
图13C举例说明用于控制可编程玩具物品的远程控制器的实施例;
图14A举例说明用户可编程玩偶;
图14B举例说明图14A的用户可编程玩偶的用户可编程机器人或内视 图15A举例说明用以对消费者可编程玩具进行编程的设置;图15B举例说明用以对消费者可编程玩具进行编程的替换设置,图16A举例说明用本发明的零售构建工具包的部件连同智能电话/触控板一起构建的 机器人;图16B举例说明图16A的机器人的后视图;图17举例说明具有蜂窝电话-触控板的消费者设计系统实施例的系统方框图;图18举例说明具有蜂窝电话-触控板的另一消费者设计系统实施例的系统方框图; 图19举例说明本发明的软件开发系统实施例;图20举例说明被提供用于对智能电话/触控板进行编程的云计算系统;图21举例说明被提供用于消费者对智能电话/触控板进行编程的改进易编程指令; 图22举例说明用于消费者对智能电话/触控板进行编程的编程环境的实施例;以及 图23举例说明专有智能电话的示例性实施例。
具体实施方式
图1 12举例说明在美国母专利申请#10/988,822中公开的基本技术和实施例。
Easy Format是由本申请人发明的如在美国专利5,867,818中公开的用于专业工 程师或程序员对语音生成微处理器进行编程的既定编程方法。此编程方法已经被许多不同 的微控制器IC供应公司许可,并且现在是用于设计工程师对在电子玩具和消费者电子产 品的设计中使用的微处理器IC进行编程的行业标准。依照本发明,用图1A和IB的编程格 式来表示Easy Format编程软件的示例。编程格式包括两个字段或表格。第一字段是用表 10表示的,其包括列出全部的八个I/O端子的第一坐标12和列出所有I/O配置状态的第二 坐标11。该表的每个元素表示处于特定I/O配置状态的端子的配置。编程过程的第一部 分是用所定义的八个符号R、F、1、O、X、H、L和P中的一个来指定表格的每个元素。每当端 子被配置成输入端子时,将指定编号事件。这是将在接收到合格输入信号或触发时执行的 事件。元素13 “F:E11”表示I/O状态(State) #1的端子I (引脚I)的配置,而“F”表示 合格信号或触发器以下降沿为特征,Ell表示当在由端子I接收到下降沿信号或触发时,将 执行事件(Event) #11。元素14表示当由端子2接收到上升沿信号或触发时,将执行事件 (Event)#2o兀素15 “X”表不端子6是不介意(do not care)端子。每当输入端子被配置 成“X”时,由该端子接收到的任何触发或信号被忽视。每当输出端子被配置成“X”时,输出 端子被配置成具有高输出阻抗。
现在将注意力转到表20,其包括编程格式的第二部分并定义要执行的路径。路径 可以包括一个或多个事件。每个路径或事件在被执行时执行诸如生成输出信号或触发、修 改活动I/o配置状态、发起定时计数器或将执行指引到另一路径的任务。表20列出了根据 表10将执行的所有路径和事件的细节内容。行21表示名为事件(Event) #1的路径包括 三个事件 22 (状态(STATE) #1)、23 (声音(SOUND) I)和 24 (事件(EVENT) #1 )。假设 1/0 状态(State) #0是活动1/0配置状态;由端子I进行的上升沿信号或触发的接收触发事件 (Event)#1的执行;亦即将按顺序执行子事件22、23和24。事件22表示活动1/0配置状态 从1/0状态(STATE) #0变成1/0状态(STATE) #1 ;然后,后面是被指定为“声音(SOUND) I” 的音频信号的再现。当声音的再现完成时,执行子事件24,其使执行环回至“事件(EVENT) #1”并针对另一循环重放“声音(SOUND) I”。该环路持续直至1/0状态(STATE) #1的端子I至4中的任何一个接收到合格信号或触发。例如,当端子I检测到下降沿信号或触发时,中断事件(Event)#l的“声音(SOUND) I”环路并执行事件(Event)#ll。事件(Event) #11命令控制器返回至作为活动I/O配置状态的I/O状态(State) #0且“结束(END)”符号表示事件的结束,并且控制设备处于空闲模式,等待如I/O状态(State)#0的定义的接收下ー个合格输入信号或触发。在控制设备上电时,I/O配置状态将被定义为默认上电I/O状态;亦即,正好在控制器设备的上电之后的活动I/O配置状态。方便的标志法将I/O状态(State) #0定义为是默认上电I/O状态。应注意的是每个I/O配置状态相互之间不具有顺序关系,并且能够按任何顺序来执行表10。同样地,在表20中列出的任何路径也不具有与另一路径的顺序关系,除非其如在行21中那样被指定为另一路径的事件。如果程序员期望,可以按照任何顺序对路径进行编号,并且号码可以是跳跃的。具有顺序关系的所有事件被布置在单路径行列表中。当与规则汇编语言编程的多行列表相比时,此布置使得程序员能够具有程序的更清楚画面。虽然图1的程序表如所述地被组织成两个字段,在保持学习起来简单和本发明的编程方法的可容易追踪性质的同时,编程表的格式结构方面的各种修改是可以的。由于Easy Format的传统形式已经是用于专业工程师和程序员的行业标准,在美国专利5,867,818的提交日之后,已经由美国专利5,867,818公布參考指令并在公开领域中向Easy Format被许可人公开,在本申请中没有提供对传统Easy Format软件的进ー步深入描述。总而言之,易编程语言是编程语言,或者是使得用户能够对微处理器IC或控制器単元进行编程以与硬件/软件触发器或外部电路相交互的编程软件。由于传统Easy Format编程语言是为玩具公司的电子工程师和专业软件程序员和微处理器IC公司的现场维护工程师以替换玩具设计中的汇编语言,所以编程语言的结构仍是相当面向技术的。传统Easy Format编程语言的大多数指令源自于针对声音生成微处理器IC的结构的技术术语。因此,已经研究了传统Easy Format编程语言的显著改迸。在母申请美国专利申请10/988,822和本申请的图2 12中描述了本深入研究的实现。这些技术改进完全改造了传统Easy Formate编程语言的外观、特征和计算环境。在图2 12中呈现的重新设计特征允许易编程语言变成非专业消费者可接受的,诸如被母美国专利申请10/988,822的业余爱好设计工具包作为目标的非技术性用户。技术上增强的易编程语言还提供了用于非技术性消费者为可编程玩具编写程序的机会,如在本文所引用的母美国专利申请11/041,048中所公开的。图16 23举例说明将包括具有蜂窝电话/触控板、特别是具有技术上提高的智能电话/触控板,诸如Apple公司的iPhone和iPad以及由Google公司支持的Android电话和pad的业余爱好设计工具包的母申请10/988,822和11/041,048的进ー步技术改迸。图2 5和21 22所示的技术改进仅提供了面向非专业消费者的编程环境的改进的典型示例,这些改进特征到工作编译器中的实现被确定为要求工程师几千个小时的编程研究和几千行的测试代码。由于智能电话/触控板和本文所述的云计算系统的高技术复杂性,在本申请的改进特征被确定为技术上可行之前研究了进ー步的技术挑战。本申请的公开因此集中于描述编程环境改善的新型特征、本发明的系统关系以及新型产品的实施例,以便具有本领域中的普通知识的人快速地理解本发明的新型特性以及当前从市场不可获得的新应用。
现在将注意力转到图2,其举例说明传统Easy Format软件的显著增强。在计算机 屏幕上提供了用户友好符号和图形标签以促进创作“易程序” 一用本发明的易编程语言编 写的软件应用程序。按钮201是用以获得输入状态、输出状态或路径元素的标签的下拉菜 单。符号202指示表200是输入状态表。标签206指示控制器单元的输入端口或引脚的位 置。标签203至205是以特定的符号或特定的色彩提供的以用信号通知其处于输入状态。 当名为“No-op”的状态204被激活时,所有端口 POl至P17被设置成“X”,这意味着所有这 些端口进入“不介意(do not care)”状态。符号212指示表210是输出状态表。标签215 指示控制器单元的输出端口或引脚的位置。标签213、214和217是用不同的符号或不同的 色彩提供的(与输入状态的标签相比)以指示这些标签指向输出状态。元素216和217提供 有闪烁问号以警告消费者条目被遗漏或已经输入了错误。符号221指示表220是路径表, 其描述在路径被调用时将执行的事件。元素227是具有消费者分配的路径名“开始”的路径 #1。当执行此路径时,如符号222和标签223所指示的,输入状态被设置成活动的。当路径 228被激活时,将按顺序执行三个事件224至226。时间224将输入状态No-op设置成活动 的。事件225生成语音“Hello”。事件226将no-op状态204去激活并将输入状态203就 绪设置成活动的。
现在将注意力转移到图3,其提供在图2的下拉菜单201的元素被触发时可用的选 项。表300举例说明符号302至307,每个表示用于输入端口被触发的不同合格条件。例 如,标签302指示该端口在检测到上升沿信号或触发时被触发。标签303指示下降沿触发命 令。标签304指示该端口在开关闭合时被触发。标签305指示输入端口在闭合开关被打开 时被触发。标签306定义“不介意(do not care)”条件,其忽视来自硬件/软件输入、点、 端口、引脚或通道的任何输入触发。标签307指示端口正在输入串行脉冲且所述合格条件 取决于接收到的串行数据的另一预定义条件。
表310表示输出端口的下拉菜单。标签317指示输出端口被设置成高阻抗。标签 318指示端口被设置成电平高。
标签311指示端口被设置成电平低。标签312指示端口被设置成串行输出端口的 配置且要发送的串行数据将取决于要执行的事件。标签313指示电动机控制被连接到此端 口且电动机被命令顺时针方向转动。标签314指示电动机被命令逆时针方向转动。标签315 指示由此硬件/软件输出端、点、端口、引脚或通道来控制灯换能器且灯在此端口被设定时 开启。在表格中还有用以关掉电动机或照明设备的未示出的标签。表格320指示将在路径 中使用的公共标签,其根据程序来执行一系列事件。标签321指示将生成声音。标签322 指示在执行下一个事件之前要求延迟时间。标签323指示输入状态被设置成活动的。标签 324指示输出状态被设置成活动的。标签325指示程序将要跳至另一路径。标签329指示 程序将被停止并等待另一输入触发以将另一事件路径激活。这些下拉菜单的标签元素能够 在用户友好可见Easy Format程序的创作期间被拖放至状态和路径表的适当位置。
图4的表400指示在状态标签被拖放至状态表的适当位置之后要填充的消费者定 义信息。标签401是从下拉菜单获得的电动机标签。然后要求编写程序的消费者定义电动 机的名称。在这种情况下,消费者将此电动机定义成表示用以驱动左轮的电动机的电动机 #1。消费者还在其正利用构建工具包来设计和构建家庭安全系统时将标签403定义成是窗 口开关SI。同样地,用适当的消费者定义名称来定义所有标签405、407和409。表420指示接收到合格信号或触发时要执行的动作、要执行的路径或要设置的参数。例如,当标签421 被激活时,执行具有名称“Say Hello”的路径#2。当标签431被激活时,如由脉宽调制所控 制的,电动机M2被设置成在速度设置#6下运行。
图5的表500指示路径标签示例。标签501指示上电默认路径P#l。这是将在上 电期间执行的默认路径。如果消费者忘记定义路径,则闪烁问号将提示消费者填充路径名 或将路径从路径表删除。可以通过将路径标签拖放至图2的回收站230来删除路径。表 520指示定义在路径等式中提供的事件的示例。标签521和522将把名为“准备(Ready)” 的状态设置为变成活动的。标签523和数据524将触发事件用以延迟达10秒。扬声器的 符号529表示用以产生语音的指令且由路径520产生的语音被定义成是波文件、hello语 音和曲调。因此,标签529分别将产生三个声音“波#8”、“Hello”语音文件和“曲调#2”文 件。在技术上类似于提供用529的标签的扬声器符号表示的用以输出语音或声音的指令, 提供了由另一预定义符号提供的另一指令,用以向图12的显示器1226输出图形或消息。
现在将注意力转到图6,其举例说明用于消费者编译易程序并将其下载到构建工 具包的控制器单元的实施例。易编程语言编译器被安装在计算机601中。在编译了由消费 者编写的易程序之后,将可执行机器代码数据编程到由程序员603插入的闪速存储器模块 604。编程闪速存储器盒被去除并用盒605来表示。此盒在用插头插入控制器单元606中 时变成607。
图7的700举例说明机器人,其表示由消费者设计的示例性实施例。该机器人包括 控制器单元708。两个机械化带传动704和705用以提供运动。提供了两个机器人臂706 和707以表示机器人的手臂和手。在机器人的头部处的是数字式照相机701。在物品的背 面的是装配有天线703的RF (射频)模块702。提供此RF模块是为了传送由机器人拾取的 视频信号,并且还从由消费者操作的远程无线控制构件接收命令。所有机器人臂706、707 ; 视频照相机模块701、机械化带传动704和RF模块702全部是提供有用于消费者组装或构 建其设计(诸如图7的机器人)的零售构建工具包的附件构件组的示例。根据对本领域具有 普通知识的人,术语“构建工具包”的简单或普通意义被定义为使得消费者能够构建由其设 计的物品的部件集合。根据对本领域具有普通知识的人,术语“零售”的简单或普通意义意 指部件出于零售目的被封装,或者部件通过零售渠道被分配而到达消费者。还应注意的是 此机器人项目的所有附件构件被用螺钉安装在立方体形状的一块实心木块上。使用木材作 为芯锚定材料的原因是可容易获得、低成本且易于成形。
图8举例说明图7的数字式照相机701的放大图。透镜806和位于透镜后面的光 学传感器或图像传感器拾取图像。照明源804、805在物品在黑暗环境中操作时提供补充照 明。在外壳801内部的是用于照相机抵靠着底座807进行平移和倾斜的活动子组件803。 提供了用于将照相机安装到木材机器人主体的安装孔808至810。图9A和9B举例说明数 字式照相机的内部结构。电动机905和齿轮906、907、908和909提供倾斜运动。电动机 901和齿轮912、902、903和904提供平移运动。限位开关921,922和凸块923,924提供反 馈信号以防止照相机倾斜机构超过移动极限。开关925和926向平移机构提供保护。在透 镜区域910后面的是用以提供图像信号的光传感器,诸如在数字式照相机中所使用的CCD 或CMOS图像传感器。为了控制器单元与此数字式照相机附件构件通信,要求许多信号和电 力线以提供功率、平移和倾斜信号并接收表示视频图像被拾取的数据。这个实时工作负荷对于位于控制器単元内部的微控制器IC而言可能是过度的,因为其需要实时地一起与机械化带、机器人臂的四个电动机、照相机模块的两个电动机和四个限位开关进行通信。为了减少控制器单元的工作负荷,在PCB 928上提供了与主控器分离的较小微控制器以直接控制照相机模块的电动机和限位开关。用此设计,仅要求控制器単元向位于照相机模块内部的微控制器发送短暂的平移和倾斜命令。图10举例说明控制器単元1000的简单型式。在该单元前面的是两个七段显示器1001 ;四个按钮触发开关1004、开关标记区1003。连接器插座和电池隐藏在盖1007内部。扩展插座1005和1006使得控制器単元能够提供更多的输入端/输出端、点、端ロ、引脚或通道。在格栅1012后面提供了扬声器。位于四个拐角处的是安装孔1008至1011。提供了用于控制器单元从其中对Easy Format程序进行编译的计算机接收已编程数据的槽1002。应注意的是可以用高密度LCD面板来减少两位LED显示器以获得更好的控制器単元模型。图11举例说明机械化臂和手工组件。提供了一个电动机和齿轮组件以使臂1109抵靠着底座1110朝着1103和1104方向旋转。提供了第二电动机和齿轮组件以使指状物1113至1115沿着1101、1102、1105和1106方向移动。类似于照相机模块的平移和倾斜机构,在机械化臂机构内部要求离合器或限位开关以限制机构的行进。还优选的是在臂组件内部提供另ー微控制器以控制两个电动机和四个开关。此设计还允许机械化臂组件串行地与控制器単元通信并因此減少要连接在两个构件之间的许多导线。现在将注意力转到图12,其举例说明完整构建工具包系统的优选实施例的方框图。控制器单元1220可以包括输入端/输出端、点、端ロ、引脚或通道1222 ;模拟控制电位计1223 ;位于控制器单元前面的输入键开关1224 ;通信接ロ 1225使得控制器单元能够通过遥控构件1220或与诸如DSL、电缆调制解调器、电话线或无线蜂窝电话通道的外部通信接ロ 1240通信以与远程电子设备诸如远程移动电话或远程计算机或远程服务器进行接触。LED或IXD显示面板1226对于控制器単元提供图像或消息的交互显示是优选的。替换地,显示面板可以位于外部附件单元处以便显示图形或消息信息。声音换能器或扬声器1227提供语音、音乐和声音效果。控制器単元的芯是微控制器1228和编程存储器1229。通常用微处理器IC或具有微处理器IC的模块来表示微控制器1228。可以将物品的电源1221定位于控制器单元外面或包含在控制器单元1220内,如图12所示。控制器单元1220被消费者与ー个或多个附件构件相连。附件构件的典型示例是诸如电动机和螺线管的运动换能器1231 ;定位开关或传感器1232 ;模拟信号源1233,用以提供模拟视频信号、语音信号或其它环境信号;数字信号源1234,诸如已编码语音信号或其它数字消息或数据;光换能器1235,诸如灯泡或LED ;光学传感器或照相机图像传感器1236 ;声音换能器1237,诸如压电振动器或扬声器;声音传感器1238,诸如电容式扩音器。无源附件构件包括构建物品所需的任何结构部件。如前文所讨论的,优选将本地微控制器和存储器1239包括在任何不同种类的附件构件的结构中以减少控制器单元的工作负荷并減少所需的连接导线的数目。为了消费者有效地向控制器单元传送或发送命令,向系统添加遥控构件1200。此遥控构件被用电缆、导线或用诸如射频、红外或超声波通信设计的无线方法连接到控制器単元。遥控构件还可以装配用于获得与控制器単元的交互式音频/视觉通信的LED或LCD显示面板或扬声器。典型的遥控器包括通信接ロ电路1201 ;输入键1202 ;显示设备1203 ;用于提供诸如伺服机构和微控制器1205所需的数字比例控制的模拟控制电位计1204。在另ー应用样本中,可以用移动电话来表示遥控构件。在这种情况下,构建工具包将要求拨号电路和/或调制解调器电路以与无线电话进行通信。可以将此拨号和/或调制解调器电路安装在控制器単元内部或作为外部附件构件定位于外部。类似于控制器単元,提供了用于消费者根据由消费者设计、构建和编程的物品的性质来定义和标记空输入键的功能的标记区。从图12可以进ー步观察到的是控制器単元优选用串行数据链路或用并行端ロ来提供与遥控构件、某些附件构件以及还有与诸如电话线、电缆线、调制解调器或无线通信通道的外部通信终端的双向信号接ロ。然而,向附件构件进行馈送的电源通常是沿着ー个方向布置的。图13 15针对2005年I月21日提交的另ー母美国专利申请#11/041,048的公开。本申请公开了玩具领域中的消费者可编程设备的实施例,其使用远程计算机或网站的服务来对本地消费者可编程玩具物品进行服务。本申请系统类似于本发明的原型云计算系统。图13A指示可编程玩具车辆的另ー优选特征。表示主玩具构件1300的电动车提供有一组附件玩具构件1302至1303。在电动车1300的主干1301内部的是接收机,其在任何附件玩具构件被放置在主干1301内部时检测附件玩具构件1302至1303的识别信号。在接收到识别信号时,微控制器根据由消费者创作的程序的程序流程来提供与所识别的附件玩具构件有关的响应。在每个附件玩具构件内部可以提供有线或无线设计以便提供所需的识别信号。有线或接触式识别设计的典型示例是在附件玩具构件内部提供集成电路以在进行主玩具构件与附件构件之间的接触时发送出识别信号。更简单的设计是在附件玩具构件内部提供特定值的电阻器。主玩具构件提供用以测量电阻器的值、从而识别进行接触的附件玩具构件的性质的电路。替换地,可以提供诸如RFID的无线电路从而实现无线识别效果。在另ー优选设计中,可以在可编程玩具物品的顶部上提供图13B的小键盘1311以在玩具物品被编程之后提供交互式响应或由消费者来指挥不同的游戏模式。在1300的示例性实施例中,可以将此小键盘定位于电动车的顶部处,如在位置1308上所示。存在不同种类的键盘设计。根据本发明的性质的优选设计是与电话的设计类似的数字小键盘设计。此小键盘在玩具物品被编程为提供不同种类的连续动作或在键或键序列被输入时的游戏模式时特别有用。例如,当输入了键#6吋,电动机进入救援模式,其使车辆急促地进行一系列的惊慌运动并声音。当输入了键#9时,电动车进入诊断模式。每个电动机被暂时地沿顺时针方向和相反方向开启以进行电动机相关机构的故障查找。还可以连续地开启和关闭每个灯以显示所有灯正常地工作。根据消费者的希望可以将许多其它特征编程到玩具中。例如,当预定义连续代码12321被输入到小键盘中时,可以将玩具车编程为进入锁定模式,使得没有其他人能够玩该车辆,除非向小键盘中输入另一秘密释放代码。虽然小键盘允许消费者提供了用于根据消费者所写的程序进行的不同顺序控制或游戏模式选择的许多不同的不寻常功能,但遥控电路向可编程玩具増加了更多的乐趣。图13C举例说明向在图13A的车辆1300内部提供的遥控接收机发送控制信号的遥控器的示例。例如,消费者可以将车辆编程为在接收到反映遥控器1321的方向控制小键盘1323的信号时改变移动方向。替换地,可以使用遥控器的数字小键盘1322来取代安装在电动车上的小键盘1311以便提供不同的编程控制。
还可以将从遥控器接收到的信号编程为提供许多不同种类的刺激的游戏模式。例 如,可以将电动车1300编程为提供许多不同的游戏模式;每个游戏模式表不光、声音和运 行的不同游戏样式或序列。可以通过按下小键盘的特定密钥来选择由消费者设计的这些游 戏模式。当车辆正在执行预编程游戏模式序列时,可以将车辆内部的微控制器编程为继续 接收遥控信号。可以将接收到的遥控信号编程为超过原始顺序控制流程流。此特殊设计给 预编程玩具添加了不寻常的价值。例如,可以选择装配有特技动作能力的另一玩具车在水 池附近的游戏场上执行预编程的特技演示动作序列#5 (通过选择小键盘#5)。当车辆变得 过于接近水池时,消费者可以使用遥控器来中断特技演示#5表演并在特技演示表演继续 之前将车辆操纵至安全位置。
现在将注意力转到图14A,其举例说明以玩偶1400的形状提供的另一消费者可编 程玩具。该玩具具有头1402、上身1401、下身1403、上肢1404、1405和下肢1406和1407。 图14B示出了衣服被去除时的玩偶的内部视图。包括用以提供头和肢体相对于躯干以及还 有在上下身之间的运动的机械化机构。可以提供位置传感器以在消费者移动玩偶的肢体或 头时生成信号。可以在躯干的不同位置处提供诸如大按钮开关1432的附加传感器开关。包 括用扬声器1431表不的声音换能器以提供声音响应。所有电动机控制电路和传感器信号 被连接到安装在玩偶内部的微控制器。还可以将语音和声音文件相关数据存储在微控制器 电路的存储器内部。提供了编译程序以便消费者创作在接收到传感器信号时提供交互式声 音和运动响应的程序。
图15A举例说明用于由消费者对玩具进行编程的系统。用监视器1502、键盘1503、 指示设备1518和计算机单元1501表示的计算机系统1500形成编程系统。诸如易编程语 言的编译器的编译软件是由存储在包括但不限于CD ROM的存储介质中的数据提供的。此 编译程序经由⑶ROM读取器1513被安装在计算机1500上。替换地,可以从远程网站或通 过远程链路1509至1511从远程计算机1512下载编译软件。可编程玩具通过诸如所示的 USB端口 1507和1508的通信端口被连接到计算机1501。首先要求消费者学习编译软件的 特定编程规则并随后开始编写定义玩具将如何表演的程序。典型的用户程序是用用以定义 消费者想要玩具在接收到传感器信号时如何进行响应的进程编写的。根据用户的技术,用 户程序可能是非常复杂的。流程图对于程序流规划可能是非常有帮助的。存在与在市场中 可获得的编译软件类似的许多不同种类的流程图。由于流程图是二维呈现,所以对于不同 种类的复杂事件驱动的编程活动而言,多个交互层使得流程图语言难以进行处理。因此, Visual Easy Format或其它增强型的易编程编译软件对于具有很少工程和编程背景知识 的消费者要处理该工作而言是优选的。一旦消费者完成了创作程序,则用户程序被编译并 转换成可由可编程玩具内部的微控制器执行的代码。然后通过通信端口 1508及通信链路 1506和1505将控制微控制器的操作的代码下载到玩具1527中。替换地,消费者可以经由 计算机1530将代码下载到如图15B所示的存储器盒1526中,并且然后将存储可执行代码 的存储器盒1526连接到玩具1527以便执行在玩具1527内部提供的微控制器。
通信链路1509至1511充当本发明的要点。首先,可以从远程网站向消费者提供 编程技巧和支持工具的库。替换地,消费者可以从远程帮助台获得指导支持。用于用户编 程的远程帮助台还不是成功的,因为用汇编语言以及甚至诸如C和Java的高级语言缩写的 大多数程序非常难以被第三方理解。由于易编程语言是如此用户友好的编程语言,所以大多数人能够容易地理解由其他人编写的程序的程序流。用以支持消费者编程的远程帮助台概念因此开始有意义。在另ー应用示例中,消费者可以通过远程网站来交換由其他人编写的程序。消费者还可以在程序被编译并下载到玩具中之前根据他/她的期望来修改该程序。玩具公司还可以通过张贴刺激或有价值的应用程序以便消费者下载到其可编程玩具中来支持可编程玩具产品线。例如,出售可编程玩偶产品线的玩具公司可以周期性地发布应用软件的ー个版本。每个版本将为玩偶提供不同的个性。在另ー示例中,可以在五月发布名为Jenny的玩偶。Jenny是始终快乐的运动少女。Jenny的个性反映在提供于Jenny的程序中的词语和运动中。在同年的六月,所发布的新代码将把玩偶定义成为Mary,她是害羞的且总是非常谨慎。相反,Mary的软件总是从非常温柔的声音开始。由于Jenny和Mary具有完全不同个性,所以玩具公司可以提供商业模型,其制定用以支持每个月的代码发布的不同样式和组的附件玩具构件组。某些支持玩具可以是交互式附加玩具构件以提供先前所讨论的交互式动作。由于装配在玩偶内部以存储程序代码和压缩声音消息的存储器大小始终是有限的,所以可以通过在网站上张贴用于每个玩偶的大型语音消息库以支持其发布来为此商业模型提供另ー刺激特征。消费者然后能够为他/她的玩具选择特别优选的游戏模式和语音消息。由于每月发布的程序向公众开放,所以消费者能够在期望时修改该月的玩具的程序和个性。本玩具发明所允许的另ー商业模型是用于消费者将其自己的程序张贴在网站上以便与其它消费者交換。消费者还可以将他/她的玩具程序设计提交给玩具公司,并帮助玩具公司在稍后的月份准备刺激的新个性化发布。当然,可预期玩具公司在消费者的程序被选中时对他/她给予报酬。除了在每个时间间隔向玩具提供不同的个性之外,在另ー商业模型中,玩具公司可以每个星期发布具有玩偶成长的玩偶的连续版本。其意味着每个星期发布提供更多智力或成长个性的程序。程序的周期性发布对于在CD ROM上提供个性化程序的所有不同阶段的方法而言是优选的,因为其教授孩子要有耐心,并且与他/她的玩具在一起,无论他/她喜欢不喜欢,人们在真实世界中之中面对的情況。存在要用成长玩偶概念的周期性发布来解决的另ー技术问题。由于不是所有玩偶都被同时地购买,因此,在不同时间出售的玩偶可能要求不同的发布阶段。此问题的解决方案是在用户在远程网站中登录时分配用户ID。始终为新用户提供发布的第二阶段。程序发布的后续成长阶段是一个月接一个月或一周接一周地提供的。发布的第一阶段始终优选在エ厂安装。图16A举例说明图7的消费者设计机器人的第一改进实施例。图17是将结合图16A,B来阅读以举例说明本改进实施例的结构的方框图。提供蜂窝电话作为构建工具包的构件。在此布置中,蜂窝电话1608、1710取代图7的控制器单元708和数字式照相机701的功能。通常用串行数字信号突发来表示的由蜂窝电话处理器提供的控制命令通过连接器1626和电缆1628被馈送到位于舱室1612内部的解码器电路1702。解码器将串行控制命令解码成锁存器信号,其控制外部附件元件,诸如附件元件1703 1706或驱动带1604、1605的电动机以及机器人臂1606和1607的驱动电动机和位置传感器。蜂窝电话的扬声器1623取代图12的声音换能器1237,并被配置成根据被下载到蜂窝电话的消费者程序来产生音频声音或语音。小键盘1622 1625取代图10的放大控制器単元的输入键1004。蜂窝电话显示器1621取代图10控制器単元的指示器或显示器1001。提供了四个安装孔1632 1635以便将蜂窝电话安装到块1612上。该安装孔将蜂窝电话1608表征为尤其适合于被 用于本文公开的构建工具包的专有蜂窝电话。图16B举例说明机器人1600的后视图。位 于蜂窝电话1608的顶部区域1681周围的电话照相机1682拾取图像或视频信号。位于舱 室1612、1683之上的这个照相机取代图7的照相机701。可以将由此照相机拾取的图像/ 视频信号显示在屏幕1621上,或者通过传统无线蜂窝电话网络传送到远程蜂窝电话/触控 板。替换地,可以将表示由照相机拾取的图像或视频的数据上传到远程网站以便与远程照 相机共享。对消费者设计的机器人供电的电池被存储在舱室1612内部。
图16A可以用来表示如在图18的方框图中举例说明的第二实施例。在这种情况 下,控制器单元1802、708被重新定位到舱室1612内部,并通过连接器1626和电缆1628连 接到蜂窝电话1608。在此布置中,控制单元的核心处理器未被替换,并且蜂窝电话1608仅 仅充当图12的拨号器或通信接口 1225。图17的附件元件1703 1706和图18的1803 1806对应于如在图12的元件1231 1239中表示的构建工具包的外部附件传感器或部件。
应注意的是可以用具有带有少数硬件键的触摸板的智能电话来取代蜂窝电话 1608。替换地,可以用诸如Apple iPad或Android兼容的触控板的触控板来取代蜂窝电话 1608,以提供相同的功能。Apple iPod被视为较小的iPad等价物。除通过传统无线蜂窝电 话网络进行通信之外,消费者设计的系统可以通过其它标准无线通信信道(诸如经由无线 路由器的w1-fi连接)与因特网进行通信。
图19举例说明本发明的典型软件开发系统。机器级软件系统1901表示低级语言 级,诸如为了支持消费者设计的系统而提供的智能电话/触控板的机器代码或汇编语言。 处于此水平的低级语言传统上是由处理器IC供应商提供的,诸如来自Intel、AMD或ARM。 下一水平是操作机系统1902,其通常以由Microsoft提供的Windows系列、由Apple提供的 iOS、由Google提供的Android OS和Linux、开放源OS为代表。此水平的功能将提供核心 处理器的变化与系统的其它功能部件之间的计算系统的标准接口,诸如视频、音频接口、存 储器管理、通信端口等。用于专业应用程序开发者1903的平台系统表示用于专业开发者开 发应用程序1907的开发系统。此平台的第一流行示例是Apple系统,其包括iOS模拟器、 Xcode工具套装、Xcode IDE和Apple LLVM编译器。第二流行不例是Google Android系 统,其包括但不限于Android SDKandroid NDK伙伴、AVD管理器、Google USB驱动器以及 适合于在Android平台中工作的C、C++编程工具。用于非专业消费者1904的平台系统是 本发明的核心部分中的一个。该平台要求使得非专业消费者能够容易地学习并为其设计的 系统编写消费者程序1906的消费者友好编程语言的发现或发明。此平台的付诸实践以易 编程语言的改进版本为代表,其提供智能电话/触控板的性质所特定的新指令。虽然源自 于研究的这些新指令看起来是简单的(简单是设计易编程语言的目标),但后面要求的工作 是繁重的,包括考虑指令的功能、编程的效率、用户用好因素、错误证据开发和调试工具的 隐含以及实现到编译器中的困难。由于超过声音生成微处理器范围的易编程语言的指令是 先前在市场上不可获得的新发明的编程语言,所以不存在可容易地用于支持设计新编译器 和相应的开发工具的工作的该领域中有经验的程序员。必须学习一切并从简图开始。图19 是示出每个块之间的许多微秒关系的简化系统方框图。关系线1911 1916表示这些微秒 的关系。在先前提到的第一布置中,由独立的专业应用程序开发者来提供并维护用于非专 业消费者的平台,因此,链路1916承担块1918的主要支持功能。在第二优选布置中,将由Apple或Google来提供并维护块1918,因此,链路1914、1912承担工作负荷的最大共享。
图20举例说明关于本发明的现场服务系统的实施例。我们的目标是用于普通的 非专业消费者从云2001学习易编程的基本技巧达约一天,并且然后能够尝试编写某些易 程序。在消费者的计算机2006处编写消费者易程序之后,将该程序上传到云2001。该程序 被位于云2001处的调试工具分析以便检测诸如逻辑错误或语法错误的明显错误。如果发 生任何错误,则调试程序通知消费者并提供友好建议以解决该错误。如果消费者程序看起 来是适当的,则位于云处的编译器将消费者易程序编译成可由消费者的智能电话/触控板 执行的代码。将编译器定位于云处是非常优选的,因为对编译器进行维护和升级明显更容 易,这对于面对飞速变化的市场需求的技术而言是极其重要的。此外,位于云处的编译器使 得编译器照顾不同型号的智能电话/触控板要容易很多,每个可以从不同的资源量开始, 诸如不同的存储器量;不同的特征,诸如不同的LCD尺寸和分辨率,并且得到不同能力的处 理器的支持,诸如不同的计算速度。由云2001服务的附加特征是支持工具、用于不同应用 程序的模板程序的库、初学者学习辅助、聊天室和公告牌支持和用于消费者交换并讨论其 程序和设计的粉丝俱乐部的集合,并且可能要求用于其正面对的问题的建议。如果由专业 应用程序开发者来提供和维护图19的消费者平台块1904,则将由开发者计算机2002来服 务于和维护云2001。如果由诸如Apple或Google的主控实体来提供和维护消费者平台块 1904,则优选地由主控系统2003来服务于和维护云2001。
图21中所示的特殊指令被提供给增强型易编程软件并使得消费者能够通过蜂窝 电话无线网络对图20的多个智能电话/触控板2004和2005之间的通信连接进行编程。在 示例性应用中,消费者可以将一个蜂窝电话2004编程为遥控器以控制被组装而形成位于 远程位置处的消费者设计系统(诸如图16A中所示的机器人)的另一智能电话/触控板2005 的运动、交互。远程智能电话能够向控制器电话发送视频和音频信号或使其被已连接到因 特网的计算机共享。指令集2100举例说明智能电话响铃时的输入条件。当呼叫电话被识 别为是电话#1时,输入标志2102触发状态的跳跃以执行电话#1的触发所特定的路径。标 志2104至2108表示其它预定义电话和触发计算机的触发标志。标志2109指示呼叫电话不 在预定义电话或计算机的列表中。在示例中,消费者可以将系统编程为如果不能识别呼叫 方,则将其电话指引到其个人注意力或连接到智能电话的语音记录功能。指令集2110举例 说明用以操作智能电话/触控板的高级易编程的输出指令。指令2113指示通信线路被命 令呼叫和连接电话I。指令2118命令系统连接到计算机#n。在成功地进行连接之后,消费 者可以将系统编程为广播语音记录、播放视频剪辑并发送数据消息。指令2112是用以使通 信过程断开连接的离线指令。指令集2120是为了供应易编程过程的路径而提供的智能电 话/触控板相关指令元件,诸如图2的程序表220,指令2122命令数据的接收。指令2123 命令用遵循指令的文件名来发送数据文件。指令2124允许从通信线路接收音频信号并在 本地电话扬声器处广播音频信号。路径指令2125是将所存储的音频消息发送到远程电话 或远程计算机。路径指令2126命令视频文件的接收和播放。路径指令2127命令视频剪辑 的发送。指令2128表示路径的结束。
图22举例说明将包括用于非专业消费者对智能电话/触控板进行编程的智能电 话/触控板指令的图2的易编程环境的改进。添加了开关2204和2205以便消费者对双线 系统进行编程,诸如双SM卡的智能电话。用信道A和信道B来表示两个信道。表2211表示易程序的输入状态表。列2214和2215是为了确定信道响铃时的条件而提供的状态表的区域。在示例中,如果名为“线路A响铃”2216的状态的信道A标志2217被激活,则程序指向由表2221表示的输入呼叫信道A的表。如果表2221的状态情况(Situation) 2 2227被选作活动状态,并且信道A的输入呼叫被识别为是来自电话#2,则路径P#2被激活。状态2216的标志2218指示信道B被阻断且不能接收来自信道B的呼叫。列2226指示如果不能识别信道A呼叫,则需要定义某个动作。如果状态2228的标志2230未被填充,则问号将在标志区域2230处闪烁以提醒消费者完成该程序的此区域。表2231是涉及智能电话/触控板的操作的路径表。状态2228的命令P#2 2229命令由消费者进行的名为Hello的路径2232的激活。此路径命令智能电话/触控板提供小的暂停,然后说出消息“Hello”井随后将名为剪辑I的视频剪辑发送到信道A的另一端。图23举例说明非寻常专有智能电话的设计。该电话包括用于连接以控制外部元件的连接器2308。提供了名为A至D的四个按钮2305以接收外部触发选择。提供了针孔CMOS照相机传感器2306以捕捉图像或视频。提供了 2位、7段LED 2307以用于指示或调试參考。在专有智能电话的底部处的是SIM卡槽2318和电源插座2317以从电源适配器接收6V DC供应。提供了四个安装孔2301 2304以便将专有智能电话安装到消费者设计系统的组件。功能減少的智能电话2300的目的是根据消费者的特殊需要而降低智能电话的成本,其被提供给消费者以设计和构建监视系统。很明显,此专有智能电话不可被传统智能电话用户使用,除由想要设计、构建其特殊特征的监视系统并进行编程的消费者购买的零售构建工具包之外。根据前述内容,能够认识到的是在本文中已经充分地公开了智能电话/触控板编程系统的硬件和软件实施例,其使得消费者能够设计和编写用于消费者设计的业余爱好系统的程序。本文所述的本发明的优选实施例是示例性的,并且能够容易地设想许多修改、规格变化和电路重新布置以实现等价的结果,其全部意图被包含在所附权利要求的范围内。
权利要求
1.一种提供用于非专业消费者设计消费者设计系统并对该消费者设计系统进行编程的编程系统的方法,包括步骤 (1)提供操作级软件系统;其中,所述操作级软件系统提供用于蜂窝电话/触控板的η个型号的OS ;并且其中,η是等于或大于二的整数; (2)提供被配置成用于专业应用开发者编写第一应用程序的第一平台系统;其中,所述第一平台系统与步骤(I)的OS兼容; (3)提供被配置成用于非专业消费者设计和编写用于该消费者设计系统的第二程序的第二平台系统;其中,所述第二平台系统与步骤(I)的OS兼容;以及 (4)将表示步骤(3)的所述第二程序的代码下载到智能电话/触控板中。
2.权利要求1的方法,其中,步骤(I)的操作级软件系统;步骤(2)的第一平台系统和步骤(3)的第二平台系统中的每一个包括可由所述消费者设计系统执行的指令或程序的代码;其中,所述代码被配置成存储在计算机存储器或数字存储介质中。
3.权利要求1的方法,其中,所述蜂窝电话/触控板的η个型号是智能电话/触控板,所述方法还包括提供被针对用所述第一平台系统编写的程序结构化以下载到任何所述智能电话/触控板的应用库的步骤;其中,由所述非专业消费者编写的程序被配置成绕过所述应用库以便下载到任何所述智能电话/触控板以供在消费者设计系统中使用。
4.权利要求1的方法,其中所述第二平台系统包括表示或源自于被定义成包括以下编程步骤的易编程软件的程序或代码 (a)定义用于计算设备接收数据、触发或信号的m个输入端,其中,m是等于或大于一的整数; (b)定义用于所述计算设备传送数据、触发、或信号的η个输出端,其中,η是等于或大于一的整数; (C)指定X个配置状态,其中,每个配置状态定义至少一个输入端和/或一个输出端的配置,并且X是等于或大于一的整数; Cd)指定将由所述计算设备来执行的y个事件,其中,y是等于或大于一的整数; Ce)当由输入端接收到的信号、触发或数据满足预定义合格条件时,指定要执行的事件;以及 (f)使得事件能够从当前配置状态切换到另一配置状态。
5.权利要求4的方法,其中,所述易编程软件包括被配置成用于控制步骤(4)的所述智能电话/触控板的操作的控制指令。
6.权利要求5的方法,其中,所述控制指令被用使得所述智能电话/触控板能够处理任何以下操作的代码结构化 (i)连接到预定义电话或计算机或网络; ( )识别与所述智能电话/触控板相连的电话或计算机; (iii)传送或接收数据; (iv)传送或接收表示音频信号的数据;和/或 (V)传送或接收表示视频信号的数据。
7.权利要求1的方法,其中,所述消费者设计系统包括附件构件;其中,所述附件构件包括以下元件中的至少一个(a)运动换能器; (b)位置传感器; (c)模拟信号提供器; (d)数字信号提供器; (e)光换能器; (f)光学传感器或照相机图像传感器; (g)声音换能器; (h)第二传感器; (i)存储器; (j )拨号电路; (k)调制解调器电路或有线数据通信电路;以及 (I)w1-fi或无线数据通信电路 其中,所述第二平台系统包括被配置成在由所述非专业消费者编写的程序中控制所述元件中的一个的至少一个指令。
8.权利要求7的方法,其中,所述第二平台系统包括使得所述消费者能够对第一蜂窝电话/触控板和第二蜂窝电话/触控板进行编程的指令;以及当所述第一蜂窝电话/触控板通过蜂窝电话网络与所述第二蜂窝电话/触控板相连时,对于所述第二蜂窝电话/触控板用所述元件中的一个来控制所述第一蜂窝电话/触控板的操作。
9.权利要求1的方法,其中,所述智能电话/触控板是专有蜂窝电话/触控板。
10.权利要求1的方法,还包括步骤 (5)安排非专业消费者为消费者设计系统设计和编写第二程序;其中,所述第二程序是用所述非专业消费者的计算机编写的; (6)将所述第二程序从步骤(5)的消费者计算机上传到远程云计算系统; (7)为步骤(3)的所述第二平台系统提供位于远程云计算系统处的编译器; (8)用步骤(7)的所述编译器来编译步骤(6)的所述第二程序以生成可由所述智能电话/触控板执行的代码; 其中,所述步骤(4)被配置成将步骤(8)的所述代码下载到所述智能电话/触控板中。
11.权利要求10的方法,其中,所述第二平台系统的所述编译器包括表示或源自于被定义成包括以下编程步骤的易编程软件的程序或代码 (a)定义用于计算设备接收数据、触发或信号的m个输入端,其中,m是等于或大于一的整数; (b)定义用于所述计算设备传送数据、触发、或信号的η个输出端,其中,η是等于或大于一的整数; (C)指定X个配置状态,其中,每个配置状态定义至少一个输入端和/或一个输出端的配置,并且X是等于或大于一的整数; Cd)指定将由所述计算设备来执行的y个事件,其中,y是等于或大于一的整数; Ce)当由输入端接收到的信号、触发或数据满足预定义合格条件时,指定要执行的事件;以及 (f)使得事件能够从当前配置状态切换到另一配置状态。
12.一种提供用于非专业消费者设计消费者设计系统并对该消费者设计系统进行编程的系统工具包的方法,包括步骤 (1)提供被配置成用于非专业消费者为消费者设计系统设计和编写程序的平台系统;以及 (2)将表示步骤(I)的消费者编写程序的代码下载到智能电话/触控板; 其中,步骤(I)的所述平台系统包括表示或源自于易编程软件的程序或代码;并且所述易编程软件被定义成包括以下编程步骤 (a)定义用于计算设备接收数据、触发或信号的m个输入端,其中,m是等于或大于一的整数; (b)定义用于所述计算设备传送数据、触发、或信号的η个输出端,其中,η是等于或大于一的整数; (C)指定X个配置状态,其中,每个配置状态定义至少一个输入端和/或一个输出端的配置,并且X是等于或大于一的整数; Cd)指定将由所述计算设备来执行的y个事件,其中,y是等于或大于一的整数; Ce)当由输入端接收到的信号、触发或数据满足预定义合格条件时,指定要执行的事件;以及 (f)使得事件能够从当前配置状态切换到另一配置状态。
13.权利要求12的方法,其中,所述易编程软件包括被配置成用于控制步骤(2)的所述智能电话/触控板的操作的控制指令。
14.权利要求13的方法,其中,所述控制指令被用使得所述智能电话/触控板能够处理任何以下操作的代码结构化 (i)连接到预定义电话或计算机或网络; ( )识别与所述智能电话/触控板相连的电话或计算机; (iii)传送或接收数据; (iv)传送或接收表示音频信号的数据;和/或 (V)传送或接收表示视频信号的数据。
15.权利要求12的方法,其中,步骤(I)的所述平台系统包括位于远程云计算系统处的编译器;其中,所述方法还包括步骤; (3)安排非专业消费者设计和编写步骤(I)的所述程序;其中,所述程序是用所述非专业消费者的计算机编写的; (4)将所述程序从步骤(3)的消费者计算机上传到所述远程云计算系统; (5)用位于所述远程云计算系统处的所述编译器来编译步骤(4)的所述程序以生成可由所述智能电话/触控板执行的代码。
16.权利要求12的方法,其中,所述易编程软件包括使得所述消费者能够编写用于第一蜂窝电话/触控板和第二蜂窝电话/触控板的程序的指令;并且当所述第一蜂窝电话/触控板通过蜂窝电话网络与所述第二蜂窝电话/触控板相连时,对于所述第二蜂窝电话/触控板用外部元件来控制所述第一蜂窝电话/触控板的操作。
17.一种用于非专业消费者设计包括智能电话/触控板的消费者设计系统并对该消费者设计系统进行编程的方法,所述方法包括步骤(1)提供操作级软件系统;其中,所述操作级软件系统提供用于蜂窝电话/触控板的η个型号的OS ;并且其中,η是等于或大于二的整数; (2)提供被配置成用于非专业消费者为消费者设计系统设计和编写第一程序的第一平台系统; (3)为步骤(2)的所述第一平台系统提供位于远离所述非专业消费者的云计算系统处的第一编译器;其中,所述第一编译器被配置成用于将步骤(2)的所述第一程序编译成可由所述智能电话/触控板执行的代码;以及 (4)将步骤(3)的代码下载到所述智能电话/触控板中。
18.权利要求17的方法,其中,步骤(3)的所述第一编译器被配置成编译表示或源自于易编程软件的程序或代码,其被定义成包括以下编程步骤 (a)定义用于计算设备接收数据、触发或信号的m个输入端,其中,m是等于或大于一的整数; (b)定义用于所述计算设备传送数据、触发、或信号的η个输出端,其中,η是等于或大于一的整数; (C)指定X个配置状态,其中,每个配置状态定义至少一个输入端和/或一个输出端的配置,并且X是等于或大于一的整数; Cd)指定将由所述计算设备来执行的y个事件,其中,y是等于或大于一的整数; Ce)当由输入端接收到的信号、触发或数据满足预定义合格条件时,指定要执行的事件;以及 (f)使得事件能够从当前配置状态切换到另一配置状态。
19.权利要求18的方法,其中,所述易编程软件包括使得所述智能电话/触控板能够处理任何以下操作的代码 (i)连接到预定义电话或计算机或网络; ( )识别与所述智能电话/触控板相连的电话或计算机; (iii)传送或接收数据; (iv)传送或接收表示音频信号的数据;和/或 (V)传送或接收表示视频信号的数据。
20.权利要求17的方法,其中,所述第一平台系统包括使得所述消费者能够对第一蜂窝电话/触控板和第二蜂窝电话/触控板进行编程的指令;并且当所述第一蜂窝电话/触控板通过蜂窝电话网络与所述第二蜂窝电话/触控板相连时,对于所述第二蜂窝电话/触控板用任何所述元件来控制所述第一蜂窝电话/触控板的操作。
全文摘要
本发明提供了一种用以支持用于对智能电话/触控板进行编程的消费者的云计算系统。提供附加构件组以使得所述消费者能够构建包括所述消费者编程的智能电话/触控板的消费者设计物品并对其进行编程。
文档编号G06F13/38GK103019667SQ20121035651
公开日2013年4月3日 申请日期2012年9月24日 优先权日2011年9月24日
发明者林亚夫 申请人:民间创新基金会有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1