micropython和python区别-(一)什么是MicroPython?

2023-05-16

1cd8b412052b6c.jpg

MicroPython简介

MicroPython是Python 3编程语言的精简高效实现 ,包括Python标准库的一小部分,并且经过优化,可在微控制器和受限环境中运行。 MicroPython pyboard是一个紧凑的电子电路板,在裸机上运行MicroPython,为您提供一个低级Python操作系统,可用于控制各种电子项目。 MicroPython包含许多高级功能,如交互式提示,任意精度整数,闭包,列表理解,生成器,异常处理等。然而它非常紧凑,可以在仅256k的代码空间和16k的RAM内运行。 MicroPython旨在尽可能与普通Python兼容,以便您轻松地将代码从桌面传输到微控制器或嵌入式系统。 微控制器是缩小到单个非常小的芯片上的计算机。 嵌入式系统是在更大的机械或电气系统中起作用的计算机。嵌入式系统通常使用微控制器。 这提出了两个重要问题:为什么要使用这种小型,动力不足的基于微控制器的设备?

为何使用Python?

回答这些问题说明了为什么围绕MicroPython有如此多的趣味性。

为何选择Micro?

电脑是惊人的,看似神奇的东西。例如,向世界的另一端进行视频通话是司空见惯的。然而,就在20年前,这是科幻小说的领域。 任何足够先进的技术都与魔术无法区分。 亚瑟C.克拉克,预言的危害:想象力的失败

科幻小说作家亚瑟·克拉克(Arthur C. Clarke)的引用表明,先进技术似乎是令人敬畏的神奇魔力。他忘了提到任何足够先进的技术如果到处都是无聊的。除了最好奇的人之外,熟悉和普遍存在消除了所有人的奇迹。

microPython是怎么诞生的?

Damien George是一名计算机工程师,他每天都要使用Python语言工作,同时也在做一些机器人项目。有一天,他突然冒出了一个想法:能否用Python语言来控制单片机,进行实现对机器人的操控呢?

要知道,Python是一款比较容易上手的脚本语言,而且有强大的社区支持,一些非计算机专业领域的人都选它作为入门语言。遗憾的是,它不能实现一些非常底层的操控,所以在硬件领域并不起眼。

Damien为了突破这种限制,他花费了六个月的时间来打造Micro Python。它基于ANSI C,语法跟Pyton 3基本一致,拥有自家的解析器、编译器、虚拟机和类库等。目前它支持基于32-bit的ARM处理器,比如说pyboard(STM32F405),支持NRF51822(micro:bit)、支持FireBeetle-ESP32、支持WiPy、支持ESP8266核心主控、支持CC3200等等。

为何选择Python?

Python是一种易于学习,使用广泛且富有表现力的编程语言。用简洁简单的代码在Python中编写你的程序很容易。此外,Python蓬勃发展,因为它拥有一个组织良好,积极主动,多样化和热情的全球社区。

MicroPython是Python 3的完全重新实现。除了在后面的段落中描述的一些差异之外,您对Python的了解也适用于MicroPython。常规Python和MicroPython之间最明显的区别是MicroPython被设计为在极其受限的条件下工作(例如Micro:bit上只有16千字节的RAM)。 MicroPython直接在硬件上运行"裸机”:没有像Windows,macOS或Linux这样的底层操作系统。通常由操作系统提供的所有操作和服务都由MicroPython直接处理。MicroPython具有完整和直接的硬件控制,因此,实际上,MicroPython是操作系统。 除了少数例外,Python的所有语言功能也都在MicroPython中。由于设备的性质有限,默认情况下MicroPython没有附带完整的标准库。相反,根据设备的不同,它将附带标准库的子集,通常以高效的嵌入式友好方式重新实现。

由于MicroPython在具有不同功能的设备上运行,因此功能和模块的可用性有时会有所不同。当然,具有特殊功能的设备(如WiFi)将包含支持这些功能的模块。

支持MicroPython的开发板有很多?

比如:pyboard

micro:bit

ESP8266/ESP32

stm32等等

下面将介绍部分开发板

