【硬件控制】1. Pico介绍
树莓派0到4全部用的博通的处理器,现在树莓派出了一款微控制器RP2040,注意是微控制器,Arm Cortex-M0系列(Arm最低端),有了这款微控制器后树莓派就出了一款开发板就是Pico,相当于是这款芯片的一个官方使用案例。当你长按BOOTSEL按钮时插入电脑USB接口,Pico会进入程序烧录模式,这时候电脑上显示一个USB存储设备,将自己写好的固件拷进去就好了,拷贝完成后Pico会自动重启,
Pico是啥
这个问题要从树莓派出了第一款微控制器RP2040说起
树莓派0到4全部用的博通的处理器,现在树莓派出了一款微控制器RP2040,注意是微控制器,Arm Cortex-M0系列(Arm最低端),有了这款微控制器后树莓派就出了一款开发板就是Pico,相当于是这款芯片的一个官方使用案例
当然除了树莓派,其它厂家也可以使用这款芯片做自己的开发板,例如Arduino的开发板
Arduino_Nano_RP2040_Connect
Pico共有两个型号Pico和PicoW,区别就是PicoW自带Wifi芯片
Pico的定位是微控制器,对标51单片机,Arduino和ESP8266这些
价格是树莓派中最便宜的板子了,Pico单板¥20,PicoW ¥50
Pico能干啥
既然Pico定位是一个单片机,那么它能干单片机能干的所有事情
Pico有40个引脚,包含UART,GPIO,ADC,SPI,I2C接口,可以用来控制这些接口的设备
Pico如何烧写程序
下面以Pico为例,讲解一下如何跑一个程序(方法对PicoW也是适用的)
我们先从最简单的点灯程序讲起,拿到手的Pico板子是这样的
板子上有个小按钮,叫做BOOTSEL,这个按钮是用来选择启动模式的。
树莓派Pico的烧录方式做的比较简单,不用USB转TTL线连串口,而是通过USB VCP(Virtual COM Port)的方式通过USB接口模拟一个串口协议,我们只需要一根microUSB线就可以下载程序或者板子交互执行命令
当你长按BOOTSEL按钮时插入电脑USB接口,Pico会进入程序烧录模式,这时候电脑上显示一个USB存储设备,将自己写好的固件拷进去就好了,拷贝完成后Pico会自动重启,执行你的程序
当你不按BOOTSEL按钮插入电脑时,进入内置Flash启动模式,会执行Pico中烧录的程序
说得比较抽象,我还是画个图吧
烧录模式:
长按BOOTSEL按钮同时插入电脑
电脑会显示Pico的存储设备
将下载的固件拖入Pico存储设备中
Pico将自动重启执行固件程序
测试固件可以通过官网下载:
Raspberry Pi Datasheets
https://datasheets.raspberrypi.com
Pico板子使用blink.uf2
PicoW板子使用blink_picow.uf2
下载完固件后按上面的方式烧录固件,就能执行闪灯程序
MicroPython怎么玩
MicroPython是Python的精简版,适合在微控制器中执行,可以让微控制器执行Python代码,简化了开发的复杂度
由于MicroPython兼容了Pico开发板,所以Pico可以使用Python来开发程序,MicroPython支持很多开发板,学会了MicroPython之后就能写一套代码在多个板子上运行了
首先下载MicroPython固件
Pico固件地址:
MicroPython - Python for microcontrollers
https://micropython.org/download/rp2-pico/
PicoW固件地址:
MicroPython - Python for microcontrollers
https://micropython.org/download/rp2-pico-w/
找到最新的uf2文件下载即可
下载完成后按照上面烧录方式将固件烧录到Pico中
然后Pico会自动重启进入MicroPython的REPL模式(交互式Python控制台),这时候你会在电脑中找到一个串口设备,这个设备就是Pico
串口调试助手
现在就可以通过串口调试助手可以连接设备了
找一款串口调试助手工具,然后串口号选择你的Pico串口号,波特率选择9600,点击打开串口
然后在输入框中敲一下回车,点击左侧的手动发送,上面的输出框就会显示三个>
>>>这个符号的意思是Python的交互式界面提示符,说明我们连接Pico中的MicroPython成功了,现在运行的是MicroPython的REPL模式,也就是交互式命令模式
然后在输入框输入 help() 再敲一个回车,点击手动发送
MicroPython将返回帮助信息
上面演示了如何通过串口调试助手连接Pico,但是这种方式不太好用,需要每次点击按钮才能执行命令,体验不到交互式命令的快感。
这里推荐一个工具,就是
MobaXterm
下载地址:MobaXterm free Xserver and tabbed SSH client for Windows (mobatek.net)
https://mobaxterm.mobatek.net/
可以连串口,SSH,VNC,远程桌面,有了它你不仅能连Pico也能连其它树莓派系统的SSH和VNC
启动后点击Session,打开新建会话窗口,然后选择Serial(串口),
选择Pico的串口号,设置波特率为9600,点击OK
然后输入 help() 敲击回车
下来就可以在这个交互式命令窗口中写代码了
我们来实现一个点灯程序
点亮LED
依次输入下面这三行命令,每行后面需要敲个回车
from machine import Pin
led = Pin("LED", Pin.OUT)
led.on()
命令执行完后,Pico上的板载LED就被点亮了
代码讲解:
第一行代码就是导入模块,machine这个模块是MicroPython提供的
第二行定义一个变量led,led就是一个引脚
Pin第一个参数是引脚号,这里写的LED(因为Pico和PicoW的板载LED引脚不同,引脚号写LED可以兼容这两款板子)
Pin第二个参数是设置引脚为输出模式(输出就是写数据,输入是读数据)
第三行执行led.on(),Pico给这个引脚输出一个高电平,就点亮了LED
执行
import usys
usys.implementatio
可以输出当前板子信息和MicroPython信息
(name='micropython', version=(1, 19, 1), _machine='Raspberry Pi Pico W with RP2040', _mpy=4358)
执行
usys.ps1='hello-pico> '
可以将前面的提示符>>>修改为hello-pico>
如果遇到不明白的模块,可以执行
help(模块名)
如
help(usys)
会输出这个模块下的所有类和变量
object<module 'sys'> is of type module
__name__-- sys
path-- ['', '.frozen', '/lib']
argv-- []
version-- 3.4.0; MicroPython v1.19.1-915-g2bcd88d55 on 2023-03-02
version_info-- (3, 4, 0)
implementation-- (name='micropython', version=(1, 19, 1), _machine='Raspberry Pi Pico W with RP2040', _mpy=4358)
platform-- rp2
byteorder-- little
maxsize-- 2147483647
exit-- <function>
stdin-- <io.FileIO 0>
stdout-- <io.FileIO 1>
stderr-- <io.FileIO 2>
modules-- {'rp2': <module 'rp2' from 'rp2.py'>}
print_exception -- <function>
本篇文章讲了Pico是啥,Pico如何烧录程序,MicroPython怎么玩,以及如何执行交互式命令
下一篇讲如何使用IDE来编写MicroPython代码
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)