产品简介
Beetle RP2350 是一款基于RP2350芯片设计的高性能迷你体积的开发板,该开发板仅硬币大小(25*20.5mm),专为对空间有要求的嵌入式应用设计。
高性能树莓派RP2350芯片
RP2350是树莓派新推出的高性能安全微控制器,该微控制器拥有独特的双核双架构设计,允许选择Arm Cortex-M33或Hazard3 RISC-V内核。RP2350拥有150MHz主频,520KB RAM和2MB Flash,可处理大量高速数据。
高度集成,超小尺寸
Beetle RP2350在仅硬币大小的体积上引出了11个IO、BAT、3.3V等众多接口,为项目制作提供了充足的IO和方便的电源连接。Beetle RP2350休眠功耗仅uA,使用电池可长时间工作。同时,Beetle RP2350还集成了锂电池充电功能和电池电压监控功能,可对锂电池进行充电和监测电量,以便在电量不足时采取措施,确保设备持续运行。
易于编程,易于集成
Beetle RP2350支持C/C++、MicroPython编程,可选择熟悉的编程语言,从而实现更高效的开发流程。Beetle RP2350所有器件均在一面,并且采用半孔设计,因此可用于贴片设计,有助于大规模集成。
产品特点
- 高性能树莓派RP2350芯片
- 双核双架构设计,可选择Arm Cortex-M33或Hazard3 RISC-V内核
- 150MHz主频
- 520KB RAM,2MB flash
- 高度集成,超小尺寸
- 尺寸仅25*20.5mm
- 集成锂电池充电管理、电池电压监测
- 引出11个IO
- 低功耗,休眠功耗仅25uA
- 支持C/C++、MicroPython编程
- 单面布局,半孔工艺,可用于贴片生产
应用场景
- 复古电脑
- 游戏机DIY
- 键盘控制
- 可编程灯光控制
- 舞台道具控制
- 电子徽章
技术规格
- 基本参数
- 工作电压: 3.3V
- Type-C输入电压: 5V DC
- VIN输入电压:5V DC
- 最大充电电流:0.5A
- 休眠电流:
- 工作温度:-10~60℃
- 模块尺寸:25*20.5mm
- 硬件信息
- 处理器:双核Cortex-M33或RICS-V Hazard3 processors
- 主频:150 MHz
- SRAM:520KB
- Flash:2MB
- USB: USB1.1
功能引脚示意图
功能指示
序号 | 功能名称 | 功能说明 |
---|---|---|
① | Type-C USB接口 | 下载程序及供电接口,支持4.75V~5.5V |
② | RST按键 | 单击复位按钮,将程序复位 |
③ | 锂电池接口 | 支持3.7V~4.2V |
④ | 板载LED灯 | 使用IO25引脚控制的LED灯 |
⑤ | 充电指示灯 | 指示充电状态的绿色LED灯,通过三种方式指示充电状态:1、充满电或未接入电源时熄灭;2、充电时常亮;3、USB供电,未连接锂电池时高频闪烁 |
⑥ | 用户按键 | 使用QSPI_SS引脚控制该按钮 |
⑦ | RP2350芯片 | 芯片型号为RP2350A_QFN60 |
引脚示意
引脚概述
引脚号 | 数字口 | 模拟口 | UART | I2C | SPI | 其它 |
---|---|---|---|---|---|---|
0 | D0 | TX1 | ||||
1 | D1 | RX1 | ||||
4 | D4 | SDA | ||||
5 | D5 | SCL | ||||
8 | D8 | TX2 | ||||
9 | D9 | RX2 | ||||
16 | D16 | SPI0/MISO | ||||
18 | D18 | SPI0/SCK | ||||
19 | D19 | SPI0/MOSI | ||||
26 | D26 | A0 | ||||
27 | D27 | A1 | ||||
BAT | 锂电池输入接口,IO29为电池电压检测引脚 | |||||
GND | 接地引脚 | |||||
VCC | 该引脚接在USB电源引脚,作为输出时电压为USB电压,通常为5V | |||||
3V3 | 3.3V稳压电源输出 |
尺寸图
- pin脚间距:2.54mm
- 主板尺寸:25mm×20.5mm
- 板厚:1.0mm
Arduino使用教程
使用前准备
下载Arduino IDE
点击进入Arduino官网下载Arduino IDE 根据自己的电脑系统,选择适合的IDE包。
下载及安装SDK
添加json链接
点击菜单"File",然后点击"Preferences",进入Preferences窗口。
在Preferences窗口点击图中箭头所示的图标
在弹出的窗口中换行添加json链接:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
下载SDK
按如下图所示的方法依次点击下拉菜单,进入“板卡管理”窗口。
在搜索框中输入"RP2350" ,查找并安装名为"Raspberry Pi Pico/RP2040/RP2350"的SDK。如下图箭头所示。
选择开发板
点击Tools菜单,如下图方式选择“Generic RP2350”开发板。
至此,Beetle RP2350 SDK安装完成,可以开始使用了。
Blink
在本节中,我们将从点亮LED灯开始来使用Beetle RP2350主板。
硬件准备:
- Beetle RP2350(DFR1188) ×1
功能说明:
在Beetle RP2350的主芯片右下角板载有一颗LED灯,旁边标注了一个丝印 “L/25”。这颗LED灯作用是快速验证主控板和代码。如图所示:
示例程序:
程序功能:让板载的LED灯按一秒的间隔闪烁。
void setup() {
pinMode(LED_BUILTIN, OUTPUT);//设置引脚为输出模式
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); //输出高电平,点亮LED灯
delay(1000); // 延时一秒钟
digitalWrite(LED_BUILTIN, LOW); //输出低电平,熄灭LED灯
delay(1000); //延时一秒
}
程序执行结果:
当程序上传成功,板载的LED灯按1秒的间隔时间反复闪烁。
GPIO
数字引脚
写数字引脚
硬件准备:
- Beetle RP2350(DFR1188) ×1
- Gravity: 数字黄色LED发光模块(SKU: DFR0021-Y)×1
硬件连接:
示例程序:
程序功能:数字引脚输出高电平,点亮LED灯。
int ledPin = 4; // 定义LED灯引脚
void setup(){
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
}
void loop(){
}
程序执行结果:
程序上传完成,可以看到蓝色LED灯亮起。
读数字引脚
硬件准备:
- Beetle RP2350(DFR1188)×1
- Gravity: 数字大按钮模块 (SKU: DFR0029-B)×1
硬件连接:
示例程序:
程序功能:当按钮按下,板载的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);
}
}
程序执行结果:
程序上传成功后,按下连接在D7的按钮后,板载的LED灯亮起,松开按钮后LED灯熄灭。
模拟引脚
读模拟引脚
硬件准备:
- Beetle RP2350(DFR1188)×1
- Gravity: 模拟角度传感器Rotation Sensor(SKU: DFR0054)×1
功能说明:
ADC(模数转换器即 A/D 转换器),是指将模拟信号转变成数字信号。真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。Beetle RP2350的ADC是10位的,最大输出值为 1023。
硬件连接:
示例程序:
以下程序将读取接在IO27/A1引脚上的传感器模块,然后在串口监视器中实时打印模拟角度传感器的值。
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);
}
程序执行结果:
打开串口监视器,可以看到窗口打印出了当前角度传感器的值,转动角度传感器,打印的值也随之改变。
PWM输出(模拟写)
PWM(Pulse Width Modulation)是利用MCU的数字接口,采用脉冲宽度调制的方式来对模拟电路进行控制的一种非常有效的技术,广泛应用在灯光控制、电机速度控制、测量、通信到功率控制与变换的许多领域中。
Beetle RP2350的11个GPIO均支持PWM输出。在Arduino开发环境中,PWM输出定义为模拟输出,使用analogWrite()
函数进行控制。PWM值的范围为0~255 。
下方示例将演示使用PWM驱动板载LED灯呈现呼吸灯状态。该示例无需外部硬件连接。
void setup(){
pinMode(LED_BUILTIN, OUTPUT);
}
void loop(){
byte 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);
}
}
程序执行结果:
程序下载完成后,板载的蓝色LED发光的强度呈现出逐渐变亮然后逐渐变弱的呼吸的状态。
UART通信
在Arduino开发环境中,Beetle RP2350默认了2组UART通讯接口:UART1、UART2
以下是RP2350中对UART接口的定义
#define PIN_SERIAL1_TX (0u)
#define PIN_SERIAL1_RX (1u)
#define PIN_SERIAL2_TX (8u)
#define PIN_SERIAL2_RX (9u)
下方例子将演示使用UART1读取UART接口传感器的值。并在ArduinoIDE的串口监视器打印出来。在本例中,使用了GR10-30 手势识别传感器(SEN0543),该传感器支持UART和I2C两种通讯方式,可检测12种手势
硬件准备:
-
Beetle RP2350(DFR1188)×1
-
Fermion: GR10-30 手势识别传感器(SEN0543) ×1
硬件连接:
软件准备:
-
下载并安装RTU库
-
下载并安装GR10-30库文件
示例程序:
代码功能:读取12种手势的类型并在串口打印
#include "DFRobot_GR10_30.h"
DFRobot_GR10_30 gr10_30(GR10_30_DEVICE_ADDR, &Serial2);
void setup() {
Serial2.begin(9600);
Serial.begin(115200);
while(gr10_30.begin() != 0){
Serial.println(" Sensor initialize failed!!");
delay(1000);
}
Serial.println(" Sensor initialize success!!");
gr10_30.enGestures(GESTURE_UP|GESTURE_DOWN|GESTURE_LEFT|GESTURE_RIGHT|GESTURE_FORWARD|GESTURE_BACKWARD|GESTURE_CLOCKWISE|GESTURE_COUNTERCLOCKWISE|GESTURE_CLOCKWISE_C|GESTURE_COUNTERCLOCKWISE_C);
}
void loop() {
if(gr10_30.getDataReady()){
uint16_t gestures = gr10_30.getGesturesState();
if(gestures&GESTURE_UP){
Serial.println("Up");
}
if(gestures&GESTURE_DOWN){
Serial.println("Down");
}
if(gestures&GESTURE_LEFT){
Serial.println("Left");
}
if(gestures&GESTURE_RIGHT){
Serial.println("Right");
}
if(gestures&GESTURE_FORWARD){
Serial.println("Forward");
}
if(gestures&GESTURE_BACKWARD){
Serial.println("Backward");
}
if(gestures&GESTURE_CLOCKWISE){
Serial.println("Clockwise");
}
if(gestures&GESTURE_COUNTERCLOCKWISE){
Serial.println("Contrarotate");
}
if(gestures&GESTURE_CLOCKWISE_C){
Serial.println("Continuous clockwise");
}
if(gestures&GESTURE_COUNTERCLOCKWISE_C){
Serial.println("Continuous counterclockwise");
}
}
delay(1);
}
程序执行结果:
打开ArduinoIDE串口监视器,监视器窗口正确打印出了传感器的数据。
I2C通信
I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。
Beetle RP2350提供了1组I2C通讯接口:I2C0。引脚对应关系如下:
引脚号 | I2C功能 |
---|---|
4 | I2C0/SDA |
5 | I2C0/SCL |
在Arduino中,I2C0做为默认使用的I2C接口,下方例子将演示使用I2C接口读取GR10-30 手势识别传感器(SEN0543)的12种手势。该传感器支持3.3V~5V供电,UART和I2C两种通讯方式,且有Arduino库可直接使用。其它I2C设备使用方式类似。
硬件准备:
-
Beetle RP2350(DFR1188)×1
-
Fermion: GR10-30 手势识别传感器(SEN0543) ×1
硬件连接:
软件准备:
-
下载并安装RTU库
-
下载并安装GR10-30库文件
示例程序:
代码功能:读取12种手势的类型并在串口打印
#include "DFRobot_GR10_30.h"
DFRobot_GR10_30 gr10_30(GR10_30_DEVICE_ADDR, &Wire);
void setup() {
Wire.begin();
Serial.begin(115200);
while(gr10_30.begin() != 0){
Serial.println(" Sensor initialize failed!!");
delay(1000);
}
Serial.println(" Sensor initialize success!!");
gr10_30.enGestures(GESTURE_UP|GESTURE_DOWN|GESTURE_LEFT|GESTURE_RIGHT|GESTURE_FORWARD|GESTURE_BACKWARD|GESTURE_CLOCKWISE|GESTURE_COUNTERCLOCKWISE|GESTURE_CLOCKWISE_C|GESTURE_COUNTERCLOCKWISE_C);
}
void loop() {
if(gr10_30.getDataReady()){
uint16_t gestures = gr10_30.getGesturesState();
if(gestures&GESTURE_UP){
Serial.println("Up");
}
if(gestures&GESTURE_DOWN){
Serial.println("Down");
}
if(gestures&GESTURE_LEFT){
Serial.println("Left");
}
if(gestures&GESTURE_RIGHT){
Serial.println("Right");
}
if(gestures&GESTURE_FORWARD){
Serial.println("Forward");
}
if(gestures&GESTURE_BACKWARD){
Serial.println("Backward");
}
if(gestures&GESTURE_CLOCKWISE){
Serial.println("Clockwise");
}
if(gestures&GESTURE_COUNTERCLOCKWISE){
Serial.println("Contrarotate");
}
if(gestures&GESTURE_CLOCKWISE_C){
Serial.println("Continuous clockwise");
}
if(gestures&GESTURE_COUNTERCLOCKWISE_C){
Serial.println("Continuous counterclockwise");
}
}
delay(1);
}
程序执行结果:
打开ArduinoIDE串口监视器,监视器窗口正确打印出了传感器的数据。
SPI通信
SPI接口,全称串行外设接口(Serial Peripheral Interface),是一种同步外设接口,它可以使单片机与各种外围设备以串行方式进行通信以交换信息。外围设备包括Flash 、RAM、LCD显示屏、A/D转换器和MCU等。
Beetle RP2350的SPI通讯接口引脚分布如下:
引脚号 | SPI接口功能 |
---|---|
16 | SPI0/MISO |
18 | SPI0/SCK |
19 | SPI0/MOSI |
下方例子将演示如何使用SPI驱动LCD显示屏显示图案。在本例中,使用了2.0" 320x240 IPS广视角TFT显示屏(DFR0664)
硬件准备:
- Beetle RP2350(DFR1188)×1
- 2.0" 320x240 IPS广视角TFT显示屏 (DFR0664)
硬件连接:
Beetle RP2350: GND (连接) 显示屏:GND
Beetle RP2350: 3V3 (连接) 显示屏:VCC
Beetle RP2350: 4 (连接) 显示屏:DC
Beetle RP2350: 5 (连接) 显示屏:CS
Beetle RP2350: 8 (连接) 显示屏:RST
Beetle RP2350: 16 (连接) 显示屏:MISO
Beetle RP2350: 18 (连接) 显示屏:SCK
Beetle RP2350: 19 (连接) 显示屏:MOSI
软件准备:
- 点击下载DFRobot_GDL库文件
示例程序:
代码功能:让接在RP2350的SPI接口上的LCD显示屏显示文字“DFRobot”。
#define PIN_SPI0_MISO (16u)
#define PIN_SPI0_MOSI (19u)
#define PIN_SPI0_SCK (18u)
代码:
#include "DFRobot_GDL.h"
#define TFT_DC 4
#define TFT_CS 5
#define TFT_RST 8
DFRobot_ST7789_240x320_HW_SPI screen(/*dc=*/TFT_DC,/*cs=*/TFT_CS,/*rst=*/TFT_RST);
void setup() {
screen.begin();
screen.setTextSize(1);
screen.fillScreen(COLOR_RGB565_BLACK);
screen.setFont(&FreeMono12pt7b);
screen.setCursor(/*x=*/32,/*y=*/64);
screen.setTextColor(COLOR_RGB565_LGRAY);
screen.setTextWrap(true);
screen.print("DFRobot");
}
void loop() {
}
执行结果
显示屏显示字符“DFRobot”。
更多资料下载
常见问题(FAQ)
还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。