什么是pyboard?1580fe164cbc70.jpg

pyboard是官方的MicroPython微控制器板,完全支持软件功能。硬件有:STM32F405RG微控制器

具有硬件浮点的168 MHz Cortex M4 CPU

1024KiB闪存ROM和192KiB RAM

Micro USB连接器,用于电源和串行通信

Micro SD卡插槽,支持标准和高容量SD卡

3轴加速度计(MMA7660)

带可选备用电池的实时时钟

左下边缘有24个GPIO,底行有5个GPIO,底部有LED和开关GPIO

3个12位模数转换器,16引脚,4个模拟接地保护

2x 12位数模转换器(DAC),可在引脚X5和X6上使用

4个LED(红色,绿色,黄色和蓝色)

1个复位和1个用户开关

板载3.3V LDO稳压器,能够提供高达250mA的电压,输入电压范围为3.6V至16V

ROM中的DFU引导加载程序,可轻松升级固件

什么是micro:bittimg-1-6mmegd5znxmpmwlvm919bct2xn0k47chenzlqipiuqw.jpg

micro:bit是由英国广播公司BBC推出的可编程微型计算机,可以帮助用户学习基础编程知识。它最大的亮点在于支持图形化编程,支持microPython编程。micro:bit主控采用nrf51822芯片作为主控,IC包括256KB片上闪存,16KB RAM,32位ARM®Cortex™ M0 CPU,支持Bluetooth低功耗,在低功耗模式下,最低功耗可以达到0.6uA。

什么是WiPy?15091c06c0242b.jpg

WiPy是支持microPython编程、支持WiFi和蓝牙的开发板,定位于物联网应用的设计。WiPy控制器的核心采用Espressif ESP32芯片,其最大的特点在于体积小巧,支持蓝牙和WiFi。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

micropython和python区别-(一)什么是MicroPython? 的相关文章

