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

    文章

    4406

    浏览量

    66851
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73155
  • python
    +关注

    关注

    57

    文章

    4858

    浏览量

    89597
  • 解释器
    +关注

    关注

    0

    文章

    103

    浏览量

    6935

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    潘多拉开发板在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 2503次阅读

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

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

    RVSP线缆哪些缺点或者局限

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

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

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

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

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

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

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

    开关量对传模块能做什么

    开关量对传模块是一种用于传输开关信号(即“开”或“关”、“高”或“低”、“1”或“0”等二进制状态)的专用设备或模块,通常用于工业控制、自动化系统或远程监控场景。它的核心功能是将开关量信号通过有线或无线方式从一个位置传输到另一个位置,实现远程控制或状态反馈。 主要用途 1. 远程控制 - 控制设备启停:通过传输开关信号,远程控制电机、阀门、灯光、继电器等设备的启动或停止。 - 自动化联动:在自动化生产线中,触发其他设备
    的头像 发表于 04-17 15:17 404次阅读

    模拟量对传模块能做什么

    模拟量对传模块是一种用于连续信号传输的设备,能够将模拟量输入(如电压、电流、温度、压力等)通过有线或无线方式从一个位置传输到另一个位置,并进行高精度还原。与开关量(离散信号)不同,模拟量是连续变化的物理量,因此这类模块在需要精确测量或控制的场景中至关重要。 核心功能 1.信号传输与转换 -模拟信号传输:将传感器输出的模拟信号(如4-20mA、0-10V、PT100热电阻信号等)远距离传输到PLC、DCS或控制器。 -信号隔离与转换:防止干扰,实现
    的头像 发表于 04-17 15:16 553次阅读

    峟思:什么是渗压计,使用渗压计能做什么?

    、可靠、耐用的地下渗压监测利器!渗压计是什么?渗压计是一种用于测量岩土体或结构内部孔隙水压力的专业仪器,相当于给工程安装了一双"透视眼"。它能实时感知地下水压的细微变化,帮助工程师判断地
    的头像 发表于 03-21 13:50 591次阅读
    峟思:什么是渗压计,使用渗压计<b class='flag-5'>能做什么</b>?

    如何为micropython添加自己的C代码库?

    部分代码需要更高效的效率 如何为micropython添加自己的C代码库? 是否教程? 如果可以的话是否可以提供一个实现实例?
    发表于 03-11 07:03

    TTS语音播报控制器能做什么?

    TTS(Text-to-Speech)语音播报控制器,作为一种能够将文本信息转换为语音输出的技术设备,在现代社会的各个领域中展现出了广泛的应用前景。TTS技术的出现,丰富人机交互的方式,提高信息传播的效率和便捷性。 工作原理 文本语音:输入文字自动合成语音,支持任意中文、数字和英文字母。 语音播放:支持wav格式文件,可播放音乐或录音文件。 协议支持:支持AT指令和Modbus RTU/TCP协议,方便接入各种播报系统可接入PLC、组态屏。 应用功能 智能化控制:通过
    的头像 发表于 02-20 18:18 1110次阅读