M5Stack
或USB Serial
, Windows推荐使用驱动文件在设备管理器直接进行安装(自定义更新), 可执行文件安装方式可能无法正常工作)。
点击此处,前往下载FTDI驱动
系统偏好设置
- >安全性与隐私
- >通用
- >允许以下位置下载的App
- > App Store和认可的开发者选项
。1.下载固件和Kflash_GUI烧录工具。
固件版本 | 下载链接 |
---|---|
M5StickV_Firmware_v5.1.2.kfpkg | Download |
2.将设备通过Tpye-C数据线连接至电脑,双击打开烧录工具Kflash_GUI应用程序,选择对应的设备端口、开发板类型(M5StickV)、固件程序、波特率. 点击下载,开始烧录.
1.设备的USB将默认启用为系统log端口, 用户可使用该接口连接至电脑, 使用putty或MobaXterm之类的终端工具进行访问, 默认波特率为115200bps
, 以下操作基于putty进行操作, 请点击下方链接下载putty安装包,并根据操作指引实现登录。
2.运行Putty后,将UnitV通过Tpye-C数据线连接至电脑端口,在Putty中设置相应的端口号与波特率,点击"open",开始连接. (你可以通过查看设备管理器得到UnitV所使用的端口号)
3.连接成功后,将自动进入MaixPy 的交互界面. 此时设备正在运行着默认程序,您可以通过按下快捷键"Ctrl+C"中断其运行,并进入命令行.
在交互解释器(REPL)中,我们能够便捷的输入程序并马上得到运行结果,但这仅适合用作短程序的验证,在实际项目中,庞大代码量使得我们不得不将代码编辑成一个个的文件.
在 MaixPy 中,内置了一款编开源编辑器 Micropython Editor(pye) ,这使得我们能够非常方便的修改程序文件.
使用 os.listdir()
可以查看当前目录下的文件,
使用 pye("hello.py")
可以创建文件并进入编辑模式(已存在同名文件,则仅进入编辑), 快捷键等使用说明可以在
这里查看
在编辑器中完成编辑后,按 Ctrl+S
> Enter
键进行保存, 按 Ctrl+Q
退出编辑
注意: 使用这款编辑器对使用的串口工具有一定要求, 必须将 BackSpace
按键设置为 DEL
功能, 否则按 BackSpace
调用的是 Ctrl+H
一样的功能(即字符替换)
使用 os.chdir()
切换当前目录到文件的目录,比如 os.chdir("/flash")
import
然后执行 import hello
即可看到输出 hello maixpy
使用此方法简单易用,但是需要注意的是, 目前 import
只能使用一次, 如果第二次 import
, 则文件不会再执行, 如果需要多次执行,建议使用下面的方法
exec()
使用 exec()
函数来执行
with open("hello.py") as f:
exec(f.read())
系统会在 /flash
或者 /sd
目录创建 boot.py
文件, 开机会自动先执行这个脚本, 编辑这个脚本的内容即可实现开机自启
MaixPy IDE能够便捷的实现脚本程序的实时编辑、上传、执行,以及实时监控摄像头图像,文件传输等功能.使用 MaixPy IDE 因为数据的压缩、传输需要耗费一部分资源,所以性能会有所降低,但对性能需求不苛刻,或处于调试阶段的开发者来说这会是一个很不错的开发工具.
Windows平台可直接双击exe文件,运行安装程序.
Linux命令行给运行权限然后,执行命令
chmod +x maixpy-ide-linux-x86_64-0.2.2.run
./maixpy-ide-linux-x86_64-0.2.2.run
运行MaixPy IDE, 点击工具栏,选择开发板的型号.Tool
-> Select Board
-> M5StickV
(工具->选择开发板)
点击左下角的连接按钮,并选择正确的连接端口,点击OK.
当连接按钮由绿色变为红色的时表示,已经连接成功,你可以在上方的编辑框进行代码编辑,点击左下角的运行按钮能够执行代码,进行验证.
固件内置了WS2812 RGB LED驱动库,以下为参考例程. 注意:由于UnitV的拓展端口不具备驱动负载功能,因此该程序仅适用于驱动内置的RGB LED:
from modules import ws2812
from fpioa_manager import *
fm.register(8)
class_ws2812 = ws2812(8,100)
r=0
dir = True
while True:
if dir:
r += 5
else:
r -= 5
if r>=255:
r = 255
dir = False
elif r<0:
r = 0
dir = True
for i in range(100):
a = class_ws2812.set_led(i,(0,0,r))
a=class_ws2812.display()