×

带有M5Stack的电报控制无人机

消耗积分:0 | 格式:zip | 大小:0.19 MB | 2022-11-14

刘涛

分享资料个

描述

介绍

“无人机”一词通常指任何无人驾驶飞机。这些飞行器有时被称为“无人机”(UAV),可以执行从军事行动到包裹递送等一系列令人印象深刻的任务。无人机可以像飞机一样大,也可以像手掌一样小。最初为军事和航空航天行业开发的无人机因其带来的安全性和效率的提高而成为主流。这些机器人无人机在没有飞行员的情况下运行并具有不同程度的自主性。无人机的自主性水平可以范围从远程驾驶(人类控制其运动)到高级自主,这意味着它依赖于传感器和探测器系统来计算其运动。

由于无人机可以远程控制,并且可以在不同的距离和高度飞行,因此它们是承担世界上一些最艰巨工作的理想人选。他们可以在飓风过后协助寻找幸存者,在恐怖局势期间让执法部门和军队密切关注天空,并在地球上一些最极端的气候条件下推进科学研究。无人机甚至进入了我们的家,成为业余爱好者的娱乐和摄影师的重要工具。

无人机有多种用途:

  • 军队
  • 送货
  • 紧急救援
  • 外太空
  • 野生动物和历史保护
  • 药物
  • 摄影等

==================================================== ===================

Here we introduce a novel method of controlling drones via Telegram. Using this feature, a user will be able to control a drone from virtually anywhere in the world with the help of an internet connection and Telegram application.

==================================================== ===================

动机

这个项目背后的主要动机是我对探索小型无人机的各种控制方案的好奇心。微型无人机语音控制系统的设计与开发一文讲述了无线电、GCS、手势、语音、操纵杆、PC、FPV和自主等各种无人机控制方法。在论文Design and Development of an Android Application for Voice Control of Micro Unmanned Aerial Vehicles 中,观察到无线电和手势无人机控制方法的态势感知处于中等水平,而语音控制方法的态势感知水平较高。在这个项目中,我们将研究基于 Telegram 的控制,稍后我们将进行语音控制以及其他高级控制。

该项目的动机还源于需要在低成本可移植和可扩展的嵌入式平台中实现这些不同的控制方法,该平台具有边缘计算,而不依赖于外部资源的工作。

==================================================== ===================

方法

poYBAGNtrmCAfNAtAACHZMdEs0A249.png
电报控制无人机
 

==================================================== ===================

DJI Tello 无人机

DJI Tello是一款小型无人机,将DJIIntel I的强大技术结合到一个非常小的封装中。它是一款轻巧、有趣且易于使用的无人机,是在投资更昂贵的选择之前学习无人机驾驶技巧的完美工具。Tello 拥有来自英特尔的 14 核处理器,其中包括板载Movidius Myriad 2 VPU(视频处理单元)用于高级成像和视觉处理。它配备了高质量的图像处理器,用于拍摄照片和视频。该相机具有 5MP (2592x1936) 照片和 HD720 视频。无人机的最长飞行时间为 13 分钟。这款令人难以置信的小型无人机可放在您的手掌中,仅重约 80 克(包括螺旋桨和电池)。您可以通过 Tello 应用程序或连接到 Tello 应用程序的受支持蓝牙遥控器直接控制 Tello。该无人机可通过 Python、C++、Scratch 和 DroneBlocks 进行编程。

 
眼镜
  • 重量:约 80 克(含螺旋桨和电池)
  • 尺寸:98mm*92.5mm*41mm
  • 螺旋桨:3英寸
  • 内置功能:测距仪、气压计、LED、视觉系统、WIFI 802.11n 2.4G、720P 实时取景
  • 端口:Micro USB 充电端口
  • 最大飞行距离:100m
  • 最大速度:8m/s
  • 最长飞行时间:13 分钟
  • 可拆卸电池:1.1Ah/3.8V
  • 照片:5MP(2592×1936)
  • 视场:82.6°
  • 视频:HD720P30
  • 格式:JPG(照片);MP4(视频)
  • 电子防抖:是

==================================================== ===================

为项目准备 Tello Drone

Tello 无人机 SDK提供了有关如何通过 Tello 命令对无人机进行编程以完成任务大量信息,但在功能上有所限制。Tello SDK 通过 Wi-Fi UDP 端口连接飞行器,用户可以通过文本命令控制飞行器。我们使用 Wi-Fi 在 Tello 和 M5Stack 模块之间建立连接。开机后,Tello 充当软 AP Wi-Fi (192.168.10.1) 通过端口 8889 接受命令。

