Sunday, 28 September 2014

ADRC是什么?

       在我回答这个问题之前,最好让我们来看看下面这个短片......

https://www.youtube.com/watch?feature=player_embedded&v=OSV90EJbXMk

      在手机和设备贴近而产生感应的时候,ADRC技术能让手机变成一个遥控器,并在屏幕上触发一个用于实现控制功能的用户图形交互界面,这样用户马上可以与设备进行交互。想象一下如果世界上所有的东西都可以通过这样的方式来进行操作,我们将可以与任何在我们周围的物件进行交流,获取信息,进行控制,甚至做现在我们不敢想象的一些事情。
      这就是ADRC为未来的一个美好设想。假想当你出去逛街时,看到一台自动小吃销售机。你可能觉得你眼前的糖果非常吸引你,但你不可能改变你面前的选择。事实上,你很可能永远没有机会去改变。好吧,现在假设这台机器是植入ADRC技术的,你可以简单的用你的手机贴近机器的触碰图标:

ADRC 触碰图标

销售机的控制界面自动出现在你的手机屏幕上。然后你可以选择你想要的糖果,手机上会显示它的价格。你可以采用PayWavePayPass付费方式,只需要用你的手机再次触碰机器,糖果就是你的了。
      不知道你遇到下面这种情况没有。停车里的一个自动缴费机系统崩溃了,不能提供正常的服务。这种情况下,我从来没有遇到过有任何的一台机器可以提供机会让我使用信用卡缴费。那为什么不能让这台扣费机植入ADRC技术呢?你只需要把你的手机贴近扣费机,就可以缴费了,一切的操作过程和结果都会显示在你的手机屏幕上。你同样可以采用PayWavePayPass的方式再次触碰机器,来确认你的缴费。
      现在你应该有点概念了吧!
      ADRC为什么那么特别呢,其中一个理由就是与其他同功能方案相比,你只需要一个应用程序去操作每一台设备。仅仅就是一个应用程序,ADRC突破的技术就在这里。无论是不同厂家的自动销售机,还是不同厂家的停车场扣费机,你不需要为它们配备专门的软件。拥有智能手机的人们应该知道当前手机里的应用程序过多而过于复杂,你同样的也有可能为这样的问题而每天烦恼。ADRC与设备之间的关系,对比于网络浏览器和万维网,有异曲同工之秒。ADRC技术所提供的设备浏览器和用户界面标记语言,让设备和遥控器之间的互动变得通用,也没有繁琐的步骤。在我们的设计里,ADRC将会提供更多功能。
      我们Xped公司已经在一些产品中,植入了这项令人惊奇的技术。拥有我们的红外线冲击器(IR Blaster),你可以把所有的红外线远程遥控器永远的扔到垃圾桶里,你只需要用你的手机来代替它们。我们的智能插座(Ultra Plug)允许用你的手机控制一些简单家电,比如灯,风扇,电暖器等等。同时你还可以监控这些家电的即时能源消耗状况,而这些数据能够自动记录并用于统计分析。类似产品可调节插座(Vari Plug)可以让你调节你的台灯亮度和改变你的电机转速。在我们的产品规划里这些只是先头戏,若想得到更多的信息,请登录我们的网站 www.xped.com
      我们为电子和Arduino的爱好者量身定做了一款植入ADRC技术的Arduino扩展插板。如果你在Arduino项目中采用我们这款插板,你就可以使用你的手机实现控制操作,就像我们视频所展示的效果一样。



      讲到这里,我希望你能认同我的看法 - ADRC是一项了不起的技术。我将会向你展示如果构建一个ADRC系统。

Tuesday, 23 September 2014

