▌01 byBoard Mini
在 淘宝购买到的《Python微控制器编程 从零开始》 ,其中提到了 pyBoard Mini 核心板的应用。今天购买到的PyBoard到货了。对其进行初步的实验测试。
1.pyBoard基本信息
(1)管脚定义
▲ PyBoard Mini的外管脚
▲ 外观与个管脚定义
(2)学习资料
通过和淘宝电商主沟通,获得相关的学习资料的下载链接:
资料链接: https://pan.baidu.com/s/11ZXjkUjAL-W2hd0thnzZ9w
提取码:1234
下载之后,存储在:
D:\zhuoqing\DesignCenter\MicroPython\PyBoard\MicroPython开发套件(基于pyboard STM32F05平台)配套资料_2021-2-5
扫描二维码关注公众号,回复: 12585769 查看本文章
其中包括如下目录:
- 01-开发工具
- 02-示例程序
- 03-相关固件
- 04-原理图&功能图
- 05-芯片手册
- 06-产品图片
- 《MicroPython从0到1》基于pyBoard(STM32F405平台)_v1.0.pdf
- 配套资料简介.txt
2.将PyBoard接入PC
(1)安装USB串口驱动
利用购买到器件中的Mini USB电缆将P有Board连入PC(Windows7)的USB,开始会出现如下未安装好驱动的虚拟串口:
PyBoard Virtual Comm Port In FS Mode
同时会出现名称为 PYBFLASH的磁盘。
根据 pyboard virtual comm port in fs mode 的解决问题 给出的解决方案,直接使用鼠标右键对出现的USB设备 选择 更新驱动软件,通过浏览计算机以查找驱动程序软件,选择PYBFLASH即可完成USB设备的安装。
▲ 安装完之后出现的 PyBoard USB Comm Port
在PyBoard加载到PC的USB端口出现的PYBFLASH中存在以下文件:
- boot.py
- dht.py
- ds18x20.py
- main.py
- onewire.py
- pybcdc.inf
- README.txt
- ssd1306.py
将其临时保存在:
D:\zhuoqing\DesignCenter\MicroPython\PyBoard\PYBFLASH
(2)与Thonny连接
根据 安装 Thonny 软件环境开发PI Pico 描述,下载安装Thonny IDE。
选择 Thonny中的Tools中的Options对话框,通过Interpreter中选择“MicroPython (Generic)”,然后在Port中选择PyBoard USB Comm Port(COM10)。
其中COM10需要根据计算机中PyBoard对应的USB串口的实际端口号而定。
▲ Thonny 的Options 对话框
在Thonny的Shells中输入如下简单的测试语句:
>>> from pyb import LED
>>> led = LED(1)
>>> led.toggle()
▲ Thonny Shells输入简单语句
观察到PyBoard上的LED被点亮:
▲ LED被点亮
下面的代码将四个板载的LED都点亮:
from pyb import LED
led = [LED(x+1) for x in range(4)]
for l in led:
l.toggle()
▲ 四个板载LED都被点亮
from pyb import LED,delay
led = [LED(x+1) for x in range(4)]
print("LEDs flash")
while True:
for l in led:
l.toggle()
delay(250)
▲ PyBoard LEDs Flash
3.初步学习资料
《MicroPython从0到1》基于pyBoard(STM32F405平台)_v1.0.pdf
4.恢复PyBoard出厂设置
当 pyboard出现异常时,可以 出现异常时,可以 通过以下方式修改启动顺序或者 恢复出厂设置 , 方法如下:
按着 pyBoard上的 USER键不放,再按一下 键不放,再按一下 RST键, LED灯会持续交替闪烁 , 当闪烁达到你想要的模式时候,松开 当闪烁达到你想要的模式时候,松开 user键, LED灯会快速闪烁,板子接着重 会快速闪烁,板子接着重 会快速闪烁,板子接着重 新启动。
模式 1:只有绿灯亮 ,正常模式 :先启动 boot.py
然后 main.py
。
模式 2:只有橙色灯亮 ,安全模式 ,安全模式 :启动时候不运行任何脚本。 (仅 1次有效 )
模式 3:绿灯和橙同时亮 ,文件系统重置 :文件系统恢复出厂状态,然后 :文件系统恢复出厂状态,然后 以安全模式启动。
注: 当编辑的程序存储在PYBFLASH中main.py时,下次系统板上电启动后,便运行main.py。
▌02 基本实验
1.LED测试
在pyb中封装的LED对象的相关函数为:
▲ LED 对象的相关函数
▲ 延迟相关的函数
(1)流水灯
from pyb import LED,delay
led = [LED(x+1) for x in range(4)]
print("LEDs flash")
count = 0
while True:
for l in led:
l.on()
delay(100)
l.off()
delay(100)
▲ 板载LED实现流水灯
2.按键
▲ 按键相关的函数
from pyb import LED,delay,Switch
def func1():
LED(4).toggle()
sw = Switch()
sw.callback(func1)
▲ 使用按键切换LED(4)的状态
3.GPIO
▲ GPIO相关对象的函数
下面代码是通过USR板载按键控制板载LED(4)的状态。
from pyb import LED,delay,Switch,Pin
p_out = Pin('B4', Pin.OUT_PP)
p_in = Pin('X17', Pin.IN, Pin.PULL_UP)
while True:
if p_in.value() == 0:
p_out.high()
else:
p_out.low()
演示效果:
▲ 使用板载的USR按键控制LED(4)
4.外部中断
▲ 外部IO中断对应的函数
from pyb import LED,delay,Switch,Pin,ExtInt
callback = lambda e: LED(4).toggle()
ext = ExtInt(Pin('Y1'), ExtInt.IRQ_FALLING, Pin.PULL_UP, callback)
▲ 使用外部中断来切换LED(4)
5.实时时钟
▲ 始终相关的函数
from pyb import LED,RTC,Pin
rtc = RTC()
if rtc.datetime()[0] != 2019:
rtc.datetime((2019,4,1,1,0,0,0,0))
while True:
print(rtc.datetime())
pyb.delay(500)
▲ 实时时钟输出的字符
6.ADC
▲ ADC 对象相关的函数
(1)基本的ADC读取
from pyb import LED,RTC,Pin,ADC
adc = ADC('X1')
while True:
print(adc.read())
pyb.delay(250)
▲ 通过电位器改变X1端口的电压
(2)改变LED亮度
from pyb import LED,RTC,Pin,ADC
adc = ADC('X1')
while True:
adv = adc.read()
intensity = int(adv / 16)
for i in range(4):
LED(i+1).intensity(intensity)
pyb.delay(25)
▲ 通过ADC设置LED的亮度
7.DAC
注意,按照STM32F411CEU4的数据手册,它并没有DAC输出,可以按照实验参考书上介绍,它具有2个DAC,分别是X5,X6。其中X6连接了板上的无源蜂鸣器,因此只能使用X6。
▲ DAC 对象的相关函数
执行程序,会发现,其中并没有DAC模块。
from pyb import LED,RTC,Pin,ADC,DAC
dac = DAC(1, bits=12)
dac.write(0x400)
print('DAC output 0x400')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: can't import name DAC
在相同的淘宝销售商,它给出的 PyBoard -STM32F405开发板 中带有DAC转换器。
8.UART
▲ F411模块只有两个UART端口
▲ UART对象
from pyb import LED,UART
uart = UART(1, 115200)
print("Test UART.")
while True:
uart.write(b'\x55')
pyb.delay(10)
▲ X9上的信号波形
▌结论
本文对于刚刚购置得到的 pyBoard Mini进行初步测试,验证了其中部分功能。
这个版块不具有DAC,这是它在之后的信号处理过程中有道一定的限制。
■ 相关文献链接: