RP2350-Matrix 是微雪(Waveshare)设计的低成本,高性能的微控制器开发板。在较小的板型下,使用 RP2350 作为主控,板载了六轴传感器 (三轴加速度计与三轴陀螺仪)和 8×8 RGB LED 矩阵,集成 16MB 的片上 Flash,便于开发和集成到产品中。
| ||
|
为了方便在电脑上使用MicroPython开发Pico/Pico2板,建议下载Thonny IDE
【MicroPython】machine.Pin类函数详解
【MicroPython】machine.PWM类函数详解
【MicroPython】machine.ADC类函数详解
【MicroPython】machine.UART类函数详解
【MicroPython】machine.I2C类函数详解
【MicroPython】machine.SPI类函数详解
【MicroPython】rp2.StateMachine类函数详解
对于 C/C++,建议使用 Pico VSCode 进行开发,这是一款 Microsoft Visual Studio Code 扩展,旨在让您在为 Raspberry Pi Pico 系列开发板创建、开发和调试项目时更加轻松。无论您是初学者还是经验丰富的专业人士,此工具都可以帮助您自信而轻松地进行 Pico 开发。下面我们介绍如何安装该扩展并使用。
Cmake Path: ${HOME}/.pico-sdk/cmake/v3.28.6/bin/cmake.exe Git Path: ${HOME}/.pico-sdk/git/cmd/git.exe Ninja Path: ${HOME}/.pico-sdk/ninja/v1.12.1/ninja.exe Python3 Path: ${HOME}/.pico-sdk/python/3.12.1/python.exe
这里提供两种方法烧录固件
1.按住Boot按键 2.将开发板连接到电脑上 3.然后会电脑会将开发板识别成一个U盘设备 4.将.uf2文件复制到U盘中,设备就会自动重启,程序烧录成功
set(PICO_BOARD pico CACHE STRING "Board type")
https://github.com/earlephilhower/arduino-pico/releases/download/4.5.2/package_rp2040_index.json
注意:如果您已经有ESP32板URL,您可以使用逗号分隔 URL,如下所示:
https://dl.espressif.com/dl/package_esp32_index.json,https://github.com/earlephilhower/arduino-pico/releases/download/4.5.2/package_rp2040_index.json
C:\Users\[username]\AppData\Local\Arduino15\packages
注意:将里面用户名:[username]替换成自己的用户名
MircoPython视频例程(github)
MicroPython固件/Blink例程(C)
树莓派官方C/C++示例程序 (github)
树莓派官方micropython示例程序 (github)
Arduino官方C/C++示例程序 (github)
【程序说明】
【代码说明】
WS2812_init()
:初始化RGB LED控制引脚,并配置相关参数WS2812_show2(uint8_t r, uint8_t g, uint8_t b)
:根据传入的颜色,刷新所有RGB LEDWS2812.h
文件中,有四个参数可以配置:NUM_LEDS
:RGB LED 数量LED_BRIGHTNESS
:RGB LED最大亮度WIDTH
:RGB LED 矩阵宽度HEIGHT
:RGB LED 矩阵高度r
设置为最大值,蓝色和绿色分量g、b
设置为零。在循环中,让红色分量减小,绿色分量增大,即可实现红到绿的渐变g
设置为最大值,红色和蓝色分量r、b
设置为零。在循环中,让绿色分量减小,蓝色分量增大,即可实现绿到蓝的渐变b
设置为最大值,绿色和红色分量g、r
设置为零。在循环中,让蓝色分量减小,红色分量增大,即可实现蓝到红的渐变【程序说明】
【坐标说明】
【代码说明】
WS2812_init()
:初始化RGB LED控制引脚,并配置相关参数QMI8658_init()
:初始化六轴传感器QMI8658_read_xyz()
:读取六轴传感器数据WS2812_clear()
:RGB LED数组leds
清零WS2812_set_pixel(uint8_t x, uint8_t y, uint8_t r, uint8_t g, uint8_t b)
:设置(x,y)处 LED 颜色WS2812_show()
:根据leds
数组,刷新RGB LED矩阵QMI8658_read_xyz
获取六轴传感器数据,根据获取的X、Y轴加速度数据控制RGB LED移动。acc[0]
判断移动方向。当acc[0]
大于移动阈值threshold
时,x坐标减小,RGB LED向上移动。当acc[0]
小于移动阈值-threshold
时,x坐标增大,RGB LED向下移动acc[1]
判断移动方向。当acc[1]
大于移动阈值threshold
时,y坐标增大,RGB LED向右移动。当acc[1]
小于移动阈值-threshold
时,y坐标减小,RGB LED向左移动【程序说明】
【安全提示】
【代码说明】
WS2812_init()
:初始化RGB LED控制引脚,并配置相关参数WS2812_show2(uint8_t r, uint8_t g, uint8_t b)
:根据传入的颜色,刷新所有RGB LEDread_onboard_temperature()
:获取核心温度read_onboard_temperature()
获取核心温度,并根据设定好的温度、亮度数组BRIGHTNESS_LEVELS
,控制亮度变化temp
大于下一档档温度时,档位升高,亮度降低。temp
将缓慢下降。当核心温度temp
降低到上一档温度+1℃时,档位降低,亮度升高。【程序说明】
【代码说明】
LEDController()
:初始化RGB LED控制引脚,并配置相关参数led_ctrl.show2()
:根据传入的颜色,刷新所有RGB LEDWS2812.py
文件中,有四个参数可以配置:NUM_LEDS
:RGB LED 数量LED_BRIGHTNESS
:RGB LED最大亮度WIDTH
:RGB LED 矩阵宽度HEIGHT
:RGB LED 矩阵高度r
设置为最大值,蓝色和绿色分量g、b
设置为零。在循环中,让红色分量减小,绿色分量增大,即可实现红到绿的渐变g
设置为最大值,红色和蓝色分量r、b
设置为零。在循环中,让绿色分量减小,蓝色分量增大,即可实现绿到蓝的渐变b
设置为最大值,绿色和红色分量g、r
设置为零。在循环中,让蓝色分量减小,红色分量增大,即可实现蓝到红的渐变【程序说明】
【坐标说明】
【代码说明】
LEDController()
:初始化RGB LED控制引脚,并配置相关参数QMI8658_init()
:初始化六轴传感器imu.Read_XYZ()
:读取六轴传感器数据led_ctrl.clear())
:RGB LED数组leds
清零led_ctrl.set_pixel()
:设置(x,y)处 LED 颜色led_ctrl.show()
:根据leds
数组,刷新RGB LED矩阵imu.Read_XYZ()
获取六轴传感器数据,根据获取的X、Y轴加速度数据控制RGB LED移动。xyz[0]
判断移动方向。当xyz[0]
大于移动阈值threshold
时,x坐标减小,RGB LED向上移动。当xyz[0]
小于移动阈值-threshold
时,x坐标增大,RGB LED向下移动xyz[1]
判断移动方向。当xyz[1]
大于移动阈值threshold
时,y坐标增大,RGB LED向右移动。当xyz[1]
小于移动阈值-threshold
时,y坐标减小,RGB LED向左移动【程序说明】
【安全提示】
【代码说明】
LEDController()
:初始化RGB LED控制引脚,并配置相关参数led_ctrl.show2()
:根据传入的颜色,刷新所有RGB LEDread_onboard_temperature()
:获取核心温度read_onboard_temperature()
获取核心温度,并根据设定好的温度、亮度数组BRIGHTNESS_LEVELS
,控制亮度变化temp
大于下一档档温度时,档位升高,亮度降低。temp
将缓慢下降。当核心温度temp
降低到上一档温度+1℃时,档位降低,亮度升高。可以参考RP2350-datasheet中RP2350-E9部分内容
周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841