【问题标题】:live sensor reading store in a data file实时传感器读数存储在数据文件中
【发布时间】:2019-10-22 21:20:23
【问题描述】:

我有一个加速度传感器,可以连续输出 400 Hz 的读数(如 [0.21511 0.1451 0.2122])。我想存储它们并对其进行后期处理。现在我能够存储读数的第一个条目而不是全部。

如何实现。

谢谢

from altimu10v5.lsm6ds33 import LSM6DS33
from time import sleep
import numpy as np

lsm6ds33 = LSM6DS33()
lsm6ds33.enable()

accel=lsm6ds33.get_accelerometer_g_forces()

while True:


    DataOut = np.column_stack(accel)
    np.savetxt('output.dat',np.expand_dims(accel, axis=0),  fmt='%2.2f %2.2f %2.2f') 

sleep(1)

´

【问题讨论】:

  • 欢迎来到 SO,您面临的实际问题是什么?
  • 现在我遇到了真正的问题。只需将此行移至 While 循环:accel=lsm6ds33.get_accelerometer_g_forces() 请查看我的更新答案

标签: python numpy


【解决方案1】:

实际问题是,您只调用了一次get_accelerometer_g_forces()。 只需将其移入 While 循环

更新:

while True:
    accel=lsm6ds33.get_accelerometer_g_forces()
    f=open('output.dat','ab')
    DataOut = np.column_stack(accel)
    np.savetxt(f,np.expand_dims(accel, axis=0),  fmt='%2.2f %2.2f %2.2f') 

sleep(1)

这是一个参考:How to write a numpy array to a csv file?

【讨论】:

  • 不时关闭文件并附加它是一个好主意,尤其是在没有退出条件的情况下
  • 嗨。此代码的结果在数据文件中多次返回相同的读数。我想要这样的实时变化读数。
  • @user508402 - 是的,你的更像是 python 方式
  • 亲切,@user508402
  • 亲切的@Backtrack
【解决方案2】:

确保读取数据包含在循环内!

这里还不需要 numpy:

while True:
    with open("output.dat", "w") as f:
        f.write("%.5f, %.5f, %.5f" % tuple(accelerometer_g_forces()))

请注意,没有条件停止输出数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 2011-02-28
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    相关资源
    最近更新 更多