设计与开发

python单片机 一款可以运行python的单片机

小编 2024-11-24 设计与开发 23 0

一款可以运行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源代码的讲解专栏,大家可以多关注后面的文章。

自主开发编程语言被指Python套壳 中科院开发者道歉

中科院计算所团队“完全自主设计、开发和实现”的“木兰”编程语言是Python语言的套壳产品?针对近日这一网络质疑,1月17日,项目负责人、中科院计算所编译实验室员工刘雷在科学网上发表回应称,木兰语言在8位单片机上的编译器是本团队开发的,在32位单片机上的编译器是基于Python开源编译器进行的二次开发,但在接受采访中将木兰编程语言和编译器夸大为完全自主开发。

团队负责人刘雷 资料图 图片来源:中新网

刘雷关于“木兰”编程语言的情况说明全文如下:

本人系中科院计算所编译实验室员工。基于我在编译技术上的科研积累创办了中科智芯(北京)科技有限公司,该公司围绕青少年编程教育,设计开发编程语言、编译器和集成开发环境等产品。

为了更好地在中小学中普及计算思维,本人带领团队开发了一种称为“木兰“的编程语言。它包含三个组成部分:一、在语言规范上借鉴了Lua语言的特性并进行了扩展,增加数据表达方法等新的特性;二、开发了支持少儿编程教育的可视化编程环境;三、针对8位AVR单片机,实现了相应的编译器和运行时系统,开发了能模拟多任务执行的虚拟机。以上产品已经在数百所中小学中,开展了10万人次的编程科普活动。

针对STM32单片机,我们是基于Python开源编译器进行的二次开发,也就是先将木兰语言的源程序转换为Python的中间表示(AST),再在Python虚拟机上运行。这就是在开发和运行环境中会包含Python系统的原因。

在1月15日接受媒体采访时,本人在对木兰编程语言的介绍中,犯了以下错误:

1. 木兰编程语言主要是用于中小学教育,在介绍中将它扩大到智能物联领域。

2. 木兰语言在8位单片机上的编译器是本团队开发的,在32位单片机上的编译器是基于Python开源编译器进行的二次开发,但在接受采访中将木兰编程语言和编译器夸大为完全自主开发。

对于此次在网络上造成的不良影响,本人郑重道歉,对给中科院、中科院计算所带来的不良后果表示诚挚的歉意。本人感谢大家的监督与批评,并深刻反省,保证不再出现类似问题。

此前,据中国新闻网等多家媒体报道,中国科学院计算技术研究所(以下简称中科院计算所)1月15日正式对外发布该所计算机体系结构国家重点实验室编译技术团队自主研发、面向新一代人工智能和物联网应用的“木兰”编程语言体系,并推出“木兰”开源软件包,供全球用户免费下载获取。

但随后网络上争议四起,知乎网友@沉迷单车就指出,从网络下载的“木兰”语言编辑器程序图标来看,与用著名编程语言Python生成的应用程序图标完全一致。“都不换个图标吗?”他问道。

澎湃新闻记者并未在中科院计算所或计算机体系结构国家重点实验室官方网站上找到“木兰”的发布信息,亦无下载链接。

“木兰”的下载渠道在一家名为“中科智芯”的公司网站上。据企业主页介绍,中科智芯(北京)科技有限公司是中国科学院计算技术研究所孵化企业,源中科院计算所计算机体系结构国家重点实验室而成立。

“木兰”编程语言是该公司的重点产品,企业介绍称,“木兰”是“专为人工智能教育而生的中国自主知识产权编程语言,由中科智芯自主研发。语言设计上屏蔽了其他任何一种针对成人设计的编程语言特性,如编程环境调试复杂等,让学生在编程语言学习之初不为细节所牵绊,具有更易理解、易于学习、易于阅读、易于维护等特性;且支持跨平台,对Android、UNIX、Windows都可以很好的兼容。”

有计算机业内人士对澎湃新闻记者表示,从目前能掌握的情况来看,“木兰”语言更像是Python语言的“套壳”产物。 “这个软件就是在Python语言外边套了一层壳,还是比较简单的那种,相当于一个接口,连图标都没有改。”

“木兰”图标

使用Python制作的文件图标

“对这个exe文件进行反向编译后可以发现,整个结构就是Python环境,比如其中有一个‘lib2to3’文件夹,就是只有python才会有的,是转换python2到python3的lib。”上述业内人士对记者表示。

