原型设计对于项目发展非常关键,如果能比竞争对手更早开发完成,无疑会抢得市场推广先机,因此很多公司都在项目的原型设计阶段投入更大人力、物力和财力,今天我们就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 项目是一款小型且可扩展的操作系统,尤其适用于资源受限的硬件系统,可支持多种架构;该系统高度开源,对于开发人员社区完全开放,开发人员可根据需要对该系统进行二次开发,以支持最新硬件、工具和设备驱动程序;该系统高度模块化平台,可轻松集成任何架构的第三方库和嵌入式设备。
领取专属 10元无门槛券
私享最新 技术干货