ADS1115和INA219还不能在microBlocks下正常工作,所以心里总惦记是个事儿。早起想再琢磨一下,怕影响别人,没开灯,黑咕隆咚看不清接线。VL6180X的接线还没拆,正好在microBlocks下测试一番。Wemos D1 R32号称是最像Arduino UNO的板子,手上的这个是仿制板,排母不但有印错了IO的,而且丝印和母座偏离,看着插孔会插错位置的。幸亏Arduino UNO的引脚比较熟悉,模模糊糊都能摸出来正确位置。 本来以为吹气般容易的事儿,结果整死出不来正常测量来:microBlocks自带的VL6180X驱动太魔性了!!! 最初调入的时候,只显示了常用的3个Block块。没注意看,第1个是vl8161 connected。因为直接say不出来vl6180x read(mm)数据来,总提示“Error:I2Cvalue must be between 0 and 255”,于是强行去给vl8161connected赋值,总无法拖动;保存出去ubp用文本格式改写,直接返回来就是错误。 再去怎么做?显示高级积木,然后打开setup、setup1、setup2去看原理,吼!差点儿吓瘫了,光list就好几坨,去核对一个一个自定义的write和read,有点儿说不过去了。 琢磨microBlocks干啥?简单啊;这是简单吗?显然不够简单了。取出来Arduino IDE看看是不是模块出问题了。直接编译AdaFruit自带的例子,打开串口监视器,VL6180X是正常的。 看来问题就在microBlocks自带的驱动库上面了。到wiki上找一找,microBlocks没有提供这种传感器的例程。想了N久。还是得梳理一下自带vl6180x库的逻辑,没懂作者的逻辑,但是明显的_vl6180x initalized是个开关量:如果自己是0,就去折腾,折腾完了再把自己置为非0………… 问题出现了,_vl6180x initalized在什么地方置为非0的呢?好像没看见。那我们自己先设一个_vl6180x initalized非0应该就可以了吧?一试果然,菜刀呢?这个库的作者在搞什么啊?! 在代码区放四个“当启动时”程序块,_vl6180x initalized分别设为100、-1000、280和0,依次点击,点到右上角的_vl6180x initalized为0的程序块时,microBlocks杀死了VL6180X模块,数据也不再采集。 在_vl6180x initalized非0的情况下画图,一切正常。microBlocks自带有VL53L0X和VL53L1X的驱动库,只是手边没有这两个模块。不管怎么说,microBlocks可以做不少事儿了,现在。 是该总结总结、体会体会的时候了: 1.microBlocks例程太少。一少是官网learn那里,就少有这种传感器模块的例子应用,这可能是microBlocks定位不在这个调调上的原因。它首先是针对小朋友们用着是否有趣和活泼去的,这种裸传感器不易引起小朋友的乐趣,可能不是开发团队的关注点。二少是虽然这些驱动库改写于Arduino下的例子,但是改写完毕,原来的Arduino例程多数参考不上了。一边看Arduino代码一边用microBlocks能是开发者的本心吗?三少是microBlocks的wiki访问速度比较慢,好像不番茄是看不到的。 2.microBlocks学习资料少。这个可以理解,毕竟是正在完善中的工具。但是一些应用的传感器就需要慢慢慢慢的积累经验,比如这里的VL6180X传感器,刚开始想破脑袋也想不到把开关量先初始化个非0即可,另外象ESP32直接测引脚上的模拟电压,microBlocks大概是为了统一标准吧,竟然全部统一成了8位转换的。还有就是没有的驱动,硬撑着要自己写,这个就失去了“低代码”的意义了。人们选择低代码工具,不只是编程的门槛问题,还有一个代码的健壮问题,就是容错能力,低代码工具如果没有足够强的健壮性,非专业使用者拖拉之后不能直接用,就不太好玩了。 microBlocks当前不那么让人满意,但我还真祝愿它千万别“鸽”了,象前面测试时在代码区直接放4个程序片,然后piapia点谁谁运行,谁运行谁出效果,这玩意还真的是太神仙了!还真没哪个IDE能干出这种丧心病狂、神乎其技的事儿来!因为过度的方便以致microBlocks万一不完美就会痛恨它的亚子就这样,这和足球完全不同。 3.目前microBlocks能使用来做的关于物理实验的事情——测距:超声波传感器HC-SR04、VL6180X。测正电压:直接用引脚。温度和压强:DHT11和22、BMP280。欠缺HX711测力及ADS1115、INA219。其它的可慢慢增补。 4.是否可以硬件虚拟化的问题。当microBlocks升级固件失败的时候,就会跳出来debuger,可以看到升级固件的内幕,是把vmData数据写入到它所支持的ESP32等开发板里。既然能够制作各种板子的固件和虚拟机了,那么是否也能把硬件也虚拟了,即使没有硬件或不方便把硬件接入电脑的时候,也能用microBlocks做点儿事呢? 对了,忘了记一下接线脚了:Vin-5V;余下SDA、SCL、GND一一对应即可,VL6180X上面有个2V8,是专门用于稳压输出给别的东西使用的。也不知道什么东西需要用2.8V稳压。 |
|
来自: 新用户5228KeDY > 《待分类》