MacBook의 Terminal에 Tello의 조종 명령을 수동으로 입력해 원격 조작해 보았다
참고로 한 사이트
전체 구성
(① Tello와 Macbook 간의 Wifi 소통 확인)
※ Tello 본체에는 Wifi 라우터가 표준 사양으로 내장되어 있습니다
※ Tello 내장 Wifi AP의 (local) IP 주소는 $192.168.10.1$.
Terminal
electron@diynoMacBook-Pro Tello % ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1): 56 data bytes
64 bytes from 192.168.10.1: icmp_seq=0 ttl=255 time=1.624 ms
64 bytes from 192.168.10.1: icmp_seq=1 ttl=255 time=2.079 ms
64 bytes from 192.168.10.1: icmp_seq=2 ttl=255 time=1.979 ms
^Z
zsh: suspended ping 192.168.10.1
Python 스크립트 파일의 존재 확인
(결과)
현재 디렉토리에 있습니다.
( 현재 디렉토리 : Desktop 바로 아래의 Tello 디렉토리 )
Terminal
electron@diynoMacBook-Pro Tello % ls
ello_python.py
electron@diynoMacBook-Pro Tello %
Python3을 사용할 수 있는지 확인
Terminal
electron@diynoMacBook-Pro Tello % python3 --version
Python 3.9.6
electron@diynoMacBook-Pro Tello %
electron@diynoMacBook-Pro Tello % python --version
Python 2.7.16
electron@diynoMacBook-Pro Tello %
Terminal 명령 입력 화면 (예)
명령 전달 순서
① 離陸(takeoff)
② 時計回り90度回頭(cw 90)
③ 50(cm)前進(forward 50)
④ 着陸(land)
Terminal
electron@diynoMacBook-Pro Tello % python3 Tello_python.py
Telloに送る指示コマンドを入力してください。: takeoff
Telloに送る指示コマンドを入力してください。: cw 90
Telloに送る指示コマンドを入力してください。: forward 50
Telloに送る指示コマンドを入力してください。: land
Telloに送る指示コマンドを入力してください。: ^Z
zsh: suspended python3 Tello_python.py
electron@diynoMacBook-Pro Tello %
실행한 스크립트
縣씨의 코드를 일부 변경했습니다.
Tello_python.py
import threading
import socket
import sys
import time
host = ''
port = 9000
locaddr = (host, port)
# Create a UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
tello_address = ('192.168.10.1', 8889)
sock.bind(locaddr)
def recv():
count = 0
while True:
try:
data, server = sock.recvfrom(1518)
except Exception:
print ('\nExit . . .\n')
break
#recvThread create
recvThread = threading.Thread(target=recv)
recvThread.start()
while True:
# 最初に入力が必要な"command"命令は、ユーザが打ち込まなくて良いようにスクリプト側でTelloに送出する
msg = str("command").encode(encoding="utf-8")
sent = sock.sendto(msg, tello_address)
# "takeoff"以降の命令をユーザ入力から受け取る
try:
msg = input("Telloに送る指示コマンドを入力してください。: ")
if not msg:
break
# Send data
msg = msg.encode(encoding="utf-8")
sent = sock.sendto(msg, tello_address)
except KeyboardInterrupt:
sock.close()
break
Tello 명령 목록
Tello SDK 매뉴얼에 게재되어 있습니다.
- htps // dlcd 응. ry 제로보치 cs. 이 m/두w응아 ds/꼭/0228/꼭+SDK+레아 d메. pdf
또한, 커맨드 일람을, 일본어의 표 형식으로 정리한 것은, 이하의 웹 페이지에 게재되고 있습니다.
- 합동회사 미도리아이티 'Python에 의한 드론 'Tello'의 제어'
Reference
이 문제에 관하여(MacBook의 Terminal에 Tello의 조종 명령을 수동으로 입력해 원격 조작해 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/electronics_diy721/items/f9f4b1f87e83801154e9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)