简介

Raspberry Pi Pico是具有灵活数字接口的低成本,高性能微控制器板。它集成了Raspberry Pi自己的RP2040微控制器芯片,运行速度高达133 MHz的双核Arm Cortex M0 +处理器,嵌入式264KB SRAM和2MB板载闪存以及26个多功能GPIO引脚。对于软件开发,可以使用Raspberry Pi的C / C ++ SDK或MicroPython。

规格参数

  • 双核 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 大容量存储启动模式,用于拖放式编程

引脚图

基础配置

安装micropython

将pico通过usb连接至电脑,此时电脑会多出一个 RPI-RP2的文件夹,文件夹中有一个index.htm文件,用浏览器打开重定向至树莓派官网,进入micropython模块,下载UF2文件。

将UF2文件拖入Pico的RPI-RP2文件夹,pico将以micropython模式启动。

配置 Thonny IDE

Thonny IDE下载

进入工具->设置-> 解释器,选择MicroPython(Raspberry Pi Pico)解释器

勾选 视图->文件,可以显示pico中的文件,勾选视图->shell,可以显示pico的命令行模式

此时我们可以开始编写代码,写完后按住ctrl+s将该文件保存在树莓派PICO上,并命名为main.py,运行之后:

基础程序:

  1. 点亮板载led灯
from machine import Pinif __name__ == '__main__':# 构建led对象# 板载LED灯连接与引脚25相连# LED = Pin(id, mode, pull)# id:PICO引脚编号# mode:输入输出方式,有Pin.IN(输入)和Pin.OUT(输出)两种# pull:上下拉电阻配置,有None(无上下拉电阻)、Pin.PULL_UP(上拉电阻)和Pin.PULL_DOWN(下拉电阻)三种LED = Pin(25, Pin.OUT)# 高电平点亮LED.value(1)
  1. 板载led闪烁
from machine import Pin
from utime import sleep
import utimeled = Pin(25, Pin.OUT)if __name__ == '__main__':while True:# led点亮led.value(1)utime.sleep_ms(1000)# led熄灭led.value(0)utime.sleep_ms(1000)

pico+微雪OLED 1.3

屏幕和oled连接,输入示例代码

