实现远程调试与上传程序
之前的教程通过离线编辑Python代码实现了NyBoard执行序列动作的功能。 但是这样很不方便,每当需要修改代码, 我们需要拔下WiFi模块进行修改,也不能在执行过程中灵活的暂停、修改参数。 究其原因,ESP8266只有一个串口,我们需要使用它与NyBoard进行通信。 好在MicroPython利用ESP提供的WiFi功能实现远程无线Python调试-WebREPL。
我们在官方文档的基础上,结合模块的特点,撰写了以下教程:
连接设备后,在shell界面输入import webrepl_setup
,根据指南输入
启动时启用webREPL: E
设置密码:你自己的密码(演示为:1234)
重复密码
重启8266模块:y
我们使用下面的demo程序,注意将SSID和密码换成您身边使用的网络信息。
启动程序后,会不停连接WiFi网络,一旦连接上,会自动启动设备的WebREPL服务。
记住这个IP地址(路由器DHCP自动分配的),配置WebREPL时有用。
我们通过WebREPL来调试Python,原先的串口用来和NyBoard通讯。 所以在选项
中,将原先的USB-COMx
接口修改成WebREPL
。
然后我们填入WebREPL的IP地址、端口及密码,点击OK
。
完成后会连接,当显示WebREPL Connected
表示连接成功了。
我们可以试着运行一些简单的程序,如blink
。
WebREPL节约了串口,并支持无线调试。缺点是速度较慢(因为存在网络延迟),软件复位等待时间比较久。
现在我们可以使用webREPL来调式程序了,但是我们打开串口监视器会发现,每当我们运行程序,串口会发出一系列的调试内容: 这些海量的字符串会导致我们的NyBoard来不及处理而宕机,如下图所示:
我们希望在调试程序的时候,串口只输出我们希望输出的指令,而不是这些Debug信息。 打开设备上的boot.py
文件,将uos.dupterm(None, 1)
这行代码取消注释并保存,解除串口和REPL debug的绑定。 再次重启模块,串口调试助手就不再打印debug信息了。
作为补充,我们可以通过print()
指令输出debug信息,这些信息会通过WiFi显示在Shell上。
至此,大家可以方便的使用WiFi模块通过webREPL调试Bittle进行基于MicroPython的动作序列编辑。