micropython中文编码_MicroPython 用户开发指南

本文档介绍如何在MicroPython环境下扩展功能,包括使用C语言编写自定义函数、类和方法,以克服Python的内存和性能限制。通过逐步讲解,作者展示了创建模块的过程,并提供了实际代码示例,涉及数组、矩阵操作、傅立叶变换等。所有示例代码可在GitHub上找到,旨在帮助读者深入理解MicroPython的内部工作原理。
摘要由CSDN通过智能技术生成

简介

假如您以某种方式遇到了micropython,在某个实例中爱上了它,然后订购了pyboard,甚至您可能已经为加急快递支付了额外费用。pyboard到达后,您变得像小狗一样兴奋。您使用了硬件,学习了如何使用加速度计,开关,LED和温度传感器,并通过I2C,SPI,USART或CAN接口与其他设备成功通信。您已将开发板插入计算机,然后在上面模拟出一个看起来失去方向感的鼠标把某人逼疯。您甚至试图将其除以零,只是为了查看芯片是否会起火(顺便说一句,这很恶心),并且注意到解释器巧妙地阻止了此类事件的发生。您已经编写了自己的python函数,甚至将它们编译成冻结的模块,然后将所有该死的东西烧录到微控制器上。然后,您已经对板载汇编器有所了解,因为您希望可以加速运行(但其实你不能)。

然而,在此之后您总感到有些不满意。您发现您想以一种特殊的方式访问外围设备,或者需要一些独特的函数,当在python本身中实现该函数时,它似乎会占用过多的RAM,并且需要很长的执行时间。由于局限性,使用汇编就很尴尬了。也许,你完全不想通过用python编写所有东西来使代码易于阅读,你想隐藏其中的魔力,只是为了让它更容易阅读。但是您仍然想保留python的优雅。

经过彻底的内省和深思熟虑之后,如果您发现自己身上的这些问题,则有两种选择:您感到绝望,放弃想法并继续前进;或者学习micropython如何在后台完成这些繁重的工作,用C语言编写自己的函数、类和方法。事实证明,一旦掌握了它,它并不难。唯一的窍门就是掌握它,这就是本文的目的。

在接下来的内容中,我想展示如何添加新功能并将其传递给python解释器。我将尝试以一种平易近人的方式讨论micropython的各个方面。每个概念都将在一个实现中呈现,并减少到最低限度,您可以立即进行编译并尝试一下。(这里的代码已经针对micropython v.1.11进行了测试。)在每一章的最后,我将完整列出所讨论的代码,并且还包括源链接,以便复制和粘贴而不用输入大量的代码。此外,我还提供了一个小示例,以便我们可以看到我们代码的效果。该代码以及该文档的源代码也可以在 https://github.com/v923z/micropython-usermod 下获得。最简单的入门方法可能是使用

git clone https://github.com/v923z/micropython-usermod.git

至于来源:您在这里看到的所有内容都来自一个Jupyter笔记本。没错,文档,C源代码,编译和测试,您可以在https://github.com/v923z/micropython-usermod/blob/master/docs/micropython-usermod.ipynb 找到这些笔记本 。您可能想知道,这一切都在MIT许可下。

我从一个非常简单的模块开始,然后逐步构建它。在讨论的最后,我将概述通用数学库的版本,类似于numpy。实际上,正是在我研究这个数学模块的时候,我才意识到,缺少一个关于micropython的编程指南,因此才有了本文档。显然,numpy是一个巨大的库,我们不会完整的实现它。但是我们将能够定义有效存储的阵列,在这些阵列上可以进行矢量化计算,处理矩阵,对其反转和收缩,将多项式拟合到测量数据并获得任意序列的傅立叶变换。我确实希望您觉得教程足以令人信服!

最后一句话:我相信,本文中的所有示例都可以在python本身中轻松实现,我绝对不主张在固件中包含这些琐碎的案例。我基于两个理由选择了这些示例:第一,它们都很简单,几乎是原始的,但是正是因为这个原因,它们展示了一个没有干扰的想法;其次,拥有一段并行的python代码是很有用的,因为它告诉我们期望什么,而且它还鼓励我们实现C语言版本,从而产生pythonic函数。

代码块

您将在本文档中遇到各种代码块。这些具有各种范围,如下所示:

如果代码块以感叹号开头,则该内容应在命令行上执行。

如果代码块看起来像一段python代码,则应在python解释器中运行。

如果代码块的标题是%%micropython,那么您猜对了,那么内容应该传递到移植的micropython解释器中。

其他代码段可以是C代码或makefile。这些都应该易于识别,因为这两个文件都有一个带有指向文件位置的链接的头部。

参考

在线版本

PDF版本

EPub版本

2022 / 01/ 30: 新版esptool 刷micropython固件指令不是 esptool.py cmd... 而是 esptool cmd... 即可;另外rshell 在 >= python 3.10 的时候出错解决方法可以查看:  已于2022年发布的: 第二章:修复rshell在python3.10出错 免费内容: https://edu.csdn.net/course/detail/29666 micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音模型并应用。为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。为记录单片机传输过来的数据, 本教程会教大家入门数据库。  本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 本教程micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。  学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值