0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是MicroPython 它能做什么有什么局限

电子森林 来源:电子森林 作者: 苏老师 2021-10-12 11:44 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着Python成为主流的编程语言,MicroPython在嵌入式系统领域也越来越热门起来,尤其是大家喜爱的ESP32以及树莓派基金会刚推出的基于RP2040微控制器Pico模块都支持MicroPython。

作为一行代码都不会写的板农,在很多时候觉得非常受限,发誓一定要找个时机好好学会一门编程语言,这不国庆7天的假期我都奉献给了MicroPython,并在自己设计的Pico扩展学习板上实现了板上所有外设的功能:

花式点灯 - 单色、RGB三色,各种组合,还可以按键和传感器来控制

OLED屏幕上显示文本、图像、波形

音频信号进行数据采集并显示在OLED屏幕上 - 做了一个炫酷的波形显示

用板上的蜂鸣器奏响了“我和我的祖国”

移植了别人的代码生成了任意波形 - 改变波形、改变频率、改变幅度等等

。。。。

通过这7天的“探索”我自己最大的感触就是,以MicroPython入门嵌入式系统实在是太方便了 - 丰富的开源资源、多种形式的参考,比如视频课程、文本案例等。

MicroPython确实是一个很好的编程语言 - 面向对象、灵活、简单、优美!

我个人的学习得益于别人的分享(开源)、传递知识最好的方式就是把自己所学、所悟也分享出去,因此我计划上线一套基于Pico的Micro Python嵌入式编程教程,一个月以后正式开播,当然,前期会有15节PCB设计的直播课程带着大家自己设计一款Pico的学习板,毕竟在打板都能免费且包邮的便利大环境下,基于一个Pico核心板,未来每个人都可以通过自己设计PCB来做各种有趣的应用出来,学会PCB的设计也会让嵌入式系统工程师如虎添翼。

从现在开始陆续连载与这个课程相关的技术文章,今天是第一篇:

1. 什么是MicroPython

MicroPython是一个小型的开源Python编程语言解释器,运行在小型嵌入式开发板上。使用MicroPython,您可以编写干净、简单的Python代码来控制硬件,而不必使用复杂的底层语言,如C或c++Arduino用于编程)。

Python编程语言的简单性使MicroPython成为编程和硬件新手的理想选择。MicroPython功能非常齐全,支持大多数Python语法,所以即使是经验丰富的Python老手也会发现使用MicroPython很熟悉和有趣。

除了易于使用之外,MicroPython还有一些独特的特性,使它有别于其它嵌入式系统:

使用交互式解释器:REPL(读Read-评估Evaluate-打印Print-循环Loop) - 这允许你连接到一个板,并让它执行代码,而不需要编译或上传-完美的快速学习和试验硬件!

丰富的软件库 - 像普通的Python编程语言一样,MicroPython内置了非常多的库来支持许多任务。例如,通过MicroPython的内置库,可以很容易地解析来自Web服务的JSON数据,使用正则表达式搜索文本,甚至进行网络套接字编程。

可扩展性 - 对于高级用户来说,MicroPython可以通过低级C/C++函数进行扩展,因此在需要时,您可以将富有表现力的高级MicroPython代码与更快的低级代码混合使用。

MicroPython是Python 3语言的一个变种,其思想来源于剑桥大学的Darrien P. George博士,他与一个众筹团队一起于2013年开发了一款支持MicroPython的硬件开发板 - 叫PyBoard,并于2014年的Python大会(PyCon)上提出了MicroPython1.0。George博士也建立了micro python.org网站(www.micropython.org)来支持MicroPython和Pyboard。

2. MicroPython能做什么?

MicroPython被设计用于快速有效地创建嵌入式系统控制程序。嵌入式系统可以简单定义为任何需要使用微控制器以满足工程需要的工程。典型的嵌入式系统通常使用传感器,有时会使用电子机械传动结构与微控制器接口,它们可能附接有人机接口设备,便于交互,但是更多为自动的,为单机运行或连接至云端进行远程访问。

