问题标签 [data-acquisition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
101 浏览

stm32 - 在 STM32F4-Nucleo 上设置多个 DAC

我正在做一个需要我使用 5 个 TLC7524 DAC 的项目。它们都将从 8 位总线接收数据。对于数据传输,过程是CS pin,WR pin,发送数据。我想知道我是否可以将所有这些引脚上的 CS 引脚接地并仅用 WR 引脚控制它们。

链接到 TLC7524 的数据表 - http://www.ti.com/lit/ds/slas061d/slas061d.pdf

0 投票
0 回答
113 浏览

python - 通过数据库在python进程之间交换数据

我有一个带有MCC118 daqhat的树莓派。目标有三个:

  1. 获取数据并将其记录到数据库
  2. 尽可能接近实时地通过专用 LAN 将数据流式传输到浏览器(网络 GET/POST 速度受限)
  3. 分析此数据并根据分析驱动设备 (RPi.GPIO)

我的程序同时受 cpu 和 I/O 限制,因为程序必须等待来自 daqhat 的数据输入(I/O 限制),并且一旦读取数据,就必须对其进行记录和分析(cpu 限制)。对于 cpu 绑定部分,我正在利用多处理来构建数据库。然后将通过查询数据库来更新浏览器显示(通过烧瓶)。为了有效地做到这一点,我开发了以下示例代码作为项目记录和显示方面的基础:

我刚刚向 Postgres 介绍了自己(我使用的是 sqlite3),以便以我认为是“数据安全”的方式来实现写入和查询数据的并发性。但是,我的问题如下:

  1. 是否有更高效的内存和/或数据安全的方式来执行此操作(例如管道)?
  2. KeyboardInterrupt抛出异常时是否有更好的退出方式?(我的异常打印语句从不打印,表明进程也在离开进程僵尸。)

注意:我最初只是在每次 GET 请求通过 LAN 进入时从 daqhat 读取单个数据值,然而,这意味着采样率取决于网络速度。为了数据的完整性和一致性,我想使用多处理来让数据采集以恒定的采样率完成它的工作,并根据网络请求从数据库中读取数据。

0 投票
1 回答
73 浏览

image - 如何使用函数“getdata”(imaqtool)直接在 GPU 上传输数据

我目前正在使用 imaqtool 库中的函数“getdata”来获取我的相机数据,并在我的 GPU 上进行一些后处理。

因此,我想将数据直接从缓冲 CPU 内存传输到我的 GPU 内存。

据我了解,“getdata”将数据从 CPU 内存(缓冲区)移动到 CPU 内存。因此,将这些数据直接传输到我的 GPU 应该是微不足道的。

但是,我找不到任何关于它的信息。

任何帮助表示赞赏。

0 投票
1 回答
238 浏览

simulation - 从使用 Simulink 中的“时钟”→“到工作区”保存的时间中检索真实世界时间

我使用 Simulink 使用 NI6024 采集卡进行了一些测量,型号如下:

在此处输入图像描述

我已经使用模拟时间 =“inf”和 0.2 的固定时间步长运行模拟,以便从卡中收集实时数据。但我没有意识到“时钟”给出的值与现实世界的时间不对应。更具体地说,我已经运行了大约一分钟的实验,但变量“t”中的数据范围从 0 到大约 50000,这显然是错误的。我已经保存了工作区数据,并且可以访问记录的数据(变量“t”和“h”),但无法重现实验。

有没有办法检索模拟的真实世界时间?

0 投票
4 回答
1383 浏览

stm32 - 如何在 RTOS 的 Cortex-M3 微控制器中以高频(> 100kHz)运行周期性线程?

我正在使用 STM32F107VC 微控制器实现高频(>100kHz)数据采集系统。它使用 spi 外设与高频 ADC 芯片通信。我必须使用 RTOS。我怎样才能做到这一点?

我尝试过 FreeRTOS,但它的最大滴答频率是 1000Hz,所以我不能使用 FreeRTOS 每 1us 运行一个线程。我也试过 Keil RTX5,它的滴答频率可以高达 1MHz,但我在某处研究过,不建议将滴答频率设置为高,因为它会增加整体上下文切换时间。所以我该怎么做?谢谢。

0 投票
0 回答
267 浏览

matlab - 如何每 n 毫秒从 Simulink 中的 .txt 文件中读取一个双精度值以用于实时应用程序?

我正在做的是一个用于视觉伺服的实时应用程序,它需要在运行时读取坐标的 X 和 Y 值。在模拟运行时,这些值会通过 Python 脚本及时更改,然后,我需要在 Simulink 中每隔 n 毫秒(比如 20 毫秒)读取一次这些变化的值,以根据所述(X,Y)坐标移动一些直流电机。

总而言之,我需要的是如何从 Simulink 的外部文件中读取运行时值。我可以是 .txt 或任何其他类型的文件,但它必须实时读取变化的值。

我非常感谢您的帮助!

我尝试从用户定义的 simulink 块中读取 .txt 文件,但我使用的函数在 simulink 中不受支持,例如 fscanf。

0 投票
1 回答
131 浏览

python - 用于保存扩展数据以在 Python 中记录数据的数据类型

我正在用 Python 编写一个串行数据记录器,我想知道哪种数据类型最适合这个。每隔几毫秒就会从串行接口读取一个新值,并与当前时间一起保存到我的变量中。我不知道记录器要运行多长时间,所以我无法为已知大小预先分配。

直观地说,我会为此使用一个 numpy 数组,但是每次从我读过的内容中附加/连接元素都会创建一个新数组。

那么,什么是合适的数据类型呢?

另外,描述这个问题的合适词汇是什么?

0 投票
1 回答
104 浏览

audio-recording - 在LabVIEW VI中控制样本数量

我能够使用两个不同的LabVIEW VI分别正确测量气流和声音参数。其中一个程序负责通过连接到计算机的 USB 设备以 100Hz 的采样率测量呼吸气流。另一个程序负责通过音频插孔获取肺音。

但是,当我将两个程序组合在一个 while 循环中时,如附件所示,组合的 VI. 没有正常工作。我试图通过为气流和声音参数放置相同数量的样本来获取这两个信号。但是,保存的数据显示我没有获得相同数量的气流和声音样本。我很难控制和标准化这两个参数的样本数量。

我添加了写入测量功能以将两个数据记录并保存在一个文件中。我设法保存了数据,但保存的数据以杂乱无章的方式保存在多张纸上。

六框图

0 投票
1 回答
75 浏览

labview - 未针对此 I/O 控制类型实现

当我在 VI 中右键单击“DAQ 助手”并选择“生成 NI-DAQmx 代码”时,出现错误:

我正在使用 NI-9237。难道我做错了什么?

0 投票
1 回答
48 浏览

arm - 用于高速微控制器测试台控制器/数据采集器的系统架构

我正在为火箭发动机试验台设计控制器和数据采集单元。该系统需要控制测试台上的多个执行器,并且还能够将收集到的数据传输回主机,团队将在主机上安全地观看实时数据/摄像头馈送。

总体设计要求如下:

  • 以 1KHz 从约 15 个模拟传感器采集数据
  • 控制测试台上的执行器,包括阀门和点火开关
  • 将数据实时传回我们避难所的主机
  • 接受来自主机的控制,例如手动阀门驱动、测试序列修改、序列中止等。

在为这个系统布置软件时,我不确定从哪里开始。我正在考虑使用运行频率为 180 MHz 的 STM32 ARM Cortex-M4 处理器。我无法弄清楚我应该如何解决这个问题。我曾考虑过使用 RTOS 系统,但根据我所看到的情况,这些系统会产生大量开销,因为调度程序必须运行每个滴答声,因此运行速度更快。我反复考虑的另一个想法是状态机与一些基于定时器的中断相结合,用于读取然后将数据发送回 PC。任何有关如何解决此问题以最小化代码复杂性的建议将不胜感激。谢谢。

编辑:有人告诉我要澄清一些有关系统技术规格的事情。

我的执行器包括:

  • 6 个螺线管(通过继电器/MOSFET 进行数字控制,每秒切换一次)
  • 2 个直流电机(在 PID 回路中使用 PWM 输出驱动,需要能够可控地斜坡位置)
  • 一个点火器,再次通过继电器/MOSFET控制

我的传感器包括:

  • 8 个压力传感器(模拟电压)
  • 4 个热电偶(模拟电压)
  • 2 个电机编码器(正交编码器)
  • 1个光传感器(模拟电压)
  • 1 个称重传感器(模拟电压)

理想情况下,所有收集的数据(所有上述传感器)加上一些额外的数据(时间戳、电机设置位置、螺线管位置)都会实时流回主机。