很荣幸能测评Beetle 树莓派RP2350产品,下面我们介绍一下该开发板吧。
一、Beetle 树莓派RP2350简介
Beetle RP2350 是一款基于树莓派 RP2350 芯片设计的高性能迷你开发板,专为对空间有严格要求的嵌入式应用设计。其尺寸仅为 25×20.5mm,相当于一枚硬币的大小。

RP2350 是树莓派推出的高性能安全微控制器,具有独特的双核双架构设计,可以选择使用 Arm Cortex-M33 或 Hazard3 RISC-V 内核。该芯片主频为 150MHz,配备 520KB 的 SRAM 和 2MB 的 Flash,能够处理大量高速数据。RP2350 集成锂电池充电管理功能和电池电压监测功能,适合长时间使用电池供电的场景。该板功耗低,休眠功耗仅 25μA。支持 C/C++ 和 MicroPython 编程,它提供 11 个可编程 IO 接口,满足大多数开发者需求。以下是引脚图:

以下是尺寸图:

开发环境支持 Arduino IDE 和 MicroPython,下面我们开始搭建Arduino IDE的开发环境吧。
二、Beetle 树莓派RP2350的Arduino环境搭建
1.下载并安装Arduino IDE
进入Arduino官网, 根据自己的电脑系统,选择适合的IDE包,下载并安装。安装完成后效果如下图。

2.添加Json链接
打开Arduino IDE,点击菜单"File",然后点击"Preferences",进入Preferences窗口。
在弹出的窗口中换行添加以下链接
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json



3.下载SDK
按如下图所示的方法依次点击下拉菜单,进入“板卡管理”窗口。

如果出现如下提示,请切换win10的hosts或者mf上网解决链接github问题。也可以把 github.com 改为 bgithub.xyz,使用镜像地址下载,不过有时效性。

如果在搜索框中输入"RP2350" ,查找并安装名为"Raspberry Pi Pico/RP2040/RP2350"的SDK。如下图箭头所示。说明下载sdk的链接成功。

点击安装
如果出现安装出错,可以使用mf上网或者使用加速器来解决。
网速有点慢,那就等等吧。
4.选择开发板
点击Tools菜单,如下图方式选择“Generic RP2350”开发板。

选择后可以开心的玩耍了。
三、功能复现
1.板载LED灯闪烁
程序如下:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);//设置引脚为输出模式
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); //输出高电平,点亮LED灯
delay(2000); // 延时一秒钟
digitalWrite(LED_BUILTIN, LOW); //输出低电平,熄灭LED灯
delay(2000); //延时一秒
}
效果如下:

当程序上传成功,板载的LED灯按2秒的间隔时间反复闪烁。
说明:
在Beetle RP2350的主芯片右下角板载有一颗LED灯,旁边标注了一个丝印 “L/25”。这颗LED灯作用是快速验证主控板和代码。

2.测试GPIO功能之蓝色LED闪烁
int led_pin=4;
void setup() {
pinMode(led_pin, OUTPUT);//设置引脚为输出模式
}
void loop() {
digitalWrite(led_pin, HIGH); //输出高电平,点亮LED灯
delay(1000); // 延时一秒钟
digitalWrite(led_pin, LOW); //输出低电平,熄灭LED灯
delay(1000); //延时一秒
}
效果如下:

蓝色LED灯每隔1s闪烁一次。
说明:
线路连接

