其他分享
首页 > 其他分享> > 12、Tello 进行起飞命令执行和视频显示

12、Tello 进行起飞命令执行和视频显示

作者:互联网

 

基本思想:启动Tello开始执行飞行模式

一、起飞前准备工作。
1、在《快速入门指南》中扫码,到应用商店下载tello APP(iOS和安卓版),然后在手机中安装tello。(第一次进入App时提示飞行器会有固件更新提示,可以按提示在连接互联网状态下更新固件)
2、将电池装入飞行器中,注意电池光面无字一面朝飞行器的上方,电池有字一面向下方。电池推入至电池尾部与飞行器尾部平齐为到位。
3、充电:自备5V/1.5A充电器,自备USB充电线,将充电线一头连接到飞行器一侧的mini USB接口中,另一端接充电器。
      充电器通电后,飞行器前端指示灯蓝色慢闪,经约1.5小时候充满,指示灯蓝色常亮。

二、起飞过程
1、通过WIFI连接手机和飞行器:
按一下飞行器一侧的电源按钮开机,飞行器指示灯黄灯慢闪。首先在手机上找信号:设置--无线局域网--tello_XXXX,找到并连接成功后手机再进入tello App,此时屏幕应该出现飞行器摄像头中的画面。
2、按理此时还应该连接“蓝牙手柄”的,由于手头没有定制版的“小鸡手柄”,此处暂缺。
3、在手机屏幕中点击“一键起飞”,弹窗有两个选择,地面起飞和手中起飞。选择其一后弹出界面,然后将按钮向右滑动即起飞。起飞后会自动停留在离地面约1米多高的空中。

三、飞行中
1、手机app屏幕上默认“美国手”,即左手是油门(上升、下降)和转动(机头向左、右转);右手控制飞行方向(前进、后退)和方向的(向左、右)
2、手指轻按屏幕相应的虚拟手柄圆心,按照屏幕提示方向轻轻滑动,飞行器便可以自由飞行。
3、点击屏幕左上方第二个“飞行器”图标,可以使用特殊功能
     a、抛飞模式:轻轻向外抛出,飞行器即可起飞。
     b、8向翻滚模式:滑动屏幕即可8个方向翻滚,飞行中也可以翻滚。
     c、一键飞远模式:飞行器将向后上方飞出一段距离并拍摄视频短片。
     d、一键360模式:飞行器原地旋转360度向外拍摄一段视频。
     e、一键环绕模式:飞行器将以当前机头朝延伸2米处为圆心,作环绕飞行。可向圆心拍摄。
     f、弹跳模式:飞行器将在0.5m到1.2m高度间来回弹跳。飞行器感应到下方有物体将上升一小段高度。

四、降落
1、刚才起飞时按下的屏幕左上角的“起飞”图标,起飞后此图标会自动变为“下降”图标。
2、需要降落时,先操控飞行器回到操作者附近。点击“下降”图标,弹窗将出现2个选项:1、下降到地面;2、手上降落。选取1,自动下降到地面并停机;选取2、在5秒内伸手到飞行器下方几十公分的地方,飞行器将缓慢下降到手中并停机。

五、设置和校正:
点击app界面左上角第三个图标进入设置,其中有多个设置和校正选项。
1、飞行速度:“慢”与“快”。默认“慢”。
2、VR:此处可以产生双目立体视觉,也就是画面分割为“左、右”半部。此时需要将手机放入“VR”眼镜中方能观看立体画面(VR眼镜需外购)
3、蓝牙手柄设置:连接定制版“小鸡手柄”(外购,暂时没有供应)
4、Wifi设置:此处可以修改Wifi的名称和密码(一般没必要改动,默认的就好)
5、新手指引:有5个屏幕截图的新手操作说明图文。解释操控屏幕上的图标含义和操作方式,新手应该事先看看。
6、参数单位:公制、英制。默认公制。
7、图片质量:普通、高质量。默认普通。
8、低电量报警:可调。默认为10%。
9、摇杆设置:日本手、美国手。默认:美国手。
10、EV值:拍摄图片和视频的曝光补偿。向左为-EV(减少曝光量),向右为+EV(增加曝光量)。默认为EV=0,新手不必动。
11、编码码率设置:自动、1~4M可调。
12、IMU状态:校准过程将持续5~10分钟。出厂时已经校准了。没事不要动。
       a、用拆浆工具取下螺旋桨并将飞行器放置于平坦地面上。
       b、请按图示方向摆放飞行器,前后上下左右6个平面进行校准,绿灯快闪表示该平面校准完成。
       c、保持飞行器电源开启,请勿启动电机。