就像Arduino板一样,MicroPython可以控制硬件和连接的设备 - 可以控制GPIO引脚闪烁灯、读取开关以及更多;可以驱动能够驱动伺服器、LED的PWM信号; 能通过模数转换器读取读取模拟传感器的信息,与I2C或SPI设备通信也很容易,你甚至可以在一些板上找到网络和WiFi支持。MicroPython甚至有用于控制其它硬件的库,如NeoPixels和LED条,微型OLED显示器等等。简而言之,MicroPython可以做很多事情!

3. MicroPython有什么局限?

MicroPython有很少的限制,几乎Arduino能做的任何事情都可以通过MicroPython板来完成。然而,需要注意的是,与类似的Arduino或其它基于C/C++的底层代码相比,MicroPython代码没有那么快,需要的内存也可能更大,不过通常这并不重要,因为速度和内存差异并不大,大多数的应用不会受到影响。要注意的是,那些对时间或性能要求很严格的代码可能无法在MicroPython中工作。

例如,在MicroPython中完全使用软件来驱动IO管脚实现一些高速的串行通信协议可能不是最好的主意。然而,有一些方法可以混合MicroPython和低级C/C++代码,这样我们就可以同时拥有这两个世界的优点 - 主要的逻辑是干净且易于理解的MicroPython代码,而性能关键部分使用更快的低级代码编写的。

MicroPython语言实现了大部分核心Python 3语言,但是MicroPython不能实现整个Python 3标准库。Python以拥有广泛的标准库而闻名,但是试图将这么大的库压缩到只有千字节内存的小板上是不可能的。相反,MicroPython实现了一些Python标准库的更小版本,为我们提供了很棒的开发体验。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4421

    浏览量

    67822
  • 代码
    +关注

    关注

    30

    文章

    4976

    浏览量

    74358
  • python
    +关注

    关注

    58

    文章

    4883

    浏览量

    90294
  • 解释器
    +关注

    关注

    0

    文章

    103

    浏览量

    7021

原文标题:嵌入式系统轻松入门(1)- MicroPython是什么?

