1、前言
测距仪是我们日常生活中经常用到,但是又很容易被忽略的工具。比如,在测量身高,购买各种家具,装修房子等场景。另外,它不仅仅能够被用于生活场景,也会被用于工程和建筑的专业测量场景。在这些场景需要高精度的测量仪器。
测距仪广泛的使用场景,很多HaaS开发者会问HaaS100可以做测距仪吗?
回答是可以的。HaaS 100支持了丰富的外设传感设备,可以很快的搭建出测距仪应用方案。
2、测距仪方案
2.1、硬件选型
主控板
选用HaaS100作为主控开发板。HaaS100是一款高性能的针对广大开发者的一款HaaS主力开发板。
HaaS 100的相关介绍可以参考https://blog.csdn.net/youngwah292/article/details/108943898。
超声波模块
超声测距传感器选择US-100超声波模块。模块购买链接。在示例中US-100使用的是UART串口模式。
主要的产品参数如下表格
工作电压 |
DC 2.4V~5.5V |
静态电流 |
2mA |
工作温度 |
-20~+70度 |
输出方式 |
电平或UART(本案使用UART方式) |
感应角度 |
小于15度 |
探测距离 |
2cm~450cm |
探测精度 |
0.3cm+1% |
UART模式下串口配置,波特率9600,启示位1位,停止位1位,数据位8位,无奇偶校验,无流控制 |
显示屏
显示屏幕选择使用0.96寸的OLED屏幕,屏幕使用SPI接口。模块购买链接。
相关器件的硬件性能说明可在购买链接中找到。
2.2、硬件接线
主控开发板HaaS100和超声测距模组之间的连线。超声测距模组包含了两根GND,连接其中一根即可。
主控开发板和0.96寸OLED屏之间的连线。
3、方案分析
3.1、源代码分析
参考HaaS100快速开始下载HaaS100的源代码。
测距仪相关的代码路径
application/example/rangefinder_demo
源代码树
.
├── aos.mk
├── app_entry.c
├── Config.in
├── maintask.c // 主任务入口
├── oled_display.c // OLED显示源代码
└── rangefinder.c // 测距仪源代码
OLED用于显示打印的接口函数
void OLED_Show_String(uint8_t x, uint8_t y, const uint8_t *p, uint8_t size, uint8_t mode);
void OLED_Show_Char(uint8_t x, uint8_t y, uint8_t chr, uint8_t size, uint8_t mode);
可以使用打印接口函数在OLED屏幕上显示信息。
3.2、编译和烧录
测距仪的编译命令
cd PATH_TO_ALIOS_THINGS
aos make rangefinder_demo@haas100 -c config
aos make
环境安装和烧录步骤HaaS 100快速开始中的相关章节。
3.3、效果展示
示例运行checklist
镜像的成功编译 |
参考HaaS 100快速开始 |
镜像的成功烧录 |
参考HaaS 100快速开始 |
外设和主控板之间的连线 |
参考上文硬件连线部分 |
在确认了checlist后,每按一次功能按键(功能按键位置请参考下面截图),都会重新出发一次测距功能。
效果请参考下面截图。
4、总结
HaaS 100作为一款开发板,通过和传感器结合,可以应用在很多不同的场景。还有更多的有用的方案,期待大家的一起共创。喜欢本文的朋友可以点赞收藏,评论区回复交流哦,谢谢。
开发者技术支持
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号
更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/