×

如何使用ESP8266制作无人机飞行控制器

消耗积分:5 | 格式:zip | 大小:0.11 MB | 2022-10-19

刘波

分享资料个

描述

1 / 2
 

嗨,朋友们,你们好吗-:) 希望你们一切都好,今天我带来了一个很酷的新项目

今天我将使用NodeMCU ESP8266(12e)制作无人机,我们使用esp8266作为飞行控制器

飞控板

这是从地面控制无人机的最重要的事情之一。市场上有许多飞行控制板。其中有些是开源的,有些不是。以下列表包含最著名和最受好评的飞行控制器:

谢谢 NextPCB

本项目的顺利完成,得益于 NextPCB 的帮助和支持。伙计们,如果您有 PCB 项目,请访问他们的网站并获得令人兴奋的折扣和优惠券。

第 1 步:组件

Esp8266 12e(亚马逊

Mpu6050(亚马逊

无人机套件(Amazon.com

第 2 步:什么是 ESP8266?

 
poYBAGNOUCqAa-6uAB0-zkCsPx0322.jpg
 
1 / 3
 

基本上,ESP8266 是一个 Wi-Fi 模块。它具有 2.4 GHz Wi-Fi 的能力,即 802.11 b/g/n。它支持 WPA 和 WPA2。

它是一个集成了 32 位处理器的片上系统,运行频率为 80 MHz(也可以超频至 160 MHz)。它有 64 KB 的 RAM 和 64 KB 的引导 ROM。

ESP8266 的数据 RAM 为 96 KB。它便宜、小巧、功能强大。这就是为什么每个人都将它用于不同类型的项目。

您几乎可以在任何需要使物联网无线化和智能化的地方使用 ESP8266。

第 3 步:无线电发射器和接收器?

pYYBAGNOUC2AWJ-1AABl68EHtg0622.jpg
 

发射器所做的就是向接收器发送信号。接收器接收到这个信号并根据来自发射器的命令进行操作。由于无人机漂浮在天空中,它需要发送信号来命令无人机移动或做某事。

无线电控制器通常由发射器和接收器组成,它们通常在不需要低功率发射器许可的无线电频率上运行

较旧的发射器/接收器组合使用 MHz 频段中的频率,例如用于模型飞机的 72MHz 频段和用于地面车辆的 75MHz 频段。

这些频段中的每一个都被划分为单独的频道,您需要找到一个未使用的频道来操作您的飞机或车辆。如今,在 2.4GHz 频段中使用“扩频”无线电更为常见。扩频技术的使用消除了选择频道的需要。

因此,如果飞行员从发射器向无人机发出命令,无人机通过接收器接收到它,飞行控制器会根据飞行员的命令处理信号并执行操作。

频道

不要与旧设备中使用的单个射频频道相混淆,在本文中,“频道”是指控制频道。这些渠道中的每一个都与两件事相关:

  • RC 控制器上的开关、操纵杆、电位计或显示器。
  • 接收器上的输出或输入。

发射模式

在描述 RC 发射器时,您会看到这个术语。术语“模式”通常适用于在飞机上使用发射器,它指的是发射器如何配置以控制飞机,即在飞机上哪个摇杆操作哪个控制。

标准发射器有两个摇杆,每个摇杆都可以水平和垂直移动。因此,每根摇杆都有两个通道,一个用于水平运动,另一个用于垂直运动。

共有四种 TX 模式:

  • 模式 1 – 左摇杆操作升降舵和方向舵,右摇杆操作油门和副翼。
  • 模式 2 - 左摇杆操作油门和方向舵,右摇杆操作升降舵和副翼。
  • 模式 3 - 左摇杆操作升降舵和副翼,右摇杆操作油门和方向舵。
  • 模式 4 – 左摇杆操作油门和副翼,右摇杆操作升降舵和方向舵。

接收者

Flysky FS-I6X 附带的接收器是一个 6 通道单元,即 FS-IA6B。该设备有两个小线天线、七个用于输入/输出设备的 3 针连接器,以及两个用于 iBUS 发送和接收连接的附加 3 针连接器。(Flysky 提供了一个可用于完成此操作的跳线。)

第 4 步:偏航、俯仰、滚动

poYBAGNOUC-Ab2mHAACA85V4vyc126.jpg
 

偏航

Yaw 是无人机在 xy 平面上的运动,也就是如上图所示的水平面。相反的一对螺旋桨会产生反作用力。如果每个螺旋桨的所有运动的总和彼此相等,则没有偏航运动。但是如果任意一对螺旋桨有不同的运动,就会有偏航运动,无人机就会运动,如下图所示:

如果无人机只是沿 z 方向旋转,则称为偏航运动。如果有稳定的向上力并且螺旋桨力如下:

下面是螺旋桨的运动......

沥青

这会在侧轴上移动四轴飞行器,因此它会从前到后上下倾斜。通过这样做,它会导致车辆根据倾斜的方式向前或向后移动。

一个很好的类比是在使用“是”手势时上下点头。

这会在长(纵向)轴上移动 Quadcopter,因此它会左右倾斜。

第 5 步:电池、车架、电机、螺旋桨和电调

 
 
 
pYYBAGNOUDWAUfRgAAN20FAuKn4991.jpg
 
1 / 5
 

没有电池,无人机毫无用处。所有电机、飞行控制器、无线电和处理都需要电源。

但使用笨重的电池来驾驶无人机并不是一个明智的决定,因为大部分能量将花费在无人机飞行的推力上。所以,我们需要选择轻便但功能强大的电池。

在无人机中,我们通常使用锂聚合物电池。

为无人机选择合适的电池是最关键的事情之一。在为您的无人机选择电池之前,请记住以下事项:

  • 电池尺寸和重量
  • 电池放电率
  • 电池容量
  • 电池电压
  • 电池连接器

您可以借助以下公式轻松计算电池的连续电流输出。如果当前...

您如何为您的无人机或四轴飞行器选择合适的 LIPO?

只有在您知道要购买哪种无人机,或者您知道要为您的四轴飞行器使用哪种电机、电子速度控制器 (ESC) 和螺旋桨时,才能为您的无人机或四轴飞行器选择合适的 LiPo。

以下是为您的四轴飞行器选择正确 LiPo 的指南:

• 3 英寸四轴飞行器:450 – 850mAh

• 4 英寸四轴飞行器:850 – 1300mAh

• 5 英寸四轴飞行器:1300 – 1800mAh

• 6 英寸四轴飞行器:1500 – 2200mAh

• 7 英寸四轴飞行器:1800 – 3200mAh

无人机框架

基本上,无人机框架是构建无人机最重要的。它有助于在其上安装电机、电池和其他部件。

无人机电机

有几种类型的电机可用于制造无人机。但是由于无人机需要在空中推力才能漂浮,我们应该使用一些强大的电机。无人机中使用的廉价、轻便、小巧且功能强大的电机是无刷直流电机 (BLDC)。对于小型无人机,我们不使用 BLDC 电机,而是使用小型 DC 齿轮电机。

螺旋桨

当您为无人机选择螺旋桨时,请选择最轻但最强的螺旋桨。您还需要记住,螺旋桨应在两侧保持平衡。

大多数无人机飞行失败是由于螺旋桨故障。所以要慎重选择。始终选择合适尺寸的螺旋桨。按照电机手册选择最适合的尺寸。下图显示了不同类型的螺旋桨:

ESC键

除非您使用速度控制器,否则您无法控制无人机电机的速度。它们使您能够控制电机的电压和电流,从而控制速度,这是在空中漂浮后将无人机从一个地方移动到另一个地方的首要任务。您需要增加和减少电机的速度才能使无人机向前、向后、向左或向右移动。

一些使无人机更智能的模块

还有其他模块可以使无人机更加智能,例如 GPS、Wi-Fi 模块(例如 ESP8266)、电池检查器和增程器天线等。

有关无人机的更多信息 ( Packt.com )

第 7 步:组装

 
 
 
pYYBAGNOUDyALh_8AAco73Igecg464.jpg
 
1 / 4
 

我们将开始组装和飞行我们的无人机。好吧,将提供完整的零件清单,以便您可以购买适当数量的设备。所以让我们从第 2 章开始,组装你的无人机。

在你建造无人机之前要知道的事情,我们被介绍了无人机的所有基本组件。在本章中,我们将组装我们的无人机并为下一阶段做好准备。

我们将涵盖以下主题

组装你的无人机在你建造无人机之前要知道的事情,我们被介绍了无人机的所有基本组件。

在本章中,我们将组装我们的无人机并为下一阶段做好准备。

我们将涵盖以下主题。

  • 组装框架
  • 连接电机
  • 连接电调
  • 连接 ArduPilot
  • 使用 ArduPilot 配置无人机
  • 飞行无人机所需的空气动力学
  • 了解飞行无人机的安全协议
  • 防止无人机坠毁

组装框架

无人机框架的组装需要很大的耐心,再次建议您在第一次进行时遵循使用说明书

连接电机要连接电机,您需要将电机放在框架臂上并安装螺丝,如下图所示,确保在不破坏框架臂的情况下尽可能拧紧螺丝: BLDC有三根电线从电机出来。我们需要将子弹连接器焊接到它们以连接到 ESC。现在,将其他三个电机连接到框架臂。

连接 ESC连接 ESC 是构建无人机或任何其他无人机的最重要任务之一。您可以购买四片电调或四合一电调。建议你用四合一电调,比较轻,好用。如果您使用单个电调,请将电机的线连接到电调,如下图所示。电机和ESC的连接无关紧要,因为电线仅用于改变相位:

第 8 步:MPU6050

pYYBAGNOUEWAFlmgABPCvypg_Uo425.jpg
 

该传感器使用 i2c 进行通信。所以我将 SDA 和 SCL 连接到 NodeMCU 的 D1 和 D2。如数据表中所述,每个传感器都有 3 种模式。

我将使用陀螺仪的 500 度刻度范围和加速度计的 8g 刻度范围。为了从中获得角度,我必须配置这些寄存器。

arduino IDE 的 Wire 库可以轻松完成这项工作。然后它从传感器请求 14 个字节并连续读取角度。

确保您已将整数定义为 16 位,因为数据是 2 的补码值。加速度计提供实时角度但陀螺仪提供角速度。

如果我想从陀螺仪获得角度,那么我必须整合每个循环中的角速度。因此,我从 2 个不同的传感器获得了角度。

嗯,电机会产生很多振动,这会显着影响加速度计。所以我使用了一个免费的过滤器来克服这个问题。

它使用两个传感器数据来生成稳定的角度。

但是陀螺仪传感器几乎没有错误。为了解决这个问题,我放置了无人机水平仪并读取了 4000 次数据,然后取平均值,我得到了陀螺仪错误。这样我就可以校准一次,每次都使用。

然后我在每个循环中减去它。所以,现在我得到了完美的实时角度。

第 9 步:接线图和代码

pYYBAGNOUEiAeIkjAADsKr4U54E335.jpg

接线图非常简单。

您必须按照原理图将 MPU6050 模块引脚与 Esp8266 引脚连接起来。示意图如上所示。

并用电脑上传代码

第 10 步:制作威廉希尔官方网站

 
poYBAGNOUE-AIquhABBb0MiWpA8420.jpg
 
1 / 3
 

按照上图给出的示意图制作威廉希尔官方网站 。

我已经解释了模块的连接细节。

第 11 步:飞行前检查

飞行前检查东西

poYBAGNOUFKAVfO9AAHB2RIp_Cw633.png
  • 检查所有连接
  • 检查发送器和接收器绑定
  • 检查电池电量和电压
  • 检查所有螺旋桨是否连接牢固
  • 检查所有电机安装
  • 检查所有螺丝
  • 检查无人机的平衡,看是否有一侧比另一侧重
  • 飞行后务必拔掉电池;只在飞行前几秒钟装上电池
  • 检查外面的任何障碍物
  • 让儿童远离飞行区域
  • 首次油门时与无人机保持距离
  • 打开自动驾驶仪并返回主页/启动功能(如果可用)
  • 不要在不平衡的情况下驾驶无人机...

第 12 步:飞行前检查

在天空中飞行的国家/地区政府有一些规定,特别是无人机。始终检查安全协议。一些常见的规则如下:

  • 您不能在机场 5 英里范围内驾驶无人机
  • 您必须将无人机保持在您的视线范围内
  • 您不得高于 400 英尺(约 0.12 公里)
  • 您不能在繁忙的交通区域驾驶无人机
  • 如果您将无人机用于商业目的或专业用途,则必须注册您的无人机;你必须有执照
  • 在驾驶无人机之前始终了解当地规则

第 13 步:让您的无人机免于坠毁

 
pYYBAGNOUFeAPse4AAIzxBorWRk071.jpg
 
1 / 2

你几乎无法阻止你的无人机撞坏一些螺旋桨,甚至是机身。损坏将取决于坠机和坠落的高度。它还取决于您的无人机降落或坠毁的表面。

驾驶无人机的最佳地点是没有树木或任何电线悬挂的开阔场地。一开始不要用大油门抬起无人机,逐渐加大油门。稍后我们将了解安全节流。现在,您可以先使用稳定模式。请记住,油门只不过是加快无人机螺旋桨的速度。如果您是初学者,我的建议是学习如何将无人机悬浮在地面上。一旦您...

第 14 步:飞行:

那么,让我们看看它是如何飞行的。

这是一个非常简单的飞行控制器。我将在即将发布的视频中升级它。喜欢 - 添加 GPS。指南针、自动驾驶仪、alt 保持等等。而谈到这个...

我使用的是 WiFi 而不是发射器,所以,是的,它可以提供无限的范围。别担心,我会制作一个关于 Tx 通信的专用视频。

感谢您的支持,我们很快就会在下一个视频中见到您,然后再见。

 


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

评论(0)
发评论

下载排行榜

全部0条评论

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

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"//m.obk20.com/www/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'如何使用ESP8266制作无人机飞行控制器',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"https://www.elecfans.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);