for Airio-Base. getting data of "Seeed Grove 6-Axis v1.0" write to FlashAir(SD card).
Dependencies: LSM6DS3 SDFileSystem mbed
Code URL
https://os.mbed.com/users/mbed_crane_elec/code/Airio-Base_Grove_6Axis/
Airio-Baseで 6軸センサーデータ取得とSDカードへの記録をするサンプルコードです。
準備
- Grove - 6-Axis Accelerometer&Gyroscopeを接続
- FlashAirをSDカードソケットへ接続
SWスイッチ動作
SWを押している間、LED2が点灯します。それ以外はなにもありません。
ISPスイッチ動作
SDカードにアクセスしカレントディレクトリに「TEST.txt」を作成し 6軸センサーからデータを0.4秒ごと5回のデータを取得して記録します。動作中LED1が点滅します。
取得データの確認
データの取得と記録が成功すると、以下のようなテキストデータがFlashAir等(SDカード)内に記録されます。複数回してもデータは上書きされます。FlashAirはAirio-Baseに装着のまま、PCやスマートフォンからFlashAirにアクセスし確認してみて下さい。
gx:5.929108 gy:1.876678 gz:-4.972076 ax:-0.001160 ay:0.264648 az:0.943542 temp:24.437500 gx:1.076660 gy:-3.140259 gz:-3.491669 ax:-0.021118 ay:0.237671 az:1.003906 temp:24.437500 gx:1.330872 gy:-3.147736 gz:-3.506622 ax:-0.019226 ay:0.236206 az:1.006042 temp:24.437500 gx:1.323395 gy:-3.125305 gz:-3.529053 ax:-0.021790 ay:0.237000 az:1.002136 temp:24.437500 gx:1.413116 gy:-3.259888 gz:-3.506622 ax:-0.019592 ay:0.235168 az:1.004089 temp:24.437500
main.cpp@0:d6f289df4a08, 2018-08-09 (annotated)
- Committer:
- mbed_crane_elec
- Date:
- Thu Aug 09 00:44:04 2018 +0000
- Revision:
- 0:d6f289df4a08
1st release.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_crane_elec | 0:d6f289df4a08 | 1 | #include "mbed.h" |
mbed_crane_elec | 0:d6f289df4a08 | 2 | #include "SDFileSystem.h" |
mbed_crane_elec | 0:d6f289df4a08 | 3 | #include "LSM6DS3.h" |
mbed_crane_elec | 0:d6f289df4a08 | 4 | |
mbed_crane_elec | 0:d6f289df4a08 | 5 | //------------------------------------------------------------------------------- |
mbed_crane_elec | 0:d6f289df4a08 | 6 | //Port Settings |
mbed_crane_elec | 0:d6f289df4a08 | 7 | DigitalOut led1(LED1); |
mbed_crane_elec | 0:d6f289df4a08 | 8 | DigitalOut led2(P1_13,0); |
mbed_crane_elec | 0:d6f289df4a08 | 9 | //DigitalOut USB_CONNECT(P0_6,0); |
mbed_crane_elec | 0:d6f289df4a08 | 10 | DigitalIn sw(P1_20); |
mbed_crane_elec | 0:d6f289df4a08 | 11 | DigitalIn isp(P0_1); |
mbed_crane_elec | 0:d6f289df4a08 | 12 | DigitalOut sd_en(P1_16, 1);//SD card power on/off control port. and ON default. |
mbed_crane_elec | 0:d6f289df4a08 | 13 | //DigitalIn sd_dat3(P0_17); // 0x10 |
mbed_crane_elec | 0:d6f289df4a08 | 14 | //DigitalIn sd_dat2(P1_22); // 0x08 |
mbed_crane_elec | 0:d6f289df4a08 | 15 | //DigitalIn sd_dat1(P1_14); // 0x04 |
mbed_crane_elec | 0:d6f289df4a08 | 16 | //DigitalIn sd_dat0(P0_22); // 0x02 |
mbed_crane_elec | 0:d6f289df4a08 | 17 | //DigitalIn sd_cmd(P0_21); // 0x01 |
mbed_crane_elec | 0:d6f289df4a08 | 18 | |
mbed_crane_elec | 0:d6f289df4a08 | 19 | //------------------------------------------------------------------------------- |
mbed_crane_elec | 0:d6f289df4a08 | 20 | // |
mbed_crane_elec | 0:d6f289df4a08 | 21 | SDFileSystem fs(P0_21, P0_22, P1_15, P0_17, "sd"); // mosi(CMD), miso(DAT0), sclk(CLK), cs(DAT3) |
mbed_crane_elec | 0:d6f289df4a08 | 22 | LSM6DS3 lsm(P0_5, P0_4, LSM6DS3_AG_I2C_ADDR(0) );//I2C ADDR 0x6A |
mbed_crane_elec | 0:d6f289df4a08 | 23 | |
mbed_crane_elec | 0:d6f289df4a08 | 24 | |
mbed_crane_elec | 0:d6f289df4a08 | 25 | //------------------------------------------------------------------------------- |
mbed_crane_elec | 0:d6f289df4a08 | 26 | // |
mbed_crane_elec | 0:d6f289df4a08 | 27 | int main() |
mbed_crane_elec | 0:d6f289df4a08 | 28 | { |
mbed_crane_elec | 0:d6f289df4a08 | 29 | while(1) |
mbed_crane_elec | 0:d6f289df4a08 | 30 | { |
mbed_crane_elec | 0:d6f289df4a08 | 31 | led1 = 1; |
mbed_crane_elec | 0:d6f289df4a08 | 32 | wait(0.2); |
mbed_crane_elec | 0:d6f289df4a08 | 33 | led1 = 0; |
mbed_crane_elec | 0:d6f289df4a08 | 34 | wait(0.2); |
mbed_crane_elec | 0:d6f289df4a08 | 35 | |
mbed_crane_elec | 0:d6f289df4a08 | 36 | if(sw == 0) |
mbed_crane_elec | 0:d6f289df4a08 | 37 | { |
mbed_crane_elec | 0:d6f289df4a08 | 38 | led2 = 0; |
mbed_crane_elec | 0:d6f289df4a08 | 39 | } |
mbed_crane_elec | 0:d6f289df4a08 | 40 | else |
mbed_crane_elec | 0:d6f289df4a08 | 41 | { |
mbed_crane_elec | 0:d6f289df4a08 | 42 | led2 = 1; |
mbed_crane_elec | 0:d6f289df4a08 | 43 | } |
mbed_crane_elec | 0:d6f289df4a08 | 44 | |
mbed_crane_elec | 0:d6f289df4a08 | 45 | if(isp == 0) |
mbed_crane_elec | 0:d6f289df4a08 | 46 | { |
mbed_crane_elec | 0:d6f289df4a08 | 47 | FILE *fp = fopen("/sd/TEST.txt", "w"); |
mbed_crane_elec | 0:d6f289df4a08 | 48 | if(fp != NULL) |
mbed_crane_elec | 0:d6f289df4a08 | 49 | { |
mbed_crane_elec | 0:d6f289df4a08 | 50 | lsm.begin(); |
mbed_crane_elec | 0:d6f289df4a08 | 51 | for(int i = 0;i < 5;i++) |
mbed_crane_elec | 0:d6f289df4a08 | 52 | { |
mbed_crane_elec | 0:d6f289df4a08 | 53 | led2 = 0; |
mbed_crane_elec | 0:d6f289df4a08 | 54 | wait(0.1); |
mbed_crane_elec | 0:d6f289df4a08 | 55 | lsm.readGyro(); |
mbed_crane_elec | 0:d6f289df4a08 | 56 | fprintf(fp,"gx:%f gy:%f gz:%f\r\n",lsm.gx ,lsm.gy ,lsm.gz); |
mbed_crane_elec | 0:d6f289df4a08 | 57 | lsm.readAccel(); |
mbed_crane_elec | 0:d6f289df4a08 | 58 | fprintf(fp,"ax:%f ay:%f az:%f\r\n",lsm.ax ,lsm.ay ,lsm.az); |
mbed_crane_elec | 0:d6f289df4a08 | 59 | lsm.readTemp(); |
mbed_crane_elec | 0:d6f289df4a08 | 60 | fprintf(fp,"temp:%f\r\n",lsm.temperature_c ); |
mbed_crane_elec | 0:d6f289df4a08 | 61 | led2 = 1; |
mbed_crane_elec | 0:d6f289df4a08 | 62 | wait(0.3); |
mbed_crane_elec | 0:d6f289df4a08 | 63 | } |
mbed_crane_elec | 0:d6f289df4a08 | 64 | fprintf(fp,"\r\n"); |
mbed_crane_elec | 0:d6f289df4a08 | 65 | fclose(fp); |
mbed_crane_elec | 0:d6f289df4a08 | 66 | free(fp); |
mbed_crane_elec | 0:d6f289df4a08 | 67 | } |
mbed_crane_elec | 0:d6f289df4a08 | 68 | } |
mbed_crane_elec | 0:d6f289df4a08 | 69 | } |
mbed_crane_elec | 0:d6f289df4a08 | 70 | } |