“木兰”反向编译结果

不过,上述业内人士也对记者表示,“还是要看‘木兰’的源代码,才能确定这个语言到底有多少自主研发成分 ,以及多少是来自Python语言。现在从公司网页上无法看到源代码,也就是说还没做到完全开源。”

据此前报道,刘雷介绍称,“木兰”是中科院计算所团队完全自主设计、开发和实现的编程语言,与之配套的编译器与集成开发工具也完全由团队自主实现,“是我们真正掌握核心技术的编程语言”。

其介绍称,“木兰”定位为下一代重要应用——物联网应用开发语言,打造物联网智能执行平台,其采用最新的编程语言设计理念和编译技术,在考虑性能的设备处理层,它提供面向轻量级物联网设备和领域特定专用加速器的编程特性;在应用层面,它提供面向通用计算设备的编程语言并支持多种领域的定制化元编程。

据了解,以“木兰”为基础延伸的自主研发编程软件、人工智能教材、教学装备现已投入中小学、幼儿园使用,截至目前,“木兰”应用范围已涵盖中国18个省市共700所中小学。

工商信息显示,中科智芯(北京)科技有限公司持股70%的大股东是中科编易(北京)科技有限公司,而后者的大股东正是刘雷。

中科院计算所计算机体系结构国家重点实验室网站显示,刘雷,博士,工程师一级,在编程语言和并行编译技术方向上具有丰富的科研和工程经验,先后承担过国家863项目、核高基重大专项项目的子课题,所研发的技术成果达到世界先进水平,在多个顶尖的国际会议和权威期刊上都发表论文10余篇。其开发的自动并行化编译器的加速效果要明显好于世界上最好商用编译器Intel编译器。

Python在1991年由荷兰人Guido van Rossum发明,是一种跨平台的计算机程序设计语言,近几年因机器学习大热而受到关注。

(来源:澎湃新闻)

相关问答

python 单片机 有什么关系?

两者基本没有直接关系,但前者可编写程序并在上位机上控制作为下位机的后者。Python是一种开销颇大、但语法非常友好、学习门槛很低的面向对象的高级编程语言...

python 怎么烧录到51 单片机 ?

要将Python程序烧录到51单片机,需要经过以下几个步骤:1,准备开发环境:安装Python解释器和相应的开发工具链。常用的开发工具链有KeilC51、SDCC等。2,编写...

哪几种编程语言可以用到 单片机 编程里?

目前大部分单片机都可采用C语言和汇编语言,部分高级单片机如DSP,可采用C++进行面向对象的编程。1、汇编语言。采用汇编语言进行编程,优点是会对单片机的架构...

怎样才能成为 单片机 工程师?

一般来说,单片机属于硬件工程师的工作范畴。毕竟单片机驱动编程和电路设计是分不开,只有明白了单片机如何驱动才能设计出更为合理的电路产品。如果想更好的从...

初学者学 单片机 好还是树莓派好?

很久没有焊接硬件了,其实也没多久也就离开实验室一个来月。哈哈,这样一说大家可能也猜到了,我就是一悲催的硬件狗。1、单片机和树莓派的不同(直观上)1“...

线切割 单片机 和电脑机的区别?

线切割单片机和电脑机是两种不同的设备,有以下几点区别:1.功能:线切割单片机是一种专门用于控制线切割机器进行加工的设备,主要用于实现线切割机器的精确控...

在线等: 单片机 培训哪家好?

[回答]技术服务:一、软件开发:承接软件或项目订单,按照客户要求完成订单合同内容。二、Oracle、DB2、SQL,mysql数据库部署、升级、迁移、故障排除和维保项...

JAVA学会可以干什么?

谢谢邀请!作为一名IT从业者,同时也出版过Java编程书籍,所以我来回答一下这个问题。首先,Java语言是当前最为流行的全场景编程语言之一,在Web开发、大数据...比...

机器人编程怎么入门?

1、先学习C语言,这是基础,然后学习单片机,然后就是实验步进电机的控制,译码器的工作原理和编程等等,这些是入门,有基础之后可以学点Arduino之类的,了解当...1...

Java具体是做什么的?

Java的起源Java源自Sun公司的一个叫Green的项目,其初始目的是为家用消费电子产品开发一个分布式代码系统,让人们可以通过这个技术,把E-mail发送给电冰箱、电...

猜你喜欢