Tello SDK 包括三种基本命令类型。

控制命令 (xxx)

如果命令成功,则返回“ok”。

如果命令失败,则返回“错误”或信息性结果代码。

Set Command (xxx a) 设置新的子参数值

如果命令成功,则返回“ok”。

如果命令失败,则返回“错误”或信息性结果代码。

读取命令 (xxx?)

返回子参数的当前值。

尽管 Tello 非常灵活,我们可以通过许多不同的轴来控制无人机,但在这个项目中,我们将使用以下命令。

  • 起飞:自动起飞。
  • 土地:自动着陆。
  • up x:上升到“x”厘米。
  • down x :下降到“x”厘米。
  • left x:向左飞行“x”厘米。
  • right x :向右飞行“x”厘米。
  • forward x:向前飞“x”厘米。
  • back x :向后飞“x”厘米。

全套命令请参考SDK 。

作为一项安全功能,如果 15 秒内没有命令,Tello 将自动着陆。

Tello API

由于我们使用 Arduino 作为平台,我们需要一个 API 可以将我们的命令转换为 UDP 数据包以使用 Arduino 程序发送。TelloArduino是一个 Arduino 库,用于通过 ESP32 模块控制 DJI Tello。如 SDK 文档中所述,此库通过 UDP 发送命令来控制 Tello。

  • 单击“下载 ZIP”按钮。
  • 将“tello”文件夹放在您的 Arduino 草图文件夹/库/文件夹中。现在重新启动 IDE。
  • 在您的 Arduino IDE 中,转到 Sketch > Include Library > 选择“tello”以将此库包含在您的草图中。

==================================================== ===================

M5Stack 消防模块

M5Stack FIRE是M5Stack开发套件之一,提供9轴IMU传感器(6轴姿态加速度测量+3轴磁测量)、16M Flash + 4M PSRAM、增强型Base、更大电池等。带IMU姿态传感器,您可以在很多情况下应用此套件,例如检测加速度、角度和轨迹。您可以制作运动数据采集器、3D 远程手势控制器等相关产品。它是一种模块化、可堆叠、可扩展的便携式设备,采用 ESP-32 内核,使其开源、低成本、全功能功能,便于开发人员处理新产品开发的各个阶段,包括电路设计、PCB设计、软件、模具设计和生产。

pYYBAGNtrmWAAdX8AABFPZJfEjs212.png
M5Stack FIRE 开发套件
 

M5Stack Fire 带有三个可分离的部分。顶部有处理器、芯片、插座、2.4G天线、ESP32、电源管理IC、液晶屏等接口组件。

pYYBAGNtrnGAf8VGAADebD-oQuQ540.png
M5Stack FIRE 组件
 

中间部分称为 M5GO 底座,提供锂电池、M-BUS 插座、LED 灯条和另外三个 GROVE 端口。底部是充电表,可以通过 POGO 引脚连接到 M5GO 底座。

poYBAGNtrnWAUDdXAABvsLuXO7Y820.png
M5Stack 消防栈
 

M5Stack开发板效率高,覆盖工业级机箱和基于ESP32的开发板。它集成了 Wi-Fi 和蓝牙模块,并包含一个双核和 16MB 的 SPI 闪存。结合 30 多个 M5Stack 可堆叠模块、40 多个可扩展单元和不同级别的程序语言,您可以在很短的时间内创建和验证您的物联网产品。

它支持使用 Arduino、带有 UIFlow 的 Blockly 语言、Micropython 进行编程。

==================================================== ===================

为项目准备 M5StackFIRE

Download Arduino IDE

  • 打开浏览器,访问 Arduino 的官方网站。
  • 根据您的操作系统下载并安装版本。

Install ESP32 Boards Manager

  • 打开 Arduino IDE,然后导航到 File -> Preferences -> Settings
poYBAGNtrneAayyKAABbTDwFtVc751.png
 
pYYBAGNtrnqAONJ0AAAyF32sM7s020.png
 
  • 点击确定
  • 导航到工具-> 板:-> 板管理器
poYBAGNtrn2AJ9M4AACxaK2VCWk080.png
 
  • 在 Boards Manager 窗口中搜索 ESP32,然后单击 Install
pYYBAGNtrn-AazowAAA2tAx0gdo120.png
 

