Micropython 玩转硬件系列1:环境搭建

liftword6个月前 (12-27)技术文章67

1.引言

最近几年Python语言非常火,听说小学生都开始学Python了,让我这个中年人感到一丝丝压力。为了以后最起码能辅导辅导孩子,咱也得学学啊。学Python干什么用呢?我这本身是做嵌入式的,听说有个叫MicroPython的,能直接运行在单片机上,这让我很感兴趣。查了下,MicroPython是 Python 3 语言的精简高效实现 ,包括Python标准库的一小部分,经过优化可在微控制器和受限环境中运行。这个不错,这样就可以把Python和硬件结合起来了。下面就开始学习之旅吧。

2.环境介绍

2.1.硬件

在某宝上了花了26元买了一个小板子,这价格实在是够便宜啊,

再加一条micro usb线就可以了,一头接板子,一头插在电脑上。

2.2.软件

1) PC端Windows系统,Python 2.7环境 或者 Python 3.4及更新版本,Putty 串口工具

2) 板子上Micropython 环境

3.环境搭建

第1步:将usb线连接电脑和板子,PC端识别出一个虚拟串口。如果安装不成功,那么需要一个CP2102的驱动。

第2步:安装esptool,这个工具是用来和ESP32板子进行通讯的,实现micropython固件烧录、读写内存等功能。本身它是开源的,项目位于github.com/espressif/esptool

安装方式,我这里采用的是:pip install esptool

备注:esptool本身基于python的,所以在安装前,你的电脑上需要先安装Python,这里不再描述,不会的自行百度即可,我电脑上装的Python 2.7。

第3步,在Windows DOS窗口下执行下述指令

esptool.py --port COM3 erase_flash

实现ESP32 Flash全部擦除的功能。

注意:需要将COM3改成实际你电脑上对应的串口号。

第4步,到下面这个网址下载最新的稳定版本固件

micropython.org/download/esp32/

然后执行:

esptool.py --chip esp32 --port COM3 write_flash -z 0x1000 esp32-idf3-20191220-v1.12.bin

上述下载固件的过程需要经历一段时间

4.运行Hello World

上面工作执行完毕,就相当于给ESP32芯片装上了一套Python的环境,只不是它不是标准版的Python,因为它运行在微处理器闪个,叫做MicroPython.xia下面就到了Hello World时间了。

第1步:通过一个串口调试助手连接板子,可以使用SecureCRT或者PUTTY等工具。

以Putty为例:


第2步:我们就可以打印出Hello World了。

直接敲代码:

print("Hello World!")

然后一回车,结果就出来了!

是不是很爽啊。

5.总结

本篇介绍了ESP32 Micropython环境的搭建,下一篇介绍点灯实验。


关注TopSemic,让我们一起成长吧!

相关文章

赶紧收藏!编程python基础知识,本文给你全部整理好了

想一起学习编程Python的同学,趁我粉丝少,可以留言、私信领编程资料~Python基础入门既然学习 Python,那么至少得了解下这门编程语言,知道 Python 代码执行过程吧。Python 的历...

Python爬虫进阶教程(二):线程、协程

简介线程线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,由线程ID、程序计数器、寄存器集合和堆栈共同组成。线程的引入减小了程序并发执行时的开销,提高了操作系统的并发性能...

恕我直言!你对Python里的import一无所知

文章来源:https://mp.weixin.qq.com/s/4WAOU_Lzy651IE-2zZSFfQ原文作者:写代码的明哥写 Python 通常我们会怎样导包?可能大部分情况下都是用 impo...

Python协程之asyncio Python协程之间共享变量

asyncio 是 Python 中的异步IO库,用来编写并发协程,适用于IO阻塞且需要大量并发的场景,例如爬虫、文件读写。私信小编01即可获取Python学习资料asyncio 在 Python3....

一文带您了解Python中的并发:异步(Asyncio)和多线程(Thread)

Python以其简单性和多样性而闻名,是一种适用于广泛应用领域的编程语言。在处理多个任务并发时,Python提供了两种主要方法:Asyncio 用于异步编程,Multithreading 用于管理多个...

天啦噜!Python多线程居然是骗人的?

Python解释执行原理我是一个Python线程,我的工作就是解释执行程序员编写的Python代码。之所以说是解释执行,是因为Python是高级语言,CPU那家伙不认识Python代码,需要运行的时候...