一款可以运行python的单片机(python能用在单片机上吗)
近日发现了一款可以运行python的单片机项目(官网:http://micropython.org/ ),在 download 页面可以找到支持的单片机信息,其中 ESP 芯片是我们国内知名的物联网厂商乐鑫的也很容易买到,价格也很便宜。刚好我手上有一款是ESP32的芯片,支持micropython。下面是开发板的图片,看到比较大银色的那个是ESP32模块,这个模块只有手指甲大小,我买的是开发板主要是便于调试和开发,在真正使用的时候直接就把模块焊接在电路板上了。
针对ESP32的固件(下载地址:https://micropython.org/download/esp32/ )里面还有刷固件的方法也比较简单。根据ESP32文档描述,可以做的东西还真不少。最方便的是,用python语言可以做很多IO、硬件操作,傻瓜化了,跟以往动不动就要用c语言去做底层开发爽很多。
我们先看看这款ESP32的产品介绍,它是自带了WIFI和蓝牙功能的,里面还跑了个操作系统,可以说麻雀虽小五脏俱全,可以完成很多日常需求了,这东西还特别的便宜和省电,10几块就能淘到手。
大家可能很好奇,为什么一个python可以在这样一个小小的单片机里面运行,难道里面是跑了一个linux操作系统吗?其实不是,因为micropython是开源的,我特意上去他们的github看了一下资料介绍(https://github.com/micropython/micropython/tree/master/ports/esp32)。从资料及代码可以看到,其实里面并没有运行linux的操作系统,而是运行了另外一个出名的开源实时操作系统 FreeRTOS,然后作者花了精力把python移植到了 FreeRTOS之上,当做是一个普通的 task(进程任务)来运行,所以就让这款 ESP32 执行运行python程序了。当然了,这个python只能运行一些基础核心的模块,并不像我们日常所用的linux下那个python那样支持很丰富的模块插件,因为单片机资源性能有限,但这样也已经很不错了。
顺便透露一下,这款ESP32不仅能运行python还能运行lua脚本(具体项目地址 :https://github.com/whitecatboard/Lua-RTOS-ESP32),跟micropython原理差不多同样是基于FreeRTOS,具体有兴趣的可以自己刷各种系统,还有支持js脚本的固件。
以后可能会再开新篇来继续介绍这块ESP32产品或者分析一下 FreeRTOS 这款开源的嵌入式操作系统,甚至可以开一个python源代码的讲解专栏,大家可以多关注后面的文章。