打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
体验MicroBlocks的HC-SR04超声测距驱动库

放假多日了,没再到学校去;每个学期都有累屁了的感觉,天天脑袋上戴个帽子。所有的小传感器们都放在了学校,手边只有一个还没有组装的51小车上面的HC-SR04超声波传感器,而MicroBlocks恰好自带了HC-SR04的传感器Libraries库,正好试试。调入HC-SR04之后会发现,就一个Block,按照Block上标记的triggerecho引脚接上指定的引脚就行了。默认的是24,这两个数字本质上相当于自定义函数参数的默认值,一会儿能看到原理。

1 MicroBlocks内置的HC-SR04

我们把24改一下,接Wemos D1 R32IO14IO27。实际Wemos D1 R32的引脚为了与Arduino UNO长的一样,它们被安排在原来UNO板的Digital数字引脚的区域那里,但是使用的时候,我们不能用D7D6来引用它,也不能76或其它数字来引用,只能老老实实用IO上的标记。

2 Wemos D1 R32管脚分布

之后把HC-SR04VCC接到5VGND对着GND。拖拽几个BlocksWait 50milliseconds的目的,是为了减少一些毛毛刺刺的数据噪声。

3 MicroBlocks编写的ESP32下超声测距程序

打开数据表格,运行,到HC-SR04的两只大眼睛前面摆几下手,记录下来曲线一条。

4 MicroBlocks记录的超声测距数据曲线

现在回头看一下图3MicroBlocks得到的HC-SR04程序,它没有传统Arduino里面的pinMode指定引脚状态的语句。再与MixlyHC-SR04程序比较一下,则要显得复杂一些。

5 Mixly创建的HC-SR04测距程序

如果在Mixly窗口里展开代码窗口,就可以看到Mixly虽然只给摆放了一行Block,但它在背后已经默默做了很多Arduino下的代码工作,代码窗口里面我们不但看到了熟悉的pinMode,还看到了puseIn函数。

6 MixlyArduino代码窗口

那么MicroBlocks为我们默默做了什么呢?我们到HC-SR04提供的Block上面去右键,看到show blocks definition…,点开它,窗口砰的一声展开来一大堆BlockHC-SR04的驱动原理一下子展示出来了。(仿照MicroBlocks内置的驱动库,是不是就可以模仿着写自己的驱动库了呢?)

7 MicroBlocks内置的HC-SR04驱动库

define提示我们前面用过的驱动库的Block块,就是这儿的一个函数,如果有第二个define,那就有第2Block了。然后是默认参数,注释。这个define里面包含的set read pin显然就是MixlyArduinopinMode的动作了。它们不是没做。做了,使用者感觉不到。再向后面,就会看到ArduinopulseIn函数重新实现的过程,是通过两个时间戳计算的,所以它当然会在适用于各种各样的板子时,还能适用于ESP32板子的开发,因为它的小块块儿们都是用最底层的函数实现的。而这些最底层的函数由谁来支持呢?大概就是那个支持各种各样板子的“固件”——虚拟机。我们在update firewire的时候,ESP32的固件被MicroBlocks重新烧写,这个新固件支持的函数就是最底层的,用它们拓展出来的库,作用于新的板子,就满足一次编写,到处运行了。再挖下去,写到ESP32里面的固件在哪里?应该是在MicroBlock自身的执行程序里面,这很容易测试:①断网,更新固件,仍然能够更新成功;②MicroBlocks除了一个exe可执行程序再什么也没有了。

8 HC-SR04驱动库内幕

被MicroBlocks更新过固件后的ESP32一下子到了夏天,它们仿佛再不承认自己是蝙蝠蛾的后代,它们的脑门上因为长着小草而无所不能。

后面的事情,是有闲的时候,学习一下内置库们(毕竟硬着头皮去改写ADS1115INA219驱动库我还没那个能力哈

。MicroBlocks只有拓展出这些电压、电流、霍尔传感器的驱动库,才可能使它应用于ESP32的物理实验开发领域里面去;但是显然,MicroBlocks一定没有想到自己作为比Mixly还要傻瓜而友好的环境,对于普及和推广它到达从来没有任何编程经验和满身是随想随编、随编随试的不良编程习惯的人群中的重要意义——物理实验使用ESP32+传感器模块,极少有庞大的代码量,只要接收到I2C和SPI模块的数据就够了~~)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
01走进Arduino的世界优质教育课件PPT
Arduino轻松学Mixly编程第16课
Mixly--强大的Arduino图形化编程工具
Arduino常用库集合
关于中国电子学会青少年机器人技术等级考试三级~六级实操考试软件及编程语言说明
图形化编程软件有哪些?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服