from machine import Pin,SPI
import framebuf
import timeDC = 8
RST = 12
MOSI = 11
SCK = 10
CS = 9class OLED_1inch3(framebuf.FrameBuffer):def __init__(self):self.width = 128self.height = 64self.cs = Pin(CS,Pin.OUT)self.rst = Pin(RST,Pin.OUT)self.cs(1)self.spi = SPI(1)self.spi = SPI(1,2000_000)self.spi = SPI(1,20000_000,polarity=0, phase=0,sck=Pin(SCK),mosi=Pin(MOSI),miso=None)self.dc = Pin(DC,Pin.OUT)self.dc(1)self.buffer = bytearray(self.height * self.width // 8)super().__init__(self.buffer, self.width, self.height, framebuf.MONO_HMSB)self.init_display()self.white =   0xffffself.balck =   0x0000def write_cmd(self, cmd):self.cs(1)self.dc(0)self.cs(0)self.spi.write(bytearray([cmd]))self.cs(1)def write_data(self, buf):self.cs(1)self.dc(1)self.cs(0)self.spi.write(bytearray([buf]))self.cs(1)def init_display(self):"""Initialize dispaly"""  self.rst(1)time.sleep(0.001)self.rst(0)time.sleep(0.01)self.rst(1)self.write_cmd(0xAE)#turn off OLED displayself.write_cmd(0x00)   #set lower column addressself.write_cmd(0x10)   #set higher column address self.write_cmd(0xB0)   #set page address self.write_cmd(0xdc)    #et display start line self.write_cmd(0x00) self.write_cmd(0x81)    #contract control self.write_cmd(0x6f)    #128self.write_cmd(0x21)    # Set Memory addressing mode (0x20/0x21) #self.write_cmd(0xa0)    #set segment remap self.write_cmd(0xc0)    #Com scan directionself.write_cmd(0xa4)   #Disable Entire Display On (0xA4/0xA5) self.write_cmd(0xa6)    #normal / reverseself.write_cmd(0xa8)    #multiplex ratio self.write_cmd(0x3f)    #duty = 1/64self.write_cmd(0xd3)    #set display offset self.write_cmd(0x60)self.write_cmd(0xd5)    #set osc division self.write_cmd(0x41)self.write_cmd(0xd9)    #set pre-charge periodself.write_cmd(0x22)   self.write_cmd(0xdb)    #set vcomh self.write_cmd(0x35)  self.write_cmd(0xad)    #set charge pump enable self.write_cmd(0x8a)    #Set DC-DC enable (a=0:disable; a=1:enable)self.write_cmd(0XAF)def show(self):self.write_cmd(0xb0)for page in range(0,64):self.column = 63 - page              self.write_cmd(0x00 + (self.column & 0x0f))self.write_cmd(0x10 + (self.column >> 4))for num in range(0,16):self.write_data(self.buffer[page*16+num])if __name__=='__main__':OLED = OLED_1inch3()OLED.fill(0x0000) OLED.show()OLED.rect(0,0,128,64,OLED.white)time.sleep(0.5)OLED.show()OLED.rect(10,22,20,20,OLED.white)time.sleep(0.5)OLED.show()OLED.fill_rect(40,22,20,20,OLED.white)time.sleep(0.5)OLED.show()OLED.rect(70,22,20,20,OLED.white)time.sleep(0.5)OLED.show()OLED.fill_rect(100,22,20,20,OLED.white)time.sleep(0.5)OLED.show()time.sleep(1)OLED.fill(0x0000)OLED.line(0,0,5,64,OLED.white)OLED.show()time.sleep(0.01)OLED.line(0,0,20,64,OLED.white)OLED.show()time.sleep(0.01)OLED.line(0,0,35,64,OLED.white)OLED.show()time.sleep(0.01)OLED.line(0,0,65,64,OLED.white)OLED.show()time.sleep(0.01)OLED.line(0,0,95,64,OLED.white)OLED.show()time.sleep(0.01)OLED.line(0,0,125,64,OLED.white)OLED.show()time.sleep(0.01)OLED.line(0,0,125,41,OLED.white)OLED.show()time.sleep(0.1)OLED.line(0,0,125,21,OLED.white)OLED.show()time.sleep(0.01)OLED.line(0,0,125,3,OLED.white)OLED.show()time.sleep(0.01)OLED.line(127,1,125,64,OLED.white)OLED.show()time.sleep(0.01)OLED.line(127,1,110,64,OLED.white)OLED.show()time.sleep(0.01)OLED.line(127,1,95,64,OLED.white)OLED.show()time.sleep(0.01)OLED.line(127,1,65,64,OLED.white)OLED.show()time.sleep(0.01)OLED.line(127,1,35,64,OLED.white)OLED.show()time.sleep(0.01)OLED.line(127,1,1,64,OLED.white)OLED.show()time.sleep(0.01)OLED.line(127,1,1,44,OLED.white)OLED.show()time.sleep(0.01)OLED.line(127,1,1,24,OLED.white)OLED.show()time.sleep(0.01)OLED.line(127,1,1,3,OLED.white)OLED.show()time.sleep(1)OLED.fill(0x0000) OLED.text("128 x 64 Pixels",1,10,OLED.white)OLED.text("Pico-OLED-1.3",1,27,OLED.white)OLED.text("SH1107",1,44,OLED.white)  OLED.show()time.sleep(1)OLED.fill(0x0000) keyA = Pin(15,Pin.IN,Pin.PULL_UP)keyB = Pin(17,Pin.IN,Pin.PULL_UP)while(1):if keyA.value() == 0:OLED.fill_rect(0,0,128,20,OLED.white)print("A")else :OLED.fill_rect(0,0,128,20,OLED.balck)if(keyB.value() == 0):OLED.fill_rect(0,44,128,20,OLED.white)print("B")else :OLED.fill_rect(0,44,128,20,OLED.balck)OLED.fill_rect(0,22,128,20,OLED.white)OLED.text("lm.snakin.top",0,28,OLED.balck)OLED.show()time.sleep(1)OLED.fill(0xFFFF)

最后使用thonny运行即可,之后可以根据示例代码自行更改显示效果。

[树莓派]PICO基础使用_微雪OLED显示相关推荐

  1. 树莓派 PICO基础教程(基于MicroPython)

    文章目录 1 树莓派 PICO 简介 1.1 简介 1.2 配置 [^2] 1.3 引脚图 1.4 尺寸 2 安装 2.1 烧录固件 2.2 安装IDE(Thonny IDE) 2.3 离线运行程序 ...

  2. 树莓派触摸屏连接方法(微雪7寸LCD)

    微雪 7寸LCD 触摸屏 显示器 适用 树莓派 BB BLACK 电脑 HDMI高清,购买地址如下: https://detail.tmall.com/item.htm?spm=a220o.10008 ...

  3. sx1268 中文_微雪电子SX1268 Lora 433M频段简介

    树莓派LoRa扩展板SX1268433MHz频段 新一代LoRa扩频技术,通信距离达5km,UART控制接口,兼容Arduino/STM32等主控板 型号SX1268433MLoRaHAT 产品简介[ ...

  4. jetson nano开电源_微雪电子NVIDIA Jetson Nano人工智能开发套件AI板介绍

    英伟达JetsonNanoDeveloperKit摄像头 7寸触摸屏.IMA219摄像头.64G内存卡.电源等,到手即用. 型号JetsonNanoDeveloperKit 产品简介[自我介绍] 我是 ...

  5. [树莓派 PICO(基于MicroPython)]基础教程02-按键测试、按键控制外设LED开关

    最近入手了pico学习. 目录 〇.总的参考 一.函数说明 二.硬件准备 三.程序-按键测试.按键控制外设LED开关 1.按键测试 2.按键控制外设LED开关 四.可能出现的问题 〇.总的参考 ①视频 ...

  6. 树莓派 java 驱动 微雪 墨水屏 epaper

    树莓派 java 驱动 微雪 墨水屏 epaper B站视频指导 驱动结果显示 官方驱动测试 接线 初步测试 java驱动(仅二值图片展示,非灰阶部分) 引脚初始化 初始化墨水屏 点阵排列 显示方法 ...

  7. stm32驱动微雪墨水屏1.54inch e-Paper V2

    我一起驱动墨水屏 一.墨水屏相关基础(摘自微雪官方) 二.干起来 PART2 配置I/O PART2 底层硬件接口必要的调用函数 PART3 功能函数 PART4 应用函数 三.应用 注意 **[代码 ...

  8. 用树莓派PICO做一个桌面时钟超详细教程!

    用树莓派PICO做一个可显示时间和温湿度的桌面时钟 一.概述 二.材料准备 1.树莓派PICO 2.DHT11温湿度传感器 3.DS1302时钟模块(选用) 4.SSD1306屏幕 5.其他材料 三. ...

  9. 【树莓派 Pico 和 Pico W】

    树莓派 Pico 和 Pico W 1. Pico族 2. 树莓派 Pico 和 Pico H 2.1 主要特点: 2.2 引脚和设计文件 3. 树莓派 Pico W 3.1 主要特点: 3.2 引脚 ...

最新文章

  1. 拒绝赛博朋克:斯坦福HAI报告警示“科技巨头垄断AI研究已成威胁”,力挺「国家安全云」计划...
  2. python语言培训班-Python语言培训(零基础初级班)
  3. SQLite简易入门
  4. 【集合论】序关系 ( 偏序集元素之间的关系 | 可比 | 严格小于 | 覆盖 | 哈斯图 )
  5. spark 提交任务到集群
  6. Android使用ImageView显示网络图片
  7. OpenGL 本机MSAA的实例
  8. sqoop hive导出到mysql_Sqoop hive导出到mysql[转]
  9. Ubuntu桌面版网络设置
  10. JavaScript学习总结(8)——JS实用技巧总结
  11. Python选修课第二届Turtle绘图大赛
  12. C++析构函数为什么要为虚函数?
  13. c#制作飘动动画窗体
  14. [USACO13FEB]Tractor【二分 + BFS】
  15. Cocos2d-JS特效
  16. 数据库备份与恢复 之四 选择数据库还原方案
  17. UNIX环境高级编程之第6章:系统数据文件和信息
  18. Java中映射怎么实现_Java中的映射是怎么实现的
  19. 百度网盘百度云倍速播放破解
  20. 40-42-网络层ARP协议,ARP欺骗,网络执法官和arp防火墙

热门文章

  1. 使用c++实现学生成绩管理系统
  2. zxing 生成二维码 带logo
  3. baseline是什么
  4. Windows 2003上安装 iTunes iTools
  5. 国税总局发票查验平台——Excel批量查验自动截图保存助手
  6. nRF52832不使用外部32.768K晶振,使用内部晶振
  7. 字符串长度计算(包含中文)
  8. python棋牌游戏开发之斗地主_python模拟实现斗地主发牌
  9. Json字段编辑器 ( json-editor-vue3 详细闭坑指南)
  10. 第二章、天天生鲜注册功能基本实现