寫這篇內(nèi)容主要是在之前一篇文章里旁理,有讀者在后臺反饋說樊零,用兒童教學(xué)用的圖形化編程工具(DroneBlocks)來控制無人機飛行會不會不夠安全。
我想這是由于圖形化編程常用于兒童教育中孽文,所以才給大家留下了「它只適合當(dāng)兒童編程玩具」的印象驻襟。
拿上次文章的 DroneBlocks 為例,它能提供如飛行叛溢、轉(zhuǎn)向塑悼、拍照等積木,你不需要了解代碼背后的邏輯是怎樣的楷掉,你只管拖拽調(diào)用里面的積木厢蒜,無人機會根據(jù)積木組合成的「指令塊」執(zhí)行對應(yīng)的操作指令。然而烹植,萬一其中一個積木里出現(xiàn)了 bug 的話斑鸦,可能是積木背后的代碼邏輯有問題,那這樣的飛行就可能會有危險了草雕。
實際上巷屿,開發(fā)者也考慮過安全性,所以開放的功能都是經(jīng)得起多番的安全測試的墩虹。大家平時可以留意一下該項目在其 Github 主頁上的 issue嘱巾,看看有哪些別人反饋過的 bug。
但只考慮代碼是否有 bug 是不夠的诫钓,如果設(shè)置了不合理的「指令塊」旬昭,比如在周圍都有高建筑物的地方設(shè)置起飛高度只有 10m,這樣同樣也容易導(dǎo)致「炸機」了菌湃,而在這種情況下问拘,代碼邏輯沒問題,危險是由實際測試環(huán)境造成的。
其實骤坐,無人機編程開發(fā)的安全與否跟使用的是否圖形化編程工具無關(guān)绪杏,而是跟所執(zhí)行的代碼邏輯及實際測試環(huán)境有關(guān)。
目前主流的圖形化編程都有「簡化代碼邏輯」的功能纽绍,你大可不必了解那些積木背后的代碼是怎么實現(xiàn)的蕾久。這樣的好處當(dāng)然是能讓無編程基礎(chǔ)的人士、甚至小朋友快速實現(xiàn)自己的創(chuàng)意拌夏。
市面上也有專門的圖形化編程工具能為無編程基礎(chǔ)的小白提供無人機或其他智能硬件快速編程的功能腔彰。
Scratch 和 Blockly
提到圖形化編程工具,就不得不提這些工具的鼻祖 Scratch 和 Blockly辖佣,后續(xù)很多工具都是基于這兩者進(jìn)行定制開發(fā)的。
麻省理工在 2006 年推出的兒童編程軟件 Scratch搓逾,提出了一個非常好的編程入門解決方案——積木式圖形界面卷谈。之后,谷歌推出了Blockly霞篡,一套積木式圖形編程 JavaScript庫世蔗。通過圖形界面的「搭積木」式操作,Blockly 可以生成 JS朗兵、Python污淋、PHP 代碼。接著 Blockly 開源了余掖,開發(fā)者可以為任何計算機程序開發(fā)出圖形化編程工具寸爆,這也催生了市面上眾多的同類型工具。
Scratch 官網(wǎng):https://scratch.mit.edu
Blockly 官網(wǎng):https://developers.google.com/blockly(需科學(xué)上網(wǎng))
DroneBlocks
DroneBlocks 就是基于 Blockly 進(jìn)行開發(fā)的圖形化無人機編程軟件盐欺,重點強調(diào)它能支持對大疆無人機進(jìn)行編程開發(fā)赁豆。DroneBlocks 封裝了大疆提供的 APIs,提供了很多基礎(chǔ)的控制功能冗美,包括:包括:起飛魔种、設(shè)置飛行距離、設(shè)置高度粉洼、懸停节预、控制機頭朝向、調(diào)整云臺角度属韧、拍照錄像安拟、間隔拍照、降落挫剑。你只需要發(fā)揮你的想象力去扣,就多個指令組合在一起,就能讓大疆的無人機「任由你擺布」。此外愉棱,DroneBlocks 的官網(wǎng)還有完整的教學(xué)課程唆铐。
詳細(xì)介紹,可參見:《與孩子一起學(xué)無人機編程奔滑?或許這個工具能幫助到你》)
官網(wǎng):http://www.droneblocks.io
Makeblock
鐘德夫之前參加了在深圳舉辦的 Maker Faire 活動艾岂,期間便參觀過 Makeblock 的攤位,里面展示了各種可編程的機器人設(shè)備(包括無人機朋其、無人車王浴、雕刻機及各種電子模塊),這些設(shè)備都可以通過專門的圖形化編程軟件進(jìn)行簡單編程梅猿。同樣氓辣,小朋友可以根據(jù)自己的想法或課程的任務(wù),拖拽積木組合成指令塊來達(dá)到控制設(shè)備運行的目的袱蚓。
盡管其官網(wǎng)上展示了一句媒體對其的評價“Makeblock: Open Source 'Lego for adult'(適合成年人玩的開源樂高玩具)”钞啸,但我在那次的活動中還是看到了兒童編程教學(xué)寓教于樂的可能性。
官網(wǎng):http://www.makeblock.com
Mixly
Arduino 有著豐富的擴(kuò)展性和適用性喇潘,這讓它成為極客愛好者的首選硬件平臺体斩。然而編程對部分人來說仍然是一道不低的技術(shù)壁壘,看著其官方推出的編程軟件 Arduino IDE颖低,估計很快就會「從入門到放棄」絮吵。Mixly 是一款基于 Blockly 的圖形化 Arduino 編程軟件,由北京師范大學(xué)教育學(xué)部創(chuàng)客教育實驗室傅騫教授團(tuán)隊開發(fā)忱屑,旨在讓沒有編程基礎(chǔ)的初學(xué)者通過 Mixly 也能在 Arduino 上快速實現(xiàn)自己的小想法蹬敲。
國內(nèi)常見的圖形化 Arduino 編程工具還有 ArduBlock 和 S4A(Scratch for Arduino),不過對比一下想幻,鐘德夫還是推薦 Mixly粱栖。
官網(wǎng):http://maker.bnu.edu.cn/mixly
好好搭搭
來自杭州好搭團(tuán)隊推出的基于 Scratch 開發(fā)的在線編程平臺,使用者只需要打開瀏覽器根據(jù)想法修改代碼脏毯,可以在線進(jìn)行編譯闹究。好好搭搭支持 Scratch 動畫編程、Arduino 硬件編程和其它第三方硬件食店,方便孩子從動畫編程無縫過渡到硬件編程上渣淤。網(wǎng)站上有配套專門的教程,也會推出一些活動項目吉嫩,較為適合低年級的小學(xué)生价认。唯一的不足是目前網(wǎng)站的 UI設(shè)計比較 old fashion。
官網(wǎng):http://www.haohaodada.com
小結(jié)
類似的圖形化編程工具不在少數(shù)自娩,它們能適配不同的硬件用踩,讓使用者針對不同的硬件進(jìn)行編程開發(fā)。但由于有很多工具都是基于 Scratch 和 Blockly 進(jìn)行開發(fā)的,所以在操作形式上脐彩,甚至界面設(shè)計上都是大同小異的碎乃,在此我就不多加介紹了。
在兒童教育中惠奸,圖形化編程工具將編程圖形化梅誓、可視化,結(jié)合了編程和硬件佛南,可以充分培養(yǎng)孩童的動手能力并且可以在編程后把產(chǎn)品和實際生活聯(lián)系起來梗掰,將知識真正融入生活。對于無編程基礎(chǔ)的成年人來說嗅回,也是一個認(rèn)識編程及穗、擴(kuò)展思維的好途徑。
希望這些工具的開發(fā)者能繼續(xù)完善產(chǎn)品(同時也希望開發(fā)者們收入頗豐)绵载,給大家用上更好用的圖形化編程工具拥坛,讓無編程基礎(chǔ)的創(chuàng)客們能更快速方便地進(jìn)行創(chuàng)造。