micropython esp32手册_墨星ESP32上手教程-micropython

简介

本文来分享一下墨星esp32的MicroPython的上手使用。包括安装驱动,安装软件,使用io引脚,使用电池,使用文件系统,SD卡,以及Wi-Fi。

宇宙无敌超级ESP32开发板,终于来了!墨星ESP32基于乐鑫公司的WROOM32模组,我们添加了你需要的所有功能:内置USB转串口,自动下载电路,锂电池充电器以及GPIO,可以适用于墨星系列的扩展板。而且我们加入了一个SD卡槽,可以使用SD卡来扩展存储空间。

墨星ESP32模块包含双核ESP32芯片,4 MB SPI Flash,天线以及所有配套的器件。ESP32具有WiFi 和 BLE支持。这意味着它几乎适用于任何无线或互联网连接的项目。

031.jpg

墨星ESP32是墨星系列的主控板,所以你可以使用墨星系列的多款配件。

ESP32是一款非常受欢迎的ESP8266的完美升级产品。相比之下,ESP32具有更多的GPIO,大量的模拟输入,两个模拟输出,多个额外的外设(如备用UART),两个内核,更高速的处理器,等等等等!我们认为,随着ESP32的推出,我们会看到更多人转向这款芯片,因为它功能全面。

警告:由于ESP32很新,很多开发环境都不完善,请确保自己有足够的能力来折腾,我们会不断完善开发环境,降低使用门槛。

以下是Espressif关于ESP32的规格:

带有600 DMIPS的240 MHz双核Tensilica LX6微控制器

集成520 KB SRAM

集成802.11b / g / n HT40 Wi-Fi收发器,基带,堆栈和LWIP

集成双模蓝牙(经典和BLE)

WROOM32模块中包含4 MB闪存

板载PCB天线

超低噪声模拟放大器

霍尔传感器

10个电容式触摸接口

32 kHz晶体振荡器

3个UART(只有两个,一个用来下载程序,一个用来使用)

3个SPI(默认配置一个)

2个I2C(默认配置一个)

12个ADC输入通道

2 x I2S音频

2个DAC

每个GPIO引脚都提供PWM /定时器输入/输出

带有32 kB TRAX缓冲区的OpenOCD调试接口

SDIO主/从50 MHz

SD卡接口支持

现在我们使用micropython来玩一遍这个板子。

安装驱动

如果安装完成

windows:设备管理器会出现

MacOS:终端输入 ls /dev/tty.* 会出现/dev/tty.SLAB_USBtoUART这个设备。

安装软件

你可以使用任何喜欢的终端软件。

windows下推荐putty,MacOS下推荐picocom,波特率为115200。

超级推荐:PyCharm开发MicroPython

picocom命令:sudo picocom /dev/tty.SLAB_USBtoUART -b 115200

即可进入MicroPython的REPL。

引脚

micropython esp32手册_墨星ESP32上手教程-micropython_第1张图片 ESP32的一大优点是它比ESP8266拥有更多的GPIO。但是有几件事值得注意,所以请仔细阅读引脚说明

微控制器的通用I / O引脚。所有的逻辑是3.3V

ESP32有很多的GPIO可以连接LED,按键,开关,传感器,下面是我们推荐的引脚使用方法。

