MicroPython:针对微控制器的Python

剑桥大学数学科学中心的Damien P. George在研究各种深奥数学、物理问题之余,还搞了一个MicroPython项目,将Python移植到ARM Cortex M微处理器上,并开发了电路板。2013年曾经在KickStarter上成功筹得近10万英镑。2014年成功完成项目,发货。

同时,这个项目也在GitHub上开源,至今已有1800+星,60位贡献者。

George曾在2014年PyCon UK上介绍MicroPython,所用硬件平台叫pyboard,规格是: 

  • STM32F405RG: 192k RAM, 1M ROM, 168MHz, Cortex M4F.

  • USB micro connector for device (and host).

  • Micro SD card.

  • 3-axis accelerometer (MMA7660).

  • Real-time clock, 4 LEDs, 2 switches.

  • 30 GPIO: symmetric pin layout, plus extra pins.

  • Internal file system. ”/flash” and ”/sd”.

由于存储太小,CPython都太大,只能自行开发Python实现,采取了很多优化措施: 

  • Interned strings, most already in ROM.

    一般大部分搞单片机解密的都是暴力破解,因为这个最容易,只要牚握技巧,有设备,工艺熟练就可了,不用太强的专业知识。如果复制后,程序无法运行,那就蒙了,因为这个时候就要去看汇编语言了,我想信有很多汇编高手,能很容易**。但我也同时认为,怎么多型号的单片机,汇编指令差别好大,每一种单片机的汇编都很熟的人应不多了。所以这会大大增加**难度。如果一个加密设计好的软件,跟据单片机的唯一特征字来加密,有时他可能不得不看懂里面的加密算法。这样加密目的就达到了。

  • Small integers stuffed in a pointer.

  • Optimised method calls (thanks PyPy!).

  • Range object is optimised (if possible).

  • Python stack frames live on the C stack.

  • ROM absolutely everything that can be ROMed!

  • Garbage collection only (no reference counts).

  • Exceptions implemented with custom setjmp/longjmp.

优化后,比原生的Python 2和Python 3都快了几个数量级:https://news.ycombinator.com/item?id=7841642 

MicroPython的生态系统现在也开始起来了,就在本月前几天,荷兰埃因霍温的一个团队WiPy刚刚在KickStarter上成功众筹到75000多英镑,他们的项目是基于MicroPython软件的另一款硬件:超低功耗的物联网WiFi硬件。

SparkFun上也有WiFi模块ESP8266。 

HN上的两次讨论: 

-https://news.ycombinator.com/item?id=9558969 
-https://news.ycombinator.com/item?id=7840566

MicroPython视频集锦:

MicroPython:从Kickstarter到太空之旅

原文出处:ITeye

原文链接:http://www.iteye.com/news/30549

> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >

正在温度检测编制中,经常须要安排精良的人机调换界面。安排者可能正在人机调换界面中获取须要的讯息,同时要把本人念要抵达的方针(即把温度担任正在设定温度值)直观地显示出来。模具刻字打标机左右体系的计划为此,咱们将检测所得数据和设定温度值向C8051F020单片机传输并通过点阵液晶显示器(LCD)显示。

生成海报
点赞 0

thePro

我还没有学会写个人说明!

相关推荐

ESP32开发之旅——AS608指纹识别模块

ESP32开发之旅——AS608指纹识别模块) 前言 本文中,您将了解到如何使用ESP32调用AS608指纹识别模块。需要注意的是,本文中的ESP32是使用Micro Python进行开发的,(同时