Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BM1422AGMV rohm-rpr0521 rohm-sensor-hal rohm-bh1790glc-driver BH1749NUC KX224-1053 BM1383AGLV RegisterWriter
Getting Started with Rohm SensorShield-EVK-001
This example demonstrates how to use the SensorShield-EVK-001 component with multiple sensors. those measured values, which received through a serial connection from a mbed board, are printed out in a terminal software window.
Setup

The SensorShield-EVK-001 is plugged on top of a mbed board and a serial connection should be set up between the mbed board and PC with the following parameters:
- baud rate: 115200
- data: 8 bit
- parity: none
- stop: 1bit
- flow control: none
Terminal parameters

Measured Data Output

Revision 5:f0dac0711070, committed 2019-02-27
- Comitter:
- MACRUM
- Date:
- Wed Feb 27 04:43:57 2019 +0000
- Parent:
- 4:e1f9ba2da8af
- Child:
- 6:b38a0cbc1b3f
- Commit message:
- Code clean-up
Changed in this revision
--- a/KX224-1053.lib Fri Feb 22 11:45:06 2019 +0900 +++ b/KX224-1053.lib Wed Feb 27 04:43:57 2019 +0000 @@ -1,1 +1,1 @@ -https://os.mbed.com/teams/Rohm/code/KX224-1053/#c447f35ff54a \ No newline at end of file +https://os.mbed.com/teams/Rohm/code/KX224-1053/#b226b04d2c21
--- a/RegisterWriter.lib Fri Feb 22 11:45:06 2019 +0900 +++ b/RegisterWriter.lib Wed Feb 27 04:43:57 2019 +0000 @@ -1,1 +1,1 @@ -http://os.mbed.com/teams/Rohm/code/RegisterWriter/#f33e0914ea36 +http://os.mbed.com/teams/Rohm/code/RegisterWriter/#726c671efcce
--- a/Source/main.cpp Fri Feb 22 11:45:06 2019 +0900
+++ b/Source/main.cpp Wed Feb 27 04:43:57 2019 +0000
@@ -1,4 +1,4 @@
-/* Rohm SensorShield-EVK-xxx Example
+/* Rohm SensorShield-EVK-001 Example
* Copyright (c) 2019 ARM Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,92 +22,88 @@
#include "rohm-rpr0521/rohm-rpr0521/rpr0521.h"
#include "rohm-rpr0521/rohm-rpr0521/rpr0521_driver.h"
#include "rohm-sensor-hal/rohm-sensor-hal/I2CCommon.h"
+#include "rohm-bh1790glc-driver/bh1790glc.h"
+
+BM1383AGLV pressure(I2C_SDA, I2C_SCL);
+BM1422AGMV magnetometer(I2C_SDA, I2C_SCL);
+KX224 accelerometer(I2C_SDA, I2C_SCL);
#if BH1790GLC_CONNECTED == 1
-#include "rohm-bh1790glc-driver/bh1790glc.h"
+RegisterWriter i2c_rw_bh(I2C_SDA, I2C_SCL);
+BH1790GLC heartrate(i2c_rw_bh);
#endif
-BM1383AGLV Pressure(I2C_SDA, I2C_SCL);
-BM1422AGMV Magnetometer(I2C_SDA, I2C_SCL);
-KX224 Accelerometer(I2C_SDA, I2C_SCL);
-#if BH1790GLC_CONNECTED == 1
-RegisterWriter i2c_rw_bh(I2C_SDA, I2C_SCL);
-BH1790GLC HeartRate(i2c_rw_bh);
-#endif
#ifdef TARGET_K66F
#warning A2 pin is disabled on THIS BOARD, please use A0 pin for BD1020HFV!!
#endif
-AnalogIn Temperature(A0);
-
-
-Serial pc(USBTX, USBRX);
+AnalogIn temperature(A0); // BD1020HFV
int main() {
float axis_ac[3], temp1_bd1020hfv, temp2_bd1020hfv ;
bool err_rpr0521;
- int err_bh1790, err_KX224;
+ int ret;
uint16_t bh1790_data[2], rpr0521_data[3];
- pc.printf("\r\nExample program for using following Rohm sensor libraries\r\n");
- pc.printf("\n - BM1383AGLV: Pressure/Temperature sensor\r\n");
- pc.printf("\r - BM1422AGMV: 3 axis magnetic sensor\r\n");
- pc.printf("\r - KX224-1053: 3 axis accelerometer\r\n");
+ printf("\r\nExample program for using following Rohm sensor libraries\r\n");
+ printf(" - BM1383AGLV: Pressure/Temperature sensor\r\n");
+ printf(" - BM1422AGMV: 3 axis magnetic sensor\r\n");
+ printf(" - KX224-1053: 3 axis accelerometer\r\n");
#if BH1790GLC_CONNECTED == 1
- pc.printf("\r - BH1790GLC: optical sensor for heart rate monitor\r\n");
+ printf(" - BH1790GLC: optical sensor for heart rate monitor\r\n");
#endif
- pc.printf("\r - RPR-0521RS: Light & Proximity Sensor\r\n");
- pc.printf("\r - BD1020HFV: Temperature Sensor, Formula values should be calibrated before use.\r\n");
+ printf(" - RPR-0521RS: Light & Proximity Sensor\r\n");
+ printf(" - BD1020HFV: Temperature Sensor, Formula values should be calibrated before use.\r\n");
//init KX224-1053
- err_KX224=Accelerometer.initialize();
- if (err_KX224!=0){
- pc.printf("\r\nKX224-1053 : Failed initialization \n");
+ ret = accelerometer.initialize();
+ if (ret != 0) {
+ printf("\r\nKX224-1053 : Failed initialization \n");
}
#if BH1790GLC_CONNECTED == 1
- do{ //init BH1790GLC
- err_bh1790 = HeartRate.set_default_on();
+ do { //init BH1790GLC
+ ret = heartrate.set_default_on();
wait_ms(300);
- } while (err_bh1790);
+ } while (ret);
#endif
//init RPR-0521RS
I2CCommonBegin();
rpr0521_wait_until_found();
- pc.printf("\nRPR-0521RS Sensor found.\r\n");
+ printf("\nRPR-0521RS Sensor found.\r\n");
rpr0521_initial_setup();
- while(1) {
- pc.printf("\r++++++++++++++++++\r");
- pc.printf("\r\nBM1383AGLV : pressure=%7.2f, temperature=%5.3f\r\n", Pressure.getPressure(), Pressure.getTemperature());
- Magnetometer.get_val(&axis_ac[0]);
- pc.printf("\r\nBM1422AGMV : X=%7.2f, Y=%7.2f, Z=%7.2f\r\n", axis_ac[0], axis_ac[1], axis_ac[2]);
- Accelerometer.get_val(&axis_ac[0]);
- pc.printf("\r\nKX224-1053 : X=%7.2f, Y=%7.2f, Z=%7.2f\r\n", axis_ac[0], axis_ac[1], axis_ac[2]);
+ while (1) {
+ printf("\r++++++++++++++++++\r");
+ printf("BM1383AGLV : pressure=%7.2f, temperature=%5.3f\r\n", pressure.getPressure(), pressure.getTemperature());
+ magnetometer.get_val(&axis_ac[0]);
+ printf("BM1422AGMV : X=%7.2f, Y=%7.2f, Z=%7.2f\r\n", axis_ac[0], axis_ac[1], axis_ac[2]);
+ accelerometer.get_val(&axis_ac[0]);
+ printf("KX224-1053 : X=%7.2f, Y=%7.2f, Z=%7.2f\r\n", axis_ac[0], axis_ac[1], axis_ac[2]);
#if BH1790GLC_CONNECTED == 1
- err_bh1790 = HeartRate.getresults(&bh1790_data[0]);
- if(err_bh1790) {
- pc.printf("\r\nBH1790GLC : Failed reading value from BH1790GLC\r\n");
+ ret = heartrate.getresults(&bh1790_data[0]);
+ if (ret) {
+ printf("BH1790GLC : Failed reading value from BH1790GLC\r\n");
} else {
- pc.printf("\r\nBH1790GLC : value= %d, \t%d\n\r", bh1790_data[1], bh1790_data[0]);
+ printf("BH1790GLC : value= %d, \t%d\n\r", bh1790_data[1], bh1790_data[0]);
}
#endif
err_rpr0521 = rpr0521_read_data(&rpr0521_data[0]);
- if(err_rpr0521) {
- pc.printf("\r\nRPR-0521RS : Failed reading value from RPR-0521RS\r\n");
+ if (err_rpr0521) {
+ printf("RPR-0521RS : Failed reading value from RPR-0521RS\r\n");
} else {
- pc.printf("\r\nRPR-0521RS : PS= %4u, Als0= %4u, Als1= %4u\r\n", rpr0521_data[0], rpr0521_data[1], rpr0521_data[2]);
+ printf("RPR-0521RS : PS= %4u, Als0= %4u, Als1= %4u\r\n", rpr0521_data[0], rpr0521_data[1], rpr0521_data[2]);
}
- //Input voltage 0-3.3V == 0.0-1.0f
- //-40'C == 1.87V
- // 0'C == 1.546V
- //192'C == 0V (out of scale)
- //1.87V / 232'C = 0.008060V/'C
- temp1_bd1020hfv = -(1000 * (Temperature * 3.3f) - 1546) / 8.2;
- temp2_bd1020hfv = 192 - ( Temperature * 3.3f / 0.008060 );
- pc.printf("\r\nBD1020HFV : formula1= %5.3f, formula2= %5.3f\r\n", temp1_bd1020hfv, temp2_bd1020hfv);
+ // Input voltage 0-3.3V == 0.0-1.0f
+ // -40'C == 1.87V
+ // 0'C == 1.546V
+ // 192'C == 0V (out of scale)
+ // 1.87V / 232'C = 0.008060V/'C
+ temp1_bd1020hfv = -(1000 * (temperature * 3.3f) - 1546) / 8.2;
+ temp2_bd1020hfv = 192 - ( temperature * 3.3f / 0.008060 );
+ printf("BD1020HFV : formula1= %5.3f, formula2= %5.3f\r\n", temp1_bd1020hfv, temp2_bd1020hfv);
wait(3);
}
}
--- a/mbed_app.json Fri Feb 22 11:45:06 2019 +0900
+++ b/mbed_app.json Wed Feb 27 04:43:57 2019 +0000
@@ -3,7 +3,9 @@
},
"target_overrides": {
"*": {
- "platform.default-serial-baud-rate": 115200
+ "platform.default-serial-baud-rate": 115200,
+ "platform.stdio-baud-rate" : 115200,
+ "platform.stdio-convert-newlines" : true
}
}
}
\ No newline at end of file
--- a/rohm-bh1790glc-driver.lib Fri Feb 22 11:45:06 2019 +0900 +++ b/rohm-bh1790glc-driver.lib Wed Feb 27 04:43:57 2019 +0000 @@ -1,1 +1,1 @@ -https://os.mbed.com/teams/Rohm/code/rohm-bh1790glc-driver/#4446bf1de21b \ No newline at end of file +https://os.mbed.com/teams/Rohm/code/rohm-bh1790glc-driver/#4446bf1de21b
--- a/rohm-sensor-hal.lib Fri Feb 22 11:45:06 2019 +0900 +++ b/rohm-sensor-hal.lib Wed Feb 27 04:43:57 2019 +0000 @@ -1,1 +1,1 @@ -http://os.mbed.com/teams/Rohm/code/rohm-sensor-hal/#4d5812bed3fb +http://os.mbed.com/teams/Rohm/code/rohm-sensor-hal/#aecd1e03720a
Rohm SensorShield series| Arduino-Compatible Multi Sensor Evaluation Kit