智能教育之电子积木的评测实验

Posted by 小一在此 on December 17, 2017

一个合作伙伴拿了几个他们的电子积木给我测试:

电子积木

他们的这个东东是磁吸附式的,连接起来很方便。其主控模块恰好用的就是nodeMCU,而我的PythonPi恰好也支持NodeMCU作为前端的物联网分控设备,所以很方便的就实现了互联互通。只是他们好像对NodeMCU的固件进行了定制化的剪裁,通用的NodeMCU API接口有些不支持,所以还是调试了一两天才修改完毕。然后又对python接口部分进行下修改以适应中小幼编程教学的需要。

然后做个实验来看看效果,由于他们给的开关模块好像有些问题,所以我就用杜邦线外接到面包板上的一个按钮开关,同时再接个旋钮开关做调光。由于一个端口不能同时做GPIO的输出和pwm,但又只给了我一个led模块,所以中间还需要将led模块换一下连接的接口才能完整的演示两个功能。

实验的连接图如下:

连接图

抓下的代码图如下,各语句说明见代码中的注释:

代码

该实验实现了两个功能:

  • 用按钮开关控制led1的亮灭

  • 用旋钮开关调节led2的亮度

而实际代码只有14行执行代码和4行导包代码,够简单的吧:)

实验效果的视频(10M多大)如下:

实验视频

原始视频有100多M,结果压得狠了点,有些模糊了:(

实验结果的总结:

  • NodeMCU的能力毕竟有限,所以目前在控制指令之间留出了0.3秒的等待间隔,以确保连续的指令流都能得到执行。这也就是视频中点击执行按钮后,有一个明显的停顿才弹出代码执行完毕对话框的原因

  • 合作伙伴提供的旋钮开关有很大的温度漂移。现在上海天有点冷,结果这来自广州的家伙被冻得哆哆嗦嗦的,所以视频里将该旋钮开关连上后表现的很不稳定,需要运行一段时间后才能慢慢稳定下来

  • NodeMCU的ADC(模数转换)好像能力有问题,视频里的实验是每秒读一次ADC的采样结果,但当外部输入不变时两次连续的读取有时竟然会出现很大的跳跃,目前还不清楚是否和旋钮开关的温度漂移有关,和通过I2C读取外部ADC的效果有很大的差距。但这个问题解决起来比较简单:PythonPi运行在树莓派上,可以通过树莓派用I2C接外部ADC来控制这些电子积木,精度和可靠性会比较有保证

总的来说,两者的初次结合还是很完美的哦,继续改进改进用于中小幼的编程教学还是绰绰有余的啦。

有对K12的STEM感兴趣的小伙伴吗?联系我啊:)

====================================================================================================

关注我的公众号及时获取推送的最新文章

公众号