Micro Python:运行在微控制器上的Python
Micro Python运行在微控制器上的Python。遵守MIT协议。由剑桥大学的理论物理学家乔治·达明设计。和Arduino类似,但Micro Python更强大。

Micro Python的软件特点:
- Python 3 语法.
- 完整的Python词法分析器, 解析器,编译器,虚拟机和运行时。
- 包含命令行接口,可离线运行。
- Python 字节码由内置虚拟机编译运行.
- 有效的内部存储算法,能带来高效的内存利用率。整数变量存储在内存堆中,而不是栈中。
- 使用Python decorators特性,函数可以被编译成原生机器码,虽然这一特性会带来大约2倍的内存消耗,但也使python有更快的执行速度。
- 函数编译可设置使用底层整数代替python内建对象作为数字使用。有些代码的运行效率可以媲美c的效率,并且可以被python直接调用,适合做时间紧迫性,运算复杂度高的应用。
- 通过内联汇编功能,应用可以完全接入底层运行时,内联汇编器也可以像普通的python函数一样调用。
- 基于简单和快速标记的内存垃圾回收算法,运行周期少于4ms,许多函数都可以避免使用栈内存段,因此也不需要垃圾回收功能。
一下为Micro Python的代码片段:
- 控制LED闪烁:

- 读取外部传感器数据:

软件组织结构:
- py/ –python核心实现,包含编译器和runtime。
- unix/ — Unix版本的Micro Python.
- stm/ — 运行在STM32F405RG上Micro Python接口和底层驱动.
- unix-cpy/ –输出字节码的 Micro Python。
- tests/ — 测试框架和测试脚本test framework and test scripts.
- tools/ — dfu工具.
- logo/ –logo
Micro Python电路板:在Micro PythonPCB 上你可以通过Python代码轻松控制微控制器的各种外设,比如LED等,读取管脚电压,播放歌曲,和其他设备联网等等。
Micro Python的硬件特点:
- STM32F405RG MCU.
- 168 MHz Cortex-M4 CPU with 32-bit hardware floating point.
- 1 MiB flash storage, 192 KiB RAM.
- USB口, 支持 串口,通用存储,HID协议。
- SD卡插槽。
- MMA76603轴加速度计.
- 4 LEDs, 1复位按钮, 1通用按钮.
- 3.3V0.3A板载 LDO , 可从USB口或者外置电池供电。
- 实时时钟。
- 30个通用IO口,其中28个支持5V输入输出。
- 2个 SPI接口, 2个 CAN接口, 2个I2C接口, 5个USART接口.
- 14个 12-bit ADC引脚。
- 2个DAC 引脚。
PCB规格:
- 尺寸: 33mm * 40mm.
- 重量: 6 grams.
硬件设计文档:
- 原理图(eagle设计)
- gerbers文档
- PCB设计文件(eagle设计)
- BOM 文件
- PYBv3的装配说明
项目地址:micropython.org kickstarter地址:kickstarter.com
软件源码:micropython 硬件设计文件:pyboard
Micro Python:运行在微控制器上的Python的更多相关文章
- 开发平台支持Arm Cortex-M的微控制器上人工智能训练
开发平台支持Arm Cortex-M的微控制器上人工智能训练 Development platform enables AI training on Arm Cortex-M-based microc ...
- Python接口测试实战3(上)- Python操作数据库
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- 使用Visual Studio 2017开发python,并在iis上部署Python Django
作为宇宙第一IDE,怎么可以不支持python开发呢? 1.Visual Studio Installer 扩展Python开发 开始菜单中打开Visual Studio Installer,点修改. ...
- 痞子衡嵌入式:微控制器CPU性能测试基准(EEMBC-CoreMark)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是微控制器CPU性能测试基准CoreMark. 在嵌入式系统行业用于评价CPU性能指标的标准主要有三种:Dhrystone.MIPS.Co ...
- ST推出新软件STM32Cube ,让STM32微控制器应用设计变得更容易、更快、更好用
功能强大的STM32Cube 新软件平台由设计工具.中间件和硬件抽象层组成,让客户能够集中精力创新 意法半导体(STMicroelectronics,简称ST)针对STM32微控制器推出一套免费的功能 ...
- 微控制器(MCU)架构介绍
微控制器(MicroController)又可简称MCU或μC,也有人称为单芯片微控制器(Single Chip Microcontroller),将ROM.RAM.CPU.I/O集合在同一个芯片中, ...
- Python接口测试实战1(上)- 接口测试理论
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Python接口测试实战5(上) - Git及Jenkins持续集成
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Python接口测试实战4(上) - 接口测试框架实战
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
随机推荐
- [Oracle] 某游戏大区DB IO负载过高分析
某游戏大区DB IO负载过高分析 [问题] 下图信息看出机器IO负载过高, IO使用率: 平均值 50%, 峰值 98%, 业务高峰时间段(19:00-22:00)IO使用率持续80%以上. [分析] ...
- Virtualbox 设置虚拟机上网并和主机互通(如ping等)
我的主机是Ubuntu12.04, 安装virtualbox虚拟了一个xp系统.把xp作为一个开发用的机器,需要上网,并且和主机以及虚拟机之间互相访问. 1. 在virtual设置界面,将xp系统的网 ...
- hdu 1385(Floyed+打印路径好题)
Minimum Transport Cost Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O ...
- Shell 括号辨识(转http://blog.csdn.net/taiyang1987912/article/details/39551385)
一.小括号,圆括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有 ...
- BZOJ 4543 2016北京集训测试赛(二)Problem B: thr 既 长链剖分学习笔记
Solution 这题的解法很妙啊... 考虑这三个点可能的形态: 令它们的重心为距离到这三个点都相同的节点, 则其中两个点分别在重心的两棵子树中, 且到重心的距离相等; 第三个点可能在重心的一棵不同 ...
- Spring MVC的各种参数绑定方式(请求参数用基础类型和包装类型的区别)(转)
1.基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int cou ...
- Spring MVC 学习
一.基础 Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高.Spring 3.0更加完善,实现了对Struts 2的超越.现在 ...
- SecureCRT设置超级终端
SecureCRT可以代替Windows中的超级终端,用来连接网络设备的Console口新建连接Serial串口,配置为:Bits per second: 9600Data bits: 8Parity ...
- 关闭火狐定期向“http://detectportal.firefox.com/”发包
问题:最近发现火狐总是向http://detectportal.firefox.com/发包 办法:firefox地址栏输入 about:config,然后搜索找到 network.captive-p ...
- LeetCode 290 Word Pattern(单词模式)(istringstream、vector、map)(*)
翻译 给定一个模式,和一个字符串str.返回str是否符合同样的模式. 这里的符合意味着全然的匹配,所以这是一个一对多的映射,在pattern中是一个字母.在str中是一个为空的单词. 比如: pat ...