Tag Archives: Arduino

物聯網IoT入門 – Arduino vs Raspberry Pi

過去兩個十年是互聯網的天下,孕育出Google,Facebook等富可敵國的科網巨頭,養活無數大小不一的網絡公司,懂網站編寫技術的人身價亦水漲船高。有預言說下個十年物聯網Internet of Things(IoT)將會取代互聯網,成為最灸手可熱的新科技藍海市場。物聯網到底是什麼樣子,目前還未有定論,大家還在探索階段。有一說法物聯網是互聯網的申延,讓互聯網走出電腦電話平板的框框,讓家居或公司任何地方的每一件物件,都擁有智能可以用電腦操控。

現在的物聯網一般統稱為Maker Movement,性質與早期的互聯網十分相似,都是一群業餘者當嗜好的玩意,geek們好玩地解決瑣碎麻煩事。偶有項目放上Kick Starter或indiegogo集資出製成品,但還未發掘出什麼賺大錢的商業模式,就好像在靜靜等待時機成熟,然後一個泡沫爆發起飛。當年互聯網起步之初,懂得HTML,CSS,PHP等技術,雖沒有贏在起跑線這回事,但也算早點拿到入場卷,至少行先別人一步。想要在下一個物聯網世紀中分一杯羹,又需要懂什麼入門技術呢?

Maker的入門技術,說難不難,說易不易,只需略懂大學一年級電子工程的知識,加上無限的創意,便可以弄出好玩又有用的東西。一台微型電腦作為核心,配上不同組合的sensors,display和motors等物理元件,讓電腦與現實世界的物件互動。可以說是弄個原始機械人,儘管不是動畫中那種機械人,只能做一些簡單事情的小機器。現今Maker可以粗略分為兩大陣,Arduino和Raspberry Pi,兩者分別是不同的開源硬件和軟件生態體系,不過它們並不是iOS和Andriod般的競爭對手,反而更像是太極陰陽般相輔相成,各有不同強項互補長短。

Raspberry Pi(RPi)是一台十分便宜的小電腦,四十美元有找,性能大約與中價手機相若。RPi運行Linux作業系統,可以完取代一般desktop。Linux更是互聯網伺服器的主要系統,不講求運算速度的話,RPi用來架網絡站也沒有問題。與電腦不同之處,是RPi有40個GPIO(General Purpose Input/Output)接點,可以讓用家連接sensor,display和motor不同部件,用家與RPi的互動不再限於鍵盤和屏幕。例如你可以把RPi連上motion sensor和冷氣機的電源開關,讓冷氣機見到有人入屋時自動開著,更可以把RPi連上網,讓你遙控家中的冷氣機。當然這個點子那樣行貨,Nest早已經造了出來,還給Google重金收購了,現在才跟風去做太遲了。不過重點是RPi潛在的無限個可能性。

Arduino嚴格來說不是電腦,而是microcontroller微處理器。電腦作汎用運算,可以執行不同程式,微處理器則只可行單一程式。若果拆開家庭電器如電飯煲,入面的控制晶片就是微處理器而不是電腦。Arduino的性能比RPi差一百倍,只及當年286的速度,記憶體更是小得可憐,只有Apple IIe的一半。價錢比RPi更便宜,原裝正版十美元,不介意大陸翻版的話,上淘寶三美元有交易。不要以性能弱就小看它,其實大部IoT的應用根本不需強大的運算能力,夠用就行了。Arduino有不同大小的版本,各有不同數目的GPIO。最微型的只有一個硬幣的大小,加上耗電量小可用計算機鈕型電池,很多舞台服飾上都是用它控制LED效果。Arduino比RPi的GPIO更易用好用,RPi的GPIO是純數碼(digital),只能有零或一的數值,但Arduino有模拟(analog)的GPIO,可以直接作voltage的輸入或驅動,不要額外的模拟轉數碼晶片。另外Arduino的GPIO電路比較堅固,RPi的GPIO如果駁錯線超出電量負荷,很容易把成塊晶片燒壞,所以初學者用Arduino比較適合。

Raspberry Pi和Arduino代表著IoT的兩種不同哲學,RPi是從上而下以傳統電腦為先,Arduino則是從下而上以方便控制優先。市面上有不少現成的擴充板,去增加兩者缺少的功能。如要播音樂,RPi執行內建音樂播放器便可以,但Arduino則要加裝mp3音效板。兩者沒有絕對的優劣高低,只因應不同需要,在系統上作出不同的取捨。又或可以者索性兩者一齊用,RPi做總指揮執行運算和網絡工作,Arduino則專門操制物理元件。除了這兩個主要的入門系統外,市面上還有很多其他IoT系統,如Intel的Edison,Galileo,其他廠的Beaglebone,LinkIt ONE,CHIP等。它們不外是在這兩個設計哲學的基礎上,找出不同性能和價格的平衡點,如速度快些慢些,記憶體或接點多些少些,體積或耗電量不同,加放其他晶片如GPS,LTE在底板上。

學習IoT最有效最直接的方法,莫過於自已來動手玩。可以上網買RPi或Arduino的starter-kit,價格豐儉由人從十多元到百多元也有,看你想套裝內附送多少物理元件。跟從套裝內的說明書,從控制一顆LED閃下閃下開始,一步步把不同元件裝組成有趣小玩意。不過套裝的說明書一般過份精簡,要把小玩意做出來不難,但要明白如何寫程式去操作那些元件,連我這個讀電子出身也看不明白,要另外看入門書藉。在此我推介兩套入門書,一套是Maker Media出版的Make Series,內容十分淺白易明,寫給沒有寫程式經驗的人看,用來打好基礎知識,不過有經驗的人會覺的長氣。另一套是電腦書出版老大哥O’Reilly的Cookbook Series,沒有電腦人未看過O’Reilly的書,不用多作介紹。

玩starter-kit踏出第一步後,進階可以多看Maker雜誌和網站,參加當地舉辨的Maker Faire,與其他maker交流心得刺激思維,難保有一天靈光乍現,天時地利人和加點運氣,從此搖身一變成物聯網科技大享。痴人說夢完,其實我只是maker初哥,玩RPi和Arduino才個多月,剛剛完成starter-kit的習作,上網再買多些物理元件回來,弄些有趣的無聊小玩意。我的第一個成品是LED紅綠燈,按鈕會轉燈,給兒子與他的玩具車一起玩。第二個成品是摩斯電碼機,長短嘟嘟嘟聲來打字很慢但很型。第三個作品還在製作中,重製兒時很流行的計數機消數目字遊戲。IoT很好玩,就算發達不成,也不失為一個有用嗜好。至少兒子入學讀書後,學校要交什麼科學創意習作,怪獸家長出動IoT技術幫拖,肯定比其他只懂繪畫做剪貼勞作的同學仔高分。