用Spresense扩大电子制作的广度!【第3篇】

使用ROHM附加板,通过Spresense轻松实现传感器检测!

 

第1回:什么是Spresense?
第2回:使用Spresense制作高分辨率音乐播放器!

 

大家好,我是吉田!
这是使用索尼推出的Spresense进行电子制作的第3篇,这次我将利用该开发板是基于开放式体系结构这一特点,使用附加板添加一些功能!
ROHM已经推出了跟Spresense完全匹配的附加板,我将使用ROHM的附加板,在短时间内简单地制作一个可以进行传感器检测的设备!

本项目所需部件

・SONY Spresense 主板
Spresense

・ROHM 传感器附加板
SPRESENSE-SENSOR-EVK-701

・小型锂聚合物电池(400mAh)和电源插座
(※注:请小心处理,使用风险自负)
3-1

・Micro USB 数据线
・Micro SD 卡
・日本百元店就能买到的外壳

 

本项目的流程

1. ROHM附加板介绍
2. 使用传感器附加板测量气温和海拔
3. 制作气温、海拔测量设备
4. 总结

1.ROHM附加板介绍

所谓的附加板,就是一类仅通过插入Spresense的GPIO引脚和端口,就能实现功能添加的电路板的总称。ROHM已经推出了支持传感器相关部件的附加板SENSOR-EVK-701和支持Bluetooth Low Energy的附加板BLE-EVK-701。

我们先来看看这一块传感器附加板。该附加板已经内置了3个传感器,它们分别是加速度传感器、气压传感器、地磁传感器。

2

因为已经内置了这些传感器,所以只需要连接Spresense,再运用ROHM提供的库文件,就可以开始使用了。

另外,该附加板上也设有GPIO引脚,所以只需要在引脚上插入ROHM推出的传感器评估套件等,就可以轻轻松松地完成传感器的添加。

话不多说,接下来我们就来体验一下这一块传感器附加板。
先将传感器附加板插入Spresense的主板上的GPIO引脚,具体位置见下述图片。(如图所示,附加板的5个引脚要在GPIO的下方)

3

仅仅这一步,就可以使用Spresense实现传感器检测了。
接下来,在下述ROHM官网上,下载传感器的库文件。
https://github.com/RohmSemiconductor/Arduino

将下载下来的库文件群组保存在Arduino文件夹下。
我们先进行初步测试。双击气压传感器的BM1383AGLV.ino,这样Arduino IDE就会自动启动,然后将Spresense连上电脑,加载Sketch。
4

之后,打开串口监视器,怎么样?界面上显示出气压(hPa)和气温(Celsius)的数值了吧?实现气压和温度的测量,就是如此简单。
5

2. 使用传感器附加板测量海拔

通过初步测试,我们已经确认到传感器附加板连接成功,可以正常工作了。接下来就要用到各类传感器,进行稍微具体一点的测量。
首先,基于刚刚用到的气压传感器,简易地测量一下当前所在地的海拔。
可以利用下述公式,根据气压计算海拔,我们先要将相应的值代入公式。
6

在Arduino IDE中编辑下述内容。

altitude (m) = ((pow((标准大气压 /实测大气压), (1 / 5.257)) – 1) * (标准温度 + 273.15)) / 0.0065

这里用到的标准大气压是1013.15hPa,标准温度是15℃。所以,要在刚刚运行的BM1383AGLV Sketch的基础上,在loop中添加下述黄色部分内容。

/** altitude計算をloop内に追加 **/ 
   void loop() { 
 byte rc; 
 float press = 0, temp = 0, altitude = 0; 
   volatile float refPress = 1013.15;//高度計算に使用する基準高度での大気圧[hPa] 
 volatile float refTemp = 15.0;//高度計算に使用する基準温度[C] 
 rc = bm1383aglv.get_val(&press, &temp); 
 altitude = ((pow((refPress / press), (1 / 5.257)) - 1) * (refTemp + 273.15)) / 0.0065; 
   if ( rc == 0 ) { 
 Serial.print("ALT: "); 
 Serial.print(altitude);  
 Serial.println(" [m]"); 
 Serial.print("TEMP: "); 
 Serial.print(temp); 
 Serial.println(" [C]");  
 } 
   delay(500); 
 } 

 

将这一Sketch加载至Spresense,启动串口监视器,就可以开始测量海拔和气温了。这时,我们也可以把Spresense换个位置,确认海拔等测量结果是否会因此发生变化。

7

3. 制作气温、海拔测量设备

接下来,让我们用Spresense,制作成一个可以测量气温、海拔等信息的可穿戴式设备吧。
因为只需要通过Spresense的主板和电池就能测量,所以用日本百元店就能买到的外壳也可以装得下。当然,也需要留意,确保放进外壳之后,从壳体外面能够看到绿色的LED。
9

再加上钥匙扣或夹子等附件,就能把它挂在衣服或裤子等上面了。这样,爬山时带着这个设备,就能随时随地测量气温和当前所在位置的海拔等信息了。

10