ADRC Arduino扩展插板研发过程

      我最近才开始接触Arduino应用技术,到现在为止采用Uno板做了两个简单作品。我深深的喜欢上Arduino的技术开发模式。它让电子设计变得更加容易,能在更广的范围内,让具备不同技能的人士参与进来,那怕他们只具备有限的电子专业知识。
      我一直在为我们未来的Arduino项目探索一种方案,能实现真正高效的用户图形接口。大概4个月前我决定把我们Xped公司的部分高端技术嵌入到一个适用Arduino的扩展插件上。两个月后,我研发出它的alpha样板,用于测试。
      这里给出一张当初项目开始时的真实照片。左上角是我们购买的一个NFC开发板,其他两个是具有外壳的产品电路板。这两个产品应用于我们的其他一系列项目。


      根据我们的设计目标,我把这三块板相关线路连接起来。我规划一下,我们的最终产品 - Arduino插件将具备以下主要功能特征:
  • 近场通信,英文简称NFC(Near Field Communications)。NFC技术已经应用于无线支付,比如PayWave和PayPass。大部分最近和最新生产的智能手机都支持NFC技术。
  • 个人小范围网络,英文简称PAN(Personal Area Networking)。它在网路链路的MAC层采用802.15.4通信协议,其通信距离优于蓝牙(Bluetooth)。
  • 芯片植入哈希加密,用于安全操作,比如非接触方式的无线固件(firmware)升级。
  • 采用ARM 32位微控制器 STM32F103R8 Cortex M3。
  • 256 KB的扩展FLASH内存。
  • 提供文件系统,用于数据和文件存储。

      实验验证工作持续2-3周后,我们拥有了足够的固件代码( firmware)和测试硬件。在这基础上,我们进一步研发出一款线路板,就是我们将要发售的这个Arduino插件。这里附上最原始的一块印刷电路板,上面并未焊接元器件。


       很快我们的成品生产出来了,它插接在Arduino Uno底板上,并能正常工作。
      我们现在提供一个库文件给用户,让他们能容易的进行产品二次开发。这里是第一个通过实验测试的案例。在这项目中,我们使用一个无外壳的小直流马达驱动四个三维打印机生成的齿轮。插件插在Arduino底板上,连接并控制马达。



      如果设备浏览器尚未运行,把智能手机轻轻触碰一下设备,相应的网页将自动打开,手机的NFC功能就开始使用。

                                 https://www.youtube.com/watch?feature=player_embedded&v=xWsCPwkl1qI


      从下面这个视频可以看到,我们能很容易做到把手机和设备进行通信联接。启动设备浏览器,把手机轻轻触碰设备,NFC功能就发挥作用了。

                                 https://www.youtube.com/watch?feature=player_embedded&v=OSV90EJbXMk

      ADRC系统能让你自定义规则,让设备之间能够互动,实现各种功能。这就是所谓的机器对机器(M2M)技术。

                                 https://www.youtube.com/watch?feature=player_embedded&v=COxRa2I590E

      你可以使用多个遥控器,或不同的遥控器,而他们能同步显示设备的状态。下面的视频展示了三个遥控器控制一台设备,其中有一个是运行在桌面电脑上的应用软件。

                                 https://www.youtube.com/watch?feature=player_embedded&v=5QsuiFFm5SA

       不知大家是否熟悉Qt和用户图形界面(GUI)应用开发,其实在很多方面跟Java SWING技术开发类似。本应用程序使用三种主要的窗口控件:容器控件,控制控件,布局控件。我们在智能手机开发上采用Qt技术和XML语言。我们把该XML语言命名为资源标记语言(Resource Markup Language),简称RML。根据你的设计,你可以使用RML语言构建那怕是非常复杂的用户界面。

      这里提供更多例子:

      简单例子(控制LED灯开关):


<screen name="main-page" margins="4">
    <devicebox title="$(NICKNAME)" layout="horizontal" spacing="4" margins="4" skin="wood">
        <xpcontrolbox bind="on" layout="horizontal" leftmargin="20" rightmargin="20" stretch="1">
            <localetitle><en>LED</en></localetitle>
            <xpsvgtoggleswitch bind="on" skin="Beryl"/>
        </xpcontrolbox>
        <spacer stretch="4"/>
    </devicebox>
</screen>


      稍复杂例子:


      相对复杂例子(采用stylesheets定义和多屏):



      当前提供以下窗口控件:

布局/容器类型
  • box(普通盒子)
  • groupbox(可包含多类型窗口)
  • devicebox(能接收设备状态)
  • signalbox(能接收信号强度)
  • controlbox(容纳普通控件)
布局/间隔类型:
  • separator(用于隔断)
  • spacer(用于距离间隔)
