2021-09-17 00:27:52 +08:00
2021-09-05 11:24:35 +08:00
2021-09-17 00:27:52 +08:00
2021-08-27 14:16:01 +08:00
2021-09-05 14:58:02 +08:00
2021-09-05 14:58:02 +08:00
2021-09-05 14:58:02 +08:00
2021-08-25 01:25:48 +08:00
2021-08-24 10:50:59 +08:00
2021-09-10 22:01:34 +08:00
2021-08-24 13:55:05 +08:00
2021-09-13 18:16:02 +08:00
2021-08-22 21:00:35 +08:00
2021-08-22 21:00:35 +08:00
2021-09-05 14:48:51 +08:00

微信交流群

点击获取PikaScript v0.7.0

1.简介

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

output_Kgj52R

(1)运行环境

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

(2)开发环境

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

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

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

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

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

(3)语法特性

使用python3标准语法的子集。

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

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

(4)源码规范

注重源码可读性,命名规范,标准统一,完全不使用宏,几乎不使用全局变量。

完整的googletest单元测试。

(5)stm32例程

pikascript-stm32-demo

(6)开发手册

1. PikaScript-三分钟快速上手

2. PikaScript-架构与原理

3. PikaScript-十分钟快速部署

4. PikaScript-标准开发流程

5. PikaScript-Demo展示

(7)架构示意图

微信交流群

2.stm32教程视频

手把手PikaScript教程合集

3.交流与技术支持:

微信交流群

微信交流群

Tencent QQ 645275593

E-mail: 645275593@qq.com

4.贡献者

内容 贡献者
捐赠APM32F030R8 开发板 极海半导体 陈成
捐赠APM32E103VB 开发板 极海半导体 陈成
捐赠APEX-Link仿真器 极海半导体 陈成
源码格式化 Meco Jianting Man
demo/simulation-keil 千帆(微信名)
demo/stm32f103zet6/demo01-led-stm32f103zet6 甜航
demo/stm32f103zet6/demo02-led-stm32f103zet6_tworoot 甜航
demo/stm32f407zgt/demo01-led-stm32f407vgt 甜航

5.推广稿我就要用最便宜的单片机来跑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.56KFlash最大占用是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协议允许修改和商用但是要注意保留原作者的署名。

6.内核测试与开发

linux下测试pikascript内核(推荐ubuntu20.04)

step1: 拉取项目

git clone https://github.com/mimilib/pikascript
cd pikascript

step2: 编译项目

sh init.sh # 第一次编译前运行,之后就不用运行了 
sh make.sh # 编译项目

step3: 运行单元测试

sh test

step4: 运行基准测试

sh test-banchmark

step5: 运行demo

./build/src/boot/demo06-pikamain/pikascript_demo06-pikamain
Description
No description provided
Readme MIT 277 MiB
Languages
C 97.9%
Assembly 0.9%
Python 0.6%
C++ 0.2%
Shell 0.1%
Other 0.1%