C# でドローンを飛ばしてみる
C#で制御するドローンは、トイドローンのTELLOを使用しました。
TELLOを選んだ理由は、SDKが公開されており、
SDKにコマンドを送信することで、
機体の制御が可能となっているためです。
今回は、SDKにUDPを使用してコマンドを送信し、
TELLOを制御するプログラムを作成してみました。
プログラミングは、以下の環境で行いました。
・OS:Windows10
・ 統合開発環境(IDE):Visual Studio Community 2017
・プログラミング言語:C#
以下に実際にTELLOを飛ばしたプログラムの一部及び、
画面イメージを添付します。
《画面イメージ》
《各ボタンの処理》
①Connect TELLOボタンの処理
// UDPクライアントを生成する udpClient = new UdpClient(); // TELLOへ送信するコマンドを生成する string connectMessage = "command"; byte[] byteMessage = Encoding.UTF8.GetBytes(connectMessage); // TELLOへコマンドを送信する int rcv = udpClient.Send(byteMessage, byteMessage.Length, CONNECT_TELLO_IP, CONNECT_TELLO_PORT); // TELLOからレスポンスを取得する this.UdpReciever(); this.btnTakeOff.Enabled = true;
②離陸ボタンの処理
// TELLOへ送信するコマンドを生成する string connectMessage = "takeoff"; byte[] byteMessage = Encoding.UTF8.GetBytes(connectMessage); // TELLOへ離陸コマンドを送信する int rcv = udpClient.Send(byteMessage, byteMessage.Length, CONNECT_TELLO_IP, CONNECT_TELLO_PORT); // TELLOからレスポンスを取得する this.UdpReciever(); this.btnTakeOff.Enabled = false; this.btnLanding.Enabled = true;
③着陸ボタンの処理
// TELLOへ送信するコマンドを生成する string connectMessage = "land"; byte[] byteMessage = Encoding.UTF8.GetBytes(connectMessage); // TELLOへ着陸コマンドを送信する udpClient.Send(byteMessage, byteMessage.Length, CONNECT_TELLO_IP, CONNECT_TELLO_PORT); // TELLOからレスポンスを取得する this.UdpReciever(); this.btnTakeOff.Enabled = true; this.btnLanding.Enabled = false;
↓↓ちなみに、以下のドローンがTELLOです。↓↓
Tello トイドローン(損害賠償保険付)+ 予備バッテリー 1本
- 出版社/メーカー: DJI
- メディア: エレクトロニクス
- この商品を含むブログを見る