劍橋大學數學科學中心的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