PCからドローンを操作するsocket通信プログラムを少しだけ解説してみました。
import threading
import とは インポートとはプログラムの起動方法の一種といえます。基本的には 他のファイルをロードし、そのファイルの内容にアクセスする権限を得る操作。インポートという操作を行うことで、他のファイル中のコードができる。thread とは 筋道・脈絡 の意。スレッドによる並行処理を管理する。スレッドを使用するとプログラムは1つのプロセス空間で複数の処理を並行に実行できます。
import socket
socket とは ソケット(ソケットインターフェース)データーの出入り口。インターフェースとは2つ以上の機器をつなぐ場合に必要な技術。ソケットはネットワークプロトコルに対して最も一般的に使用される低レベルのインターフェースです。
import sys
sysモジュールは Python環境のさまざまな部分を操作するために使用される関数と変数を提供します。
import time
timeモジュールは 時間を扱うことができるモジュール
#UDPソケット作成(通信の設定)
プロトコルとは、アルタイム性が重視される音声通話や動画配信などで利用されています。
プロトコルとは、コンピュータでデータをやりとりするために定められた手順や規約、信号の電気的規則、通信における送受信の手順などを定めた規格を意味します。通信をおこなうコンピュータ同士の間で定められた「通信規格」のことです。コンピュータ同士が通信をおこなうためには、さまざまなプロトコルが必要になります。
「UDP(User Datagram Protocol)」は、インターネット上で標準的に利用されている通信プロトコルの一種です。
データを送信する側のコンピューターが、相手のコンピューターの状態にかかわらず一方的にデータを送り始めます。受信する側のコンピューターが正しくデータを受け取れたか確認する機能もないため、UDPは「コネクションレス型」のプロトコルと呼ばれています
UDPはデータが宛先に届いたかどうかは関知しない。複数の相手に同時にデータを送信できる TCPよりリアルタイム性が高い。
host = ‘ ‘
host = ‘ ‘ は ’0.0.0.0’と同じ意味 すなわち全てのネットワークインタフェースを使う。
port = 9000
locaddr = (host,port)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) :アドレスファミリとソケットタイプの組み合わせで 通信方法を決定する。
socket.AF_INET
IPv4専用インターネットファミリ 2つのホスト間の接続
IPv4とは:IPインターネットプロトコルでインターネットに接続されたコンピュータ同士がデーターをやり取りするためにデーター通信の方法を定めた規約のことで、インターネットに接続されたコンピューターを識別するためのIPアドレスが割り当てられIPv4はこのIPアドレスを32ビットのデーターとして表現するものです。
socket.SOCK_DGRAM
データーグラム指向 送受信ソケットは一定の塊(データーグラム)単位で扱うためデーターの区切りを直接観測できるソケットタイプの性質をあらわしたもの。
ドローンは楽しい!!IP アドレス & ポート番号の確認は以下の Tello SDK マニュアルで確認します
tello_address = (‘192.168.10.1’, 8889)
Tello SDKのマニュアルをダウンロードします。
sock.bind(locaddr) について
サーバー側はバインド(関連付け)は必要 ソケット作成時には名前がありません。アドレスがソケットに関連付けられるまで参照できない。
つまり通信プロセスはアドレスを介して接続される。
def recv():
データーの取得
count = 0
while True:
コネクションするまで永久ループ
try:
data, server = sock.recvfrom(1518)
受信は最大1518バイトまで ネットワークのバッファサイズ。受信結果はdata変数に入る。
print(data.decode(encoding=”utf-8″))
except Exception:
print (‘\nExit . . .\n’)
break
-
自由研究に!「ドローンをつくろう!学ぼう!」by 神戸ロボットクラブ
ドローンを組み立てながら飛ぶ仕組みを学ぼう!! 開催者:NPO法人神戸ロボットクラブ 👉 ご…
-
保護中: LiteBee Wing/ SKY / Tello でドローンプログラミングを教えます。プログラミングしたい人集まれ(^^♪
この投稿はパスワードで保護されているため抜粋文はありません。
-
ロボットアーム(ベクトル内積を使った)ジェスチャーコントロール *目指せ老後の食事介助アーム*
介護の経験から、嚥下障害と手先が不自由になった母親に食事を食べさせるのは時間がかかり根気のいる介護です。自分も…