積木程式Blockly模式介紹

不用打Code也能寫程式

Blockly起源

隨著數位時代的來臨,程式設計成為了現代社會中不可或缺的技能。而在這個資訊爆炸的年代,我們需要為年輕一代提供更簡單、有趣的學習程式的方式,使他們能夠輕鬆進入這個具有無限可能的世界。Blockly,作為一種基於視覺化編程的開源程式庫,正是為了實現這個目標而生。

Blockly的故事始於2009年,當時Google開始專注於改進程式設計的學習體驗。在傳統的程式設計中,許多初學者往往因為複雜的語法、錯綜複雜的邏輯而感到困惑和挫折。Google的研究人員開始思考:是否有一種更直觀、更有趣的方式來引導人們進入程式設計的大門?於是,Blockly應運而生。

Blockly以其視覺化的積木編程方式,取得了巨大的成功。它將程式碼轉化為一系列可拖放的積木,每個積木代表著一個特定的程式碼塊。這樣,使用者只需要將這些積木拖放並連接在一起,就能夠輕鬆創建出功能性的程式。這一簡單而直觀的設計,讓程式設計變得有趣且易於理解,對於初學者來說,進入程式設計的門檻大大降低。

Dobot Magician 作為一款專注於程式教育的機械手臂,除了可以用專業的python程式語言打code控制之外,自然也不可能落下Blockly這個好用的工具,讓使用者輕鬆上手迅速學習和應用Dobot Magician機械臂,通過組合不同的積木,來創建自己想要的程式,並指導機械臂進行特定的動作和任務。

Blockly能夠在科技教育界如次廣泛的使用,歸因於以下幾個特點,首先最大的特點莫過於它的視覺化編程方式。使用者無需記住繁瑣的語法,只需將積木拖放到工作區域,即可輕鬆創建程式,不然像控制Dobot手臂的指令有這麼多,怎麼可能每個都背起來,或者在寫程式的時候還要一邊查指令。

Blockly還支援多種程式語言,包括JavaScript、Python等主流常用的語言。這使得開發者可以根據自己的需求選擇最適合的程式語言,從而擴展其程式設計能力,象在Dobot的Blockly介面中,每當積木內容一有變動,就會在中間的General Code框中產生出對應的Pyhton程式,接著再用這些程式對手臂進行控制。

Blockly採用模塊化的架構,使得其功能可以輕鬆擴展,開發人員可以根據自己的需求,添加新的積木或定義自定義的積木,從而更好地適應特定的應用場景,例如在上圖左側為積木類別欄,從Logic到Functions都是Blockly預設的積木,而在Dobot API當中則是Dobot自行開發與手臂相關的積木。

Blockly是一個開源項目,這意味著任何人都可以免費使用它並參與開發,這樣的開放性使得Blockly能夠不斷演進和改進,成為更好的程式設計工具,除了Dobot Studio之外還有Scratch、mBlock等等程式教學工具,都承襲了Blockly的概念,青少年程式教育能在全球推行的如火如荼,Blockly絕對是功不可沒。

基礎積木介紹

接著我將逐一介紹Blockly各個類別的積木,首先Logic類別的積木主要為if邏輯判斷,數字的大於、小於、等於,以及交集and、聯集or的組合,例如Dobot外接了顏色感測器,就能以此根據不同顏色並進行相應的動作。

第二類為Loops類別的積木,主要以迴圈重複多次執行動作、檢索列表中的內容、或中斷正在執行的迴圈等等,例如讓手臂末端在A、B兩點來回運動,或畫出多個相同的圖案。

第三類Math積木,包含所有有關數學運算的功能,從國小的的加、減、乘、除,國中的絕對值、開根號、指數、對數,高中的三角函數、隨機數,以及各種常數,通通都可以在這找到,配合Dobot手臂本身的末端坐標系,讓手臂能畫出各式各樣的幾何圖案。

第四類Text積木,富足所有有關文字處理的功能,特別是針對英文字串,例如字串合併、字串擷取、大小寫轉換等等,但在Dobot手臂的實際應用中,反而是print積木最常用,他負責將後面接的字串輸出到畫面中間的Running Log 區域當中,這讓我們能夠直接看到手臂或測器的數值,在開發功能時非常重要。

˙

第五類Lists積木,用於處理跟陣列有關的功能,舉凡需要紀錄大量數據的時候都會要用到陣列,例如一個班級每個學生的姓名就是字串陣列,每個學生的考試成績就是數值陣列,而每個學生的性別則能以布林陣列來表示,在Dobot手臂應用上,要依序抵達多個不同的座標,就能夠使用陣列做紀錄。

第六類Colour積木,顧名思義就是用於處理顏色相關的功能,例如隨機選色、設定RGB數值、兩色混和等等,當Dobot有外接全彩的LED燈,就能用他來控制燈泡的顏色。

接下來是Variables與Functions兩大類,雖然這兩類積木數量少但功能卻至關重要,儲存任何數值都會用到變數,當程式開發的逐漸複雜之後,就會需要用函式將部分功能獨立出來,讓主程式變整潔,寫程式思緒才會清晰。

Dobot特製積木

接下來講講Dobot自己開發的積木,了解這些積木才能知道Dobot手臂在Blockly模式可以做到哪些事。

首先Basic類別中有最基本的Home歸零,GetTime取得機器開機到當下的時長,DelayTime讓機器暫停一小段時間,例如當手臂需要與其他機具協作時,有時會要等待其他人完成完成前置動作,自己才能接著動手就需要這個功能。

Config類別中是用於設定機器的末端工具,也就是告訴系統現在前面裝的是筆、吸盤、還是夾爪,以及運動參數,包含手臂運動的速度、加速度等等,但這些數值通常使用預設值就好不太需要調整。

接著Motion類別是最常使用到的,舉凡需要讓手臂動起來的功能都是在這裡找,包含了直角座標下的門狀運動、線性移動、相對位置移動、關節角度設定,還有反向取得末端座標、關節角度等數值,以及驅動吸盤夾爪的開跟關都在這裡。

最後是I/O與Additional兩個類別,都屬於手臂的進階功能,I/O使用擴充腳位驅動第三方或自製的電子元件,Additional驅動輸送帶與滑桿等Dobot官方的加購元件,這兩類進階積木等用到時再做詳細說明。

接下來我會以一些例子示範Dobot畫筆模式搭配Blockly的應用。

--

--

No responses yet