2020-07-09 05:02:18 +08:00
[#]: collector: (lujun9972)
2020-07-25 09:48:45 +08:00
[#]: translator: (silentdawn-zz)
2020-07-29 00:12:05 +08:00
[#]: reviewer: (wxy)
2020-07-29 00:13:57 +08:00
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-12463-1.html)
2020-07-09 05:02:18 +08:00
[#]: subject: (Program IoT systems using Python with this VSCode plugin for RTOS)
[#]: via: (https://opensource.com/article/20/7/python-rt-thread)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
2020-07-29 00:12:05 +08:00
通过 VSCode RTOS 插件使用 Python 为物联网系统编写程序
2020-07-09 05:02:18 +08:00
======
2020-07-25 10:26:51 +08:00
2020-07-29 00:12:05 +08:00
> RTOS 之类的实时嵌入式操作系统使嵌入式系统的编程更简单
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
![](https://img.linux.net.cn/data/attachment/album/202007/29/001132c37u7u5qp284wef2.jpg)
物联网( IoT) 无处不在, 它意味着几乎所有的产品, 从冰箱到口袋手表, 都可以连网。为了实现这个目标, 每个产品都需要拥有一个嵌入式计算机来运行网络栈, 有些产品几乎是小的不可思议。这就是嵌入式软件出现的场景: 现代科技打造的非常小的计算机, 硬编码到硬件芯片, 不需要任何板外处理器、内存或者存储盘。
2020-07-09 05:02:18 +08:00
2020-07-25 10:26:51 +08:00
就传统视角而言,这种场景意味着没有操作系统可用,但是因为种种 [原因][2],开发者发现,类似于 RTOS 之类的实时嵌入式操作系统能让嵌入式系统的编程变得非常简单。
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
虽然 RT-Thread 嵌入式操作系统致力于鼓励程序员新手进入物联网领域,但并非所有的人都具备使用 C 语言硬编码微芯片的能力。幸运的是, MicroPython 通过让开发者创建运行于嵌入式系统的 Python 代码的方式, 逐渐填补了这个鸿沟。为了让整个过程更简单, RT-Thread 有一个可以用于 VSCode 和 [VSCodium][4] 的插件,为开发者提供了物联网方面的开发环境。其部分特性包括:
2020-07-09 05:02:18 +08:00
2020-07-25 10:26:51 +08:00
* 方便的连接方式,可以很容易的通过串口、网络或者 USB 连接到开发板(如果你使用过 Arduino, 肯定会很熟悉这个流程) 。
* 支持上传文件或目录到开发板。
2020-07-29 00:12:05 +08:00
* 支持基于 MicroPython 的代码,而且具有智能的代码补完、语法检查功能。
2020-07-25 10:26:51 +08:00
* 支持 MicroPython REPL 交互式环境。
* 丰富的示例代码和演示程序。
* 完整的工程同步功能。
* 快速运行内存中的程序代码。
2020-07-29 00:12:05 +08:00
* 运行函数的代码片段。
2020-07-25 10:26:51 +08:00
* 支持主流的 MicroPython 开发板。
* 支持 Linux 和 Windows 操作系统,并经过充分测试。
2020-07-09 05:02:18 +08:00
2020-07-25 11:56:53 +08:00
### 准备
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
在开始之前,如果你使用的是 Windows 操作系统,那么必须保证 VSCode 的默认终端是 [PowerShell][5]。运行 VSCodium, 从 “Terminal” 菜单项启动一个终端. 在显示在 VSCodium 窗口底部的终端界面,从下拉菜单顶端选择 “PowerShell”。
2020-07-25 11:56:53 +08:00
不论你是在 [Windows][6] 还是 Linux 系统下工作,必须保证安装了 Python 3( 在 Linux 上,它可能已经安装了,否则可以通过软件库安装它)。
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
还要安装的是微软提供的通用 VSCode Python 插件。安装方法是点击 “File” 菜单,找到 “Preferences” 子菜单,从中打开 “Extensions” 面板。在扩展中,搜索 “Python”, 找到来自微软的 Python 插件。
2020-07-09 05:02:18 +08:00
![VSCodium Python plugin][7]
2020-07-29 00:12:05 +08:00
当然,在上述操作之前,你要先正确安装 [VSCodium][9] 或 [VSCode][10]。
2020-07-09 05:02:18 +08:00
2020-07-25 11:56:53 +08:00
### 安装插件
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
安装 MicroPython 开发插件的方法与安装 Python 插件一样,点击 “File” 菜单,找到 “Preferences” 子菜单,选择 “Extensions”。
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
在扩展中,搜索 “MicroPython”, 安装 RT-Thread 插件。
2020-07-09 05:02:18 +08:00
![MicroPython plugin for RT-Thread][11]
2020-07-25 11:56:53 +08:00
### 使用插件
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
你的开发板必须能访问串口,这需要组策略的允许。你可能需要将自己的账户加入该组,通常在默认情况下你的账户可能并不在该组。首先,确认你的账户不在 “dialout” 组:
2020-07-09 05:02:18 +08:00
```
$ groups
tux users
```
2020-07-25 11:56:53 +08:00
本例中, 用户“tux”只是“tux”组和“users”组的成员, 所以需要将用户“tux”添加到“dialout”组:
2020-07-09 05:02:18 +08:00
```
2020-07-25 12:37:55 +08:00
$ sudo usermod --append --groups dialout tux
2020-07-09 05:02:18 +08:00
```
2020-07-29 00:12:05 +08:00
退出登录或重启以载入你新的组权限。
2020-07-09 05:02:18 +08:00
2020-07-25 11:56:53 +08:00
### 创建 MicroPython 工程
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
MicroPython 开发的第一步是创建 MicroPython 工程用来编写和运行代码。使用 MicroPython 插件创建工程的方法是,点击左下方的 “Create MicroPython project” 按钮。
2020-07-09 05:02:18 +08:00
![Create MicroPython project][12]
2020-07-25 11:56:53 +08:00
之后会有一些提示,让你选择创建空白工程还是包含例程的工程。
2020-07-09 05:02:18 +08:00
2020-07-25 11:56:53 +08:00
### 连接到开发板
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
点击 VSCodium 左下方的 “Connection” 按钮,进行 VSCodium 与开发板的连接,在弹出的列表中,选择要连接的物理设备。
2020-07-09 05:02:18 +08:00
2020-07-25 11:56:53 +08:00
### 查看例程
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
MicroPython 插件提供了许多例程和例库,供学习和调用。获取例程的过程是,激活 MicroPython 之后, VSCodium 左侧按钮条会出现“新建”快捷图标,点击该图标就可以了。点击“文档”快捷图标,会显示例程文件列表;点击“文件夹”快捷图标,会显示例库列表。
2020-07-09 05:02:18 +08:00
![MicroPython examples][13]
2020-07-25 11:56:53 +08:00
### 直接在开发板上运行 MicroPython 文件
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
在 VSCodium 中可以通过在开发板上运行单个程序文件,很方便快捷的进行程序调试。快捷键 `Alt+Q` 会触发一个特定的插件,该插件会将当前的 Python 文件上传到开发板内存中。你还可以在当前 Python 文档界面点击右键,然后选择 “Run the MicroPython file directly on the device” 实现同样的功能。
2020-07-09 05:02:18 +08:00
![Running code on your device][14]
2020-07-29 00:12:05 +08:00
如果你需要以不上传代码的方式检查一组代码,可以使用“代码片段”功能。要运行 MicroPython REPL 环境中的代码片段,在编辑器中选中要运行的片段,右键菜单中点击 “Execute the selected MicroPython code on the device” (也可以使用 `Alt+Q` 快捷键)。
2020-07-09 05:02:18 +08:00
2020-07-25 11:56:53 +08:00
### 加载文件和目录到开发板
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
如果需要加载文件或目录到开发板,有现成的方法可用:选中工程中要加载到开发板的文件或目录,在选中的对象上右键,点击右键菜单中的 “Download the file/folder to the device”。
2020-07-09 05:02:18 +08:00
2020-07-25 11:56:53 +08:00
注意,如果开发板中已有与要加载的文件或目录同名者,加载操作将导致开发板原有的内容被覆盖。
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
在 REPL 环境中运行 `os.listdir()` 命令,可以检查文件和目录是否成功加载。当然,也可以通过相应的命令删除 REPL 中的文件或目录。
2020-07-09 05:02:18 +08:00
2020-07-25 11:56:53 +08:00
删除文件的命令如下:
2020-07-09 05:02:18 +08:00
```
2020-07-25 12:37:55 +08:00
os.remove('file_to_delete')
2020-07-09 05:02:18 +08:00
```
2020-07-25 11:56:53 +08:00
删除目录的命令如下:
2020-07-09 05:02:18 +08:00
```
2020-07-25 12:37:55 +08:00
os.rmdir('folder_to_delete')
2020-07-09 05:02:18 +08:00
```
2020-07-25 11:56:53 +08:00
### 工程的同步
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
点击左下角“同步”按钮可以启动工程同步,该操作将把本地工程中所有的文件和目录同步到开发板的文件系统。建议在完成程序调试之后进行该操作,调试过程中不需要频繁进行同步操作。
2020-07-09 05:02:18 +08:00
2020-07-29 00:12:05 +08:00
工程的同步操作完成后,开发板上的文件列表可以在 “Device Files List” 列看到。
2020-07-09 05:02:18 +08:00
2020-07-25 11:56:53 +08:00
### 放手尝试
2020-07-09 05:02:18 +08:00
2020-07-25 11:56:53 +08:00
RT-Thread 以开源的方式发布 MicroPython 插件,意在为新老开发者提供帮助,它的很多特性,如代码自动补全等,与开源插件之间互有影响和促进。你如果想为嵌入式系统或物联网系统编写软件,这就是最简单的方式,没有之一。
2020-07-09 05:02:18 +08:00
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/7/python-rt-thread
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
2020-07-29 00:12:05 +08:00
译者:[silentdawn-zz](https://github.com/silentdawn-zz)
校对:[wxy](https://github.com/wxy)
2020-07-09 05:02:18 +08:00
本文由 [LCTT ](https://github.com/LCTT/TranslateProject ) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/containers_modules_networking_hardware_parts.png?itok=rPpVj92- (Parts, modules, containers for software)
[2]: https://opensource.com/article/20/6/open-source-rtos
[3]: https://www.rt-thread.io/
[4]: https://opensource.com/article/20/6/open-source-alternatives-vs-code
[5]: https://opensource.com/article/18/2/powershell-people
[6]: https://opensource.com/article/19/8/how-install-python-windows
[7]: https://opensource.com/sites/default/files/uploads/vscodium-python-plugin.jpg (VSCodium Python plugin)
[8]: https://creativecommons.org/licenses/by-sa/4.0/
[9]: http://vscodium.com
[10]: https://github.com/microsoft/vscode
[11]: https://opensource.com/sites/default/files/uploads/vscodium-micropython.jpg (MicroPython plugin for RT-Thread)
[12]: https://opensource.com/sites/default/files/uploads/vscodium-micropython-create.jpg (Create MicroPython project)
[13]: https://opensource.com/sites/default/files/uploads/vscodium-micropython-examples.jpg (MicroPython examples)
[14]: https://opensource.com/sites/default/files/uploads/vscodium-micropython-run.jpg (Running code on your device)