主要内容

从PX4 ADC通道模拟输入块开始

这个例子向您展示了如何使用PX4模拟输入块来读取Pixhawk系列控制器上ADC引脚上的电压。

简介

无人机工具箱支持包PX4自动驾驶使您能够创建Simulink模型,读取应用在Pixhawk系列控制器ADC引脚上的电压。

基于硬件支持的FMU版本,单个PX4模拟输入块测量Pixhawk系列控制器上所有ADC通道上的模拟电压。该块以1 × 12数组的形式输出电压。数组中的每个值都对应于特定通道号处的模拟电压。

在这个例子中,你将学习如何使用PX4模拟输入块:

  • 观察所有通道的模拟电压

  • 检测FMU的ADC通道暴露在连接的PX4飞行控制器上,并仅在Simulink模型中使用来自这些通道的电压。

先决条件

所需的硬件

要运行此示例,您需要以下硬件:

  • Pixhawk系列飞行控制器

  • Micro USB - b型电缆

  • 4引脚电缆或与Pixhawk系列控制器上ADC引脚兼容的任何电缆

  • Micro-SD卡(已使用期间最初的硬件设置)

任务1 -观察ADC通道值

在本任务中,您将配置一个PX4模拟输入块,以输出FMU上所有ADC通道的模拟数据。在FMU上可用的所有ADC通道可能不会在Pixhawk系列控制器上公开。

1.在MATLAB工具条中,选择“HOME > New > Simulink Model”,打开Simulink开始页面。点击空白模型推出一个新的Simulink模型。

2.2 .在Simulink工具栏中,选择“View > Library Browser”,打开“Simulink Library Browser”。点击无人机工具箱支持包PX4自动驾驶选项卡(也可以在MATLAB命令窗口中输入px4lib)。

3.拖放一个PX4模拟输入块到模型。

4.从库浏览器中的Simulink > sink选项卡中,拖放一个显示块到模型。连接PX4模拟输入块的输出到显示块。

5.使用USB线缆将Pixhawk系列控制器与上位机连接。

6.建模页签,单击模型设置

7.在“配置参数”对话框中,导航到硬件实现面板:

  • 设置硬件板到您在硬件设置界面中选择的同一Pixhawk系列控制器。

  • 目标硬件资源,输入Pixhawk系列控制器所连接的主机的串口,在用于固件上传的串口字段。

  • 点击应用然后好吧

8.模拟选项卡,设置仿真停止时间为

9.硬件选项卡上,单击监视和优化启动信号监控和参数调优。

等待代码生成完成。当弹出重新连接串口的对话框时,请务必单击好吧在对话框内5秒重新连接飞行控制器后。

观察显示块中的电压数组值。它是一个1 × 12的数组,显示基于PX4飞行控制器的FMU版本的所有ADC通道。

任务2 -检测在Pixhawk系列控制器上暴露的ADC通道

在本任务中,您将确定由FMU版本提供的ADC通道中的哪些在Pixhawk Series控制器上公开,并使用这些索引值进一步处理信号。

确保使用PX4模拟输入块和显示块的监视和调优进程仍在运行(如任务1中所做的)。

1.使用电缆将Pixhawk系列控制器上的ADC引脚连接到+3.3V Vcc。

2.观察Display块中的任何单元格的值是否更改为+3.3V左右。

该单元格在数组中的索引是在飞行控制器上公开的ADC通道的索引。

3.对于Pixhawk系列控制器中可能剩余的所有其他ADC通道,重复步骤1和2。

在确定所有暴露的ADC通道的索引号后,可以停止监视和调优进程,并删除连接在PX4模拟输入块的输出上的显示块。现在可以继续从块中提取信号值。

4.从库浏览器中的Simulink >信号路由选项卡中,拖放一个选择器块到模型。

5.双击该块,并设置输入口大小12.为设置值指数根据您确定的索引值。例如,您可以输入指数值作为(6 7 8)

6.连接选择器块的输入到PX4模拟输入块的输出。

7.将Selector块的输出连接到多路分配器块。的数量的端口在Demux块中可以设置为识别的ADC通道总数。

Demux块的输出可用于逻辑的进一步处理。

完整的模型将看起来像预先配置的模型(px4demo_ADC)供您使用。

open_system (“px4demo_ADC”);

Baidu
map