主要内容

开始使用ADC通道的PX4模拟输入块

本示例向您展示如何使用PX4模拟输入块读取施加在Pixhawk系列控制器上的ADC引脚上的电压。

简介

UAV工具箱支持包用于P金宝appX4自动驾驶仪,使您能够创建Simulink模型,读取应用于Pixhawk系列控制器上ADC引脚的电压。金宝app

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

在本例中,您将学习如何使用PX4模拟输入块来:

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

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

先决条件

所需的硬件

要运行这个例子,你需要以下硬件:

  • Pixhawk系列飞行控制器

  • Micro USB - b型电缆

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

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

任务1 -观察ADC通道值

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

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

2.在“Simul金宝appink”工具栏中,选择“查看>库浏览器”,打开“Simulink库浏览器”。单击PX4自动驾驶仪无人机工具箱支持包选项卡金宝app(也可以在MATLAB命令窗口中输入px4lib)。

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

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

5.使用USB线缆将Pixhawk Series控制器连接到主机。

6.建模在“Simulink”金宝app工具条的页签中,单击模型设置

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

  • 设置硬件板到您在“硬件设置”屏幕中选择的相同的Pixhawk系列控制器。

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

  • 点击应用然后好吧

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

9.硬件选项卡上,单击监视和调优开始信号监测和参数调优。

等待代码生成完成。每当出现指示您重新连接飞行控制器到串口的对话框时,请确保单击好吧在对话框内5秒重新连接飞行控制器后。

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

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

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

使用PX4 Analog Input块和Display块,确保Monitor和Tune进程仍在运行(如任务1中所做的那样)。

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

2.观察显示块中任何单元格的值是否大约变为+3.3V。

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

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

在确定所有暴露的ADC通道的索引号之后,可以停止Monitor和Tune进程,并删除连接在PX4 Analog Input块输出处的Display块。现在可以继续从块中提取信号值。

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

5.双击该块,并设置输入端口大小12.为的值设置指数基于您确定的索引值。例如,可以输入指数值作为[6 7 8]

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

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

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

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

open_system (“px4demo_ADC”);