首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:如何提高TCS34725颜色传感器在RaspberryPi上的采样率

Python:如何提高TCS34725颜色传感器在RaspberryPi上的采样率
EN

Stack Overflow用户
提问于 2021-04-15 08:59:02
回答 1查看 244关注 0票数 0

我试图测量LED照明闪烁率通过一个Adafruit传感器: TCS34725上的覆盆子Pi4。我要么读取内部计算的勒克斯值,要么读取原始数据(RGB)。

根据TCS34725库文件,传感器的最小采样率为2.4ms (~400 is )。传感器本身的时钟频率为400赫兹。Python TCS34725库

但是,当我运行一个测试脚本时,每个采样的时间周期都是0.0155769秒(~60 Hz),对于原始值或计算出的勒克斯值都是这样。

代码语言:javascript
复制
sensor.lux # takes abt 0.0167 s  for script below
sensor.color_raw # takes abt 0.0155 s for script below

为什么我不能达到更高的采样率接近400赫兹?我的剧本是不是推迟了时间?

测试脚本:

代码语言:javascript
复制
import board
import busio
import adafruit_tcs34725
import time
import numpy as np

i2c = busio.I2C(board.SCL, board.SDA)
sensor = adafruit_tcs34725.TCS34725(i2c)

"""
integration_time - The integration time of the sensor in milliseconds.  Must be a value between 2.4 and 614.4.
gain - The gain of the sensor, must be a value of 1, 4, 16, 60.
"""

sensor.integration_time = 2.4 #lowest possible of 2.4ms
sensor.gain = 1

lx = []
tm = []

loop_delay = time.time() + 60


while time.time() < loop_delay:
    t = time.time()
    k = sensor.lux
    lx.append(k)
    tm.append(t)

t_0 = tm[0]
t_norm = [i-t_0 for i in tm]

Z = np.column_stack((t_norm,lx))
np.savetxt('/home/pi/share/py/flicker/test.csv', Z, delimiter=",", fmt='%1.7f')


print('end')

类似地,使用另一个库驱动程序,通过将后续测量之间的延迟(第139行)设置为零(False),也会产生相同的~60 to。公司用于TCS34725光色传感器的Python驱动程序

对于如何获得接近400赫兹的采样率,有任何见解或建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-15 09:06:29

如果您查看库的代码,看看.lux时会发生什么,您会发现所有这些代码被执行了。

它涉及(至少)

  • 一个I2C write+read for ATIME
  • 一个I2C write+read for .gain
  • 原始颜色为四I2C write+reads
  • 所有这些计算

如果您需要挤出更多的性能,我建议您手动访问这些性能,然后在捕获数据之后“脱机”进行计算。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67105362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档