ESP8266上的MicroPython入门(1)

上节简单得介绍了一下开发板,这节开始说一下为什么要用python开发,以及别的开发模式.

其实这里我并不知道要这么说,因为不谈应用场景得话,都是片面之词.所以我会搭配一些应用场景来说明.

1.AT指令得开发模式.其实这个芯片,设计之初就是为了给传统芯片增加连接能力用得.ESP芯片搭上了物联网得这个快车,自己也做的优秀,顺理成章就成了新秀.其实让MCU拥有彼此连接得方法有很多.比如蓝牙,zigbee,NRF24L01,LORA这些.为什么这些东西都没有流行得太广呢?我以自己现在得学识其实是说不出个所以然得.如果非要说,我觉得就是wifi这种连接方式在很多指标是取得了一种平衡.比如传输速率,容量,开发得门槛.以及一些高层应用,快速组网等.当然也不能吹得过头,总之就是还得看自己得需求来选择.

开发上,需要刷写官方得AT固件.然后搭配传统得单片机用串口去控制.开发模式不灵活但是胜在简单

放一张基础得指令图


2.还是继续来说乐鑫官方得开发模式


第一种就是传统单片机得开发模式,写一个死循环.加中断,或使用状态机,回调函数得这些个开发模式来开发.优点是最大得灵活性,最好得性能.但是随之带来得是开发得难度得增加(因为要事无巨细得管理一切),而且是和开发者得能力来挂钩,是比较看开发者得经验得.专业搞应用得开发者,极客,以及追求灵活性得.推荐这种开发得模式.

开发流程是这样得.首先要搭建一个开发环境.官方得做法是.在win系统上开以一个Linux的虚拟机,里面有一套GCC的编译器以及写好的Makfile文件(这个说话不对),就是要在编辑器里面写好程序->把这套程序来打包成一个格式为bin的文件->下载到esp3266中.需要的基础知识比较多,但是可以很深入的去了解芯片,压榨每一份性能.

第二种是开发流程一样.但是是运行了一套系统.嵌入式的系统,系统这个东西就是为了来管理硬件,加快开发效率,而后用一些更加高层的思想来编程.其实和Non-OS开发可以互相比较的开发.这个之后再说,很有说头.要是编写很复杂的逻辑和对系统的实时性有要求.完全可以牺牲一点内存空间来换取令人愉快的开发体验,以及更好的产品质量.从各个方面来看都是完全ok的,而且对于这些嵌入式系统来讲,其实思想上面都是大同小异,学会这一个,上手别的也很快,毕竟你一直逻辑编程也不现实不是吗?

Arduino的开发模式,看起来有一些儿戏,不极客.但是2012面世以来.吸引了大批的用户,有老师,学生,艺术家等等有激情的人.因为这种开发方式我觉得有点优雅,因为把封装的思想(姑且让我称之为思想),和STM32的库开发模式很一样,都是把底层的寄存器去成组控制.然后把常用的器件也打包起来(其实就是封装,还是封装).使用时面向对象.说到底还是裸机编程.不要去纠结这些东西,以需求为导向,敏捷开发.才是王道.

我还是比较喜欢arduino的开发的,因为出东西很快,而且一些库写的真的很棒,大佬们功力深厚,本菜鸡瑟瑟发抖.esp8266开发,我建议使用的.

这个地方有个坑,我说一下.我想写Arduino.我也知道要刷一个固件.但是我不知道要刷上面东西在里面.后来才搞明白.其实就是所谓的NodeMCU的那个固件,还支持Lua语言开发的那个.我日..........研究了很久.......都是告诉我这么写程序的...就是不告诉我前面着一步.可能大佬们觉得这个不用说吧....流下不学无术的眼泪.....

说说Lua开发.这个语言很神奇,而且也不算很小众.从百科抄点东西来:

轻量级

Lua语言的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快,从而适合嵌入在别的程序里。5.0.2版的Lua的内核小于120KB,而Python的内核大约860KB,Perl的内核大约1.1MB。

可扩展

Lua并不象其它许多"大而全"的语言那样,包括很多功能,比如网络通讯、图形界面等。但是Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。

其它特性

Lua还具有其它一些特性:同时支持面向过程(procedure-oriented)编程和函数式编程(functional programming);自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程  ,并非操作系统所支持的线程)支持;通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。(我也有些看不懂...高级特性俺还用不到)......看看热闹就行

