8246|165

1万

帖子

14

资源

版主

MicroPython 用户开发指南 [复制链接]

 

介绍了怎样开发自己的模块

简介

假如您以某种方式碰到了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-us ... rmod.ipynb找到笔记本 。您可能想知道,一切都在MIT许可下。

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

最后一句话:我相信,可以轻松地在python本身中实现本文档中的所有示例,并且我绝对不主张在固件中包含这些琐碎的案例。我基于两个理由选择了这些示例:首先,它们都是简单的,几乎是原始的,但是由于这个原因,它们展示了一个单一的想法而不会分散注意力。其次,在告诉我们期望什么的同时,拥有一段并行的python代码很有用,它还鼓励我们实现C版本,从而产生pythonic函数。代码块您将在本文档中遇到各种代码块。这些具有各种范围,在这里列出:

  • 如果代码块以感叹号开头,则该内容应在命令行上执行。
  • 如果代码块看起来像一段python代码,则应在python解释器中运行。
  • 如果代码块的标题是%%micropython,那么您猜对了,那么内容应该传递到所选端口的micropython解释器。
  • 其他代码段可以是C代码或makefile。这些都应该易于识别,因为这两个文件都有标头,并带有指向文件位置的链接。

 

参考

 


回复

1万

帖子

14

资源

版主

这篇文档可以作为研究和开发micropython的非常好的指南


回复

1947

帖子

0

资源

五彩晶圆(初级)

回帖奖励 +20 分芯积分


回复

838

帖子

0

资源

一粒金砂(高级)

回帖奖励 +20 分芯积分

这个要看看。


回复

709

帖子

0

资源

纯净的硅(初级)

回帖奖励 +20 分芯积分

感謝分享      


回复

1155

帖子

6

资源

版主

回帖奖励 +20 分芯积分

个人签名

加油,一切皆有可能。


回复

14

帖子

0

资源

一粒金砂(中级)

回帖奖励 +20 分芯积分

我的PyBoard还在路上,现在在折腾UART→RS485 主机模式


回复

1

帖子

0

资源

一粒金砂(初级)

回帖奖励 +20 分芯积分

赞,感谢分享

回复

36

帖子

0

资源

一粒金砂(中级)

回帖奖励 +20 分芯积分

好资料回复看一下!


回复

113

帖子

0

资源

一粒金砂(中级)

回帖奖励 +20 分芯积分

版主大人的贴子大多都是精品,回复了再看

回复

10

帖子

0

资源

一粒金砂(中级)

回帖奖励 +20 分芯积分

这个要看看。

回复

4

帖子

0

资源

一粒金砂(中级)

回帖奖励 +20 分芯积分

好好学习,天天向上,感谢分享


回复

447

帖子

8

资源

一粒金砂(高级)

翻译的好奇怪


回复

4

帖子

0

资源

一粒金砂(初级)

学习 学习


回复

2

帖子

0

资源

一粒金砂(初级)

学习一下


回复

1

帖子

4

资源

一粒金砂(初级)

这个要看看。


回复

42

帖子

0

资源

一粒金砂(中级)

谢谢楼主分享

回复

4

帖子

0

资源

一粒金砂(初级)

这篇文档可以作为研究和开发micropython的非常好的指南


回复

1

帖子

0

资源

一粒金砂(初级)

谢谢分享。。。。


回复

8

帖子

0

资源

一粒金砂(初级)

谢谢~~~~~


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/6 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表