pyBoard Mini从安装到简单测试


 

01 byBoard Mini


淘宝购买到的《Python微控制器编程 从零开始》 ,其中提到了 pyBoard Mini 核心板的应用。今天购买到的PyBoard到货了。对其进行初步的实验测试。

1.pyBoard基本信息

(1)管脚定义

▲ PyBoard Mini的外管脚

▲ 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 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 的Options 对话框

在Thonny的Shells中输入如下简单的测试语句:

>>> from pyb import LED
>>> led = LED(1)
>>> led.toggle()

▲ Thonny Shells输入简单语句

▲ Thonny Shells输入简单语句

观察到PyBoard上的LED被点亮:

▲ LED被点亮

▲ LED被点亮

下面的代码将四个板载的LED都点亮:

from pyb                    import LED

led = [LED(x+1) for x in range(4)]

for l in led:
    l.toggle()


▲ 四个板载LED都被点亮

▲ 四个板载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

▲ 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 对象的相关函数

▲ 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实现流水灯

▲ 板载LED实现流水灯

2.按键

▲ 按键相关的函数

▲ 按键相关的函数

from pyb                    import LED,delay,Switch

def func1():
    LED(4).toggle()

sw = Switch()
sw.callback(func1)

▲ 使用按键切换LED(4)的状态

▲ 使用按键切换LED(4)的状态

3.GPIO

▲ 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)

▲ 使用板载的USR按键控制LED(4)

4.外部中断

▲ 外部IO中断对应的函数

▲ 外部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)

▲ 使用外部中断来切换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 对象相关的函数

▲ ADC 对象相关的函数

(1)基本的ADC读取

from pyb                    import LED,RTC,Pin,ADC

adc = ADC('X1')
while True:
    print(adc.read())
    pyb.delay(250)

▲ 通过电位器改变X1端口的电压

▲ 通过电位器改变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的亮度

▲ 通过ADC设置LED的亮度

7.DAC

注意,按照STM32F411CEU4的数据手册,它并没有DAC输出,可以按照实验参考书上介绍,它具有2个DAC,分别是X5,X6。其中X6连接了板上的无源蜂鸣器,因此只能使用X6。

▲ DAC 对象的相关函数

▲ 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端口

▲ F411模块只有两个UART端口

▲ UART对象

▲ UART对象

from pyb                    import LED,UART

uart = UART(1, 115200)

print("Test UART.")

while True:
    uart.write(b'\x55')
    pyb.delay(10)

▲ X9上的信号波形

▲ X9上的信号波形

▌结论


本文对于刚刚购置得到的 pyBoard Mini进行初步测试,验证了其中部分功能。

这个版块不具有DAC,这是它在之后的信号处理过程中有道一定的限制。

■ 相关文献链接:

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/114176586