数据采集
Sketch v1.5 的新功能
两个新命令 – COLLECT 和 READ LIST– 允许程序在单个命令中收集多个数据样本。
使用 COLLECT 和 READ 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 |
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 |
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.COLORINPUT 和 RV.GYRO 传感器配合使用。 此命令可与 RV.RANGER 传感器配合使用。 |
对于超过 64 个样本的采集,程序将必须多次使用 “READ LIST”命令并组合结果列表。
示例:
1. 此 TI-Nspire™ 程序将从温度传感器每秒采集 10 个样本,持续 10 秒,总共采集 101 个样本。
|
Code |
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
EndWhile Send "READ LIST TIME" Get readbuffer listtime:=readbuffer While dim(readbuffer)=64
EndWhile |
“Send” 和 “Get” 命令之间需要 “Wait 0.2” 命令,以确保在读取下一批次之前,所有数据都能进入程序
此延迟仅在 TI-Nspire™ CX 和 TI-Nspire™ CX II 手持设备上需要。
2. 此 CE 程序从内置 BRIGHTNESS 传感器每秒采集 8 个样本,持续 10 秒。样本总数为 81 个,因此程序必须使用 READ LIST 两次才能获取所有样本,然后组合列表。
|
Code |
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 |
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.COLORINPUT 和 RV.GYRO 传感器配合使用。 此命令可与 RV.RANGER 传感器配合使用。 |
注:
| 1. | COLLECT 命令不能用于某些 RV 传感器,如 RV.GYRO 或 RV.COLORINPUT。它可与 RV.RANGER 配合使用 |
当 Hub 处于 TI-Innovator™ Rover 中时,它可与连接到 Hub 的传感器配合使用。
| 2. | 处理命令后,数据采集将立即开始。 |
| 3. | 如果在主动采集期间发出 READ LIST 命令,则表明存在错误。 |
| 4. | 只要 READ 命令不使用 COLLECT 命令中的传感器,当 COLLECT 运行时,可同时执行其他 SET READ 命令。 |
| 5. | 仅当其在 CONNECT 命令之前发出时,AVERAGING 命令才会影响使用 COLLECT 命令采集的数据。请参阅 AVERAGING 命令的文档。 |
