无线micropython设备的命令行工具
upydev的Python项目详细描述
upydev
无线micropython设备的命令行工具
upydev是"micropythondevice"的缩写,它是一个命令行工具,用于简化基于运行micropython的板的设备的开发、原型制作和测试过程。
它是"无线micropython设备"的命令行工具,因为它使用了webrepl协议提供与设备的通信和控制。
*upydev构建在其他工具/脚本之上,这些工具/脚本是:
核心是"webrepl_client.py":a终端webrepl协议如webrepl pull请求所示
其他工具有: 文件传输协议的"webrepl_cli.py"(来自micropython的webrepl repo)(已修改并命名为"upytool") 'esptool.py'将固件闪存到ESP板中 "mpy-cross"将.py脚本编译为.mpy文件。 请记住,此项目处于alpha状态,有时,某些命令可能无法工作/返回任何内容 首先确保webrepl后台程序已启用并正在运行请参见webrepl-a-prompt-over-wifi和 启用webrepl python模块(使用pip自动安装): argcomplete(用于命令行自动完成) 提示工具包(用于新的webrepl终端实现) MacOS X(莫哈韦10.14.5) raspbian gnu/linux 9(扩展)(通过ssh会话) 对于raspbian,pip install mpy cross似乎失败了,因此要安装upydev而不安装mpy cross,请执行以下操作: UPY板: ESP32 Huzzah羽毛 ESP8266 Huzzah羽毛 在cli中do: 第一步:配置upy设备目标和密码: 将配置保存到工作目录: 示例: 要全局保存配置,请使用-g选项: 示例: upydev将使用本地工作目录配置,除非它找不到任何工作目录或使用-g选项手动指示。 用法: <代码>$upydev[模式][选项]或upydev[upy命令][选项] 这意味着如果第一个参数不是mode关键字或
upy command关键字假定它是发送到upy设备的"原始"upy命令 示例:模式 示例:upy命令 示例:原始命令 配置:要保存upy设备设置(请参见-p,-t,-g),
因此不再需要目标参数和密码参数 放置:要将文件上载到upy设备(请参见-f、-s和-rst;有关多个文件,请参见-fre选项) 获取:要从upy设备下载文件(请参见-f和-s;对于多个文件,请参见-fre选项) 同步:快速传输大文件
(这需要upy设备中的sync_tool.py)(请参见-f、-s和-lh;对于多个文件,请参见-fre选项) >;sync_tool.py位于upyutils目录下
cmd:出于调试目的,向upy设备发送命令;(请参见-c,-r,-rl); wrepl:要进入终端webrepl;ctrl-x退出,ctrl-d进行软重置
要查看更多键绑定信息,请执行ctrl-k
(在先前的工作中添加了自定义键绑定和选项卡上的自动完成功能)
请参见:终端webrepl srepl:要使用picocom输入终端串行repl,请指示逐端口选项
(要退出do ctrl-a,ctrl-x)(有关详细信息,请参见:picocom) ping:ping目标以查看它是否可以到达,ctrl-c停止 运行:只需调用import'script',其中'script'由-f选项指示
(脚本必须在upy设备或-s选项指示的sd卡中
而且SD卡必须已安装为"SD"); 支持ctrl-c停止执行并顺利退出。 安装:使用upip将libs安装到"/lib"路径;使用-f选项指示lib mpyx:要冻结用-f选项指示的模块/脚本,并保存一些RAM,
它使用mpy cross工具(有关详细信息,请参见mpy cross) timeit:测量用-f选项指示的模块/脚本的执行时间。 这是一个改编版的timed\u函数 fw:要列出或获取可用固件版本,请使用-md选项指示操作:
-列出do:"upydev fw-md list-b[board]"board应为"esp32"或"esp8266"(micropython下载页面的web抓取)
-获取do:"upydev fw-md get[firmware file]"(使用curl)
-看AV可用串行端口do:"upydev fw-md列出串行端口" 闪存:要将固件文件闪存到upydevice,必须指示串行端口
到flash do:"upydev flash-port[串行端口]-f[固件文件]" 请参见:获取用-c选项指示的特定命令帮助信息 生成组:生成一组要向其发送命令的板。使用-f表示组的名称 和-devs选项,用于指示每个板的名称、IP和密码。(要全局存储组设置,请使用-g选项) 组命令模式(-g选项): 要向组中的多个设备发送命令(使用make_group命令生成),请使用-g选项 用法: 要将组中的特定设备作为目标,请将-devs选项添加为 upydev将使用本地工作目录配置,除非它找不到任何工作目录或使用-g选项手动指示
组命令并行模式(-GP选项): 要同时向组中的多个设备发送命令,请使用-gp选项。 **请注意,并非所有命令都适合并行执行(例如wrepl) 用法: 要将组中的特定设备作为目标,请将-devs选项添加为 upydev将使用本地工作目录配置,除非它找不到任何工作目录或使用-g选项手动指示
upy命令组织在: 常规:这些命令应该在任何启用了webrepl后台程序的micropython运行板中"开箱即用"。 sd:这些命令至少需要upy设备中的sdcard.py和sd模块/屏蔽。 输入:这些命令需要特定的传感器模块和upydevice中的相应脚本(所有这些脚本都位于upyutils目录下)
输出:这些命令使用板的DAC或PWM,有些命令至少需要一个执行器模块(蜂鸣器或电机驱动器和电机)和upydevice中的相应脚本。 网络: 端口/板特定命令: 有关详细的说明和命令演示,请参见文档特点:
入门
要求:
测试时间:
$ git clone https://github.com/Carglglz/upydev.git
[...]
$ cd upydev
$ sudo pip3 install . -r rpy_rqmnts.txt
使用pip安装:
$pip安装upydev
快速参考:
帮助:
$upydev-h
配置upy设备:
$upydev config-t[upydevice ip]-p[密码]
$upydev config-t 192.168.1.58-p mypass
$upydev config-t[upydevice ip]-p[password]-gt
$upydev config-t 192.168.1.58-p mypass-g t
upydev用法:
$upydev put-f dummy.py
$upydev info
$upydev"my_func()"
$upydev 2+1
$upydev"导入my lib;foo();my var=2*3"
upydev模式/工具:
$upydev cmd-c"led.on()"
$upydev cmd-r"打印('hello upy')"
$upydev cmd-rl"打印多行的函数"
upydev[command]-g[group name]
-devs[dev_1 name][dev_2 name]
upydev[command]-gp[group name]
-devs[dev_1 name][dev_2 name]
upydev命令:
详细说明:
某些命令的附加脚本:
需要在upy设备中添加脚本的命令位于upyutils文件夹下。
有关详细信息,请参见upyutils_docs