普通控件:
  • label(文本)
  • checkbox(选择框)
  • pushbutton(按钮)
  • svgbutton(SVG图片按钮)
  • svgtoggleswitch(SVG选择开关)
  • svgslideswitch(SVG滑动开关)
  • slider(滑动调节)
  • scrolldial(指针型仪表)
  • scrollwheel(滚动轮)
  • scrolldialwheel(滚动控制,仪表显示)
  • 5waybutton(5按钮组合)
  • 3waybutton(3按钮组合)
  • 2waybutton(2按钮组合)
  • rockerbutton(二选一按钮)
  • radiogroup(选择型按钮)
  • progress(渐进条)
  • led(灯)
  • 7seg
  • dialgauge(仪表)
  • lineedit(文字输入)
  • listbox(列表)
      在应用我们的系统时,并不是一定需要你的手机具备NFC功能。不过NFC能让你的手机在贴近设备的时候,与设备的交互变得更容易和更敏感。我们提供一个控制集线器,具备NFC功能,并提供802.15.4协议的无线网络。你可以在这个系统里,通过触碰集线器和设备来联接它们。
      不久前我尝试利用Arduino来控制低成本的机器人。我发现Zumo Robot比较合适,购买了一对。几天前,我只花了20分钟去编辑一个RML文件,并编写了控制Zumo的软件代码。这里有实验的一个短片。

                             https://www.youtube.com/watch?feature=player_embedded&v=QTZ8_iYCUMg


       想了解我们的扩展插板如何把ADRC系统和Arduino项目连接起来,请看下图 :



      现在ADRC插板仍然处在alpha测试阶段,beta版很快将会进入测试。

Wednesday, 17 September 2014

为什么选择ADRC?

技术介绍

      目前我们所看到的所有远程控制或物联网(IoT)技术都是基于设备类型描述的。每一台设备必须根据它的类型进行配置。例如,当遥控一台电视或连接一个温度传感器时,必须根据它的类型是电视或温度传感器,来进行相应的系统设置。
      这带来一些阻碍。
        终端用户不能简单的私自定义一个完全崭新的设备类别,从而使它可以在现有系统中,与其他设备协同工作。用户必须求助于相应的工业联合组织,申求在标准中增加新型设备类别。
      同时,即使在一些已经非常成熟的产品中,比如电视,每一个生产厂家又希望自有产品能包含一些个性化特征。可惜的是,在现有的系统中,这些设备定义标准往往服务于一些拥有专利的领域。
      这种运作方式导致的结果是,除了生产厂家,没有人知道产品具备哪些额外特征,也没有人知道如何应用这些功能。
      ADRCAuto Discovery Remote Control)从彻底上提供了一个全新方案。该方案使得可以为每一个具体的单个设备进行配置,而不是根据它属于那个产品种类。也就是说,我们可以轻易的为每一个设备定义它的用户图形交互界面,也可以设计它自己的控制方案。 

Arduino扩展控制插件



      我们市场上推广的第一个产品是Arduino扩展控制插件,它为Arduino爱好者(或其他二次开发者)提供运程遥控自动搜索(ADRC)功能。
      我们尝试过多种无线通信插件,以及蓝牙,WIFI产品等等。没有一种产品,在提供用户界面和设备通信方面,提供完整的终端对终端方案。
      ADRC提供一条途径去定义一台设备以及它的用户接口。同时也定义了一个同步/异步双工通信协议。我们为Arduino设计了一个软件开发包,开放对应控制接口,让它能顺利集成到你的个人代码里,从而让你能成功采用ADRC技术实现你的目标工作。
      在应用软件包的库文件时,你只需要配置一个XML文件,设置设备输入输出特性。当然,你可以根据你的个性化设计,为设备运行状态的改变,编写对应接口处理函数。
      我们将会在我们的网站xped.com上发售ADRC控制插件(shield),ADRC集线器(Hub)和其他产品。如果你的手机具备NFC通信功能,只需要把你的手机靠近这些嵌入ADRC通信协议的设备,轻轻触碰一下,就可以把你的手机与设备关联起来。连接成功后,我们的Hub能让你的智能手机与任意数量的ADRC产品进行通信。


未来目标 - 连接世界

      在研发和应用ADRC技术过程中,我们内心不断涌现一些令人兴奋的新想法。这些想法在我们技术团队的初始阶段并未出现,然而把这些想法实现到真正产品中,并不需要改变现有的已经研发成功的核心系统。
      我们相信ADRC技术的应用非常宽广。如果你正在市场上为你的机器寻求某种适配器,以实现机器与其他设备进行通信的话,ADRC是你的一个优质选择。
      我们将会不断的推出新的产品和应用,一些将用于实际,一些将用于娱乐。
      请继续关注!