树莓派PICO Micropython单片机初试体验



之前在论坛上看到树莓派发布了自家的单片机,所以赶紧在某宝上下单入手了一块树莓派pico单片机最小系统板



放置了一段时间,正好这两天有空翻出来点亮几颗LED灯玩玩,其实两年前我就用STM32的开发板玩了下Micropython,当然ESP32也可以用Micropython来开发,还别说国外的这些哥们还真有意思,有事没事往单片机上移植一些好玩的东西,我也是个喜欢品尝“螃蟹”的人,经常会买一些这个东西来耍耍。
基于STM32F405的Micropython开发板

ESP32开发板

简简单单开个箱

直接拿出核心板,盒子我就不拍出来了,免得有广告嫌疑,采用这种包装设计可以批量化项目生产的时候很方便,直接将这种板子上到贴片机上就可以焊接,不得不说很有前瞻性



引脚采用这种2.54mm的邮票孔和排针设计,可以作为贴片核心板用,也方便项目前期开发采用杜邦线连接,奈斯



准备家伙,给它焊接上排针

焊接中...



焊接好后的效果

开始玩灯

先把环境搭建下...
三个LED灯分别连接到GPIO0,GPIO1,GPIO2上,将USB线连接到电脑上




树莓派的官网有入门教程

https://www.raspberrypi.org/documentation/pico/getting-started/


1、下载“UF2”文件
2、按下板子上的按键,然后再将USB插入电脑,电脑里面就会出现一个120多M的"U盘"

3、我们将下载好的“UF2”文件拖进U盘里面,然后班子会自动重启

4、重启后我们在"设备管理器"里面可以找到该设备的串口端口,我的设备显示的是“COM3”

5、我们打开“PuTTY”,选择好端口和波特率,这里波特率是自适应的,可以根据自己的需要选择

5、我们打开“PuTTY”,选择好端口和波特率,这里波特率是自适应的,可以根据自己的需要选择,打开后敲回车就可以看到这个符号“>>>”

6、我们用python来测试下,没什么问题,工作都正常

编写点灯测试代码

>>> led = Pin(0, Pin.OUT)
>>> led.value(1)
>>> led.value(0)


这样一行一行运行代码肯定不是我们的目标,官方推荐使用Thonny进行Micropython开发,我们一起来安装下,下载比较缓慢...给大家附上百度下载链接
https://zhuanlan.zhihu.com/p/349712047/edit

百度链接: https://pan.baidu.com/link/zhihu/7hhHzNuahEi1bD9kNkRFlmNTbzNhB1TwdDhn==


安装方式比较简单就不介绍了,直接下一步,下一步就好了,简单的设置好就可以开始干活了,一定要最新版安装包的才有pico这个选项

在官方提供的文档里面把代码复制过来运行下


led = Pin(25, Pin.OUT)
tim = Timer()
def tick(timer):
    global led
    led.toggle()
 
tim.init(freq=2.5, mode=Timer.PERIODIC, callback=tick)

将文件保存到到pico里面,并写好文件名



我们运行一下看下效果,这里用的是板载的LED灯,我们可以看到板子上的LED灯在闪烁



我们将LED灯改成我这边搭建的,来看下效果

led0 = Pin(0, Pin.OUT)
led1 = Pin(1, Pin.OUT)
led2 = Pin(2, Pin.OUT)
tim = Timer()
def tick(timer):
    global led0
    global led1
    global led2
    led0.toggle()
    led1.toggle()
    led2.toggle()
 
tim.init(freq=2.5, mode=Timer.PERIODIC, callback=tick)

这块板子的强悍的性能有很多可玩的地方,官方也提供了很多例子
比如说这个PWM呼吸灯例子


import time
from machine import Pin, PWM


# Construct PWM object, with LED on Pin(0).
pwm = PWM(Pin(0))

# Set the PWM frequency.
pwm.freq(1000)

# Fade the LED in and out a few times.
duty = 0
direction = 1
for _ in range(8 * 256):
    duty += direction
    if duty > 255:
        duty = 255
        direction = -1
    elif duty < 0:
        duty = 0
        direction = 1
    pwm.duty_u16(duty * duty)
    time.sleep(0.001)

总结:

1、pico只是众多micropython支持的开发板中的一员,但是借助于树莓派强大的生态以及这货的价格,未来会在单片机圈掀起不小的波澜
2、可能我们平时在项目中不一定会用到python方式的开发,但是这玩意就像arduino一样在我们项目初期的芯片选型以及快速验证芯片功能确实有很好的一个效果
3、随着micropython支持的芯片越来越多以及不断完善的外设芯片库,会得到越来越多的各行各业的项目开发者青睐,尤其是不想深入学习单片机,但是又想做点有趣的东西
4、期待国产的一些芯片支持arduino,micropython,先拥抱这个强大的生态,然后在走上更高的台阶,国产RT-thread感觉做的不错,点个赞

你可能感兴趣的:(树莓派PICO Micropython单片机初试体验)