2013-01-06

中國夢,創客夢——簡評DFrobot的「夢想家」系列控制板

新年肇始,紀元終開。

2012年對開源硬體來說,實在是大步跨越的一年,一個個創客空間如雨後春筍般在神州大地茁壯成長,雖然現在創客依然是小眾群體,但是其撬動地球的勇氣,DIY一切的魅力,蚍蜉撼大樹般的創客文化影響了無數的有識之士!

遙想五十年前,在美國麻省理工大學(MIT)成立了一個著名的「鐵路模型技術俱樂部」(Tech Model Railroad Club,縮寫為 TMRC),世界上最早的「黑客」群體就此誕生,從這裡走出了世界上最著名的計算機科學家/程序員。包括有「人工智慧之父」之稱的John McCarthy約翰·麥卡錫和「自由軟體之父」Richard Stallman理查德·斯托曼。四十年前,互聯網的原型ARPAnet也誕生在這裡!

回想二十八年前,Richard Stallman一個人與私有軟體孤軍奮戰,提出了劃時代的GNU計劃,創立了「自由軟體基金會」(Free Software Foundation, FSF),這位MIT「最後的黑客」以幾乎自我犧牲的方式,為以後開源的發展創造了理論和意識形態基礎。

回望二十二年前,Linus Torvalds在學習之餘開發了後來被稱為開源世界「第一屢陽光」的Linux操作系統,現在Linux已經從個人PC、伺服器走入了手機(Android),走入了尋常百姓家(Ubuntu TV)。

回憶15年前,Eric Raymond和Bruce Perens一起提出了「開源 Open Source”這個概念,從此世界進入了完全的「開源世界「。

五年前,「開源硬體」終於回來了,想想五十年前的黑客前輩們動手對硬體的修改,而藉助轟轟烈烈的開源運動我們也可以改造硬體了!現在是一個人人都可以是創客的時代,一個人人都共享技術的時代,一個開放互聯的時代!

2012年,DFrobot推出了基於Arduino MEGA 1280的新控制板「夢想家」Dreamer MEGA。一款劃時代的產品橫空出世,將開源硬體帶入了完全不同的新境地!

傳統Arduino的問題

Arduino引入了非常開放的開源硬體標準,而藉助這個平台,Arduino將開源硬體提高了前所未有的高度。眾所周知,Arduino通過各種擴展板(Shield)來引出其引腳介面,並引出更多的應用。

然而傳統Arduino很快就被發現各種問題,雖然引入了很好的開放介面,但是隨著應用複雜度的增加,這些擴展板已經越來越不適應人們的需求。

  1. Arduino並沒有發揮微控制器的最大效能,沒有引出全部引腳,比如Arduino MEGA控制板,MEGA1280總共有100多個引腳,而實際上只有50幾個被引出,如果用戶想使用這些引腳資源就沒有辦法了。
  2. 為了更好地體現「電子積木」,要求每層的擴展板都需要將所有IO口引出,而實際上即便用現在整合兼容性最好的擴展板,最多疊落三層。這樣的設計不僅增大了成本了,還大大制約了應用。
  3. 引腳引出,勢必造成連線複雜,杜邦線少則三五根,多則幾十根!對剛剛入門的新手非常不友好,由此產生的問題會造成很多的小問題,影響自信心。

Dreamer的橫空出世

Dreamer產品線正是為了避免以上這些Arduino問題而產生的。引入了兼容.Net Gadgeteer的介面標準,使用1.27毫米10芯接線來連接主板和模塊。主要特性如下:

  • Arduino MEGA 1280
  • 16個不同種類的Gadgeteer模塊介面將晶元的所有引腳都引出!
  • 微型的10芯線(1.27mm 間距) IDC10
  • USB介面:使用任何手機或者平板的Micro USB
  • 電源輸出介面
  • 內部鋰電池充電電路
  • 外部輸入電壓 7V 至 12V。

對於熟悉UNIX哲學的人可以發現,這個Dreamer完全符合UNIX設計哲學。下面簡述如下:

  • 模塊化設計:所有Dreamer的外圍硬體都以模塊方式產生,不論是感測器還是電機驅動,甚至是LCD顯示屏都是高度模塊化的。每個模塊只做一件事,並儘可能做好。
  • 小即是美:每個模塊都以最小系統方式組織和生產。
  • 儘可能的榨取硬體的全部價值:整個晶元的所有引腳全部引出,將晶元的效能全部發揮出來了。
  • 明晰的介面:對於並行設備,將其轉變為串列介面設計,比如I2C介面或者SPI介面。
  • 快速的原型設計:由於簡化了接線,這樣基礎的硬體設計就節省下來了,然後可以為產品原型的開發提速。工程師可以不用處理硬體設計,直接為應用編寫軟體即可!
  • 自由可定製化的介面:由於晶元引腳都可以作為通用IO口使用,同時很多引腳都有多重定義,因此每個介面都可以完全自由的定製,適應幾乎所有的應用範圍。

