开发环境是一个网页,图形化的编程直接在页面上进行,页面与硬件的连接使用的是webserial。
webserial是一种使用JavaScript对串行设备进行读写的方法。串行设备可以通过用户系统上的串行端口连接,也可以通过模拟串行端口的可移动USB和蓝牙设备连接。
由于 《“当开机时”与“当开机时循环”的坑》 的原因,当代码中的两者只留一个,删除其中的一个,使逻辑更清晰。
由于“当开机时循环”的这个函数,一开始就是一个while True:,并没有提供初始化的一些接口,所以,这里就只使用“当开机时”,并在其中添加循环积木块
如下这样的逻辑块作为一个基本的结构。

这样,初始化部分的代码,可以放到“当开机时”与重复执行之间,需要重复执行的,就放在循环内就可以了。
例如,如下的这个积木组,是一个流水灯,用到了自定义变量,LED的单点点亮,延时、逻辑判断。

变量的使用有以下几个代码块,使用建立变量来新的变量,并可以命名。

这里有一点操作是比较好的,就是单个代码块可以被选中,可以被复制与粘贴,一些已经使用过的代码块,可以直接从已有的代码块上复制后修改参数。
其他的一些图形化的编程界面,已经放置的代码块一般都没法复制、粘贴,只能从库里重新拖拽。
对应的代码如下:
import QHos,QHled
def pre_run():
return
def aftrer_run():
return
b = None
a = None
def powerOn():
QHled.clear_led()
global b
b = 0
global a
a = 0
while True:
QHled.show_pixel(a,b)
QHos.usleep(200)
a = (a if isinstance(a, int) else 0) + 1
if a >= 5:
a = 0
b = (b if isinstance(b, int) else 0) + 1
if b >= 5:
b = 0
QHos.usleep(200)
QHled.clear_led()
return
powerOn()
可以看到程序import的有 QHos,QHled,这两个应该是官方自己定义设计的,没有找到其他的文档说明。API与其他的用法目前还不知道,无法直接使用python来编程,只能是用图形化的积木块了。
这里的延时时间,单位虽然是毫秒,但是应该有一个最小的时间限制,因为修改成1毫秒的话,灯的速度也没有什么变化,不会在25毫秒内全亮的。这可能是与固件源码中的设计有关。
如果这个代码块有限制,在输入参数时,最好是限制一下,当小于限值时,进行修正,不然,会有误解。毕竟是教育行业的产品,严谨性还是要有的。
这种只用到LED的代码,可以不用硬件,直接在网页上的虚拟开发板上运行.

b88580585ce39747aa9e4c70ec925e37
|