3.测试GPIO功能之按钮控制
程序代码:
### 程序功能:当按钮按下,板载的LED灯亮起,松开按钮,则LED灯熄灭
int buttonPin = 4; // 定义按钮引脚
int ledPin = 25; //定义LED灯引脚
int buttonState = 0; //用于读取按钮状态的变量
void setup(){
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop(){
buttonState = digitalRead(buttonPin); //读取按钮值的状态
if(buttonState == HIGH){ //检查按钮是否按下
digitalWrite(ledPin,HIGH);
} else{
digitalWrite(ledPin,LOW);
}
}
}
该项目未成功复现。
4.读取模拟引脚(角度测量)
程序
/*
读取A0模拟引脚角度传感器的值。
A0为gpio26。
*/
int buttonPin = 4; // 定义按钮引脚
int ledPin = 25; //定义LED灯引脚
int buttonState = 0; //用于读取按钮状态的变量
void setup(){
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop(){
buttonState = digitalRead(buttonPin); //读取按钮值的状态
if(buttonState == HIGH){ //检查按钮是否按下
digitalWrite(ledPin,HIGH);
} else{
digitalWrite(ledPin,LOW);
}
}
串口数据如下:

旋转角度传感器,串口数据改变,
说明:
ADC(模数转换器即 A/D 转换器),是指将模拟信号转变成数字信号。真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。Beetle RP2350的ADC是10位的,最大输出值为 1023。
5.PWM(模拟输入)
程序
/*
呼吸灯
*/
void setup(){
pinMode(LED_BUILTIN, OUTPUT);
}
void loop(){
int value;
for (value=0; value<255; value++)
{
analogWrite(LED_BUILTIN, value);
delay(10);
}
for (value=255; value>0; value--)
{
analogWrite(LED_BUILTIN, value);
delay(10);
}
}
效果如下:

说明:
PWM(Pulse Width Modulation)是利用MCU的数字接口,采用脉冲宽度调制的方式来对模拟电路进行控制的一种非常有效的技术,广泛应用在灯光控制、电机速度控制、测量、通信到功率控制与变换的许多领域中。
Beetle RP2350的11个GPIO均支持PWM输出。在Arduino开发环境中,PWM输出定义为模拟输出,使用analogWrite() 函数进行控制。PWM值的范围为0~255 。
6.温湿度测量(传感器)
程序
/*
测量dht11温湿度
需要加载dht11库文件
*/
#include <DFRobot_DHT11.h>
// 创建对象
DFRobot_DHT11 dht11_2;
// 主程序开始
void setup() {
Serial.begin(115200);
}
void loop() {
dht11_2.read(1);
Serial.print("temp:");
Serial.print(dht11_2.temperature);
Serial.print(" humi:");
Serial.println(dht11_2.humidity);
delay(1000);
}
串口输出结果:

接线图:

7.角度测量(读模拟引脚)
程序
/*
测评目的:测量角度
读取模拟引脚值。
*/
const int analogInPin = A0;
int sensorValue = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(analogInPin);
Serial.println("sensor = ");
Serial.println(sensorValue);
delay(200);
}
旋转旋钮可以看到串口输出,说明已经读到模拟引脚信号。

8.SPI通信(点亮TFT屏)
程序
//
//
#include <Adafruit_ST7735.h>
#include <Adafruit_GFX.h>
#include <SPI.h>
#define dc 4
#define rst 8
#define sclk 18
#define mosi 19
#define cs 5
// 创建对象
Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, mosi, sclk, rst);
// 主程序开始
void setup() {
tft.initR(INITR_BLACKTAB);
tft.fillScreen(ST7735_BLACK);
tft.setTextSize(0.2);
tft.setTextColor(ST7735_RED);
tft.println("hello DFrobt");
}
void loop() {
}
点亮屏幕后如下图所示:

电路连接
Beetle RP2350 与 ST7735S 显示屏的连接方式:
Beetle RP2350 引脚 |
ST7735S 显示屏引脚 |
功能 |
GND |
GND |
地 |
3V3 |
VCC |
电源 |
GPIO4 |
DC |
数据/命令控制引脚 |
GPIO5 |
CS |
片选引脚 |
GPIO8 |
RST |
复位引脚 |
GPIO18 |
SCK |
时钟线 |
GPIO19 |
MOSI |
主设备数据输出 |
学习内容:
API接口,全称串行外设接口(Serial Peripheral Interface),是一种同步外设接口,它可以使单片机与各种外围设备以串行方式进行通信以交换信息。外围设备包括Flash 、RAM、LCD显示屏、A/D转换器和MCU等。