跳到主要內容

從安裝到使用 Scratch 寫程式控制 Tello


前一篇提到在手機上可以運用 DroneBlocks App,以堆疊積木的方式寫出程式控制 Tello。現在我們把設備換成有 WiFi 的電腦,同樣在電腦上面堆疊出控制 Tello 的積木,用的軟體是 Scratch。

Scratch其實是一個電腦程式的開發平台,它的開發者期望透過這個平台,讓使用者在愉快的環境下透過實際操作(如設計互動故事)去學習程式設計、數學和計算知識。最近大家不斷在談的STEM(Science科學, Technology技術, Engineering工程, Mathematics數學)或STREAM(同STEM,多加一個 Art 藝術)教育,很多也都是利用Scratch來完成的。

在Tello的官網上,Scratch也是官方有文件支持的開發平台。雖然上面只有幾行字,很簡略的告訴你要怎麼樣安裝。不過真的就只要那幾行,就可以用 Scratch 開始控制 Tello。現在就用我的寫法,告訴你要怎麼樣開始吧!


我們先從「官方」的東西開始,大家會比較放心。進到Ryze Technology的Tello產品,點選下載。左方的「文檔與手冊」中會有「Scratch README」,把它點開來看,裡面的內容大致是這個樣子。
  1. 安裝 Scratch 2.0 離線編輯器 (https://scratch.mit.edu/download
  2. 下載並安裝 node.js (https://nodejs.org/
  3. 下載 Tello.js 和 Tello.s2e 兩個檔案(https://dl-cdn.ryzerobotics.com/downloads/tello/20180222/Scratch.zip) ,解開檔案進入資料夾,鍵入 node Tello.js
  4. 打開 Scratch 2.0,按住「Shift」鍵,點選「檔案」選單,「匯入實驗性 HTTP 擴充功能」,選擇資料夾中的 Tello.s2e 檔案。
  5. Tello 的控制介面會出現在 Scratch 的「更多積木」當中。
官方文件寫的很精簡,真的有點太過精簡,下面就用我們的方式來介紹。


Step 1. 安裝 Scratch 2.0 離線編輯器


點選文件中的下載 連結(https://scratch.mit.edu/download),進入 Scratch 2.0 的下載畫面。你會發現,如果跟我一樣是 Mac 的使用者,還得先安裝 Adobe AIR 才能開始用。所以,也只好點選畫面中 Adobe AIR 的連結,先把它給裝好。


Adobe AIR 的安裝過程很簡單,而且都寫中文,照著做就可以了。裝好後要記得回到 Scratch 的下載畫面,在步驟2 「Scratch 離線編輯器」點選「下載」。


下載回來的檔案是個 dmg 檔,打開後裡面只有一個「Install Scratch 2」,雙擊打開安裝程式。

原則上也是照著引導去做而已,沒有什麼難度。裝好後就可以打開 Scratch 離線編輯器囉,感覺跟 DroneBlocks 很像吧!



Step 2. 下載並安裝 Node.js

第二個步驟是下載 Node.js,這個網頁好像沒有做中文的,大家練練英文能力吧!


打開 https://nodejs.org/ 網站後,理論上會跳出你系統相對應的 Node.js 版本。macOS (x64) 目前有兩個版本可以選擇,隨便選一個你喜歡的就可以。


下載回來的是 pkg 的安裝包,點開來照著步驟裝就可以。預設的安裝包應該會安裝 Node.js 和npm 兩個東西,有興趣的再深入去查資料,要不然把它裝好就行了。


Step 3. 下載 Tello.js 和 Tello.s2e

第三個步驟,要從 Ryze Technology 的網站上下載 Tello.js 和 Tello.s2e 兩個檔案(https://dl-cdn.ryzerobotics.com/downloads/tello/20180222/Scratch.zip),下載回來記得把壓縮檔給解開。Tello.js 要用 Node.js 執行,跑在背景和你的 Tello 連線溝通用的。Tello.s2e 則是定義 Scratch 中控制 Tello 的自訂積木。


我們在這個步驟先處理 Tello.js,進到 Scratch 後再處理另一個檔案。在 Mac 的環境底下,進入應用程式找出「終端機」,或英文的「Terminal」。在裡面鍵入 node ,加一個空格,然後把 Tello.js 那個檔案拖進去,最後按下 Enter。

跳出「Tello Scratch Ext running at http://127.0.0.1:8001/」,恭喜你已經成功了!


Step 4. 打開 Scratch 載入 Tello.s2e

現在要來處理 Scratch 自訂積木的檔案,也就是 Tello.s2e。開始使用前我們先把這個 Tello.s2e 改成繁體中文的 TelloCht.s2e。

隨便用一個文字編輯器打開 Tello.s2e,你會發現內容是這個樣子的:


我們把內容改成繁體中文後,會變成這個樣子,把它存成 TelloCht.s2e。


接下來打開 Scratch ,按住 Shift 鍵不放,點選「檔案」選單。要是沒按著 Shift,檔案選單裡面不會出現「匯入實驗性 HTTP 擴充功能」的選單。


選擇「匯入實驗性 HTTP 擴充功能」選單,點選剛剛弄好的 TelloCht.s2e 檔案,回到 Scratch 中選擇「更多積木」,就可以看到「起飛」、「降落」等控制 Tello 的積木了。


Step 5. 執行 Tello 任務

最後這個部分涉及的是 Scratch 的使用方式,這邊只講最簡單的。Scratch需要使用「事件」來驅動,動作一定是從點擊綠旗開始。也就是說,你的程式得先從事件的積木中,把那個「當(綠旗)被點擊」的積木拖出來,再開始接其他的積木。

最簡單的飛行任務就是「起飛」和「降落」,我們就把「起飛」和「降落」兩個積木從「更多積木」中拖出來,接到綠旗那個積木下面。不過要是「起飛」和「降落」兩個命令下得太靠近,起飛的動作還沒完成的話,Tello會直接忽視「降落」這個指令,所以在中間我們塞入另一個「等待10秒」的積木。


最後,確認電腦的 WiFi 連上 Tello ,就可以按下綠旗開始試驗起飛降落是否成功了!


當你熟練一點 Scratch 的使用方式,就可以設計一個用鍵盤導控 Tello 的小程式了。像我自己做的這個,還順帶連動畫的視窗一起做了呢!

不單是鍵盤導控而已,你也可以用 Scratch 來挑戰 DroneBlocks 的任務喔!

留言

熱門文章

OREO聖誕麋鹿 #差不多食譜

聖誕節就快到囉!今年我們用現成的材料,來做些簡單好玩的小東西。第一個登場的,就是有著紅鼻子的麋鹿。 3隻「OREO聖誕麋鹿」差不多需要這些材料: OREO餅乾 ...... 3片 蝴蝶餅 ...... 3-6片(掰斷有失敗的機會) 餅乾棒 ...... 3根(我用百力滋) 眼睛糖 ...... 6顆 紅色m&m's ...... 3顆(紅鼻子) 融化的巧克力 ...... 適量(黏著用) 「OREO聖誕麋鹿」差不多是這麼做的: Step 1. 準備好材料 計算一下自己想要做多少隻OREO聖誕麋鹿,按照材料表把需要的餅乾糖果給買回來。材料備齊之後,就把巧克力拿去用微波爐融化備用。沒有微波爐的也可以隔水加熱,想辦法把巧克力融化就可以。 Step 2. 製作麋鹿 再過來就要開始製作麋鹿了!先把OREO轉開,留下有奶油的那邊,待會方便把餅乾稍壓一下固定。 把蝴蝶餅掰斷成鹿角的樣子,沾上巧克力,擺到OREO上面。餅乾棒同樣沾上巧克力,一樣放上OREO。接著蓋上OREO,稍微壓一下。 這邊可以大膽去擺,在巧克力凝固前都可以調整。要是發現黏不太住,多沾點巧克力再試試。 Step 3. 擺出表情 接下來要用眼睛糖和紅色m&m's做出麋鹿的表情。用筷子將眼睛糖和m&m's沾上巧克力,黏到眼睛鼻子相應的位置就可以。 沒有辦法買到眼睛糖的,可以用白巧克力先畫出眼白,再用黑巧克力點出眼珠。紅鼻子也可以自己換成橘色、綠色、藍色等等不同的m&m's。 Step 4. 讓巧克力凝固 表情做好之後不要馬上移動,得要有點耐心讓巧克力凝固。要不然悲劇馬上就會發生,不是表情變扭曲,就是整支麋鹿散架。 等巧克力凝固後,就可以像棒棒糖那樣拿起來玩耍了。再來杯熱牛奶,整隻麋鹿給他泡下去也很有趣。 最後幫大家整理一下「OREO聖誕麋鹿」的做法: 巧克力用微波爐加熱融化備用。 轉開OREO。 蝴蝶餅掰成鹿角的形狀,沾巧克力後放上OREO餅乾。 餅乾棒同樣沾上巧克力,擺上OREO餅乾。 蓋上餅乾,在眼睛糖和紅色m&m’s背後沾上巧克力,黏到眼睛和鼻子相應的位置。 稍微等一下,讓巧克力凝固就好囉!

木乃伊熱狗捲 Hot Dog Mummies - 差不多食譜 #萬聖節

這次我們繼續過萬聖節,來做個更簡單的「木乃伊熱狗捲」。看完材料表,相信你已經知道該怎麼做了。 「木乃伊熱狗捲」差不多需要這些材料: 小熱狗 ...... 4條(大熱狗可以切半使用) 起酥片 ...... 1片 蛋黃 ...... 1個 起司片 ...... 1片 海苔 ...... 1片 番茄醬 ...... 適量 「木乃伊熱狗捲」差不多是這麼做的: Step 1. 起酥片切條 從冷凍庫拿出起酥片,在室溫放一陣子,等它稍微變軟之後再開始切成細條。稍微放軟再切比較不會破掉。 Step 2. 捲熱狗 第二步,要開始加上熱狗來處理。方法也很簡單,就是把切好的起酥條一圈一圈纏上小熱狗,一條用完再接另一條繼續纏,怎麼纏都沒關係。 要是你的熱狗比較大根,可以切短一點來弄,造型會比較可愛。 Step 3. 刷蛋液送進烤箱 弄好之後來個蛋黃,稍微攪散就可以塗到纏著熱狗的起酥條上。蛋黃液是讓顏色稍微金黃一點,沒有塗蛋黃液的那些烤起來都白白的。 接著就可以送進烤箱了,用攝氏200度烤10分鐘左右,把起酥皮烤出你要的顏色就可以。 Step 4. 裝上眼睛,沾點番茄醬 出爐稍微放涼,趁這個時間來做眼睛。拿起司片弄成圓圓的眼睛,再拿一點海苔當眼球,組合好隨意擺到木乃伊熱狗上。這是萬聖節用的,真的只要亂擺就可以囉! 最後,隨意沾點番茄醬在繃帶上面,我們的木乃伊熱狗捲就完成囉! 結尾再幫大家複習一下「木乃伊熱狗捲」的做法: 酥片拿出來退冰,稍微軟化之後切成細條。 將起酥條一圈圈纏上小熱狗。 刷上蛋液,送入攝氏200度的烤箱烤到金黃。 稍微放涼,擺上起司片和海苔做的眼睛,再沾點番茄醬就好囉!

差不多食譜:手工巧克力餅乾 Chocolate Cookies

又是手工餅乾,最近一連出了兩份餅乾食譜,這個「手工巧克力餅乾」已經是第三份了。會不會有更多呢?我可以告訴大家,這是肯定的。 要怪就怪這個陰鬱的冬季雨天,哪裡都不方便去,也懶得出去。餅乾櫃空在那邊已經很久了,雖然有時候會嘴饞,但也沒有迫切去補貨的必要。反正經常開伙,平常該有的材料都會有,自己弄個成分完全透明的零食,也是個不錯的選擇。再說,用烤箱進行烘焙時,房間會變得比較乾燥,也比較溫暖。在夏天是個折磨,但到了冬天,這種感覺還滿不錯的。 話不多說,開始進行這一道「手工巧克力餅乾」的準備工作。