1.是,树莓派
1.1什么是树莓派Pico
作为树莓派最新的产品,发布于2021年1月20日的树莓派Pico是基于树莓派那边自主研发的一款双核MCU RP2040,这一个MCU提供了超低功耗、极低的 I/O 延迟,讲白了就是一款类似STM32系列的产品。
所以它的水平我也是很好奇,这次就买了试了一下,淘宝上买是37元左右,但最近也追涨到42元了。
1.2主要特性
RP2040 芯片是 7×7mm QFN-56 封装的,具体规格参数如下:
– 双核 Arm Cortex-M0 + @ 133MHz
– 芯片内置 264KB SRAM 和 2MB 的板载闪存
– 通过专用 QSPI 总线支持最高 16MB 的片外闪存
– DMA 控制器
– 30 个 GPIO 引脚,其中 4 个可用作模拟输入
– 2 个 UART、2 个 SPI 控制器和 2 个 I2C 控制器
– 16 个 PWM 通道
– USB 1.1 主机和设备支持
– 8 个树莓派可编程 I/O(PIO)状态机,用于自定义外围设备支持
– 支持 UF2 的 USB 大容量存储启动模式,用于拖放式编程
2.与众不同的编程方式
给树莓派Pico编写软件的过程真的很特别,虽然在STM32 Nucleo上也可以体会到,但它依然很有意思。具体怎么样,我们先从MicroPython了解下
2.1MicroPython
树莓派Pico支持两种语言,一种是Python一种是常用的C++,此Python和PC上所用的有点区别,名称为MicroPython,就是能在这类单片机上运行的精简高效优化后的Python3(下图用了谷歌翻译)
支持的有STM32,树莓派,pyboard,microBit等等,不过有个点是支持MicroPython的板子都挺贵的可能不太符合社会主义。
通常来说,MicroPython使用MU Editor这个编辑器来编写并编译,不过和其他编辑器比如Arduino IDE比较,Mu这个实在很冷门,我在百度上找到的都是两年前的版本
在官方网站 https://codewith.mu/en/download 中可以下载到最新的版本,并且可以看出来这一个基于Qt的简单编辑器有着极佳的多平台特性
后面发现最新的就是2019年就有的1.1.0
第二种选择就是使用VSCODE,但是VSCODE也有个问题就是目前兼容性不佳,所以不考虑
还有一种选择是Thonny IDE,这同样是一个通用的友好又简单的界面,同样很适合用来编写代码
2.2 Mu的使用和软件的编写
打开后会提供几个选项,用于选择你要编写的代码运行的平台
随便写一个Hello World,然后点击运行,不过软件会先让你保存这一段代码
因为集成了Python所以Mu这个软件的使用很简单下载好就行,不用额外的配置Python环境,非常方便。
2.3在树莓派Pico上使用MicroPython
如果要在树莓派Pico上使用MicroPython那么要做两手准备
首先和许多8bit的MCU产品,比如说Arduino不一样的一点是,树莓派Pico有一个特性就是支持拖拽文件然后执行,为了能支持MicroPython我们要先把这个固件塞进去。
单独的下载地址:https://download.csdn.net/download/u012388993/15501215?spm=1001.2014.3001.5501
连接树莓派到电脑上后,会出现一个大容量存储设备(当然并不大),你可以把编译好的文件拖过去,然后点按上面的按钮,这是一个“启动选择”按钮而不是RST复位按键
这样,就可以执行刚刚拷贝的这个文件了。然后我们的树莓派会被识别成一个串口的设备
之后我们要换用另一个IDE,Thonny Python IDE,这是官方推荐的的开发工具。
最新版本的Thonny Python IDE我放在这里:
https://github.com/thonny/thonny/releases/download/v3.3.5/thonny-3.3.5.exe
如果下载慢可以试试我上传的文件:
https://download.csdn.net/download/u012388993/15512650
安装上没有什么难处直接装Thonny Python IDE就可以,不用复杂的配置
目前最新版内置的是Python 3.7.9
2.4 实现一个PWM呼吸灯
PWM就是脉冲调制,具体在这里不做详细说明
Pico板载有一个LED灯,而这个LED灯就是接在Pin15上面,实现脉冲调制的代码如下
from machine import Pin, PWM
from time import sleep
pwm = PWM(Pin(25)) #Pico LED Pin
pwm.freq(1000) #设置PWM的频率
while True: #循环
for duty in range(65025):
pwm.duty_u16(duty)
sleep(0.0001) #延迟100us
for duty in range(65025, 0, -1):
pwm.duty_u16(duty)
sleep(0.0001)
也有更简单的,实现LED点灯,我就一笔带过了
from machine import Pin
led = Pin(25, Pin.OUT)
led.toggle()
可能此时会看不到如何设置串口号,以及软件的配置等等,这是因为这时候IDE是在一般模式而不是常规模式下,点击右上角的【切换至一般模式】
在切换到一般模式后可以看到任务栏出现了
然后再设置这边选择这个MicroPython(Raspberry Pi Pico)
完成配置后就可以点击绿三角运行
最终实现的效果
3总结
树莓派Pico的使用和以往我用的那些都有非常巨大的差别,最明显的一点就是树莓派Pico编程这块,在加载了MicroPython的固件后,不再是编译而是直接实现了实时的修改,这是让我觉得惊叹不已的,因为这意味着我可以随时的变动数值并且运行。
直接通过Python Shell就可以通过简单语句控制端口,这一点在以往的设备上是不被原生支持的,而且Python确实特别简单,可以说是非常不错的体验