兼容M$ .Net Gadgeteer標準

作為崇尚開源的人,一般都是厭煩M$的東西的。沒錯,M$的產品崇尚傻瓜化和集成化,與定製化和模塊化是完全相對的,而唯獨 .Net Gadgeteer介面標準是完全不同的,這很讓筆者感覺詫異。

當然,事情不對看得太絕對,這個 .Net Gadgeteer介面確實讓我很是喜歡,拿到Dreamer板子以後更是愛不釋手阿。 .Net Gadgeteer配合IDC10芯線將主板和各個模塊有機結合,讓創意從此不再因為硬體而局限!

小應用:刷卡機

需求:實現簡單的RFID刷卡機,通過LCD顯示屏,顯示刷卡者的信息。

試想如果用傳統Arduino實現這個功能將會耗費多少呢?連線要連接多少根線?模塊需要大量的焊接操作?現在完全採用Dreamer系列模塊和開發板,只需要如下材料:

  • Dreamer MEGA主板
  • RFID模塊、白卡
  • LCD 2004模塊
  • IDC10芯線兩根

按圖所示接好線就OK了,剩下的就是軟體編程了。在模塊的WIKI上都有模塊的示例代碼,需要安裝I2C LCD的庫。後面只需要非常簡單的整合即可,這裡給出一個簡單方法,具體代碼不給出,留給讀者自由發揮。

首先,在RFID的示例代碼開頭加上一行LCD的庫調用,並實例化一個lcd對象:

 #include  <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);

然後在setup()函數里初始化一下LCD設備,使用init方法,並將背光關閉一下:

lcd.init();
lcd.backlight();

最後,在需要LCD顯示的地方使用print方法輸出:

lcd.print(str);

還可以結合SD卡模塊和按鍵模塊實現一個完整的刷卡考勤機!

Dreamer的不足之處

實話實說,幾乎沒有,但是眾所周知完美的事物是不存在的,在平時使用中筆者確實發現了一些勉強可以算成是」不足「的地方:

  1. 鋰電池充電電路有點雞肋。平時使用時電池基本都是單獨充電的,直接使用控制板充電確實很少出現,而這部分電路的成本是很高的,我當然不希望花很多錢去購買自己不需要的功能。
  2. IDC10芯線容易損壞,這種線價格高,而損壞率也高。插拔的時候如果過於用力或者使用不小心都會造成線材損壞,進而降低它的優點——降低連線時的成本。
  3. 兼容模塊太少。DFrobot正在將現有模塊產品升級,力圖儘快兼容Dreamer系列控制板。

夢想家的未來

從產品定位的角度出發,「夢想家」系列產品是面向需要快速產品原型開發的工程師,簡化學習過程的單片機愛好者和學生,以及大規模控制應用的創客群體。因此從低端到高端,從學生到工程師都可以通過這樣的產品快速完成開發。

與此同時,目前只有MEGA 1280控制板,而後面據悉DFrobot也將基於更多的微控制器開發更多」夢想家「系列控制板,很可能不僅僅限於Arduino。另外,更多的模塊也在小型化和兼容Gadegeteer介面標準,也歡迎更多的開發者開發這樣的模塊,進一步豐富開源世界!可以說DFrobot正在通過自己的方式為開源硬體做出實質的貢獻!

2012年已經不再是」世界末日「了,瑪雅曆法開啟了新的一個篇章,而現在我們也進入了完全開源的世界,開放互聯已經成為了世界的標準,任何人通過各種手段封閉的企圖都被證實是違背歷史發展規律的。2013,歡迎你我一起共享這個屬於開放源代碼的新紀元!

【相關產品】

夢想家系列-Dreamer MEGA主板

RFID Reader Module

Mifare One RFID卡片

IIC/TWI LCD2004液晶模塊(Arduino兼容)

Gadgeteer ADkey 按鍵模塊

Gadgeteer SD Card 模塊

You may also like...