简介
本文来分享一下墨星stm32的MicroPython的上手使用。包括安装驱动,安装软件,使用io引脚,使用电池,使用文件系统,SD卡。
墨星STM32开发板的核心是STM32f405,拥有超多的IO口,强大的性能。
墨星STM32是墨星系列的主控板,所以你可以使用墨星系列的多款配件。
- STM32F405RG微控制器
- 168 MHz Cortex M4 CPU,具有硬件浮点运算
- 1024K Flask 和192K RAM
- Micro USB连接器,用于供电和REPL
- Micro SD卡插槽,支持最高32G SD卡
- 可以直接用USB给锂电池充电
- 具有可选电池备份的实时时钟
- 30个完全可用的引脚
- 3个12位ADC,可用在16个引脚
- 2个DAC,(A1和A2引脚)
- 1个复位按键
- 3.3V LDO稳压器,能够提供高达300mA的电流,输入电压范围为3.6V至7V的
- DFU引导加载器在ROM中,便于升级固件
Windows安装驱动
一般来说,插上USB,电脑就会自动安装驱动,但是每个电脑的情况都不一样,有时候会有些意外。
将OpenMV插到电脑。 正常情况下,会自动安装驱动,一切不需要手动安装。在设备管理器中会看到:
但是可能在一些电脑,驱动不会自动安装。 这时在设备管理器中会出现一个叹号,表示没有正常安装驱动。
下载这个文件:http://micropython.org/resources/fresh-pyboard/pybcdc.inf
如果安装完成
- windows:设备管理器会出现
- MacOS:终端输入 ls /dev/tty.* 会出现/dev/tty.usbmodemxxxx这个设备。
安装软件
你可以使用任何喜欢的终端软件。
windows下推荐putty,MacOS下推荐picocom,波特率为115200。
超级推荐:PyCharm开发MicroPython
picocom命令:sudo picocom /dev/tty.usbmodemxxxx -b 115200 (此处usbmodemxxxx要填入你在命令行下看到的,比如usbmodem1462,不能直接写入usbmodemxxxx)
即可进入MicroPython的REPL。
Pinout
STM32的一大优点是它拥有非常多GPIO。您将不必操纵或复用您的IO引脚!有几件事值得注意,所以请仔细阅读引脚说明
微控制器的通用I / O引脚。所有的逻辑是3.3V
STM32有很多的GPIO可以连接LED,按键,开关,传感器,下面是我们推荐的引脚使用方法。所有的引脚(除了已经占用的引脚),可以接任意电平,都不会影响启动。
32个GPIO:
- P0~P26
- A1~A4(A0用于检测电池电压)
已经占用的引脚
- SD SD卡的检测引脚
- A0 ADC 用于检测锂电池电压
电源引脚
- GND – 地
- BAT – 这是用于锂电池的JST插孔的正极
- USB – micro USB插孔的正极
- 3V – 这是3.3V稳压器的输出。该稳压器可以提供300mA的峰值。如果你需要大量的功耗用于LED,电动机等。使用USB或BAT引脚,并连接一个额外的稳压器
试一试:
from pyb import Pin
p4 = Pin('P4', Pin.OUT_PP)#创建一个p4引脚,输出模式,标号是4
p4.value(1)#引脚置高
p4.value(0)#引脚置低
p5 = Pin('P5',Pin.IN)#创建一个p5引脚,输入模式,标号是5
print(p5.value())#获取p5引脚的电平
stm32有非常多的硬件功能,比如I2C,SPI,ADC,PWM,UART等,可以在这里找到代码:
https://docs.singtown.com/micropython/zh/latest/pyboard/pyboard/quickref.html
供电管理
我们希望墨星开发板的供电非常方便,所以我们内置了锂电池充电芯片,当你插入USB和锂电池的时候,USB会最高400ma的电流给锂电池自动充电。
JST座子旁有一个LED,当充电的时候亮,当充电结束时会灭。
如果你使用的是电池,那么你很可能想知道电压是多少!这样你就可以知道电池何时需要充电。锂电池在4.2V时“最大输出”,在电池寿命的大部分时间内保持在3.7V左右,然后在保护电路切断之前缓慢下降到3.2V左右。通过测量电压,您可以快速判断您何时低于3.7V
由于STM32具有大量的ADC引脚,因此我们’牺牲’了一个引脚用于锂电池监控。您可以读取A0的1/4.3电池电压 。不要忘记读取的电压*4.3,因为有一个分压器。
一个很实用的脚本,可以用来测量电池的电压,ESP32的ADC误差很大:
from pyb import Pin, ADC
bat = ADC(Pin('A0'))
print(bat.read()*0.00137,'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())
USB大容量设备
当插入USB后,电脑上会出现一个大容量设备,也就是通常的U盘,这个U盘里就是stm32的文件系统的内容。
脱机运行
参考资料:https://docs.singtown.com/micropython/zh/latest/pyboard/pyboard/general.html#sd
当上电后,会先执行boot.py,因为boot.py的内容就是会执行main.py,所以,我们只需要更改main.py就可以让程序脱机运行了。
SD卡
当SD卡插入板子后,上电会自动挂在SD卡,SD卡的文件系统会自动取代内置的flash,电脑上会直接出现SD卡的内容。
这时候,上电就会自动运行SD卡中的main.py。非常方便。
如果你并不想上电从SD卡启动,那么在Flash的根目录,加入一个 /flash/SKIPSD 的空文件,那么就会忽略SD卡。
更多资料
micropython的资料非常多,我们也会分享非常多的资料和项目。
- 官网:https://micropython.org/
- pyboard的micropython文档:https://docs.singtown.com/micropython/zh/latest/pyboard/pyboard/quickref.html