找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1526

积分

0

好友

222

主题
发表于 3 天前 | 查看: 11| 回复: 0

用配置在Betaflight中的ESP32作为无人机飞行控制器,你既能省钱,又能获得比WiFi或蓝牙更好得多的信号范围,还能使用你最喜欢的遥控发射器——Radiomaster、ExpressLRS、FlySky、FrSky、Jumper等等,实现真正的业余级无人机控制。

在本指南中,你将学习如何设置不同的接收器、电机、角度和特技飞行等飞行模式、PID调节、速率、黑匣子日志记录,以及在如此小巧且价格亲民的设备上进行大量深入设置。

那么,以下是你开始所需的准备。

1. 硬件和软件清单

图片

硬件部分:你需要像我在上一篇教程中展示的ESP-FLY微型无人机那样,打造一个基于ESP32的四轴飞行器。如果你使用的是有刷电机,可以使用基于MOSFET的驱动器来驱动电机;如果是无刷电机,则可以使用电子调速器(ESCs)。

控制方案:你有两种选择。你可以构建一个ESP-TX无线遥控链路,将其安装在你的遥控器的JR插槽中,通过第二个ESP32实现遥控器与无人机之间的ESP-NOW通信。或者,你也可以直接将一个支持PPM、SBUS、IBUS或CRSF的接收器连接到无人机上,就像我正在使用的ELRS EP1接收器一样。

飞行控制器:你可以将ESP32或ESP32S3与MPU6050或MPU9250惯性测量单元(IMU)配对使用,以实现稳定飞行。这两种IMU都集成了飞行控制器维持飞行姿态和响应运动所需的陀螺仪和加速度计。

所有其他物料见文末为链接。

2. 制作你的飞行控制器

图片

将所有组件连接在一起时——微控制器(MCU)、惯性测量单元(IMU)、电机驱动器或电子调速器(ESC)接口以及接收器——你会明白为什么很多人会选择为自己的无人机制作定制印刷电路板(PCB)。

你可以拥有一块专用电路板,比如我ESP - FLY的拇指大小的三合一堆叠板,将XIAO ESP32S3、MPU6050和一个4通道有刷电机驱动器全部集成在一起。印刷电路板让整个组装更加紧凑且专业。

如果你决定设计自己的电路板,或者使用我的,像捷配(JLCPCB)这样的服务可以让你轻松制作飞行控制器印刷电路板。上传带有基本规格的Gerber文件,你就能立即得到报价——起价2美元,而且如果你不想自己焊接微小的表面贴装器件(SMD)组件,他们还提供可选的电路板组装服务。

3. 烧写固件

图片

要获取四轴飞行器的固件,请前往GitHub上rtlopez的“esp-fc”——一款适用于ESP32飞行控制器且与Betaflight兼容的软件:https://github.com/rtlopez/esp-fc/tree/master

你需要向下滚动到刷机部分,然后点击“发布页面”。在最新版本下,下载适用于你ESP开发板的固件二进制文件,并解压压缩文件以得到二进制文件。

如果你之前从未向Arduino或ESP32上传过代码,那么在进行下一步之前,你可能需要检查计算机上是否安装了CH340驱动程序,但如果你之前安装过,那么可以跳过安装步骤:https://sparks.gogo.co.nz/ch340.html