随机推荐

  • Deno编译踩坑记(Mac环境)

    前言 最近入坑Deno xff0c 第一步肯定是从编译开始 xff0c 然后踩坑了 xff0c 记录一下 xff5e 常规编译 xff1a 1 安装rust curl proto 39 61 https 39 tlsv1 2 sSf htt
  • Debian下磁盘挂载及开机启动设置教程

    检查磁盘空间即剩余情况 本文是在实际使用过程中真实操作 xff0c 用于交流和学习 xff1b 1 使用fdisk l 命令查看当前磁盘的大小 xff0c 其中 dev sda磁盘发现并未使用 xff1b 使用时 xff0c 需要切换到ro
  • HC-06蓝牙模块

    主机 xff1a 用于向从机下发指令 xff0c 能够搜索从机并主动建立连接的一方 从机 xff1a 用于接收主机下发的命令 xff0c 不能主动建立连接 xff0c 只能等别人连接自己 xff08 HC 06只能工作在从机模式下 xff0
  • JAVA回文数的判断

    回文数 xff1a 如121 xff0c 1221这样正着和倒着读都一样的数叫做回文数 xff0c 代码的主要思路是先将用户输入的数字倒过来后再与原来的数进行判断 难点 xff1a 将用户输入的数字倒过来 上代码 xff1a package
  • IOS+openfire 即时通讯

    最近看到很多人在琢磨ios即时通讯这块 xff0c 于是出去好奇 xff0c 决定动手试试 xff0c 今天就先从xmpp这个框架来尝试 其实xmpp也就一个协议而已 xff0c 更多人还是喜欢把它叫做Jabber 首先还是提供一下下载地址
  • webpack进行js打包,引入js

    node中html引入jquery可以用webpack进行打包 webpack 3可以打包 xff0c webpack 4 打包需要安装webpack cli xff0c 否则会报错 直接引入js会报错 语法错误 xff0c 浏览器不支持E
  • iOS中UICollectionView(集合视图)的使用

    1 简单介绍与说明 简介 UICollectionView提供了一种自定义布局展示试图内容的方式 说明 涉及到的必须的基本类型与基本代理类型有UICollectionView UICollectionViewCell UICollectio
  • iOS表视图之增删单元格

    要进行单元格的修改 xff0c 首先我们要删除原来的视图并从对象库中拖曳一个Navigation Controller视图 xff08 导航控制器 xff09 到设计页面 xff0c 添加Navigation Controller视图的同时
  • 史上最全IOS的touch事件手势使用方法

    以下内容源于本人整理 部分来源于网络 如有侵权行为或错误之处还望指正 请联系邮箱huiyutianshi 64 qq com 关于touch事件的 手势和事件都是基于UIRrsponder的 UIResponder包含所有的响应事件 触摸
  • vtk 显示效果设置

    在vtk中 xff0c 显示样式的显示 xff0c 是通过vtkProperty来控制的 xff0c 这里介绍三种基本的属性设置方式 xff0c 点方式 xff0c 网格方式和面方式 xff0c 这里以 头像三角网格的显示为例介绍其显示 其
  • Qt 线程(一) Qt 多线程实现的两种方式 线程实现详解

    简述两种实现方式 Qt提供了一个管理线程的类 xff1a QThread 子类化QThread并重新实现run 使用worker object通过QObject moveToThread将它们移动到线程中 简介QThread类 一 公共槽函
  • 1000以内的完数

    题目 xff1a 一个数如果恰好等于它的因子之和 xff0c 这个数就称为 完数 例如 xff0c 6的因子为1 2 3 xff0c 而6 61 1 43 2 43 3 xff0c 因此6是 完数 编程找出1000之内的所有完数 xff0c
  • 自适应参数的DE算法——JADE,L-SHADE

    目录 JADELSHADE参考文献 最近复写一个DE 1 xff08 差分进化算法 xff09 参数的自适应策略的变体L SHADE 2 xff08 CEC冠军算法 xff09 的matlab版本 xff0c 发现其提出的自适应策略对DE改
  • 转:基于科大讯飞语音API语音识别开发详解

    原文来自于 xff1a http www 52wulian org android voice 最近项目需要用到android语音识别 xff0c 立马就想到科大讯飞 xff0c 结合官方实例及阅读API文档 xff0c 初步的完成了And
  • 离线语音识别_离线语音识别库_离线语音识别sdk - 云+社区 - 腾讯云

    广告关闭 2017年12月 xff0c 云 43 社区对外发布 xff0c 从最开始的技术博客到现在拥有多个社区产品 未来 xff0c 我们一起乘风破浪 xff0c 创造无限可能 是的 xff0c 录音文件识别服务就是离线语音识别服务 录音
  • python在线发音-Python如何实现文本转语音

    准备 我测试使用的Python版本为2 7 10 xff0c 如果你的版本是Python3 5的话 xff0c 这里就不太适合了 使用Speech API 原理 我们的想法是借助微软的语音接口 xff0c 所以我们肯定是要进行调用 相关的接
  • micropython和python区别-MicroPython与Python速度对比

    首先说明 xff0c micropython跟python是没有任何可比性的 xff0c python作为一种通用的语言 xff0c 在扩展性上不是micropython能比的 xff0c 比如大量的库 xff0c 可以方便的用C语言加模块
  • python代码写好了怎么运行-python的代码写在哪里,怎么样运行python代码

    1 python的代码写在哪里 你有两种方式写python代码 xff0c 他们针对不同的应用场景在python交互式解释器里写代码 在编辑器里写代码 在python交互式解释器里 xff0c 你可以写简单的代码 xff0c 尽管复杂的代码
  • micropython入门教程-Micropython入门实操心得

    1 用串口线连接pyboard和电脑 xff0c 发现开发板被识别为移动磁盘 2 移动磁盘中默认会有4个文件 xff0c 它们分别是 xff1a boot py xff1a 开机最先运行的文件 xff0c 最后会由它加载main py ma
  • micropython和python区别-(一)什么是MicroPython?

    MicroPython简介 MicroPython是Python 3编程语言的精简高效实现 xff0c 包括Python标准库的一小部分 xff0c 并且经过优化 xff0c 可在微控制器和受限环境中运行 MicroPython pyboa