专家详解:使用Micropython在Zephyr上进行快速原型开发

原型设计对于项目发展非常关键,如果能比竞争对手更早开发完成,无疑会抢得市场推广先机,因此很多公司都在项目的原型设计阶段投入更大人力、物力和财力,今天我们就Micropython技术为Zephyr的开发者介绍一个快速原型开发演示,帮助用户更快地掌握Zephyr的设计开发流程。

对于那些没有nucleo_f429zi,但希望重现该演示的用户,目前可以由通过USB的以太网完成,更多信息如下:

2017年我向你们介绍了Zephyr项目,它是由Linux基金会支持的开源操作系统。

今天,我想来分享Zephyr生态系统其中的一部分:它的Micropython端口。

Mircopython是“为在微控制器上运行而优化的Python3的实现”。

运行于微控制器上的脚本语言似乎看起来有点奇怪, 对于一个指定的任务,它会比常用的C语言慢且占用空间更大。但是它们也很强大,且易于学习。由于不需要编译,它可以做到快速原型及硬件仿真,因此可以让你的想法快速转换成可运行于开发板上的原型。

为了验证Micropython的功能强大,我想给你们展示一个运行于STM32F4上的http仪表盘。它是在Paul Sokolovsky的帮助下开发的,Paul Sokolovsky是最早在Micropython中提出Zephyr端口的。

将一个传感器插到nucleo_f429zi开发板上。PC和主板通过以太网连接到同一个的本地路由器。

或者,你也可以在启用USB的nucleo开发板上运行演示,并使用基于USB的以太网。比如可以用在用户USB端口连接到PC 的nucleo_f412zg上。

在浏览器上,我连接到运行Micropython 驱动的http服务器的开发板。从传感器采集的数据显示在仪表盘上。然后,嵌入的java脚本执行网页的动态渲染:

? 2个湿度和温度小仪表器件(由HTS221传感器采集)

? 当进行磁场检测时,小器件变红(由LISMDL磁传感器检测)

? 小器件重现表盘的移动(归功于LSM6DS0加速计)

这里有一个视频:https://www.youtube.com/watch?v=_CC6JJCSJiY(需要翻墙查看):

对于 Zephyr,比较好的部分是它提供了硬件抽象。上层API不依赖SoC,Micropython端口依赖于此上层API,因此,它不依赖于开发板。这意味着,它可以运行在任何移植了Zephyr的开发板上(只要它有足够的内存支持micropython二进制文件)。

顺便说一句,这个应用占用的空间是200KB flash,60KB SRAM,因此它可以运行在更小的端口上,例如:在STM32F401CC上运行(256K flash,64K RAM)。不过这个应用程序需要用到以太网端口。

为了运行这个演示,你需要安装Zephyr和micropython:

? Zephyr branch: https://github.com/erwango/zephyr/tree/sensor_dashboard_demo

? μPython branch: https://github.com/erwango/micropython/tree/sensorshield_dashboard (commit be19a7b)

以下是为Ubuntu用户重现演示的说明。在Windows上使用,请参考每个项目指南:

$ cd ~/zephyt-project :

$ source zephyr-env.sh

$ cd ~/micropython/ports/zephyr :

$ make BOARD=nucleo_f429zi flash

or

$ make BOARD=nucleo_f412zg flash

在控制台面板中:

>> import dashboard

如果使用以太网,请用浏览器在控制台上连接IP地址:

>>> [net]/dhcpv4] [INF] handle_ack: Received: 10.0.0.3

或者,使用基于USB的以太网,(更多信息参考:http://docs.zephyrproject.org/subsystems/networking/usbnet_setup.html),你需要配置PC去访问新的以太网设备,然后通过地址配置(在这里是192.0.2.1)连接到开发板。

注意:如果你不想下载所有的分支,你也没有Zephyr:

git clone –b sensor_dashboard_demo –single-branch https://github.com/erwango/zephyr

如果你已经有了Zephyr,git remote add erwango https://github.com/erwango/zephyr/

根据作者的介绍,你是否完成了整个演示?如果在运行过程中遇到问题,欢迎到Zephyr社区(https://www.zephyrproject.org)进行讨论,这里汇集了大量的优秀开发者,他们会带你一起成长!

关于Zephyr

Zephyr 项目是一款小型且可扩展的操作系统,尤其适用于资源受限的硬件系统,可支持多种架构;该系统高度开源,对于开发人员社区完全开放,开发人员可根据需要对该系统进行二次开发,以支持最新硬件、工具和设备驱动程序;该系统高度模块化平台,可轻松集成任何架构的第三方库和嵌入式设备。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180419A1ECI300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券