TA的每日心情 | 开心 2024-10-14 08:33 |
---|
签到天数: 2451 天 连续签到: 1 天 [LV.Master]伴坛终老
|
Curie Nano是定位可穿戴的场合,有时候我们需要把采集到的运动数据保存下来进行分析。如果数据量比较大就必须得保存到大容量的SD卡里了。本篇我们就来学习一下怎么操作。
材料准备,如下图所示需要用的材料有:Curie Nano、MicroSD Card Adapter、MicroSD卡、读卡器、数据线和杜邦线若干。
硬件连接,按照下表所示进行连接。
Curie Nano | MicroSD Card Adapter | GND | GND | VCC | 5V | MISO | D12 | MOSI | D11 | SCK | D13 | CS | D4 | 经过实际的测试可以看出加速度的方向如下图所示:
把Curie Nano和sd卡转换器固定好以后就可以进行数据的采集了,这里有个小技巧就是做完一个完整的动作以后可以暂时个两三秒钟,这样有段时间数据是趋于稳定的,方便以后的数据处理。
示例代码:
- <font size="4">#include "SPI.h"
- #include "SD.h"
- #include "CurieIMU.h"
- #define SAMPLING_INTERVAL 10//ms
-
- File myFile;
-
- float ax, ay, az;
-
- uint64_t timer;
-
- void setup() {
-
- timer = 0;
-
- Serial.begin(9600);
-
- CurieIMU.begin();
-
- CurieIMU.autoCalibrateXAccelOffset(0);
-
- CurieIMU.autoCalibrateYAccelOffset(0);
-
- CurieIMU.autoCalibrateZAccelOffset(1);
-
- CurieIMU.setAccelOffsetEnabled(true);
-
- CurieIMU.setAccelerometerRange(4);
-
- if(!SD.begin(4)) {
- Serial.println("initialization failed!");
- return;
- }
- }
- void loop() {
-
- timer =millis();
- CurieIMU.readAccelerometerScaled(ax, ay, az);
- myFile =SD.open("data.csv", FILE_WRITE);
- if(myFile)
- {
- myFile.print(ax);
- myFile.print(",");
- myFile.print(ay);
- myFile.print(",");
- myFile.print(az);
- myFile.print("\n");
- }
- myFile.close();
- while((millis() - timer) < SAMPLING_INTERVAL);
- }</font>
复制代码 上传上边的代码到Curie Nano中,我们可以重复做一个动作,然后断电将microsd通过读卡器插到电脑上,打开data.csv文件。
如下图就可以看到3轴加速度的数据了。
示例代码只是保存了加速度的数据,同样的方法可以保存9轴的数据或者任意你想保存的传感器采集到的数据。
|
|