现在,你需要前往乐鑫(Espressif)针对ESP芯片的在线刷机工具(https://espressif.github.io/esptool - js/ ),将你的无人机连接到计算机,然后点击“连接”按钮。如果在输出中出现与连接相关的错误消息,复制该网站链接并粘贴到谷歌浏览器(一款可以访问串口的浏览器)中。检查你设置的波特率是否正确,点击按钮,并在弹出窗口中选择你的ESP的COM端口,然后点击“连接”。根据输出内容,检查是否检测到你的芯片。将刷机地址设置为“0x00”,选择你下载的固件文件,然后点击“编程”。

成功刷入开发板后,你需要断开并重新连接无人机,以重启它。

4. 设置Betaflight

图片

接下来,你需要在电脑上安装10.10版本的Betaflight配置器:https://github.com/betaflight/betaflight-configurator/releases

点击链接,向下滚动到10.10.0版本,点击它,继续向下滚动直到“Assets”部分,然后下载适合你操作系统版本的安装程序。我将略过安装部分的描述(安装过程很简单),但安装完成后,Betaflight应该会是这样。

打开Betaflight,点击选项面板,检查你是否已启用“显示所有串口设备”。然后你需要选择你的ESP的COM端口并点击连接。如果你收到关于电机的警告,不要惊慌,关闭这个窗口 - 因为它们还没有设置好。

正如预期的那样,在你在命令行界面(简称CLI)中完成设置之前,3D视图不会随着你的无人机移动。

5. 设置引脚功能

图片

在命令行界面中,如果你输入命令“get pin”并按下键盘上的回车键,你将看到基于你的ESP的每个功能的当前引脚输出,这很可能不是你想要的。因此,前往仓库,在“文档”下,点击“设置指南”“引脚功能参考”,你将获得默认分配引脚的列表,你可以像我为我的无人机布线那样,将其复制并粘贴到文本编辑器中进行修改。

XIAO ESP32S3的引脚功能表:

set pin_input_rx -1
set pin_output_0 4
set pin_output_1 7
set pin_output_2 3
set pin_output_3 1
set pin_buzzer 43
set pin_serial_0_tx 43
set pin_serial_0_rx 44
set pin_serial_1_tx 16
set pin_serial_1_rx 15
set pin_serial_2_tx 8
set pin_serial_2_rx 9
set pin_i2c_scl 6
set pin_i2c_sda 5
set pin_input_adc_0 2
set pin_input_adc_1 -1
set pin_spi_0_sck -1
set pin_spi_0_mosi -1
set pin_spi_0_miso -1
set pin_spi_cs_0 -1
set pin_spi_cs_1 -1
set pin_spi_cs_2 -1
set pin_buzzer_invert 1

详细来说,要确保“pin_input_rx”设置为 -1,因为它未被使用。将GPIO引脚分配给电机输出,比如将右后输出0分配给GPIO 4,右前输出1分配给GPIO 7,左后输出2分配给GPIO 3,左前输出3分配给GPIO 1。左边的图标仅显示电机方向和顺序。如果你制作的无人机布线与我的ESP-FLY不同,很可能需要根据你的布线输入不同的引脚。

对于警报,设置连接蜂鸣器或LED的引脚(设置pin_buzzer为43)。

检查你是否已匹配开发板的串口UART引脚,因为计算机和ESP通过这种方式通信(设置pin_serial_0_tx为43,设置pin_serial_0_rx为44),第二个UART未使用(设置pin_serial_1_tx为16,设置pin_serial_1_rx为15可用于VTX控制),如果你选择使用外部接收器作为通信方式,最后两个UART引脚可用于连接它(设置pin_serial_2_tx为8,设置pin_serial_2_rx为9)。

为IMU定义开发板的I2C引脚(设置pin_i2c_scl为6,设置pin_i2c_sda为5)。

选择一个引脚用于电压监测(设置pin_input_adc_0为2),以及一个引脚用于电流监测(设置pin_input_adc_1为 -1)—— 这完全是可选的,我将其设置为 -1,因为我没有使用它。

再往下,你会看到用于其他传感器的SPI引脚,我们不会使用它们 —— 你可以选择将每个引脚设置为 -1。

蜂鸣器反转功能允许你根据输入1或0,使蜂鸣器或我这里指的LED在闪烁时处于常亮或常灭状态(通常在MOSFET驱动的蜂鸣器模块默认拉高或拉低的情况下用于反转状态)。

现在你已经定义了引脚,复制上述表格并粘贴到CLI中,按回车键设置引脚。输入命令“save”,然后输入“reboot”。无论如何,从这里开始不要切换到其他选项卡,否则会清除所有配置 —— 相反,点击断开连接,再重新连接,你应该就能看到诸如无人机方向的3D展示等内容。

6. 配置选项卡

图片

如果你没有看到无人机移动的3D演示,你可能需要检查“配置”选项卡。如果你收到“未找到陀螺仪/加速度计”的错误提示,只需安全断开无人机连接,然后重新连接,因为有时需要重启才能解决问题。

但是,如果你仍然看不到陀螺仪被检测到,你可能需要在命令行界面(CLI)中更换I2C引脚。检测到后,返回“配置”选项卡并设置陀螺仪。在“系统配置”中,将PID循环频率设置为2.00kHz,确保“加速度计”已开启。在“电路板与传感器校准”中,如果陀螺仪平放时不完全水平,你可以将其俯仰角、横滚角和偏航角校准几度;如果根据3D演示,陀螺仪指向不正确,在“第一个陀螺仪”旁边的下拉菜单中,将陀螺仪方向设置为正确的度数(我的设置为“顺时针270°”)。

在“个性化设置”中,你可以为你的飞行器命名。向下滚动到“其他功能”,保持“动态滤波器(DYNAMIC_FILTER)”开启,只有在你计划通过WiFi配置四轴飞行器时才启用“软串口(SOFTSERIAL)”,相关说明可在GitHub代码库中找到。

在“蜂鸣器配置”中,由你决定希望蜂鸣器或LED在何时激活哪些功能作为警报。

完成“配置”选项卡的设置后,点击“保存并重启”按钮,然后重新连接。

7. 惯性测量单元校准与电池设置

图片

如果你进入“传感器”选项卡,就可以判断用于测量方向的陀螺仪和用于检测速度变化的加速度计是否都正常工作。

回到“设置”选项卡,让我们使用“校准加速度计”按钮来校准加速度计。在校准过程中,确保你的四轴飞行器要么平放,要么保持绝对水平且静止。

接下来的步骤,你需要插上无人机的电池。我使用的是一块250毫安时的1节锂聚合物电池。

导航到“电源与电池”选项卡。要在Betaflight顶部看到电池电压读数并接收电池警告,请选择以下设置:将“板载ADC”设置为“电压表源”,“最小单体电池电压”设为3.4,最大值设为4.2,警告电压设为3.5。如果你不测量电流消耗,将“电流表源”保持设置为“无”。

在“电压表”中,将“分压值”设置为5,设置完成后点击保存并重启。

8. 设置电机

图片

现在,前往“电机”选项卡。该固件仅支持多旋翼中的四轴飞行器,因此保持设置为“QUADX”。电机方向无法在软件中反转,所以改变方向的最佳方法是交换电机电线。

当四轴飞行器机头朝上或朝前时,你必须确保每个电机都按正确方向旋转,你可以参考“引脚功能表”,了解哪个电机对应哪个引脚。例如,如果你以错误的顺序输入引脚,你的无人机可能会失控,但当引脚输入正确且与相应电机对应时,无人机就能正常起飞。

在下面的下拉菜单中,为你使用的电机类型选择电调/电机协议。由于代码作者不推荐“PWM”,像我这种情况就应选择“BRUSHED”。如果你使用的是无刷电机,则根据你的电调选择“DSHOT”或“OneSHOT”协议。设置驱动有刷电机的“电机PWM频率”最大值,即8000赫兹。如果你试图将其设置得更高,它将重置回最大值。

在测试电机之前,取下螺旋桨以防止损坏或受伤。然后,启用滑块以确认你接受风险,一次测试一个电机或同时测试所有电机,以确保它们按正确方向旋转。

9. 外部接收器设置

图片

现在,让我们使用第一种方法,即通过外部接收器来控制四轴飞行器。就我而言,我使用的是Happymodel EP1 2.4 GHz ExpressLRS接收器(https://amzn.to/48m1fC0 ),它通过串口使用两根线进行通信,一根线为其供电,还有一根线接地。你需要连接好接收器,并根据其安装位置修剪电线至合适的长度。剥去电线末端,将接收线(RX)焊接到TX GPIO 8,发送线(TX)焊接到RX GPIO 9,电源输入连接到3.3V,接地端连接到地。如果你使用的是不同的ESP模块,板上的TX和RX引脚可以设置为其他任意两个通用输入输出引脚(GPIO)。

对于任何其他受支持协议的接收器,你只需使用一根线将信号发送到ESP上唯一的接收定义引脚,以进行单向通信。而像EP1这样的CRSF协议接收器,则使用第二根线,使其能够作为收发器工作,将诸如电池电压等遥测数据发送回发射器。由于此功能更像是一个额外的功能,我将由你自行决定是否设置遥测功能。

现在,让我们将发射器与接收器配对。首先,打开你的遥控器(我使用的是Radiomaster TX12:https://amzn.to/4p4hbQc ),并检查是否选择了相应的无线电协议。然后开启无人机电源,你应该会看到信号条出现,表明已连接。如果你之前从未进行过绑定,可能看不到这些信号条,你需要按照特定类型接收器的绑定说明进行操作,就像我在本博客顶部链接的视频中展示的将此发射器与ELRS接收器进行绑定的操作一样。

成功绑定后,在Betaflight中连接到无人机,进入“端口”选项卡,并确保为接收器使用的UART端口启用了“串行接收(Serial Rx)”。

然后进入“接收器”选项卡,如果使用的是像我这样的ELRS接收器,将接收器模式设置为“串行(通过UART)”,串行接收器提供商设置为“CRSF”;如果使用的是FlySky,则设置为“IBUS”;如果使用的是FrSky,并且已为你完成信号反转,则设置为“SBUS”。

对于通道映射,根据你的接收器设置,为俯仰、横滚、偏航和油门通道设置正确的字母顺序。我的设置必须是“TAER1234”,才能使云台运动与它们指定的功能相匹配。之后,点击“保存并重启”,所有通道就应该设置好了。

仔细检查,确保每次摇杆移动都与为该功能指定的通道相对应。

然后,你需要前往 “模式” 选项卡(就在 “接收器” 选项卡下方),为 “解锁” 功能添加一个范围,你可以手动选择辅助通道,或者如果你不知道哪个通道对应哪个功能,将其设置为 “自动”,在你来回拨动四轴飞行器解锁用的拨动开关时,系统会自动检测,然后,将滑块向右移动,并对其他你想要使用的模式重复此操作,比如两种飞行模式:“角度模式” 和 “空中模式”,以及 “蜂鸣器”。当你将每个开关拨到底时,你应该会看到相应的光标落入各自的范围内。

拔下四轴飞行器的插头,不妨在 ELRS 协议下进行试飞。

10. 组装ESP-NOW无线遥控链路

图片

如果你想直接使用内置无线电芯片来操控你的ESP无人机,那么你需要使用ESP-NOW协议进行设置,该协议响应迅速,有效范围约为200米。

我们将断开EP1接收器的连接,并将天线重新连接到ESP32开发板上。

为了控制四轴飞行器,我们来制作发射机链路,它将使用与无人机中相同的另一块XIAO ESP32S3,安装在遥控器的JR插槽中。

发射机链路部件:

XIAO ESP32S3开发板:https://amzn.to/4rD58eC

L7805稳压器:https://amzn.to/4ikpy7E

5针母头排针:https://amzn.to/4irsVda

24AWG电线:https://amzn.to/49IAmKO

任何其他ESP32都可用于此目的。按照rtlopez的RC Link TX仓库中的接线图,取一排5槽母头排针,按此确切布局焊接一根地线、一根电池正极线和一根PPM信号线。然后,找到一个L7805,即5V稳压器,从连接器上,将电源线的另一端焊接到输入引脚,地线焊接到地,再接一根新线延长地线,另一根线焊接到LM7805的输出引脚。将此输出连接到开发板的5V焊盘,地线接地,信号线连接到你选择的引脚,我的选择是GPIO 4。

现在发射机链路已全部连接好,为了使其适合外壳,你可能需要弯曲连接器引脚并修剪任何未使用的引脚。如果你的ESP开发板支持,你还可以选择接上一个外置天线,这样发射机链路就基本准备好了。在将其塞进遥控器的JR插槽之前,我们需要对其进行编程。

11. 编程ESP-NOW无线遥控链路

图片

前往同样由rtlopez创建的ESP-NOW RC Link仓库:https://github.com/rtlopez/espnow-rclink-tx

最初,该固件设置为在ESP-WROOM-32开发板上运行,PPM引脚编程为GPIO 13,并且支持8通道控制。

如果你使用的是建议的相同开发板,你需要前往发布页面,下载用于烧录到ESP32开发板的二进制文件,解压该文件以获取实际的二进制文件 - 你可能需要重命名该文件,以避免与飞控的二进制文件冲突。然后,访问ESP工具网站,以与烧录飞控相同的方式进行烧录。

然而,如果你使用的不是默认的ESP32开发板,前往该仓库并下载项目的zip文件。打开主文件夹后,进入“src”文件夹,打开“tx”文件,你将看到需要更改PPM引脚的位置。尽管你可以在此处进行更改,但仍需要将固件烧录到开发板上,为此,打开Visual Studio Code及其内的PlatformIO扩展。如果你两者都没有,我在本博客顶部提供了如何安装它们的教程链接。对于PlatformIO,你通常可以通过搜索在扩展选项卡中找到它,并能够在编辑器内进行安装。

要打开项目,请确保你处于PlatformIO环境中,点击“选择文件夹”,选中它,你应该会看到它以“ESP-NOW-RCLINK-TX”的名称出现在左上角。在继续之前,项目的“platformIO”文件必须打开并存在于该文件夹中。然后,进入src文件夹中的“tx.cpp”文件,在第9行,将“PPM_PIN”更改为12、3、4或你连接的任何GPIO引脚。

之后,进入platformIO文件。在这里,你可以定义ESP开发板的平台、开发板型号和框架。如果你使用的开发板与我使用的不同,前往PlatformIO选项卡,在开发板下搜索并找到它,复制这些行作为你的开发板ID:

“platform = espressif32board = seeed_xiao_esp32s3framework = arduino”并将它们(当然不包括引号)粘贴到类似这样的自定义开发板部分:; ---------------- XIAO ESP32-S3 Sense env ----------------[env:seeed_xiao_esp32s3]platform = espressif32board = seeed_xiao_esp32s3framework = arduinobuild_flags =  -DPPM_PIN=4  -Wall  -O2lib_deps =  yoursunny/WifiEspNow @ ^0.0.20230713  https://github.com/rtlopez/espnow-rclink/archive/refs/tags/v0.1.1.zip; --------------------------------------------------------------------------------

设置完成后,使用“pio run -e your_board_name”格式的命令进行编译。在终端中输入此行并按回车键编译固件,编译成功后,使用“pio run -e your_board_name -t upload”命令将其上传到开发板,它将自动找到开发板连接的COM端口并进行烧录。

12. ESP-NOW控制器设置

图片

现在你可以从电脑上拔下TX连接线,将其连接到控制器JR接口的5针排针上。

最好检查一下你具体控制器的引脚排列,以防与我的不同。所以本质上,它通过稳压器从电池供电,但只有在控制器配置为与外部发射器通信时才会这样,我们现在就来进行这一步。你可以关上盖子,同时让天线伸出,打开控制器电源,进入模型选择。

目前,它使用的是内部ELRS发射器模块,但在“模型选择”中,你需要向下滚动并创建一个新模型,它会自动选中。然后,按下“页面”按钮,使用滚轮输入“ESP-NOW”作为名称来识别协议。

按下回车键,一直向下滚动到“外部射频”处,启用它以使用PPM - 检查通道范围是否从1到8。按下“页面”按钮,直到进入“混合”选项,在那里你将设置辅助通道,比如用于无人机的解锁。突出显示“源”选择器,点击它,拨动你想用于解锁的拨动开关,然后选中它。然后,向下滚动到“开关”,将拨动开关拨到解锁位置,选中它以在此刻激活该模式。

使用控制器上的“返回”按钮退出,确认当开关完全向上时它会高亮显示。然后你可以对其他你想要的模式重复此操作,比如蜂鸣器、角度和空中模式。拨动每个开关,确认每个模式在你想要的位置激活。

按下“页面”按钮,直到回到模型页面,选择“ESP-NOW” - 我们刚刚完成设置的模型。返回主屏幕,你应该会看到它被标记为正在使用的模型。

将你的无人机重新连接到Betaflight,在“接收器”选项卡中,选择“SPI Rx(例如内置接收器)”作为接收器模式,“NRF24_V202_250K”作为SPI总线接收器提供商,并将通道映射调整为“AETR1234”或与你的输入相对应的映射,然后点击保存并重启。同样,检查每个通道是否与预期功能匹配。

回到配置器,“模式”选项卡与ELRS设置时保持不变,“调整”选项卡不起作用,在“预设”中获取四轴飞行器的调谐预设也不起作用 - 而且不值得尝试,因为这些功能目前还未得到固件支持。

在“故障保护”选项卡中,唯一的选项是在电池耗尽等情况下让四轴飞行器“坠落”。因为如果你尝试启用像“降落”这样的功能并保存更改,它会默认回到“坠落”程序。

13. 黑盒日志记录

图片

幸运的是,Blackbox支持记录你的飞行数据。

前往“Blackbox选项卡”,选择“机载闪存”作为记录序列,1000MHZ为记录速率,并选择你的调试模式来跟踪那些特定指标。点击“保存并重启”应用更改,进行一次快速试飞,重新连接你的四轴飞行器,然后点击“将闪存保存到文件”以下载黑匣子记录文件(.BBL),并在类似在线Betaflight黑匣子浏览器(https://blackbox.betaflight.com/)的工具中回放

点击“打开日志文件”上传你的文件,你应该会看到这样一个界面,在其中你可以选择特定的日志并回放记录数据,如电机转速、摇杆位置和无人机的方向。回到Betaflight中,在“模式”选项卡中,你可以启用“黑匣子擦除”作为一种模式,在“配置”选项卡中 - 启用蜂鸣器以通知你擦除操作,或者直接在“黑匣子”选项卡中擦除闪存,为下一次记录会话重置它。

请记住,ESP32上只有这么多闪存来存储此类数据(ESP32S3上为2.9MB)。

14. PID参数整定

图片

现在,让我们来调试四轴飞行器。

首先,通过调整偏航、俯仰和横滚的微调,使其飞行稳定。拨动开关启用角度模式——即自动平衡飞行模式,在平坦的地方启动四轴飞行器,解锁并起飞。如果你发现它向一个方向漂移,按下控制器上相应的微调按钮,向相反方向进行修正。在角度模式下持续修正,直到它能水平飞行。

很好!现在,让我们将其重新连接到Betaflight,并调整PID参数以达到理想的稳定性。

使用默认的PID设置时,飞行感觉就像是在为更大的四轴飞行器进行补偿,并不稳定——让我们解决这个问题。

首先,让你对PID参数变化给无人机带来的影响有个基本了解。

调整“P”值,也就是俯仰和横滚上的校正弹簧效应——将其降低到大约10,你会看到你的无人机表现得像要翻倒,校正力不足,无法获得稳定性。现在将“P”值提升到100,无人机就得到了足够的校正,提供了飞行所需的稳定性。再高可能会产生超调。

现在来看“D”值,也就是提供阻尼并预测未来误差的参数——将两者都设为0,你会注意到无人机在快速移动后振荡得更频繁。将两个“D”值都设为80,你会发现在左右飞行时操控更加平稳。就我个人而言,20效果不错,因为当我更猛烈地操作摇杆时,我可以让无人机更敏捷地做出急转弯。

现在来看“I”值——它就像所有误差的记忆,用于消除持续存在的问题,比如由于稳定的微风或重量不平衡导致无人机漂移,将其降低到10,你会注意到在一系列剧烈移动后,它很难稳定下来。将两个“I”值都提升到100,你会注意到它能更快地平滑运动,从而补偿我持续的前后移动。对于我这种尺寸的无人机,我倾向于将两个“I”值都设为45,以达到良好操控的完美平衡。

在图片中,你可以看到我为50毫米四轴飞行器确定的PID值,但你的值可能会因四轴飞行器的尺寸和其他方面而有所不同。

如果你想更深入地了解PID,可以观看这个视频:https://www.youtube.com/watch?v=dMRDzicSvXk&t=708s

切换到“速率配置文件设置”选项卡来调整速率,要记住,在无人机处于角度模式时,调整这些值似乎对响应性没有影响,只有切换回特技飞行模式时才有影响。降低俯仰和横滚的所有值会使四轴飞行器几乎没有响应。我大幅度的摇杆动作几乎无法让它到达我想要的位置。

然而,如果你将中心灵敏度、速率和指数值提高到足够高,你就能得到所需的响应性.

保存这些设置后,作为一个用合适的无线电控制器控制的微型ESP四轴飞行器,它会更加稳定且易于操控。

15. 飞行测试

图片

让我们给它更多展示时间,看看在有了这个新固件后它现在能做到什么。

角度模式:这和大多数玩具无人机的飞行方式完全一样——对新手友好,移动俯仰和横滚操纵杆会让它在角度限制范围内朝预期方向飞行。该模式的独特之处在于,当你松开俯仰和横滚操纵杆时,它不仅使用陀螺仪,还使用加速度计进行自动调平。

特技模式,“acro”是“acrobatic(特技的)”的缩写。这是大多数第一人称视角(FPV)无人机飞手驾驶无人机的方式——允许在空中进行诸如翻滚和翻跟头之类的复杂动作。它仅使用陀螺仪,通过让操纵杆控制旋转速率而非无人机的角度,给予你完全的手动控制且无角度限制。当操纵杆移动并松开后,无人机将以该恒定速率继续旋转,直到你向相反方向移动操纵杆来修正。

空中模式实际上是在特技模式基础上增加的一个功能,有助于在飞行操作中保持四轴飞行器的稳定性和操控性,即使油门较低时也能调整电机速度。我发现空中模式让翻跟头比仅使用特技模式要容易得多。你现在可能感觉不到,但尝试翻跟头时肯定会感受到区别。

之前通过手机连接接入点WiFi控制时,飞行距离是50米,现在通过ESP - NOW从发射器控制,距离可达约200米。使用ELRS接收器,你可能会获得几公里的距离,但对于我这架50米外就看不见的小型无人机来说,我觉得没必要,所以我还是坚持使用ESP32内置接收器的便捷ESP - NOW协议。

结语

这就是如何使用业余级别的无线电控制器操控搭载 Betaflight 的 ESP32 无人机!代码作者表示,这仅仅是个开始 —— 诸如 GPS、定高功能等更多升级功能仍在开发中,他正在积极开发新特性。所以,如果你想看到 rtlopez 对 esp - fc 的未来更新,下面的链接可以支持他并获取固件。ESP - FC:https://github.com/rtlopez/esp-fc/tree/master

所有物料清单:


ESP-FLY Drone Tutorial Video (Parts list, Assembly, etc.): https://youtu.be/V_mZsiZcy7s
Firmware 1 - ESP-FC: https://github.com/rtlopez/esp-fc/tree/master
Firmware 2 - ESP-NOW RC Link TX - https://github.com/rtlopez/espnow-rclink-tx
(Huge thanks to rtlopez on GitHub for the code!)
Betaflight Configurator (v10.10): https://github.com/betaflight/betaflight-configurator/releases 
Visual Studio Code: https://code.visualstudio.com/
VS Code & PlatformIO Installation Instructions (Min 10:13) - https://www.youtube.com/watch?v=JmvMvIphMnY&t=835s
Bind a Radiomaster Transmitter to an ELRS receiver: https://www.youtube.com/watch?v=DbzECzpG0nw
Extra Resources:
MinimOSD: https://ardupilot.org/copter/docs/common-minim-osd-quick-installation-guide.html
MWOSD: https://github.com/ShikOfTheRa/scarab-osd
Betaflight Blackbox Explorer: https://blackbox.betaflight.com/
Fly Your ESP32 Drone with an ESP-NOW Controller: https://github.com/nikhiltelase/mini-esp-now-rc-drone
PIDs Explained: https://www.youtube.com/watch?v=dMRDzicSvXk&t=708s
Make DIY Brushed Motor Drivers for your ESP32 Drone (for modular variant): https://www.youtube.com/watch?v=xW2Nwg_RX84&t=140s
ESP-FC Project Files - (Diagrams, RTR firmware, etc.): https://drive.google.com/drive/folders/1u8a_f89IkFD3pRFUMkG37pKatn6brv-P?usp=sharing 
RX-TX Link Parts:
XIAO ESP32S3 Dev Board: https://amzn.to/4rD58eC
L7805 Voltage Regulator: https://amzn.to/4ikpy7E
5-pin Female Pin Header: https://amzn.to/4irsVda
24AWG Wire: https://amzn.to/49IAmKO
Equipment:
EP1 ELRS Receiver: https://amzn.to/48m1fC0
Radiomaster TX12 Controller: https://amzn.to/4p4hbQc
Micro 5.8G AIO FPV Camera: https://amzn.to/3XYBlPD
Fat Shark SCOUT/ECHO 5.8G FPV Headset: https://amzn.to/4p4DRA5



上一篇:Linux内核BPF实战:轻量级隧道封装优化网络路由与流量控制
下一篇:Prettier正确配置指南:避免8大常见误区,实现团队代码格式化自动化
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 19:22 , Processed in 0.310744 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表