数据采集

Sketch v1.5 的新功能

两个新命令 – COLLECTREAD LIST– 允许程序在单个命令中收集多个数据样本。

使用 COLLECTREAD LIST 命令可以:

- 每秒采集多达 10 个样本
- 多达 4 个传感器(数字湿度和温度 – DHT – 传感器计为 2 个传感器)
- 传感器可以是 Vernier 传感器(通过 TI 传感器链接)和 Seeed 传感器的组合

注:

- 数据通过 TI-Basic 和 Python 程序采集
- 数据可以保存在列表中
- 未与 Vernier DataQuest (TI-Nspire™ CX) 和 EzData(TI-8x CE 系列)集成

COLLECT

命令:

COLLECT <sensor1> 和 <sensor2> TIME t RATE r

命令语法:

COLLECT <sensor1> 和 <sensor2> TIME t RATE r

默认
值:

TIME默认值:10 秒

速率默认值:4(样本/秒)

范围:

最多 4 个传感器

TIME范围:1 - 100(秒)

RATE范围:1 - 10(每秒样本数)

Code
Sample:

TI-Nspire™:

Send "CONNECT TEMPERATURE 1 TO IN 1"

Send "COLLECT TEMPERATURE 1 TIME 5 RATE 4"

Wait 6

Send "READ LIST TEMPERATURE 1"

Get listtemp

Send "READ LIST TIME"

Get listtime

Code
Sample:

CE family:

Send("COLLECT BRIGHTNESS RATE 5 TIME 5")

Wait 6

Send("READ LIST BRIGHTNESS")

Get(L₁)

Send("READ LIST TIME")

Get(L₂)

Disp L₁

Disp L₂

说明:

 

结果:

READ LIST TIME”命令将返回与传感器样本值对应的样本时间。

每个 “READ LIST”命令最多返回 64 个数据点。

对于超过 64 个样本的采集,程序将必须多次使用 “READ LIST”命令并组合结果列表。

类型或
可寻址组件:

此命令可与大多数传感器配合使用。

它不能与许多 I2C 传感器或内置于 TI-Innovator™ Rover 的 RV.COLORINPUTRV.GYRO 传感器配合使用。

此命令可与 RV.RANGER 传感器配合使用。

对于超过 64 个样本的采集,程序将必须多次使用 “READ LIST”命令并组合结果列表。

示例:

1. 此 TI-Nspire™ 程序将从温度传感器每秒采集 10 个样本,持续 10 秒,总共采集 101 个样本。

Code
Sample:

Send "CONNECT TEMPERATURE 1 TO IN 1"

Send "COLLECT TEMPERATURE 1 TIME 10 RATE 10"

Wait 11

Send "READ LIST TEMPERATURE 1"

Get readbuffer

listtemp1:=readbuffer

While dim(readbuffer)=64

••Send "READ LIST TEMPERATURE 1"

••Wait 0.2

••Get readbuffer

••listtemp1:=augment(listtemp1,readbuffer)

EndWhile

Send "READ LIST TIME"

Get readbuffer listtime:=readbuffer

While dim(readbuffer)=64

••Send "READ LIST TIME"

••Wait 0.2

••Get readbuffer

••listtime:=augment(listtime,readbuffer)

EndWhile

Send” 和 “Get” 命令之间需要 “Wait 0.2” 命令,以确保在读取下一批次之前,所有数据都能进入程序

此延迟仅在 TI-Nspire™ CX 和 TI-Nspire™ CX II 手持设备上需要。

2. 此 CE 程序从内置 BRIGHTNESS 传感器每秒采集 8 个样本,持续 10 秒。样本总数为 81 个,因此程序必须使用 READ LIST 两次才能获取所有样本,然后组合列表。

Code
Sample:

Send("COLLECT BRIGHTNESS RATE 8 TIME 10")

Wait 11

Send("READ LIST BRIGHTNESS")

Get(L₁)

Send("READ LIST BRIGHTNESS")

Get(L₂)

Send("READ LIST TIME")

Get(L₃)

Send("READ LIST TIME")

Get(L₄)

augment(L₁,L₂)→L₁

augment(L₃,L₄)→L₃

Disp dim(L₁)

Disp dim(L₃)

Disp L₁

Disp L₃

3. 此 TI-Nspire™ 程序可从 2 个传感器采集样本。

Code
Sample:

Send "CONNECT DHT1 TO IN 1"

Send "CONNECT VERNIER 1 TO IN 2 AS PRESSURE"

Send "COLLECT DHT 1 AND VERNIER 1 TIME 10 RATE 4"

@ 这将为每个传感器采集 41 个样本

WAIT 10

Send "READ LIST DHT1 TEMPERATURE"

Get list1

Send "READ LIST DHT1 HUMIDITY"

Get list2

Send "READ LIST VERNIER 1"

Get list3

Send "READ LIST TIME"

Get list4


READ COLLECT

命令:

READ COLLECT

命令
语法:

READ COLLECT

默认
值:

 

范围:

 

说明:

 

结果:

返回:

0 - 没有正在进行的采集

1 - 进行中的主动采集

类型或
可寻址组件:

此命令可与大多数传感器配合使用。

不能与多个 I2C 传感器或内置于 TI-Innovator™ Rover 的 RV.COLORINPUTRV.GYRO 传感器配合使用。

此命令可与 RV.RANGER 传感器配合使用。

注:

1. COLLECT 命令不能用于某些 RV 传感器,如 RV.GYRORV.COLORINPUT。它可与 RV.RANGER 配合使用

当 Hub 处于 TI-Innovator™ Rover 中时,它可与连接到 Hub 的传感器配合使用。

2. 处理命令后,数据采集将立即开始。
3. 如果在主动采集期间发出 READ LIST 命令,则表明存在错误。
4. 只要 READ 命令不使用 COLLECT 命令中的传感器,当 COLLECT 运行时,可同时执行其他 SET READ 命令。
5. 仅当其在 CONNECT 命令之前发出时,AVERAGING 命令才会影响使用 COLLECT 命令采集的数据。请参阅 AVERAGING 命令的文档。