吳義滿
(鹽城衛(wèi)生職業(yè)技術(shù)學(xué)院,江蘇鹽城,224000)
Arduino開(kāi)源設(shè)計(jì)
吳義滿
(鹽城衛(wèi)生職業(yè)技術(shù)學(xué)院,江蘇鹽城,224000)
隨著時(shí)代發(fā)展,硬件開(kāi)發(fā)在不少項(xiàng)目開(kāi)發(fā)中不可或缺, 但非嵌入式專業(yè)人士難以獨(dú)立完成硬件開(kāi)發(fā)。而一些初入門的硬件工程師嫌棄Arduino開(kāi)發(fā)簡(jiǎn)單和不夠?qū)I(yè),忽視其真正作用。該文首先通過(guò)闡述Arduino誕生故事, 解析了何為Arduino;接著通過(guò)經(jīng)典案例分析Arduino在五大領(lǐng)域中起到的影響,發(fā)現(xiàn)Arduino帶來(lái)了革命性的變化;最后分析Arduino開(kāi)源的意義,因此也發(fā)現(xiàn)Arduino的興起其實(shí)是開(kāi)源文化在興起,開(kāi)源文化將成為未來(lái)科技發(fā)展的主流文化。該思想觀點(diǎn)對(duì)技術(shù)人士規(guī)劃未來(lái)技術(shù)發(fā)展路線具有一定的參考價(jià)值。
Arduino、開(kāi)源、設(shè)計(jì)、硬件、工業(yè)4.0、物聯(lián)網(wǎng)、藝術(shù)、教育
隨著技術(shù)快速發(fā)展,智能化再也不僅僅局限于電腦和手機(jī)上,嵌入式技術(shù)將它融入日常生活,但是嵌入式的高門檻讓許多人望而卻步,卻又是不少項(xiàng)目所必須的。在這種環(huán)境下, Ardunio橫空出世,憑借強(qiáng)大庫(kù)函數(shù)包裝了難以理解的寄存器操作,開(kāi)發(fā)者不再需要直接和處理器的底層打交道就可以完成自己的作品。加之其開(kāi)源的特性,讓不少嵌入式領(lǐng)域的專業(yè)人士完善其強(qiáng)大的庫(kù)函數(shù)。因此各個(gè)領(lǐng)域的人都開(kāi)始涉足智能化硬件的設(shè)計(jì)之中,傳統(tǒng)的嵌入式設(shè)計(jì)加之各領(lǐng)域人士的獨(dú)特看法,智能硬件也因此豐富多彩。從此, Arduino從一塊冷冰冰的電路板變成一個(gè)火熱的開(kāi)源硬件平臺(tái), 在不同的領(lǐng)域得到不斷深入的應(yīng)用和持續(xù)關(guān)注。
在這個(gè)追求創(chuàng)新的時(shí)代,Arduino對(duì)許多領(lǐng)域的創(chuàng)新提供了便利,其所提倡的開(kāi)源的精神成為推動(dòng)當(dāng)今科技發(fā)展的重要?jiǎng)恿?。筆者想通過(guò)分析Arduino在五大領(lǐng)域中起到的影響力,來(lái)體現(xiàn)Arduino強(qiáng)大之處,以及開(kāi)源所帶來(lái)的變革。
1.1Arduino歷史
意大利一家高科技設(shè)計(jì)學(xué)校的學(xué)生總是抱怨找不到合適好用的微型控制器,于是他們老師決定設(shè)計(jì)自己的電路板,并配上他學(xué)生的設(shè)計(jì)的編程語(yǔ)言,同時(shí)開(kāi)放了他們的源代碼以及電路設(shè)計(jì)圖。因?yàn)樵O(shè)計(jì)師喜歡去一家叫做Arduin的酒吧, 所以便給這個(gè)電路板取名為Arduino。
1.2Arduino開(kāi)發(fā)板介紹
單片機(jī)是將復(fù)雜的計(jì)算機(jī)系統(tǒng)集成到一塊芯片上的微型控制系統(tǒng)。Arduino開(kāi)發(fā)板大多數(shù)是基于AVR的8位單片機(jī),目前多種型號(hào),常見(jiàn)的有基于Atmega328p芯片的UNO,NANO,MINI以及基于Atmega2560芯片的MEGA。隨著技術(shù)的發(fā)展,8位的單片機(jī)有時(shí)無(wú)法滿足人們的開(kāi)發(fā)需求,32位的處理器登上了舞臺(tái),Arduino因此推出了基于ARM的32位型號(hào)DUE,同時(shí)為了順應(yīng)物聯(lián)網(wǎng)時(shí)代的到來(lái)又推出可以接入以太網(wǎng)的YUN。曾經(jīng)錯(cuò)失了移動(dòng)領(lǐng)域機(jī)遇的科技巨頭Intel公司抓住Arduino帶來(lái)的新機(jī)遇,推出了自己全面兼容Arduino的產(chǎn)品Edison和Galileo,最近又與Arduino聯(lián)手推出集成了藍(lán)牙和6軸加速計(jì)陀螺儀的新型號(hào)Arduino 101。
雖說(shuō)Arduino開(kāi)發(fā)板本質(zhì)上是一塊單片機(jī),但其強(qiáng)大的庫(kù)函數(shù)使得其開(kāi)發(fā)比普通單片機(jī)開(kāi)發(fā)效率高、速度快和難度低等優(yōu)勢(shì)。雖然引用了庫(kù)函數(shù)會(huì)影響運(yùn)行效率,但是隨著科技的先進(jìn),其所影響的效率對(duì)大多數(shù)開(kāi)發(fā)者而言可以忽略不計(jì)。
1.3Arduino開(kāi)發(fā)介紹
Arduino環(huán)境設(shè)計(jì)能讓沒(méi)有軟件或電子學(xué)經(jīng)驗(yàn)的初學(xué)者輕松使用,與普通單片機(jī)開(kāi)發(fā)環(huán)境相比它具有強(qiáng)大的跨平臺(tái)性,兼容目前主流的Windows、Linux和OS X操作系統(tǒng)。
Arduino既有類似c/c++語(yǔ)言的語(yǔ)言開(kāi)發(fā),可以說(shuō)是獨(dú)立的語(yǔ)言,但是卻不需要專門去學(xué)習(xí),有著c語(yǔ)言的基礎(chǔ)便可以幾分鐘輕松上手。又有圖形化編程開(kāi)發(fā)語(yǔ)言Ardublock, 非常適合毫無(wú)編程語(yǔ)言經(jīng)驗(yàn)者上手。
1.4Arduino開(kāi)源的意義
Arduino最為強(qiáng)大之處在于其開(kāi)源的特性,幾乎所有的庫(kù)函數(shù)都可以在github上面找到。正是由于Arduino開(kāi)源性, 實(shí)際應(yīng)用Arduino工具來(lái)測(cè)試和開(kāi)發(fā)項(xiàng)目成本低廉。也正是因?yàn)殚_(kāi)源才使得更多的非嵌入式領(lǐng)域的人能完成自己的所想要的東西。Arduino在工業(yè)4.0,物聯(lián)網(wǎng)時(shí)代之中充當(dāng)著重要的角色,在未來(lái)的科技發(fā)展所需求的正是各領(lǐng)域知識(shí)相互結(jié)合。要想完美結(jié)合,必須對(duì)所結(jié)合的領(lǐng)域有所了解。Arduino給了人們了解嵌入式的機(jī)會(huì),在不久的將來(lái)在其帶領(lǐng)下各領(lǐng)域都會(huì)出現(xiàn)他們自己的“Arduino”。
2.1眾人拾柴—硬件領(lǐng)域
Arduino操作簡(jiǎn)單, 但并不被整天和底層打交道的硬件工程師所鄙視。普通單片機(jī)中同一個(gè)功能代碼不能在不同型號(hào)單片機(jī)上面運(yùn)行,因?yàn)椴煌N單片機(jī)內(nèi)部結(jié)構(gòu)不一樣,甚至想去控制不同型號(hào)的單片機(jī)還需要專門的學(xué)習(xí)。雖然Arduino有許多不同種的型號(hào),由于有了庫(kù)函數(shù)的二次包裝,同一段不涉及各型號(hào)的特殊性能的代碼都可以完美地兼容運(yùn)行。即使涉及到各型號(hào)之間特殊功能的代碼,也只需要看看其官方提供的說(shuō)明手冊(cè)就能控制,不需要去費(fèi)盡心思再去學(xué)習(xí)一些特定單片機(jī)內(nèi)部結(jié)構(gòu)和特定控制方式知識(shí)。
有了開(kāi)放的源代碼庫(kù),硬件工程師將自己為設(shè)備寫(xiě)的驅(qū)動(dòng)分享到代碼庫(kù)中。既方便了外行人使用該設(shè)備,也會(huì)有別的硬件工程師為代碼做進(jìn)一步完善,最終一段代碼中凝聚了無(wú)數(shù)人的智慧。既方便他人使用,也能夠?qū)W到他人好的硬件編程習(xí)慣。不像以前做不同單片機(jī)開(kāi)發(fā)的人之間,雖說(shuō)都是硬件工程師卻始終無(wú)法溝通。
同時(shí),誕生例如DFrobot一類的公司,硬件工程師在做完自己的硬件同時(shí)開(kāi)源自己的驅(qū)動(dòng)代碼。讓更多人能使用各種復(fù)雜的硬件設(shè)備。位于美國(guó)加州的 NanoSatisfi利用開(kāi)源硬件Arduino,制作一個(gè)體積嬌小,而且擁有基本探測(cè)功能的微型衛(wèi)星。在開(kāi)發(fā)者使用自己的代碼開(kāi)發(fā)這個(gè)開(kāi)源項(xiàng)目的時(shí)候,都先由開(kāi)發(fā) ArduSat 的 NanoSatisfi 進(jìn)行測(cè)試,找出其中是否有Bug,相互學(xué)習(xí),相互借鑒。
圖1 基于Arduino的衛(wèi)星:ArduSat
2.2物聯(lián)網(wǎng)時(shí)代—軟件與網(wǎng)絡(luò)領(lǐng)域
隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的成熟,物聯(lián)網(wǎng)也開(kāi)始嶄露頭角,由此產(chǎn)生了各種小型、低功耗的智能硬件。人們不再滿足于二維平面交流,人機(jī)交互因此也從進(jìn)入了三維空間,萬(wàn)物互聯(lián)成為了主流,這就需要軟硬件的相互結(jié)合。由于Arduino封裝了硬件最為繁瑣的寄存器操作,所以軟件工程師就可以將它當(dāng)成普通的軟件來(lái)開(kāi)發(fā)。大大彌補(bǔ)之前軟件工程師做軟件,硬件工程師做硬件,導(dǎo)致最后交互方式僵硬,甚至無(wú)法交互的不足。最為典型的例子便是智能家居的火熱,Arduino從一個(gè)角度使軟件工程師認(rèn)識(shí)到了嵌入式開(kāi)發(fā)的基本步驟,軟硬件的交互因此更為靈活。打開(kāi)搜索引擎,Arduino制作智能家居的例子枚不勝舉。在2011年舉行的Google I/O開(kāi)發(fā)者大會(huì)上,Google發(fā)布了基于Arduino的Android Open Accessory標(biāo)準(zhǔn)和ADK工具。這使得Android與Arduino交互更加方便,也預(yù)示著會(huì)有越來(lái)越多與Arduino做交互的軟件出現(xiàn)。
既然是物聯(lián)網(wǎng),那么肯定需要連接網(wǎng)絡(luò)。許多網(wǎng)絡(luò)工程師發(fā)現(xiàn)了其中的機(jī)遇,紛紛搭建了自己的物聯(lián)網(wǎng)平臺(tái),同時(shí)也利用Arduino開(kāi)源的特性推出了適應(yīng)自己平臺(tái)特色的Arduino開(kāi)發(fā)板,例如樂(lè)聯(lián)網(wǎng)、yeelink和intorobot等。物聯(lián)網(wǎng)開(kāi)發(fā)再也不是只有大公司才能做的東西,即便是個(gè)人都可以借助這些開(kāi)放的物聯(lián)網(wǎng)平臺(tái)做出自己的物聯(lián)網(wǎng)設(shè)備。
圖2 Yeelink開(kāi)放物聯(lián)網(wǎng)平臺(tái)
2.3工業(yè)4.0—機(jī)械領(lǐng)域
提到工業(yè)4.0自然會(huì)想到機(jī)械領(lǐng)域的新生兒—3d打印機(jī)。在3d打印機(jī)剛出來(lái)的時(shí)候一直是黑科技的存在,很多人只是聽(tīng)說(shuō)過(guò),并沒(méi)有實(shí)際見(jiàn)過(guò)。3d打印機(jī)的出現(xiàn)大大減少了產(chǎn)品原型機(jī)的開(kāi)發(fā)成本。而3d打印機(jī)的普及Arduino功不可沒(méi)。目前市場(chǎng)上千元級(jí)的3d打印機(jī)幾乎都用的是Arduino作為主控板,美國(guó)Makebot公司的3d打印機(jī)就是典型代表。這主要是因?yàn)锳rduino開(kāi)源的特性,用于3d打印機(jī)的源代碼Marlin迅速傳開(kāi)。現(xiàn)在僅僅需要花800元就可以自己組裝一個(gè)3d打印機(jī)。同樣的原因、不少原本只有工廠企業(yè)才有的機(jī)器進(jìn)入個(gè)人手中,例如基于Arduino grbl代碼的雕刻機(jī)以及基于Ardunio mwc代碼的無(wú)人機(jī)。Arduino普及了如此多的設(shè)備,大大便利個(gè)人以及小團(tuán)隊(duì)的開(kāi)發(fā)制作,也推動(dòng)了現(xiàn)在萬(wàn)眾創(chuàng)新的趨勢(shì)。在工業(yè)4.0中Arduino將無(wú)處不在。
圖4 Makebot 3d打印機(jī)
2.4現(xiàn)代科技美學(xué)—藝術(shù)領(lǐng)域
從上文Arduino的誕生故事,可以發(fā)現(xiàn)Arduino本身就是為了藝術(shù)而誕生的。蘋果公司憑借著完美的現(xiàn)代美學(xué)設(shè)計(jì), 加之獨(dú)特的技術(shù), 創(chuàng)造了一個(gè)又一個(gè)時(shí)代神話。隨著時(shí)代發(fā)展工業(yè)設(shè)計(jì)越來(lái)越被人們所看重,但是雖然有了工業(yè)設(shè)計(jì)的藝術(shù),不輔之與其交互的體驗(yàn),現(xiàn)代化設(shè)計(jì)難以真正體現(xiàn)其魅力。讓藝術(shù)家去學(xué)習(xí)一些理工科的東西困難十分之大。簡(jiǎn)單而又強(qiáng)大的Arduino便吸引了一波藝術(shù)家的眼球。由于Arduino可以與許多軟件進(jìn)行交互,例如: Macromedia Flash, Processing, Max/ MSP, Pure Data, VVVV或其他互動(dòng)軟件。而這些軟件大多簡(jiǎn)單易學(xué)功能強(qiáng)大,為藝術(shù)家提供了良好的創(chuàng)作環(huán)境。南京藝術(shù)學(xué)院等藝術(shù)類高校已經(jīng)開(kāi)設(shè)了專門的Arduino的課程,在每年的畢業(yè)展上面都可以看到他們用Arduino完成的藝術(shù)設(shè)計(jì)。透過(guò)這些設(shè)計(jì)可以看出現(xiàn)代化設(shè)計(jì)所追求的簡(jiǎn)約卻又不缺美感。
2.5希望之火—教育領(lǐng)域
科學(xué)是第一生產(chǎn)力, 這句話不知道被人們念叨了多少次,日本在二戰(zhàn)之后迅速崛起離不開(kāi)對(duì)教育的重視。中國(guó)教育一直被人們所詬病,以前上大學(xué)前在學(xué)校里面無(wú)法學(xué)到有關(guān)于計(jì)算機(jī)科技的任何知識(shí),從小沒(méi)機(jī)會(huì)接觸到計(jì)算機(jī)方面的知識(shí)長(zhǎng)大之后難以對(duì)計(jì)算機(jī)產(chǎn)生濃烈興趣。加之計(jì)算機(jī)所學(xué)知識(shí)甚多也難以在青少年教育中實(shí)現(xiàn)。Arduino除了傳統(tǒng)的類c/c++語(yǔ)言之外, 還有自己圖形化編程語(yǔ)言Ardublock。圖形化編程語(yǔ)言就像搭積木一樣拖動(dòng)一塊塊積木就可以實(shí)現(xiàn)自己想要的功能,便利了孩子們的學(xué)習(xí),有利于從小培養(yǎng)他們的興趣,將來(lái)能積極投入科技開(kāi)發(fā)中去?,F(xiàn)在國(guó)內(nèi)Arduino基礎(chǔ)教育正如火如荼的展開(kāi),不少學(xué)校與第三方培訓(xùn)機(jī)構(gòu)合作,在學(xué)習(xí)后孩子們親手做出了基于Arduino的機(jī)器人,小車等等高科技玩具。
Arduino帶來(lái)了許多的機(jī)遇,它開(kāi)源的特性影響了眾多領(lǐng)域,也說(shuō)明了當(dāng)今時(shí)代的技術(shù)共享,全民合作,共創(chuàng)未來(lái)的發(fā)展趨勢(shì)。當(dāng)然Arduino在整個(gè)開(kāi)源的潮流中僅僅是一小部分,在著名的網(wǎng)站github上面有無(wú)數(shù)軟硬件的開(kāi)源代碼,一個(gè)個(gè)有趣的項(xiàng)目凝聚了無(wú)數(shù)人的智慧。科技不再是利益的爭(zhēng)求,而是人們改變未來(lái)的一種方式。之前科技的進(jìn)步必定凝結(jié)了許多人的汗水,而開(kāi)源能夠前所未有容納更多人的汗水,科技也將發(fā)生史無(wú)前例的進(jìn)步。
[1]趙廣元,王文慶,蔡秀梅.開(kāi)源硬件在自動(dòng)化專業(yè)教學(xué)中的應(yīng)用模式初探[J].實(shí)驗(yàn)室研究與探索,2013,11:355-357+402.
[2]雒亮,祝智庭.開(kāi)源硬件:撬動(dòng)創(chuàng)客教育實(shí)踐的杠桿[J].中國(guó)電化教育,2015,04:7-14.
圖5 Arduino與Processing交互作品
[3]林巧生,趙育林.基于開(kāi)源硬件和物聯(lián)網(wǎng)云平臺(tái)的遠(yuǎn)程控制應(yīng)用[J].湖南工業(yè)大學(xué)學(xué)報(bào),2016,01:64-69.
[4]R. Barber,M. Horra,J. Crespo. Control Practices using Simulink with Arduino as Low Cost Hardware[J]. IFAC Proceedings Volumes,2013,4617:.
[5]Daniel K. Fisher,Peter J. Gould. Open-Source Hardware Is a Low-Cost Alternative for Scientific Instrumentation and Research[J]. Modern Instrumentation,2012,0102:.
[6]L. H. M. de Castro,B. L. Lago,Felipe Mondaini. Damped Harmonic Oscillator with Arduino[J]. Journal of Applied Mathematics and Physics,2015,0306:.
吳義滿(1976.03-),性別:男,出生地:安徽省安慶市宿松縣,學(xué)歷:碩士研究生、學(xué)位:職稱:碩士、講師,研究方向:醫(yī)療儀器、開(kāi)源硬件
Arduino & Open Source Design
Wu Yiman
(Yancheng Heath Vocational and Technology College, 224000, China)
Along with the development of the times, hardware development is indispensable to many projects, but not embedded professionals complete the hardware development independently. And some junior hardware engineers abandon Arduino because of its simple and non-professional, who ignore its real role. Firstly,Arduino birth story is described in order to parse what Arduino is. Then, through classic cases Arduino influence is analyzed in five areas, which it is true that Arduino has brought the revolutionary change. In the final,Arduino significance of open source is analyzed, by which it is discovered that the rise of Arduino is in the rise of open source culture. Open source culture will become the mainstream of the development of science and technology culture in the future. The idea has a certain reference value for people to make the technology plan of future technology development routes.
arduino;open source; design;hardware;industrial 4.0;Internet; art; education
TN6
A
鹽城市衛(wèi)生局課題YK2015056項(xiàng)目資助、江蘇省十二五規(guī)劃課題D/2015/03/016項(xiàng)目資助