墨星esp32的板子设计过,所有的引脚(除了已经占用的引脚),可以接任意电平,都不会影响启动。(GPIO12引脚已经设置为不影响flash_voltage,详情见https://github.com/espressif/esptool/wiki/espefuse)

标有IO的引脚(比如IO12),都是可以输入(I),又可以输入(O),只标有I的引脚(比如I34),只能输入,不能输出。

8个GPIO:

IO12

IO13

IO14

IO27

IO33

IO32

IO4

IO5

I2C

IO22 SCL

IO21 SDA

UART2

IO16 RX

IO17 TX

VSPI

IO18 SCK

IO23 MOSI

IO19 MISO

模拟引脚

IO25 DAC1 ADC

IO26 DAC2 ADC

I34 ADC

I36 ADC

已经占用的引脚

IO15 SD卡的SPI的CS引脚

IO29 SD卡的检测引脚

I35 ADC 用于检测锂电池电压

IO1 TX和IO3 RX 连接到USB转串口芯片,用于REPL与烧写固件。

电源引脚:

GND – 地

BAT – 这是用于锂电池的JST插孔的正极

USB – micro USB插孔的正极

3V – 这是3.3V稳压器的输出。该稳压器可以提供500mA的峰值,但其中一半是由ESP32提供的,ESP32是一个相当耗电的芯片。所以如果你需要大量的功耗用于LED,电动机等。使用USB或BAT引脚,并连接一个额外的稳压器

试一试:

from machine import Pin

p4 = Pin(4, Pin.OUT)#创建一个p4引脚,输出模式,标号是4

p4.value(1)#引脚置高

p4.value(0)#引脚置低

p5 = Pin(5,Pin.IN)#创建一个p5引脚,输入模式,标号是5

print(p5.value())#获取p5引脚的电平

供电管理

我们希望墨星开发板的供电非常方便,所以我们内置了锂电池充电芯片,当你插入USB和锂电池的时候,USB会最高400ma的电流给锂电池自动供电。

JST座子旁有一个LED,当充电的时候亮,当充电结束时也会亮。如果没有插入锂电池,当瞬时电流变大的时候,也会亮,比如连接Wi-Fi,打开热点,这是正常的。

如果你使用的是电池,那么你很可能想知道电压是多少!这样你就可以知道电池何时需要充电。锂电池在4.2V时“最大输出”,电池的大部分时间内保持在3.7V左右,然后在保护电路切断之前缓慢下降到3.2V左右。通过测量电压,您可以快速判断您何时低于3.7V

由于ESP32具有大量的ADC引脚,因此我们’牺牲’了一个引脚用于锂电池监控。您可以读取GPIO35的1/4.3电池电压  。

一个很实用的脚本,ESP32的ADC误差很大:

from machine import Pin, ADC

bat = ADC(Pin(35))

print(bat.read()*0.00113,'V')

文件系统

micropython内置了文件系统的功能非常好用。

读取当前文件列表:

>>>import os

>>>os.listdir()

['boot.py', 'a.txt']

写文件:

with open('a.txt','wt') as f:

f.write('hello world')

读文件:

with open('a.txt','rt') as f:

print(f.read())

SD卡

墨星esp32使用I39引脚作为SD卡检测的引脚。

sd_pin = Pin(39,Pin.IN)

sd_pin.value()#当插入SD卡,就是0,当没有插入SD卡,就是1

墨星esp32使用的是vspi通道连接SD卡,

把sdcard.py下载到板子里。

import machine, sdcard, os

from machine import SPI, Pin

sd = sdcard.SDCard(SPI(2, sck=Pin(18), mosi=Pin(23), miso=Pin(19)), Pin(15))

os.mount(sd, '/sd')

os.listdir('/sd')

脱机运行

参考资料:https://docs.singtown.com/micropython/zh/latest/esp32/esp32/general.html#id2

当上电后,会先执行boot.py,因为boot.py的内容会执行main.py,所以,我们只需要更改main.py就可以让程序脱机运行了。

但是怎么能让sd卡的程序自动运行?修改boot.py,先挂载sd卡,然后执行sd卡内的内容。

#boot.py

import machine, sdcard, os

from machine import SPI, Pin

try:

sd = sdcard.SDCard(SPI(2, sck=Pin(18), mosi=Pin(23), miso=Pin(19)), Pin(15))

os.mount(sd, '/sd')

execfile('/sd/boot.py')

except:

sd = None

if(sd):

execfile('/sd/main.py')

Wi-Fi

esp32最重要的功能就是Wi-Fi,MicroPython提供了Wi-Fi非常好的支持。

station功能

网络模块用于配置WiFi连接。有两处WiFi接口,一个用于 station (当ESP32连接到路由器时),一个用于热点(access point)(用于其他设备与ESP32连接)。 使用以下指令创建这些对象的例子:

import network

sta_if = network.WLAN(network.STA_IF)#新建一个station的对象

sta_if.active()#检查是否开启

sta_if.active(True)#激活station接口

sta_if.scan()#扫描附近的Wi-Fi

sta_if.connect('Wi-Fi的名字', 'Wi-Fi的密码')#连接到路由器,其中需要换成真实的Wi-Fi名字和密码

sta_if.isconnected()#检查是否连接上

sta_if.ifconfig()#检查IP地址 会返回类似('192.168.0.2', '255.255.255.0', '192.168.0.1', '8.8.8.8')

ap_if.active(False)#禁用网络

下面的脚本可以放到boot.py中,开机自动连接到Wi-Fi,别忘了修改代码中的Wi-Fi名字和密码。

def do_connect():

import network

sta_if = network.WLAN(network.STA_IF)

if not sta_if.isconnected():

print('connecting to network...')

sta_if.active(True)

sta_if.connect('', '')

while not sta_if.isconnected():

pass

print('network config:', sta_if.ifconfig())

do_connect()

AP功能

ESP32有AP热点功能,可以让其他的设备连接到ESP32上。

import network

ap_if = network.WLAN(network.AP_IF)

ap_if.active()#检查是否开启

ap_if.active(True)#开启网络

ap_if.config(essid='1233332321')#设置AP热点你的名字

ap_if.ifconfig()#检查IP地址 会返回类似('192.168.4.1', '255.255.255.0', '192.168.4.1', '8.8.8.8')

ap_if.active(False)#禁用网络

更多资料

micropython的资料非常多,我们也会分享非常多的资料和项目。

你可能感兴趣的:(micropython,esp32手册)