Install M5Stack Library

  • 打开 Arduino IDE,然后选择 Sketch->Include Library->Manage Libraries
poYBAGNtroKAEXvoAACPw9Y2AcM402.png
 
  • 搜索 M5Stack 并安装
pYYBAGNtroaASrpLAAB_aSkCZKU591.png
 

对于 Windows 机器,需要安装额外的USB 转串口驱动程序。

Arduino port Configuration

  • 选择正确的板、波特率和串行端口。
pYYBAGNtroiARiuVAABws7R-GCM940.png
 
  • 设置完成后,您可以尝试下面代码部分中的示例草图或我们的代码,以验证一切是否正常。
pYYBAGNtrouAXr0kAABxmd_gLQY741.png
 
  • 点击上传,将代码刷入设备
pYYBAGNtro6AKwsHAABxUp0Lc_M667.png
 
  • 成功刷写后,M5Stack 模块将在其显示屏以及 Arduino 串行监视器上显示相应的输出。

==================================================== ===================

电报

Telegram是一款免费、跨平台、基于云的即时通讯 (IM) 软件。Telegram 帐户与电话号码绑定,并通过 SMS 验证。用户可以将多个设备添加到他们的帐户并在所有设备上接收消息。连接的设备可以单独或一次全部删除。关联号码可以随时更改,更改时,用户的联系人将自动收到新号码。此外,用户可以将用户名设置为别名,允许他们在不暴露电话号码的情况下发送和接收消息。

对于我们的无人机控制,我们将使用自定义 Telegram Bot。

==================================================== ===================

电报机器人

机器人只是由软件而不是人操作的 Telegram 帐户,它们通常具有 AI 功能。他们可以做任何事情——教学、播放、搜索、广播、提醒、连接、与其他服务集成,甚至向物联网传递命令。他们可以回复消息或提及,可以被邀请加入群组,并且可以集成到其他程序中。还有内联机器人,可以在任何聊天屏幕上使用。为了激活内联机器人,用户需要在消息字段中输入机器人的用户名和查询。人们可以将物联网 (IoT) 服务与 Telegram 中实现的 IFTTT 进行双向交互。

==================================================== ===================

电报机器人 API

设置电报机器人很容易。有很多教程可用。

我们使用BotFatherTelegram API开发了名为@DroneTellobot的自定义 Telegram 机器人

poYBAGNtrpCAIc_HAADUGyHHOvI349.png
定制开发的机器人:@DroneTellobot
 

我们的自定义机器人的开发方式可以使用其唯一名称@DroneTellobot或通过将机器人添加到组中直接访问它。如果加入一个群组,群组的所有成员都可以同时使用机器人来控制无人机。这在例如情况下非常有用。作为一个团队测试无人机。

==================================================== ===================

电报命令

在撰写本文时,以下命令已编程到自定义电报机器人中。

  • /takeoff - 无人机起飞
  • /land - 无人机土地
  • /forward - 无人机前进
  • /back - 无人机返回
  • /up - 无人机向上
  • /down - 无人机下降
  • /left - 无人机左侧
  • /right - 无人机右
  • /battery - 无人机电池
  • /shutdown-关闭通讯
  • /status - 机器人信息

可以在 DJI Tello SDK 的帮助下添加更多可用的命令,该 SDK 将很快整合。

==================================================== ===================

一体化

电报 API 和无人机之间需要一个中间件来进行交互。如果 M5Stack 模块通过 WiFi 连接到无人机,由于没有互联网连接,它将无法访问 Telegram API 调用。为了克服这个问题,我们使用笔记本电脑作为中间件来访问电报 API 调用并通过串行连接将命令发送到 M5Stack 模块。

poYBAGNtrmCAfNAtAACHZMdEs0A249.png
电报控制无人机
 

==================================================== ===================

测试

让我们看看电报@DroneTellobot的实际应用。

 
pYYBAGNtrpeAICuwAAFezL4hPP4529.png
电报 API 调用正在进行中
 

==================================================== ===================

结论

Tello 无人机能够接收通过我们定制的 Telegram Bot @DroneTellobot发出的命令。尽管添加用于访问 Telegram 数据的中间件通信存在缺点,但该实现具有丰富的应用程序。

If any of the readers want to try the Telegram Tello drone control LIVE using our custom-developed @DroneTellobot, please reach out to us in DM.

==================================================== ===================

接下来是什么 !!

==================================================== ===================

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !