将信号记录到PX4飞行控制器的SD卡上

这个例子演示了如何将信号记录到连接到Pixhawk系列飞行控制器的micro-SD卡上。

这个例子使用了预定义的模型模型金宝app它包含连接到uORB读块的PX4 SD卡日志记录块。您可以在自己的Simulink模型中重用相同的PX4 SD卡日志记录块来记录信号。金宝app

先决条件

硬件要求

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

  • Pixhawk系列飞行控制器

  • 微型USB B型电缆

  • 微型sd卡(已经使用期间初始硬件安装)

  • micro sd读卡器

任务1 -在SD卡中创建日志文件夹

在此任务中,您将准备在将被用于记录信号的SD卡所需的文件夹结构。

1.从PX4飞行控制器中移除micro-SD卡

2.用微型SD卡阅读器连接该微SD卡到主机计算机。

3.创建日志文件夹。例如,如果希望将数据记录到文件夹/fs/microsd/log中,请创建一个文件夹日志在SD卡根目录中。

4.重新插入SD卡到PX4飞行控制器。

任务2 -配置、构建并将示例模型部署到目标

在这个任务中,你将打开预定义的模型模型金宝app包含PX4 SD卡记录块,并部署相同的PX4飞行控制器。

1.打开示例模型,px4_SDcard_logging,从MATLAB命令提示。

open_system('px4_SDCard_logging');

在该示例模型中,PX4 SD卡记录器块用于记录信号。此块接受来自uORB信号sensor_accel消息,并且accelaration沿三个轴(x,y和z)被记录到所述特定文件夹中的SD卡上。斌格式。

示例模型使用一个总线选择块,可以帮助你选择的信号,然后提供相同的输入到PX4 SD卡记录器块(使用两者之间的复用器块)。

请注意:确保信号到数据该PX4 SD卡记录器块的输入是相同的数据类型的。

该示例模型还使用一个脉冲生成器块和一个数据类型转换块将一个布尔信号提供给PX4 SD卡记录器块的en端口。只有当Boolean enable值很高时,才会记录信号。这为记录信号的持续时间提供了更大的灵活性。如果您想要在特定的时间内记录信号,请生成相应的布尔信号并将其提供给en端口。

可以使用PX4 SD卡Logger块掩码中的maximum Record Count参数限制要记录的最大数据点数量。

如果在内存中缓存在块参数没有被选择,该数据被写入到在每个时间步长的SD卡。如果选择此参数,数据在内存中缓存并启用变低时,或者当数据点的数量记录达到最大记录数指明只有当写入SD卡。如果是较大的时间记录多个信号,建议保持在内存中缓存为未选中状态,以避免内存问题。

2.双击PX4 SD卡日志程序块,并确保文件路径为日志文件夹参数是相同任务1中创建的文件夹的路径。

小费:日志文件名参数定义将在文件夹中看到的日志文件的文件名。对于此示例模型,您不需要更改此文件名(accel_data)。

3.在里面建模选项卡上,单击模型设置

4.在配置参数对话框,导航到硬件实现窗格:

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

  • 在里面目标硬件资源节中,设置构建选项构建,加载和运行将生成的二进制文件自动下载到连接的PX4飞行控制器。

  • 中,输入与PX4飞行控制器连接的主机的串口串行端口,用于固件上载字段。

5.导航到求解窗格并选择该选项将每个离散的速率视为一个单独的任务。请点击

6.在里面硬件选项卡上,单击构建、部署和启动。该模型被部署到PX4飞行控制器。

任务3 -读取并可视化SD卡上的日志数据

在此任务中,您将了解MATLAB命令,帮你阅读和从SD卡可视化记录的信号数据。

1.断开连接在主计算机和PX4飞行控制器之间的USB电缆。

2.从PX4飞行控制器中移除micro-SD卡。

3.用微型SD卡阅读器连接该微SD卡到主机计算机。

4.将日志文件从日志文件夹(例如,accel_data.bin)复制到MATLAB中的当前文件夹。

请注意:文件名是accel_data.bin,因为它对应的值日志文件名参数您在块屏蔽定义。

5.读取数据,运行MATLAB下面的命令:

[数据点,时间戳,numberofpoints] = px4_read_binary_file( 'accel_data.bin');

6.可视化数据作为在MATLAB 2-d剧情,运行在MATLAB以下命令:

人物,情节(时间戳、点‘*’);传奇('间{accel}”、“y_ {accel}’,‘z_ {accel}’);xlabel('PX4时间戳in \mu s');ylabel(加速m / s);

因为木板是水平放置在桌子上的,你可以看到只有沿着-z轴的加速度(重力加速度(g))占主导地位。自被设置为周期性脉冲,可以看到该信号也被记录在定期。

任务4 - 使用SD卡记录器模块在Simulink模型金宝app

在本任务中,您将了解如何为使用嵌入式编码器支持包为PX4 Autopilots开发的任何Simulink模型记录金宝app信号。金宝app

1.打开包含要登录到P金宝appixhawk系列飞行控制器上的微型SD卡的信号仿真模型。

2.打开示例模型,px4_SDcard_logging。您也可以从MATLAB命令提示符中打开模型-输入命令:open_system( 'px4_SDCard_logging')

3.px4_SDcard_logging模型,复制PX4 SD卡日志块。

4.该PX4 SD卡记录器粘贴到您的Simulink模型,你在步骤1中打开。金宝app

5.将您要登录的信号连接到PX4 SD卡Logger块的输入数据端口。

请注意一张PX4 SD卡记录器块可以用来仅记录相同的数据类型的信号。如果你想登录不同的数据类型的信号,创建PX4 SD卡记录器模块的多个副本,并使用他们每个人的个人数据类型。

6.双击PX4 SD卡记录器模块,并确保符合以下条件:

  • 属性指定的文件路径日志文件夹参数是相同任务1中创建的文件夹的路径。

  • 日志文件名在日志文件夹中是惟一的(为每个PX4 SD卡记录器块输入惟一的文件名)

7.连接输入的PX4 SD卡记录器块到任何逻辑(布尔),可以启用/禁用记录数据。

请注意:要记录的最大的数据点使用被定义最大记录数参数的PX4 SD卡记录器块。如果在内存中缓存未选择选项,数据被写入到在每个时间步长的SD卡。如果选择了该选项,数据在内存中缓存并启用变低时,或者当数据点的数量记录达到最大记录数指明只有当写入SD卡。

8.您完成后,对于需要记录,保存模型信号的连接。

9。执行配置和构建的动作,并部署模型(如在步骤4中说明的步骤任务2的6)。

10。分析和作为任务3说明可视化使用相同的技术记录的信号数据。