Monday, 29 September 2014

ADRC是什麽?

      在我回答這個問題之前,最好讓我們來看看下面這個短片......

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

      在手機和設備貼近而産生感應的時候,ADRC技術能讓手機變成一個遙控器,並在屏幕上觸發一個用于實現控制功能的用戶圖形交互界面,這樣用戶馬上可以與設備進行交互。想象一下如果世界上所有的東西都可以通過這樣的方式來進行操作,我們將可以與任何在我們周圍的物件進行交流,獲取信息,進行控制,甚至做現在我們不敢想象的一些事情。
      這就是ADRC爲未來的一個美好設想。假想當你出去逛街時,看到一台自動小吃銷售機。你可能覺得你眼前的糖果非常吸引你,但你不可能改變你面前的選擇。事實上,你很可能永遠沒有機會去改變。好吧,現在假設這台機器是植入ADRC技術的,你可以簡單的用你的手機貼近機器的觸碰圖標:

ADRC 触碰图标

銷售機的控制界面自動出現在你的手機屏幕上。然後你可以選擇你想要的糖果,手機上會顯示它的價格。你可以采用PayWave 或PayPass付費方式,只需要用你的手機再次觸碰機器,糖果就是你的了。
      不知道你遇到下面這種情況沒有。停車裏的一個自動繳費機系統崩潰了,不能提供正常的服務。這種情況下,我從來沒有遇到過有任何的一台機器可以提供機會讓我 使用信用卡繳費。那爲什麽不能讓這台扣費機植入ADRC技術呢?你只需要把你的手機貼近扣費機,就可以繳費了,一切的操作過程和結果都會顯示在你的手機屏 幕上。你同樣可以采用PayWave和PayPass的方式再次觸碰機器,來確認你的繳費。
      現在你應該有點概念了吧!
      ADRC爲什麽那麽特別呢,其中一個理由就是與其他同功能方案相比,你只需要一個應用程序去操作每一台設備。僅僅就是一個應用程序,ADRC突破的技術就 在這裏。無論是不同廠家的自動銷售機,還是不同廠家的停車場扣費機,你不需要爲它們配備專門的軟件。擁有智能手機的人們應該知道當前手機裏的應用程序過多 而過于複雜,你同樣的也有可能爲這樣的問題而每天煩惱。ADRC與設備之間的關系,對比于網絡浏覽器和萬維網,有異曲同工之秒。ADRC技術所提供的設備 浏覽器和用戶界面標記語言,讓設備和遙控器之間的互動變得通用,也沒有繁瑣的步驟。在我們的設計裏,ADRC將會提供更多功能。
      我們Xped公司已經在一些産品中,植入了這項令人驚奇的技術。擁有我們的紅外線衝擊器(IR Blaster),你可以把所有的紅外線遠程遙控器永遠的扔到垃圾桶裏,你只需要用你的手機來代替它們。我們的智能插座(Ultra Plug)允許用你的手機控制一些簡單家電,比如燈,風扇,電暖器等等。同時你還可以監控這些家電的即時能源消耗狀況,而這些數據能夠自動記錄並用于統計 分析。類似産品可調節插座(Vari Plug)可以讓你調節你的台燈亮度和改變你的電機轉速。在我們的産品規劃裏這些只是先頭戲,若想得到更多的信息,請登錄我們的網站 www.xped.com 。
      我們爲電子和Arduino的愛好者量身定做了一款植入ADRC技術的Arduino擴展插板。如果你在Arduino項目中采用我們這款插板,你就可以使用你的手機實現控制操作,就像我們視頻所展示的效果一樣。



      講到這裏,我希望你能認同我的看法 - ADRC是一項了不起的技術。我將會向你展示如果構建一個ADRC系統。

Wednesday, 24 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版很快將會進入測試。

Thursday, 18 September 2014

爲什麽選擇ADRC?

技術介紹

      目前我們所看到的所有遠程控制或物聯網(IoT)技術都是基于設備類型描述的。每一台設備必須根據它的類型進行配置。例如,當遙控一台電視或連接一個溫度傳感器時,必須根據它的類型是電視或溫度傳感器,來進行相應的系統設置。
      這帶來一些阻礙。
      終端用戶不能簡單的私自定義一個完全嶄新的設備類別,從而使它可以在現有系統中,與其他設備協同工作。用戶必須求助于相應的工業聯合組織,申求在標准中增加新型設備類別。
      同時,即使在一些已經非常成熟的産品中,比如電視,每一個生産廠家又希望自有産品能包含一些個性化特征。可惜的是,在現有的系統中,這些設備定義標准往往服務于一些擁有專利的領域。
      這種運作方式導致的結果是,除了生産廠家,沒有人知道産品具備哪些額外特征,也沒有人知道如何應用這些功能。
      ADRC(Auto 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是你的一個優質選擇。
      我們將會不斷的推出新的産品和應用,一些將用于實際,一些將用于娛樂。
      請繼續關注!