无线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 web browser交互提示

要求:

启用webrepl

python模块(使用pip自动安装):

argcomplete(用于命令行自动完成)

提示工具包(用于新的webrepl终端实现)

mpy-cross

esptool

测试时间:

MacOS X(莫哈韦10.14.5)

raspbian gnu/linux 9(扩展)(通过ssh会话)

对于raspbian,pip install mpy cross似乎失败了,因此要安装upydev而不安装mpy cross,请执行以下操作:

$ git clone https://github.com/Carglglz/upydev.git
[...]
$ cd upydev
$ sudo pip3 install . -r rpy_rqmnts.txt

UPY板:

ESP32 Huzzah羽毛

ESP8266 Huzzah羽毛

使用pip安装:

$pip安装upydev

快速参考:

帮助:

在cli中do:

$upydev-h

配置upy设备:

第一步:配置upy设备目标和密码:

  • 将配置保存到工作目录:

    $upydev config-t[upydevice ip]-p[密码]

    示例:

    $upydev config-t 192.168.1.58-p mypass

  • 要全局保存配置,请使用-g选项:

    $upydev config-t[upydevice ip]-p[password]-gt

    示例:

    $upydev config-t 192.168.1.58-p mypass-g t

upydev将使用本地工作目录配置,除非它找不到任何工作目录或使用-g选项手动指示。


upydev用法:

用法:

<代码>$upydev[模式][选项]或upydev[upy命令][选项]

这意味着如果第一个参数不是mode关键字或 upy command关键字假定它是发送到upy设备的"原始"upy命令

示例:模式

$upydev put-f dummy.py

示例:upy命令

$upydev info

示例:原始命令

$upydev"my_func()"

$upydev 2+1

$upydev"导入my lib;foo();my var=2*3"


upydev模式/工具:

  • 配置:要保存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);

    • 示例:

    $upydev cmd-c"led.on()"

    $upydev cmd-r"打印('hello upy')"

    $upydev cmd-rl"打印多行的函数"

    • 提示:简单的命令可以不加引号;但对于带括号或特殊字符的命令,请使用引号,例如:"dummy_func()";当命令包括这样的字符串:"uos.listdir('/sd')"
  • 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选项

用法:upydev[command]-g[group name]

要将组中的特定设备作为目标,请将-devs选项添加为-devs[dev_1 name][dev_2 name]

upydev将使用本地工作目录配置,除非它找不到任何工作目录或使用-g选项手动指示

组命令并行模式(-GP选项)

要同时向组中的多个设备发送命令,请使用-gp选项。

**请注意,并非所有命令都适合并行执行(例如wrepl)

用法:upydev[command]-gp[group name]

要将组中的特定设备作为目标,请将-devs选项添加为-devs[dev_1 name][dev_2 name]

upydev将使用本地工作目录配置,除非它找不到任何工作目录或使用-g选项手动指示


upydev命令:

upy命令组织在:

  • 常规:这些命令应该在任何启用了webrepl后台程序的micropython运行板中"开箱即用"。

  • sd:这些命令至少需要upy设备中的sdcard.py和sd模块/屏蔽。

  • 输入:这些命令需要特定的传感器模块和upydevice中的相应脚本(所有这些脚本都位于upyutils目录下)

    • ADC:使用来自板或外部ADC模块(ADS1115)的ADC的命令(对于外部模块,需要"ADS1115.py"和"init廑ads.py")
    • imu:使用lsm9ds1模块的命令,尽管其他imu模块可以很容易地实现(需要"lsm9ds1.py"和"init我的imu.py")
    • 天气:使用bme280模块的命令,尽管其他天气传感器模块可以很容易地实现(需要"bme280.py"和"init\u bme280.py")
    • 电源:使用INA219模块的命令。
  • 输出:这些命令使用板的DAC或PWM,有些命令至少需要一个执行器模块(蜂鸣器或电机驱动器和电机)和upydevice中的相应脚本。

    • DAC:生成模拟信号(直流值、正弦波或正方波)(需要"DAC\U信号"py')
    • 蜂鸣器:用脉冲宽度调制(需要"buzzertools.py")驱动蜂鸣器
    • 直流电机:控制直流电机(需要电机驱动器和适当的脚本)(需要"dc motor.py")
    • 伺服:驱动伺服电机(需要"servo.py")
    • 步进电机:驱动步进电机(需要电机驱动器和"stepper.py")
  • 网络:

    • mqtt:用于连接代理、订阅主题、发布和接收消息的命令(需要"mqtt_client.py")
    • <斯特罗ng>套接字:启动客户机/服务器套接字和发送/接收消息的命令(需要"socket_client_server.py")
    • urequest:用于发出http请求和获取json或文本输出的命令
  • 端口/板特定命令

    • 电池:如果使用电池,则获取电池电压(ESP32 Huzzah Feather)
    • pinout:要查看电路板的pinout引用/信息,请使用-b选项指示, 要请求一个或一个管脚信息列表,请使用-po选项(当前仅限esp32 huzzah feather)
    • 规格:要查看电路板规格,请使用-b选项(当前仅限ESP32 Huzzah Feather)
    • pin_status:要查看pin状态,要请求特定的set use-po选项

详细说明:

有关详细的说明和命令演示,请参见文档

某些命令的附加脚本:

需要在upy设备中添加脚本的命令位于upyutils文件夹下。

有关详细信息,请参见upyutils_docs

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java中的安卓字节[]操作   java如何使用SeleniumWebDriver自动弹出对话框窗口   运行单黄瓜JVM的java。来自Gradle的功能文件   在Java中使用JTA连接到SSH   eclipse为什么在从SVN签出Ant版本1.3时,Ant java项目本身有很多错误?   java如何获取撇号之间的字符串   java锁在单个线程上作为布尔信号量工作吗?   bluej我可以使用什么代码清除屏幕(java)?   java在单击JButton时更改JPanel图标   java将逗号分隔的字符串转换为不带中间容器的列表   java Flink:以集群模式加载资源文件   java删除多对多条目,同时将两个对象都保留在数据库中   将数组值向左移动