Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【开源自荐】PikaScript:为资源受限的mcu提供极易部署和拓展的Python脚本支持。 #1944

Closed
pikasTech opened this issue Sep 13, 2021 · 2 comments

Comments

@pikasTech
Copy link

pikasTech commented Sep 13, 2021

项目地址:https://github.com/pikasTech/pikascript

简介

PikaScript可以为资源受限的mcu提供极易部署和拓展的Python脚本支持。

(1)运行环境

支持裸机运行,可运行于 RAM ≥ 4kB ,FLASH ≥ 32kB 的mcu中,如stm32g030, stm32f103c8t6,esp8266。

(2)开发环境

支持Keil、IAR、rt-thread studio、segger embedded studio等IDE开发。

支持CMake、makeFile、Scons等构建工具

零依赖,零配置,开箱即用,极易集成进已有的C工程。

极易拓展自定义的C原生函数。

支持跨平台,可在linux环境开发内核。

(3)语法特性

使用python3标准语法的子集。

在编译时支持python类和方法定义,完整支持封装、继承、多态、模块功能 - 基于Pika预编译器。

在运行时支持python方法调用、变量定义、对象构造、对象释放、控制流(if\while) - 基于Pika运行时内核。

推广文章:我就要用最便宜的单片机来跑python,还要用MDK开发,怎么地吧!

我就想用单片机跑个Python,得用linux虚拟机+交叉编译工具链+命令行编译micropython固件,还得用DfuSe工具烧录固件,烧录完还不能用C的调试器来调试。

我想拓展个自己的C模块,还要学着用一些完全看不懂的宏函数,还得手动注册,还得编写makeFile,编译完照样不能调试C。

我穷,买不起STM32F4,想买个STM32F103C8T6的micropython开发板,淘宝一搜,好像没有。

现在C8T6贵了,我还想用F0,用G0,能行吗?

好像,给G0移植micropython,不是很容易。

那?有没有另一种玩法?

换句话说,我想用Keil开发,用Keil调试,我还想用最便宜的单片机。

这,能玩Python吗?

output_Kgj52R

要不,试试PikaScript?

啥是PikaScript?

PikaScript可以为资源受限的mcu提供极易部署和拓展的Python脚本支持。

PikaScript支持裸机运行,最低可运行于 RAM ≥ 4kB ,FLASH ≥ 32kB 的mcu中,推荐配置为 RAM ≥ 10kB, FLASH ≥ 64kB,像是stm32f103c8t6、stm32g070RBT6这些完全没有压力,甚至已经满足了推荐配置。

而且支持Keil、IAR、rt-thread studio、segger embedded studio等IDE开发,零依赖,零配置,开箱即用,极易集成进已有的C工程。

说了这么多,刘华强就有疑问了,你说这脚本,保熟吗?

QQ截图20210911174834

我这开水果脚本摊儿的,能买你生脚本蛋子?

这就挑点儿Demo给哥儿几个瞧瞧。

这可都是STM32G070RBT6的Demo。

Demo 01 万物起源点个灯

mmexport1631351506111

看看这脚本,可都是如假包换的Python3标准语法。

这灯不就闪起来了吗。

Hnet-image (2)

Demo 02 串口测试

mmexport1631351902469

开个串口,读俩字符试试

Hnet-image (3)

非常顺滑

Demo 03 读个ADC试试

mmexport1631351527609

同样几行脚本搞定。

mmexport1631351523907

这是输出的结果。

这几个Demo占用的RAM最大值只有3.56K,把1K的堆栈也算上就是4.56K,Flash最大占用是30.4K,以STM32F103C8T6的20K RAM和64K Flash为标准,RAM才用掉不到25%,Flash才用掉不到50%,简直是资源多到不知道咋霍霍。

同样跑Python,我们可以简单对比一下micropython的常用芯片STM32F405RG和这次跑PikaScript的芯片STM32G070CB

RAM资源对比

image

Flash资源对比

image

参考价对比(以2021年9月11日立创商城10片售价为参考)

image

拓展能力如何呢?

除了设备驱动之外,为mcu开发自定义的python脚本绑定在pikascript的开发框架下非常轻松,下面两个Demo就是自定义的C模块拓展,这个Demo基于ARM-2D图像驱动库开发了一些python脚本接口。

几个小方块~

Hnet-image (7)

几个旋转太阳~

Hnet-image (6)

那,PikaScript是开源的吗?

当然,这个就是PikaScript的github主页:
https://github.com/pikasTech/pikascript

开发难不难?

PikaScript为开发者准备了丰富的Demo和由浅入深的开发指南,指南还会持续完善和维护。
image

可以商用吗?

当然!PikaScript采用MIT协议,允许修改和商用,但是要注意保留原作者的署名。

结语

本篇主要内容到此结束,想要继续了解PikaScript,可以看看往期文章~

都看到这了,还不去github主页逛逛嘛?
image

加入微信交流群获得更多技术支持,以及和群里的大佬吹水~
(群已满,加我QQ拉你进群~ qq: 645275593)

@SimZhou
Copy link

SimZhou commented Sep 17, 2021

二维码失效啦

@pikasTech
Copy link
Author

二维码失效啦

群已经满啦,加我QQ拉你进群~ qq: 645275593

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants