“树莓派 Pico”的版本间的差异

来自YFRobotwiki
跳转至: 导航搜索
(以“说明 Pico主板 Pico-Basic-Kit Pico-Sensor-Kit Raspberry-Pi-Pico 功能简介 主控 RP2040 接口 Micro USB 产品简介 Raspberry Pi Pico 是一款树莓派官...”为内容创建页面)
 
 
(未显示1个用户的34个中间版本)
第1行: 第1行:
说明
 
Pico主板
 
Pico-Basic-Kit
 
Pico-Sensor-Kit
 
Raspberry-Pi-Pico
 
功能简介
 
主控 RP2040
 
接口 Micro USB
 
产品简介
 
Raspberry Pi Pico 是一款树莓派官方设计的低成本,高性能的微控制器开发板,具有灵活数字接口。硬件上,采用 Raspberry Pi 官方自主研发的 RP2040 微控制器芯片,搭载了ARM Cortex M0 + 双核处理器,高达 133MHz 的运行频率,内置了 264KB 的 SRAM 和 2MB 的内存,还板载有多达 26 个多功能的 GPIO 引脚。软件上,可选择树莓派提供的 C/C++ SDK,或者使用 MicroPython 进行开发,且配套有完善的开发资料教程,可方便快速入门开发,并嵌入应用到产品中。
 
  
产品特性
+
[[File:Raspberry-Pi-Pico-360px.jpg|thumb|500px|right|树莓派 Pico 控制器]]
采用了 Raspberry Pi 官方自主设计的 RP2040 微控制器芯片
+
搭载了双核 ARM Cortex M0 + 处理器,运行频率高达 133MHz 灵活时钟
+
内置了 264KB 的 SRAM 和 2MB 的片上 Flash
+
邮票孔设计,可直接焊接集成到用户自主设计的底板上
+
USB1.1 主机和设备支持
+
支持低功耗睡眠和休眠模式
+
可通过 USB 识别为大容量存储器进行拖放式下载程序
+
多达 26 个多功能的 GPIO 引脚
+
2 个 SPI,2 个 I2C,2 个 UART,3 个 12 位 ADC,16 个可控 PWM 通道
+
精确的片上时钟和定时器
+
温度传感器
+
片上加速浮点库
+
8 个可编程 I/O (PIO) 状态机,用于自定义外设支持
+
引脚分布
+
Raspberry-Pi-Pico-Spec-01.jpg
+
尺寸图
+
Raspberry-Pi-Pico-Spec-02.jpg
+
  
  软件环境配置
+
== 产品简介 ==
为了方便在电脑上使用MicroPython开发Pico板,建议下载Thonny IDE.
+
  
下载Thonny IDE并按照步骤安装
+
[https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html Raspberry Pi Pico]是一款树莓派官方设计的低成本 高性能 微控制器开发板,具有灵活数字接 口。 硬件上,采用 Raspberry Pi  官方自 研发 RP2040 微控制器芯片 了ARM Cortex M0 + 双核处理器 高达 133MHz 的运行频率 内置了 264KB SRAM 和 2MB 的内存,还板 载有 多达 26 个多功能 GPIO 引脚 。软件上 可选择树莓派提供 C/C++ SDK 或者 使用 MicroPython 进行 开发, 且配套有完善 的开 发资料教 ,可 便快速 并嵌入应 到产品 中。
Thonny IDE下载链接(Windows版本)
+
Thonny 官网
+
安装完成之后,第一次要配置语言和主板环境,由于我们是为了使用Pico,所以注意主板环境选择Raspberry Pi 选项。
+
Pico-R3-Tonny1.png
+
配置Micrpython环境及选择Pico端口。
+
先将Raspberry Pi Pico 接入电脑 左键点击Thonny右下角 配置环境选项--》选择configture interpreter
+
在弹出的窗口栏中选择MicroPython(Raspberry Pi Pico),同时选择对应的端 口。
+
Raspberry-Pi-Pico-Basic-Kit-M-2.png
+
Raspberry-Pi-Pico-Basic-Kit-M-3.png
+
  点击ok后返回到Thonny 界面,下载固件库到Pico里面,然后点击停止按钮,在Shell窗口中即可显示当前使用到 环境。
+
Pico在windows下载固件库方法: 按住BOOT键后连接电脑后 松开BOOT键,电脑会出现一个可移动磁盘,将固件库复制进去即可。
+
RP2040在windows下 固件库方法: 连接电脑后 同时按下BOOT键跟RESET键,先松开RESET键再松开BOOT键 电脑会出现一个可移动磁盘,
+
  将固件库复制进去即可(用Pico 方式也可以)。
+
Raspberry-Pi-Pico-Basic-Kit-M-4.png
+
  示例实验
+
  示例程序到电脑桌面即可进行一些几个 趣的实验。
+
External LED 实验
+
按照下图连接好硬件,连接好接入电脑的Micro USB,在Thonny打开示例程序Lesson-5 External LED中的python文件,运行示例程序可以看到红灯有在闪烁 现象。
+
  使用注意事项:LED较长的 引脚 为正极 较短 为负极,负极应该接GND,正极应该和GPIO输出口相连 ,使用 时必须接上电阻。
+
Raspberry-Pi-Pico-Basic-Kit-External-LED-blink.png
+
  代码解析
+
led_external = machine.Pin(15, machine.Pin.OUT) #设置GP15为输出模式
+
while True:
+
  led_external.toggle() #每过5秒钟让LED灯的状态改变一次
+
  utime.sleep(5)
+
Traffic Light System 实验
+
按照下图连接好硬件,连接好接入电脑的Micro USB,在Thonny打 示例程序Lesson-9 Traffic-Light-System中的python文件,运行程序可以看到交通灯带正常的运行,当按下按键时会触 蜂鸣器。
+
使用注意事项:LED较长的引脚为正极 较短 为负极,负极应该接GND,正极应该和GPIO输出口相连,使用时必须接上电阻;蜂鸣器的红线接GPIO口输出,黑线接GND。
+
Raspberry-Pi-Pico-Basic-Kit-Traffic-Light-System.png
+
代码解析
+
def button_reader_thread():  #检测按键是否被按下
+
  global button_pressed
+
  while True:
+
      if button.value() == 1:
+
          button_pressed = True
+
         
+
_thread.start_new_thread(button_reader_thread, ()) #用 启线 式去检测按键
+
while True:
+
  if button_pressed == True: #如果按键被按下,红灯亮起,蜂鸣器响闹
+
      led_red.value(1)
+
      for i in range(10):
+
          buzzer.value(1)
+
          utime.sleep(0.2)
+
          buzzer.value(0)
+
          utime.sleep(0.2)
+
      global button_pressed
+
      button_pressed = False
+
  led_red.value(1)  #正常情况下红灯边绿灯时黄灯会亮两秒,然后黄灯和红灯灭,绿灯亮
+
  utime.sleep(5)    #由绿灯边红灯时,绿灯先灭,黄色亮两秒,然后红灯亮
+
  led_amber.value(1)
+
  utime.sleep(2)
+
  led_red.value(0)
+
  led_amber.value(0)
+
  led_green.value(1)
+
  utime.sleep(5)
+
  led_green.value(0)
+
  led_amber.value(1)
+
  utime.sleep(5)
+
  led_amber.value(0)
+
Burglar Alarm LED Buzzer 实验
+
按照下图连接好硬件,连接好接 电脑的Micro USB,在Thonny打 示例程序Lesson-14 Burglar Alarm LED Buzzer中的python文件,运行程序可以看到 当人为的在Passive infrared sensor前晃动时,LED灯闪亮的同时蜂鸣器也会报警。
+
使 注意事项:Passive infrared sensor 的 间引脚为数据输出引脚,两边的引脚分别接入VCC和GND即可
+
Raspberry-Pi-Pico-Basic-Kit-Burglar Alarm LED Two Buzzer.png
+
  
代码解析
 
def pir_handler(pin):  #中断处理函数,蜂鸣器响,led快速闪烁
 
  print("ALARM! Motion detected!")
 
  for i in range(50):
 
      led.toggle()
 
      buzzer.toggle()
 
      utime.sleep_ms(100)
 
sensor_pir.irq(trigger=machine.Pin.IRQ_RISING, handler=pir_handler)#开启中断,当人体传感器检测到异常时就会今天中断处理函数处理
 
while True:  #无异常状态下会每隔5秒改变一次LDE的状态
 
  led.toggle()
 
  utime.sleep(5)
 
Potentiometer 实验
 
按照下图连接好硬件,连接好接入电脑的Micro USB,在Thonny打开示例程序Lesson-16 Potentiometer中的python文件,运行程序,旋转电位器可以看到Sheel窗口中打印出来的电压值也在改变。
 
使用注意事项:Potentiometer的中间引脚为数据输出口,两边的引脚分别接上GND和VCC即可。
 
Raspberry-Pi-Pico-Basic-Kit-Potentionmeter.png
 
  
  代码解析
+
== 产品特性 ==
potentiometer = machine.ADC(26) #将GP26作为模拟信号采集引脚
+
conversion_factor = 3.3 / (65535)
+
while True:
+
  voltage = potentiometer.read_u16() * conversion_factor #将采集到的数据进行格式化转换成电压值
+
  print(voltage) #打印电压信息,电压值会随着滑动变阻器旋转而变化
+
  utime.sleep(2)
+
WS2812 实验
+
按照下图连接好硬件,连接好接入电脑的Micro USB,在Thonny打开示例程序Lesson-25 WS2812中的WS2812_RGB_LED.py文件,运行程序可以一次看到蓝、红、绿、白的RGB颜色。
+
Raspberry-Pi-Pico-Basic-Kit-WS2812.png
+
  
  代码解析
+
* 了 Raspberry Pi 官方自主设计 RP2040 微控 器芯片
#这一段代码使 是状态机机 ,如下代码是一个装饰 器, 在装饰器中我们可以硬件进 初始化、设定引脚的电平等等。
+
* 搭载了双核 ARM Cortex M0 + 处理 器, 频率高达 133MHz 灵活时钟
#label("bitloop") 我们可以在代码中定义一下标记,方便我们通过跳转 方式跳到他们这里执行。
+
* 内置了 264KB SRAM 和 2MB 的片上 Flash
#jmp(not_x,"do_zero") 当x=0时 我们就调整 标签“do_zero”。
+
* 邮票孔设计 可直接焊接集成 用户自主设计的底板上
#nop() .set(0) [T2 - 1] 当x=0时,会跳转到这里执行。
+
* USB1.1  和设备支持
@asm_pio(sideset_init=PIO.OUT_LOW, out_shiftdir=PIO.SHIFT_LEFT, autopull=True, pull_thresh=24)
+
* 支持低功耗睡眠和休眠模式
def ws2812():
+
* 可通过 USB 识别为大容量存储器进行拖放式下载程序
  T1 = 2
+
* 多达 26 个多功能的 GPIO 引脚
  T2 = 5
+
* 2 个 SPI,2 个 I2C,2 个 UART,3 个 12 位 ADC,16 个可控 PWM 通道
  T3 = 1
+
* 精确的片上时钟和定时器
  label("bitloop")
+
* 温度传感器
  out(x, 1)              .side(0)    [T3 - 1]
+
* 片上加速浮点库
  jmp(not_x, "do_zero")  .side(1)    [T1 - 1]
+
* 个可编程 I/O (PIO) 状态机, 用于自定义外设支持
  jmp("bitloop")          .side(1)    [T2 - 1]
+
  label("do_zero")
+
  nop()                  .side(0)    [T2 - 1]
+
# Create the StateMachine with the ws2812 program, outputting on Pin(22).
+
sm = StateMachine(0, ws2812, freq=8000000, sideset_base=Pin(0)) #创建状态
+
# Start the StateMachine, it will wait for data on its FIFO.
+
sm.active(1) #开始状态机
+
# Display a pattern on the LEDs via an array of LED RGB values.
+
ar = array.array("I", [0 for _ in range(NUM_LEDS)])
+
print(ar)
+
print("blue")
+
for j in range(0, 255):
+
  for i in range(NUM_LEDS):
+
      ar[i] = j
+
  sm.put(ar,8) #put() 的方法是将数据放入 状态机 的输出FIFO
+
  time.sleep_ms(5)
+
LCD1602 I2C 实验
+
按照下图连接好硬件 连接好接入电脑的Micro USB,在Thonny打开示例程序Lesson-21 LCD1602 I2C中的python文件,先将RGB1602.py文件另存为Raspberry Pi Pico中,运行Choose_Color.py可以看到每5秒切换一种不同的颜色;运行Discoloration.py文件可以看到RGB颜色渐变的效果。
+
Raspberry-Pi-Pico-Basic-Kit-LCD1602-I2C.jpg
+
  
代码解析
 
Choose_Color.py
 
  
#定义颜色
 
rgb9 = (0,255,0) #青色’
 
lcd.setCursor(0, 0) #设置游标位置
 
# print the number of seconds since reset:
 
lcd.printout("Waveshare") #写入字符
 
lcd.setCursor(0, 1) #设置游标位置到第二行第零列
 
lcd.printout("Hello,World!")#写入字符
 
lcd.setRGB(rgb1[0],rgb1[1],rgb1[2]); #设置背光
 
Discoloration.py
 
  
t=0
+
== 引脚分布 ==
while True:
+
 
   
+
<img src="https://www.raspberrypi.com/documentation/microcontrollers/images/pico-pinout.svg" width ="80%" alt="pico_pinout" />
  r = int((abs(math.sin(3.14*t/180)))*255); #RGB随着时间的变化而变化
+
 
  g = int((abs(math.sin(3.14*(t+60)/180)))*255);
+
http://file.yfrobot.com.cn/wiki/image/Pico-R3-SDK11-Pinout.svg
  b = int((abs(math.sin(3.14*(t+120)/180)))*255);
+
 
  t = t + 3;
+
 
  lcd.setRGB(r,g,b);#重新设置RGB的值
+
== 尺寸图 ==
# set the cursor to column 0, line 1
+
 
  lcd.setCursor(0, 0) #定位到第一行第零列
+
[[File:Raspberry-Pi-Pico-Spec-size.jpg|400px]]
# print the number of seconds since reset:
+
 
  lcd.printout("Waveshare")# 写入字符
+
 
  lcd.setCursor(0, 1) #定位到第二行第零列
+
 
  lcd.printout("Hello,World!")# 写入字符
+
== 官方资料 ==
  time.sleep(0.3)
+
 
 +
=== 树莓派官方文档 ===
 +
 
 +
* [https://hackspace.raspberrypi.org/books/micropython-pico Raspberry Pi Pico入门学习MicroPython编程书籍(英文版)]
 +
* [https://magpi.raspberrypi.org/books 树莓派相关书籍下载]
 +
* [https://www.waveshare.net/w/upload/e/ed/RPI-PICO-R3-PUBLIC-SCHEMATIC.pdf Raspberry Pi Pico原理图]
 +
* [https://www.waveshare.net/w/upload/5/52/Pico-R3-A4-Pinout.pdf Pico引脚分布图]
 +
* [https://www.waveshare.net/w/upload/3/30/Getting_started_with_pico.pdf Pico入门使用手册]
 +
* [https://www.waveshare.net/w/upload/5/5f/Pico_c_sdk.pdf Pico C SDK使用手册]
 +
* [https://www.waveshare.net/w/upload/b/b0/Pico_python_sdk.pdf Pico Python SDK使用手册]
 +
* [https://www.waveshare.net/w/upload/1/11/Pico_datasheet.pdf Pico数据手册]
 +
* [https://www.waveshare.net/w/upload/f/fd/Rp2040_datasheet.pdf RP2040数据手册]
 +
* [https://www.waveshare.net/w/upload/9/9d/Hardware_design_with_rp2040.pdf RP2040硬件设计参考手册]
 +
 
 +
=== 树莓派开源例程 ===
 +
 
 +
* [https://github.com/raspberrypi/pico-examples/ 树莓派官方C/C++示例程序 (github)]
 +
* [https://github.com/raspberrypi/pico-micropython-examples 树莓派官方micropython示例程序 (github)]
 +
 
 +
 
 +
== 开发软件 ==
 +
 
 +
* [https://www.waveshare.net/w/upload/7/73/Thonny-3.3.3.zip Thonny Python IDE (Windows版本 V3.3.3)]
 +
 
 +
 
 +
== 其他教程 ==
 +
 
 +
* [https://space.bilibili.com/477406871/channel/seriesdetail?sid=863905 树莓派Pico 视频教程-微雪]
 +
 
 +
 
 +
 
 +
 
 +
----
 +
 
 +
{| border="0" cellpadding="5" width="100%"
 +
|width="33%" valign="top" align="center" bgcolor=#d3d7d4 style="border-radius:5px;"|'''[[首页 | 返回首页]]'''
 +
|width="33%" valign="top" align="center" bgcolor=#d3d7d4 style="border-radius:5px;"|'''[http://www.yfrobot.com.cn 访问YFRobot论坛]'''
 +
|width="33%" valign="top" align="center" bgcolor=#d3d7d4 style="border-radius:5px;"|'''[https://jq.qq.com/?_wv=1027&k=466mOjv 技术交流群]'''
 +
|}
 +
 
 +
{| border="0" cellpadding="5" width="100%"
 +
|width="33%" valign="top" align="center" bgcolor=#d3d7d4 style="border-radius:5px;"|'''[http://yfanmcu.taobao.com 淘宝企业店]'''
 +
|width="33%" valign="top" align="center" bgcolor=#d3d7d4 style="border-radius:5px;"|'''[http://yfrobot.taobao.com 淘宝直营店]'''
 +
|width="33%" valign="top" align="center" bgcolor=#d3d7d4 style="border-radius:5px;"|'''[[联系我们]]'''
 +
|}

2023年2月10日 (五) 15:32的最后版本

树莓派 Pico控制器

产品简介

Raspberry Pi Pico是一款树莓派官方设计的低成本,高性能的微控制器开发板,具有灵活数字接口。硬件上,采用 Raspberry Pi 官方自主研发的 RP2040 微控制器芯片,搭载了ARM Cortex M0 + 双核处理器,高达 133MHz 的运行频率,内置了 264KB 的 SRAM 和 2MB 的内存,还板载有多达 26 个多功能的 GPIO 引脚。软件上,可选择树莓派提供的 C/C++ SDK,或者使用 MicroPython 进行开发,且配套有完善的开发资料教程,可方便快速入门开发,并嵌入应用到产品中。


产品特性

  • 采用了 Raspberry Pi 官方自主设计的 RP2040 微控制器芯片
  • 搭载了双核 ARM Cortex M0 + 处理器,运行频率高达 133MHz 灵活时钟
  • 内置了 264KB 的 SRAM 和 2MB 的片上 Flash
  • 邮票孔设计,可直接焊接集成到用户自主设计的底板上
  • USB1.1 主机和设备支持
  • 支持低功耗睡眠和休眠模式
  • 可通过 USB 识别为大容量存储器进行拖放式下载程序
  • 多达 26 个多功能的 GPIO 引脚
  • 2 个 SPI,2 个 I2C,2 个 UART,3 个 12 位 ADC,16 个可控 PWM 通道
  • 精确的片上时钟和定时器
  • 温度传感器
  • 片上加速浮点库
  • 8 个可编程 I/O (PIO) 状态机,用于自定义外设支持


引脚分布

pico_pinout

http://file.yfrobot.com.cn/wiki/image/Pico-R3-SDK11-Pinout.svg


尺寸图

Raspberry-Pi-Pico-Spec-size.jpg


官方资料

树莓派官方文档

树莓派开源例程


开发软件


其他教程




返回首页 访问YFRobot论坛 技术交流群
淘宝企业店 淘宝直营店 联系我们