上期我們提到了Arduino是創(chuàng)客教育的神器,這期我們來講解一下初學(xué)Arduino的最佳圖形化編程工具——Mixly。
Arduino憑借不斷豐富的擴(kuò)展性及適用性毫無爭議的成為極客愛好者的首選硬件平臺(tái)。Arduino越來越火,想學(xué)的人也越來越多。但對(duì)于初學(xué)者,打開官方編程軟件Arduino IDE,看到一行行的文本代碼,一下就頭大了。編程能力跟不上,硬件開發(fā)也下不去手啊。
麻省理工在2006年推出的兒童編程軟件Scratch,提出了一個(gè)非常好的編程入門解決方案——積木式圖形界面。(Scratch的靈感則來自于樂高積木,詳見:西摩爾·派普特,他的研究啟發(fā)了樂高機(jī)器人的問世)之后,谷歌推出了Blockly,一套積木式圖形編程JavaScript庫。通過圖形界面的“搭積木”式操作,blockly可以生成JS、Python、Php代碼。接著Blockly開源庫,你甚至可以為任何計(jì)算機(jī)程序開發(fā)圖形化編程工具。
Mixly是一款基于Blockly的免費(fèi)開源的圖形化Arduino編程軟件,由北京師范大學(xué)教育學(xué)部創(chuàng)客教育實(shí)驗(yàn)室傅騫教授團(tuán)隊(duì)開發(fā)。同樣為Arduino圖形化編程工具,國內(nèi)我們常見的還有ArduBlock和S4A(Scratch for Arduino)。我們特地將三者做了一下比較。
一條原因就先把S4A從備選工具中排除出去:無法脫機(jī)運(yùn)行。Scratch最初軟件設(shè)計(jì)時(shí),并未考慮與硬件的通信,S4A的出現(xiàn)讓Scratch可以通過串口與Arduino通信,而通信則意味著S4A全程充當(dāng)?shù)氖切畔⒅修D(zhuǎn)。我們希望給初學(xué)者選擇一個(gè)功能相對(duì)更專業(yè)的工具,因此先放棄S4A。
再詳細(xì)對(duì)比一下Mixly和ArduBlock。
無論從功能的專業(yè)性還是豐富性,Mixly都勝出。
我們先看一下Mixly的界面,是典型的“圖形化積木式”編輯界面,整體布局簡潔明快。
左側(cè)區(qū)域?yàn)锽locks分類區(qū);中部為編程區(qū)域;最右側(cè)圖標(biāo)分別對(duì)應(yīng)程序居中、程序塊放大、縮小顯示及刪除;底部灰色工具欄為功能菜單;最下方為信息顯示區(qū)域。除了常見的if/else條件語句、for/while、數(shù)學(xué)運(yùn)算、端口讀寫、布爾運(yùn)算等基本程序操作外,Mixly還提供了更專業(yè)化的細(xì)節(jié)功能。
完整類型的變量聲明。
完善的子程序(可返回?cái)?shù)據(jù))。
數(shù)組/列表支持。
觸發(fā)中斷及定時(shí)中斷。
串口通訊(支持軟串!)。
脈沖檢測。
扇出。
Arduino廠商眾多,Mixly提供了對(duì)Makeblock、DFroboot、Microduino、Seeedstudio等廠商的一系列企業(yè)庫擴(kuò)展。
ArduBlock雖然也提供了非常多的企業(yè)庫支持,我們在實(shí)際使用中發(fā)現(xiàn)Ardublock的產(chǎn)品庫雖數(shù)量多,但會(huì)存在各家入門套件元件不全或不匹配的情況。對(duì)于圖形化編程,若沒有對(duì)應(yīng)的元件block,元件就無法使用。Mixly企業(yè)庫雖數(shù)量少但各家入門套件中元件完整,非常適合初學(xué)者使用。
在一些細(xì)節(jié)功能上,Mixly還有不少貼心的設(shè)計(jì)(科技學(xué)堂的小伙伴們非常之喜歡)。
下圖是Mixly和ArduBlock的界面和右鍵菜單對(duì)比,Mixly的排列方式更適合閱讀,理解更直觀。
Mixly支持程序塊向左拖出編程窗、拖拽至垃圾桶、delete鍵及右鍵delete四種刪除方式,Ardublock僅支持第一種。
Mixly有一個(gè)非??岬拇a禁用方式,你可以選擇不需運(yùn)行的積木塊,右鍵菜單選擇后把它們“凍”起來。這跟程序員老司機(jī)使用“注釋”來取消代碼運(yùn)行一個(gè)意思。當(dāng)你需要對(duì)比測試不同思路方法或者一次編寫多個(gè)對(duì)比程序時(shí),“凍”住不用的代碼很方便。
上圖左邊為正常程序,右為凍結(jié)程序。Mixly還支持程序折疊。編寫長程序或包含不同子程序模塊的程序時(shí),編寫完成的程序折疊起來,程序清晰易讀。
經(jīng)過一系列的對(duì)比,我們認(rèn)為對(duì)于初學(xué)者,尤其是沒有編程基礎(chǔ)的初學(xué)者,Mixly是一款非常易上手,功能強(qiáng)大,支持豐富的編程工具。借助這樣一款優(yōu)秀的編程工具,你能夠更快的體驗(yàn)到做硬件“創(chuàng)客”的樂趣,一邊創(chuàng)造一邊熟悉編程知識(shí)。在積累了足夠的經(jīng)驗(yàn)之后,你也可以順暢的升級(jí)到代碼式編程工具,做更深入高效的硬件編程開發(fā)。
文章來源:科技學(xué)堂
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。