在本项目里,我还将Spresense的LED做成了分段发光的式样,这样就可以在爬山等使用场景下,能够知道自己的所在位置是不是到了一定的海拔高度。我这次制作出来的设备,当海拔达到或者超出200m,就会有两个LED发光。

最终完成的Sketch如下,其中浅蓝色部分,也就是控制LED发光的命令,还可以改成当温度上升到某一数值时,就进行显示的命令。请根据您自己想测量的内容和想显示的信息进行调整。

#include  
 #include "BM1383AGLV.h" 
 BM1383AGLV bm1383aglv; 
   void setup() { 
 byte rc; 
   Serial.begin(115200); 
 while (!Serial); 
 Wire.begin(); 
   rc = bm1383aglv.init(); 
 if (rc != 0) { 
 Serial.println("BM1383AGLV initialization failed"); 
 Serial.flush(); 
 } 
 pinMode(LED0, OUTPUT); 
 pinMode(LED1, OUTPUT); 
 pinMode(LED2, OUTPUT); 
 pinMode(LED3, OUTPUT); 
 } 
   void loop() { 
 byte rc; 
 float press = 0, temp = 0, altitude = 0; 
 volatile float refPress = 1013.15;//高度計算に使用する基準高度での大気圧[hPa] 
 volatile float refTemp = 15.0;//高度計算に使用する基準温度[C] 
 rc1 = bm1383aglv.get_val(&press, &temp); 
 altitude = ((pow((refPress / press), (1 / 5.257)) - 1) * (refTemp + 273.15)) / 0.0065; 
   Serial.print("ALT: "); 
 Serial.print(altitude);  
 Serial.println(" [m]"); 
 Serial.print("TEMP: "); 
 Serial.print(temp); 
 Serial.println(" [C]");  
 Serial.println(); 
 delay(50); 
   if ( (altitude > 50) && (altitude < 200) ) { digitalWrite(LED0, HIGH); } else if ( (altitude >= 200) && (altitude < 300) ) { digitalWrite(LED1, HIGH); } else if ( (altitude >= 300) && (altitude < 400) ) { digitalWrite(LED2, HIGH); } else if (altitude >= 400) { 
 digitalWrite(LED3, HIGH); 
 } else { 
 digitalWrite(LED0, LOW); 
 digitalWrite(LED1, LOW); 
 digitalWrite(LED2, LOW); 
 digitalWrite(LED3, LOW); 
 } 
 } 

 

即使是本项目里面用到的小电池,也能用上好几个小时。因此,强烈建议在春光烂漫的季节里,带上自己亲自制作的小设备,在确认气温和海拔等信息的同时,闲情散步,为您的健康管理添砖加瓦!

4. 总结

在本项目里面,我们用到了ROHM推出的附加板。
只要将附加板插入Spresense,就能测量加速度、气压、地磁的数值,非常方便。ROHM推出的其他传感器也不需要焊接,就可以直接使用。有了它们,使用Spresense进行电子制作的门槛一下子就低了很多,对吧?
此外,这款开发板的功耗非常低,即使是小型电池,也能长时间使用,对于制作移动设备来说,简直是再合适不过了。

下次,我将进一步添加传感器等部件,制作更多的有趣的电子作品。
敬请期待!

(吉田)

 

 

本系列连载的内容

第1篇:什么是Spresense?
第2篇:使用Spresense制作高分辨率音乐播放器!
第3篇:使用ROHM附加板,通过Spresense轻松实现传感器检测!(本文)
第4篇:使用ROHM的BLE附加板,通过智能手机玩转高分辨率音乐播放器!
第5篇:使用Spresense相机板制作数码相机!

吉田 显一(Yoshiken)
吉田 显一(Yoshiken)

在普通公司工作的上班族,非常喜欢创作的周末创客,出版了电子书MESHBOOK,平时也写写博客。
http://blog.ktrips.net

相关文章

  1. arduino-h02_14

    用Arduino制作的太阳能电池板供电数字养殖箱【后篇】

  2. 用Spresense扩大电子制作的广度!【第5篇】

  3. 用Spresense扩大电子制作的广度!【第4篇】

  4. spresense_2

    用Spresense扩大电子制作的广度!【第2篇】

  5. title_image

    用Spresense扩大电子制作的广度!【第1篇】

  6. learning-electronics-03-00

    超越LED闪烁!更多了解电子制作“N讲”【第3篇】

  7. learning-electronics-02-08

    超越LED闪烁!更多了解电子制作“N讲”【第2篇】

  8. learning-electronics-01-09

    超越LED闪烁!更多了解电子制作“N讲”【第1篇】

  9. 电机的种类有哪些?电子制作中使用的电机种类介绍

TECH INFO

  • Sugiken老师的电机驱动器课堂
  • 重点必看
  • 技术分享
  • Arduino入门指南

基础知识

  • Si功率元器件
  • IGBT功率元器件
  • 热设计
  • 电路仿真
  • 开关噪声-EMC
  • AC/DC
  • DC/DC
  • 电机
  • 传递函数

工程技巧


Sugiken老师的电机驱动器课堂

PICK UP

PAGE TOP