13、重心标定:暂时不清楚作用。
14、固件版本:显示当前固件版本,可以在此升级新版本。
15、loader版本:
16、App版本:1.1.0
17、售后支持:转向网络上的售后页面。

 

使用python 进行启动和降落 ;首先电脑和Tello通过wifi已经处于连接状态,然后执行python代码

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)
            print(data.decode(encoding="utf-8"))
        except Exception:
            print ('\nExit . . .\n')
            break
#recvThread create
recvThread = threading.Thread(target=recv)
recvThread.start()

while True:

    try:
        msg = input("");

        if not msg:
            break

        if 'end' in msg:
            print ('...')
            sock.close()
            break

        # Send data
        msg = msg.encode(encoding="utf-8")
        sent = sock.sendto(msg, tello_address)
    except KeyboardInterrupt:
        print ('\n . . .\n')
        sock.close()
        break

输入命令 控制飞机起升和降落

C:\Users\sxj\deep_sort\Scripts\python.exe E:/deep_sort/tools/test.py
command
ok
takeoff
ok
command
ok
takeoff
ok

如果要显示视频流首先配置在window10上配置ffmpeg

进入 http://ffmpeg.org/download.html

然后进入该链接

下载

解压之后 放入D盘 配置一下环境变量

然后填入环境变量 系统和用户我都添加了

测试一下 window10的ffmpeg是否可用

C:\Users\sxj>ffmpeg
ffmpeg version 4.3.1-2021-01-01-essentials_build-www.gyan.dev Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 10.2.0 (Rev5, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'

C:\Users\sxj>

然后在执行udp 命令

C:\Users\sxj\deep_sort\Scripts\python.exe E:/deep_sort/tools/test.py
command
ok
streamon
ok

同时在cmd命令行输入

C:\Users\sxj>ffplay -f h264 udp://0.0.0.0:11111

测试pc端视频流和输出结果

C:\Users\sxj>ffplay -f h264 udp://0.0.0.0:11111
ffplay version 4.3.1-2021-01-01-essentials_build-www.gyan.dev Copyright (c) 2003-2021 the FFmpeg developers
  built with gcc 10.2.0 (Rev5, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
[h264 @ 000001b9c0f32c40] non-existing PPS 0 referenced  0B f=0/0
    Last message repeated 1 times
[h264 @ 000001b9c0f32c40] decode_slice_header error
[h264 @ 000001b9c0f32c40] no frame!
[h264 @ 000001b9c0f32c40] non-existing PPS 0 referenced  0B f=0/0
    Last message repeated 1 times
[h264 @ 000001b9c0f32c40] decode_slice_header error
[h264 @ 000001b9c0f32c40] no frame!
[h264 @ 000001b9c0f32c40] non-existing PPS 0 referenced  0B f=0/0
    Last message repeated 1 times
[h264 @ 000001b9c0f32c40] decode_slice_header error
[h264 @ 000001b9c0f32c40] no frame!
[h264 @ 000001b9c0f32c40] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 000001b9c0f32c40] decode_slice_header error
[h264 @ 000001b9c0f32c40] no frame!
[h264 @ 000001b9c0f32c40] non-existing PPS 0 referenced  0B f=0/0
    Last message repeated 1 times
[h264 @ 000001b9c0f32c40] decode_slice_header error
[h264 @ 000001b9c0f32c40] no frame!

标签:Tello,enable,视频,--,飞行器,h264,12,7.100,000001b9c0f32c40
来源: https://blog.csdn.net/sxj731533730/article/details/112911578