前回記事 www.hiromukato.com
今回はExcelでドローンを飛ばす方法です。
今まで知らなかったのですがMicrosoftもドローンを操作できるソフトを出していました!Excelというソフトです。詳しいことはわからないのですが使いこなせるようになると表計算や仕様書の作成やソーシャルゲームのパラメータ調整などができるみたいです。 pic.twitter.com/wWyWECD3Vf
— ヒロム (@hi_rom_) 2018年12月18日
そもそも飛ばせるかどうかもわからなかったのですが、TELLOについてはUDP通信ができればどのような環境からでも操作することができます。 なのでまずはExcelでUDP通信ができるかどうかを調べました。いくつかのサイトを調べましたが最終的に参考にしたサイトは以下。
kazu-s-diary-2.cocolog-nifty.com
このサイトのクライアントのサンプルをを参考にしました(TELLO実機がサーバとなるため)。
差分だけを以下に記載します。
(UDPSendプロシージャを変更し、その他のプロシージャを追加しました。追加したプロシージャはボタン押下と紐づいています)
Sub UDPSend(ByVal command As String) ' SocketsCleanup If (Not SocketsInitialize()) Then MsgBox "Error initializing WinSock" Return End If SendSocketHandle = w_socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) Dim ip As String: ip = "192.168.10.1" Dim remotePort As Long: remotePort = 8889 remoteAddr.sin_family = AF_INET remoteAddr.sin_addr = inet_addr(ip) remoteAddr.sin_port = UnsignedLongToInteger(htons(remotePort)) Dim strbuffer As String: strbuffer = "test" If command <> "" Then Debug.Print w_sendTo(SendSocketHandle, ByVal command, Len(command), 0, remoteAddr, SOCKADDR_IN_SIZE) End If SocketsCleanup End Sub ' 離陸 Sub TakeOff() Debug.Print "Take off" UDPSend ("command") UDPSend ("takeoff") End Sub ' 着陸 Sub Landing() Debug.Print "Landing" UDPSend ("land") End Sub ' 回転 Sub Rotate() Debug.Print "Rotate" UDPSend ("flip r") End Sub
エクセルでのマクロ実装についてはこちらのサイトがとても丁寧に説明されており参考になりました。
ボタンの配置についてはこちらを参照しました。

【国内正規品】 Ryze トイドローン Tello Powered by DJI
- 出版社/メーカー: DJI
- 発売日: 2018/03/30
- メディア: Camera
- この商品を含むブログ (3件) を見る