來到了群飛控制。
群飛屬於Tello edu才有的功能,因為他只能運作在搭載了Tello SDK 2.0以上版本的Tello,因此如果只有Tello的人,這篇就可以先跳過囉。
控制群飛,我目前有的、且成功率較高的方式是透過DJI他們出的群飛控制程式Multi-Tello-Formation 進行控制,因此這邊會先以這個為主,另外Swift Playgrounds本身也支援群飛,但因為他是搭配教學介面的方式進行使用,因此會到後面另外介紹。
環境準備
- 多台Tello edu飛機
- Wifi路由器(不一定要連上外網,只是需要一個中繼將電腦指令傳給所有的Tello)
- 一台筆電(控制程式)
Multi-Tello-Formation
Multi-Tello-Formation是DJI他們提供,以python設計好的群飛程式。可以點選上面連結後,進入頁面,並按右邊的code,選單跳下後會有個Download Zip,點選後就會下載整個資料的壓縮檔了。
壓縮檔下載後,解壓縮後可以在資料夾中看到『Tello-Swarm(.exe).zip』的壓縮檔,我們還需要再將他解壓縮。解壓縮後會出現四個檔案,這邊我們會需要用到的資料夾為『multi_tello_test』,但這邊我們需要先將所有的Tello edu飛機與Wifi路由器相連。而這個操作,目前使用起來比較明確可以成功的方法是使用前面介紹的Packet Sender進行路由器的設定,前面解壓縮的Tello-Swarm(.exe)資料夾裡面有個『ap_setup』的資料夾,可以在裡面的txt檔中輸入路由器帳號密碼,並進行Tello的修改,但自己實測的結果是成功機會不高,所以這邊還是以Packet Sender為主。
- 先將Tello開啟,並將筆電連上Tello提供的Wifi。
- 開啟Packet Sender,輸入IP: 192.168.10.1,Port: 8889,傳輸:UDP。
上面ASCII的部分輸入ap XXXXXXX OOOOOOO的文字(XXXXXXX表示Wifi帳號、OOOOOOO表示Wifi密碼。 - 輸入完之後按Send,就會將指令輸出囉。
輸出後會看到下排出現我們傳送的指令與接收的回覆,如果成功的話,他會說已經接收到指令,機器會於3秒後重新開機。等他開機後就會直接連上我們的路由器,而這時候我們就可以反覆操作,直到所有機器設定完(中間可以把設定好的機器先關機)

接下來,我們就來設定我們希望Tello群飛的動作囉。
開啟前面已經解壓縮好的Tello-Swarm(.exe)資料夾,再開啟multi_tello_test資料夾。裡面會看到兩個檔案,分別是『Tello_EDU_CMD.txt』以及『multi_tello.exe』。前面一個檔案用來設定Tello的飛行狀態,後面一個用於執行Tello_EDU_CMD.txt中的指令。開啟Tello_EDU_CMD.txt之後,可以看到預先設定好的一串指令:(如果沒有可以複製貼上)
scan 1 battery_check 20 correct_ip 1=0TQDF6GBMB5SMF *>takeoff sync 10 1>land
這裡面的說的是:
「scan 1」:開始運作後越來確認會有幾台飛機。比方說我們有兩台要進行群飛就輸入scan 2,100台要群飛就輸入scan 100(我沒試過100台…)
「battery_check 20」:會先檢查電池剩餘電量,如果低於20%的話,該飛機則不會運作。20也可以改成別的數值。
「correct_ip」:確認IP。
「1=0TQDF6GBMB5SMF」:定義第一台飛機的SN碼。每台飛機的電池盒內都有一組特定的SN碼,輸入後程式會去抓那台飛機,確認讀取到飛機後才會進行下一步動作。如下圖兩台Tello的代碼不同,這時候我們就要寫:
1=0TQZH66ED0094Z
2=0TQZH66ED0096P
一台飛機一行,不要連著寫唷。
「
*>takeoff
sync 10
1>land
」
這幾個一起說,一起比較會比較好。
首先『*』代表「所有飛機」,所以「*>takeoff」表示所有飛機升空,而下方的1>land則表示第一台飛機land(降落)。sync 10表示中間停頓10秒鐘,類似一般程式的delay(10)或是time.sleep(10)。
這裡就是他原本提供的指令說明,而其他的指令如flip f(前翻)等,則可以查他的SDK資料後添加進來。
這邊提供一個小示範操作:
scan 2 battery_check 20 correct_ip 1=0TQZH66ED0094Z 2=0TQZH66ED0096P *>takeoff sync 10 1>land sync 10 2>land
先掃描
檢查電池電量大於20
確認ip
確認讀取到的ip對應的機器sn碼
全部起飛
等待十秒
1號飛機降落
等待十秒
2號飛機降落
當指令寫好了,點選multi_tello.exe,我們的Tello就會依照指令運動囉!
Swift playgrounds
Swift playgrounds是iOS的一款程式學習軟體,支援iPad和iPhone,裡面有針對Tello的教學課程。




開啟後,他有不同的教學章節與右邊的教學示範。像我們直接跳到群飛的教學區域,則會從一開始的Wifi設定,到每台飛機的SN碼登錄,都有一步一步的指令和教學動畫可供參考。而這些程式碼也能實際用於Tello的操控,當我們今天將載具的Wifi連接上Tello之後,點選下方的「執行我的程式碼」,飛機就會開始運作,因此教師如果需要進行教學和示範,也可以透過此套程式進行模擬與程式撰寫。




當所有教學結束後,他會提供一個自由撰寫程式的頁面,因此這邊我們就能隨意地寫我們希望運作的內容囉。

以上的操作是針對Tello的控制教學,雖然自己還是比較喜歡自己做的飛機,但這台給初學、希望認識如何操作的學生進行使用,困難度確實比較低,成功率也高上許多。
其他參考資料:
趙珩宇老師你好,我想請問如果我的無人機是Tello talent,能否使用Swift playgrounds去完成你文章中的的群飛動作呢?
讚讚
您好
Tello talent好像是今年五月初出的款式,抱歉這款我還沒使用過。
如果方便的話您可以測試看看,我也頗想知道他是否能這樣操作?(因為他的核心已經換成ESP32了,跟原本的不太一樣)
或是如果您在台北,有機器的話,我也可以幫忙測試看看唷 🙂
我的email在最上方圖片。
期待您的回覆,感謝您 😀
讚讚