概觀 Overview - ywchiao/cocoa GitHub Wiki

Cocoa 專案希望打造一個結合手機 (Mobile) 和機器人 (Arduino bots)的程式學習/玩樂環境。目標是在__降低學習程式的門檻__與__提高程式學習的樂趣__兩者之間取得平衡。

為了逼近上述看似矛盾的目標,Cocoa,和其它類似專案一樣,採用了__圖像化程式設計__ (visual programming)的策略 (approach),使用者利用__拖/放__ (drag & drop)視覺程式元件的方式撰寫機器人控制程式,不需要文字編輯,鍵盤/滑鼠等的繁複操作。和其它專案不同的地方在於:

  • 程式完全在手機/平板上撰寫,執行。大幅提高它的__移動性__(mobility)

  • 程式運作透過 wifi/bluetooth 網路__遙控__機器人(Arduino bots),而非燒錄進機器人的 flash 內。這麼選擇的原因是基於以下考量:

    • 使用者便利性:擺脫電腦,USB 線等流程,降低使用者對科技的戒心和成本

    • 系統簡單化:手機端的程式環境可以簡化。不需要程式轉譯 (transpiler),編譯 (compiler)等工具支援,僅需要設計/遵循 Mobile/Arduino 之間的通訊協定 (protocol)。

    • 語言簡化:Mobile 端開發出的程式唯一目的就是控制 Arduino bots,而 bots 的功能是已經被 bots 硬體設計__限制__住的;比如說,你無法寫一個程式讓遙控車變成四軸飛行器或水面快艇;反之亦然。(也許,變形金剛 (transformer), 有一天會降臨地球,也許。但不是現在。)因此,Arduino bots 所能進行的操作其實都在硬體設計的同時就拆解成__基本動作模組__的組合,並寫好 Arduino 控制程式置入 Arduino 的 flash 內。手機端的程式執行就可以簡化成__遙控__ Arduino bots 上的__基本動作模組__,進而組合出使用者想要的效果。因為如此,所以手機端的程式語言可以大幅簡化。一方面降低了語言的學習門檻,一方面也簡化了語言實作的複雜性。