用NodeMCU的好处是入手容易Lua与MicroPython相对于Arduino C来说要简单很多,所以学习其编程是非常快的,我看Lua文档一下午,看NodeMCU一晚上,看文档一晚上,就差不多可以写了。但是这种方式速度一定是比直接运行固件代码来得慢的,因为LUA与Micropython都要委托其语言解析器重新解释执行。而且最要命的一个问题是这种做法你所写到板子上的代码是文件来的,是可以被拷贝出来的!光是这一点就是这个框架一大硬伤,试想想你开发出来的产品是毫无门槛地可被复制是个什么情况?所以NodeMCU最多只能是一个实验室产品,或者做一些快速原型。

https://nodemcu.readthedocs.io/en/master/

这是文档官网,自己看去吧.基本上非常完善了.

----------我是迷人得分割线------------------------------------------------

我终于要开始吹MicroPython了!!!!!!!...下篇吹吧.累了.喝个娃哈哈,脉动回来

(0)

相关推荐

  • “物联网开发实战”学习笔记-(一)硬件开发环境的搭建

    这里的分享是通过自己的整理总结出的一个课程的学习笔记,我想用简洁易懂的步骤来分享一个物联网建立的过程. 这里课程上有四个 4 个产品场景 1.可以手机控制的智能电灯 2.可以基于光线自动调节的智能电灯 ...

  • 3-1ESP8266-物联网开发基础

    为了便于您更好的学习本教程,我们制作了视频教程供您学习参考使用. 3-1-1 安装 ESP8266-NodeMCU开发板驱动 NodeMCU开发板不是即插即用的设备,因此我们需要安装驱动才能使用. 3 ...

  • 3-1-2为ESP8266-NodeMCU搭建ArduinoIDE开发环境

    要想使用Arduino IDE来配合NodeMCU开发板使用,首先要对Arduino IDE进行设置工作.本节教程将引领您完成Arduino IDE的设置,并且使用Arduino IDE内置的blin ...

  • ESP8266上的MicroPython入门(0)

    最近鸽了很久,其实有很多文章没有发出来.天天看各路大佬得万字长文,感觉自己学的太水,羞射....不好意思发.但是不写吧.又感觉对不起自己得99个粉丝(昨天取关了一个). Python and Micr ...

  • ESP8266上的MicroPython入门(4)

    写了几篇文章,但是么有什么条理,想表达得太多.不知道该怎么去说,比较苦恼.昨天又鸽了... 真鸽了!!!其实再此之前还有一篇刷写固件得,我下篇写吧.我考虑到Python得问题,还有写几篇语言基础吧.那 ...

  • ESP8266上的MicroPython入门(3)

    这节简单的介绍一下: MicroPython REPL位于UART0(GPIO1 = TX,GPIO3 = RX)上,波特率为115200.制表符补全有助于找出对象具有哪些方法.粘贴模式(Ctrl-E ...

  • 赵老师要开线上小篆书法入门班啦

    为了满足更多人学习小篆书法的兴趣, 本人计划近期开设网络书法班. 这也是一个逼迫自己学习的机会. 学什么呢? 要学就学书法和小篆[小篆和书法的关系]. 如果想知道我为什么要开网课. 可以继续往下看. ...

  • 斯蒂芬▪金的《写作这回事》:给写作小白上的一堂入门基础课

    <写作这回事>可能并不被我们熟知,但<肖申克的救赎>是我们耳熟能详的,这些书都出自斯蒂芬▪金(以下简称金),他十岁前后开始试笔,到2000年五十三岁时发表作品35部,被< ...

  • 掌握这些春正山小种茶基础知识,你在正山小种茶上才算入门

    烟正山小种采用正山小种为原料,用大块的松木烘焙之后.再经过第 二道松枝熏焙工艺的正山小种,称"烟正山小种"."烘焙"利用的是松木在燃烧过程产生的热量和少量的烟. ...

  • 给你一块刺绣,能认出多少针法?——纸上谈“绣”入门篇

    拖了半年的稿子--刺绣大概会写一个系列吧,先把基础的写了. 由于目前市面上最常见的刺绣风格是"苏绣",特征就是"平绣"用得很多,所以基本上看完这篇,市售手绣也就 ...

  • 干货 | 教你在CC3200-LAUNCHXL上运行MicroPython

    EEWORLD 行业资讯 犀利解读 技术干货 每日更新 经过几天的实验,终于在CC3200-LAUNCHXL开发板上成功运行了MicroPython,下面将具体方法分享给大家. 首先,需要做一些准备工 ...

  • 在SensorTile上使用MicroPython(二)

    LPS22HB 的 Micropython 程序移植 前面介绍了传感器的接口.主要寄存器.参数计算等方面的内容,下面就介绍用MicroPython驱动LPS22HB的方法. 为了让程序具有通用性,以及 ...