文章出处:【微信号:xiaojiaoyafpga,微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    UWB技术原理深挖——为什么它能做到厘米级定位而其他技术不行?

    超宽带(UWB)技术通过纳秒级窄脉冲实现厘米级精确定位,其核心原理包括飞行时间测距(ToF)和到达角测量(AoA),能有效抗多径干扰。相比蓝牙/Wi-Fi的米级误差,UWB在空旷或复杂环境中均可保持±5-10厘米精度,且具备物理层加密和防中继攻击的安全优势。目前,UWB已应用于智能手机、汽车数字钥匙等领域,未来将与蓝牙/Wi-Fi互补共存,专注高精度定位场景
    的头像 发表于 03-25 16:37 1231次阅读
    UWB技术原理深挖——为什么<b class='flag-5'>它能做</b>到厘米级定位而其他技术不行?

    光伏电站并网难,电抗器能做什么

    开篇:辛辛苦苦投资建设的光伏电站,为何在并网这“最后一公里”总是被卡脖子?发出的电送不出去,或者因电能质量不达标而被电网公司罚款,这无疑是所有新能源投资人心中的痛。问题的核心,往往指向光伏发电的“心脏”——逆变器,以及它所产生的谐波。那么,电抗器,这个在传统电力系统中早已功勋卓著的设备,在新能源时代又能扮演怎样的角色?主体:光伏电站的并网难题,本质上是“绿色
    的头像 发表于 11-22 10:27 2072次阅读
    光伏电站并网难,电抗器<b class='flag-5'>能做什么</b>?

    潘多拉开发板在VSCODE无法执行micropython怎么解决?

    潘多拉开发板,在VSCODE 1.49.3中无法执行micropython程序,打不开终端, 已经正确安装了rt-thread micropython插件, 板子也已经正常下载
    发表于 10-14 06:09

    vscode的rtthread micropython插件没有创建工程的图标,为什么?

    我想用micropython开发ESP32,请问我的vscode已经安装了RT-Thread micropython插件,为什么在下方没有创建micropython的“+”图标呢?
    发表于 09-28 13:13

    micropython 文件同步失败是怎么回事?

    您好! 在自己的stm32f407vet6开发板上,构建的rt-thread添加了micropython模块。 下载运行执行正常。执行将文件下载到开发板或者点击“文件同步”时,总提示 “所连接设备可能未处于repl状态或者不是一个micropython设备”。 这是怎么回
    发表于 09-17 07:28

    ENV添加micropython软件包出现异常的原因?

    裂开没有添加成果。 最后我不用env了,直接软件包添加,设置好Ctrl+s,又报出错误。package文件夹里面也没有micropython的资料。大佬解答一下吗?
    发表于 09-12 08:06

    IEC 到底是什么?为什么它能影响全球?

    IEC 到底是什么?为什么它能影响全球?
    的头像 发表于 09-04 17:07 3878次阅读

    如何在NuMaker物联网板上使用NuMicroPy(MicroPython)?

    在NuMaker物联网板上使用NuMicroPy(MicroPython
    发表于 09-04 06:29

    RVSP线缆哪些缺点或者局限

    RVSP线缆虽然具有抗干扰能力强、柔软易弯曲等优点,但在实际应用中也存在一些缺点和局限性,以下是详细分析: 一、机械性能局限性 抗拉强度不足 RVSP线缆的铜芯导体较细,且采用软铜线结构,虽然提高了
    的头像 发表于 08-22 09:53 879次阅读

    UPS电源—UPS电源优化电力质量局限大揭秘

    在工业自动化及众多关键领域,UPS(不间断电源)作为电力保障的重要设备,对于提升电力质量起到了至关重要的作用。然而,任何技术都有其局限性,UPS电源在优化电力质量方面也不例外。以下是对UPS电源优化电力质量局限性的详细分析.
    的头像 发表于 08-05 19:51 1037次阅读
    UPS电源—UPS电源优化电力质量<b class='flag-5'>局限</b>大揭秘

    什么是STM32? STM32与ARM什么关系? STM32能做什么

    什么是STM32 具体用于什么方面较多?? STM32与ARM什么关系 STM32能做什么,简单的比如调节协议,为什么那么久的产品到现在还是主流?
    发表于 06-23 17:34

    停止将AI局限于个人效率提升的用途

    停止将AI局限于个人效率提升的用途:60%的领导者转向代理自动化,实现真正的企业价值 新研究证实Copilot成本效益局限,推动市场对加速自动化进程的受治理、流程化AI解决方案的需求 加州圣何塞
    的头像 发表于 06-23 09:36 485次阅读

    K230开发板如何用Micropython把视频推流到远程RTSP服务器?

    打算使用K230开发类似安防摄像头的应用,可以通过互联网远程查看开发板摄像头拍摄的视频,需要把开发板摄像头获取的视频推流到远程的RTSP服务器上,但开发文档中提供的Micropython示例是开发板
    发表于 06-20 06:49

    昱栎技术有限公司能做什么

    工业设计·IndustrialDesign1.百人工程师专业设计团队,上百家行业客户的选择;2.多年设计经验积累,近千种产品设计案例;3.从市场调研,原型探索,模型创建,全流程设计准备;4.精益求精,科学严谨的详细设计过程;5.始终建立在以用户需要为导向,体验为王的设计理念;6.最大化考虑产品成本及后期产业链服务与运维;7.创新,创新,创新,用最先进的技术帮
    的头像 发表于 05-16 14:58 624次阅读
    昱栎技术有限公司<b class='flag-5'>能做什么</b>?

    请问如何使用micropython在K230上使用usb摄像头?

    如何使用micropython在K230上使用usb摄像头?
    发表于 04-23 06:10