一、本文介绍了 DFRobot Beetle RP2350 开发板结合 天问ASRpro语音控制板和RP2350之间通过TX与RX串口通讯实现语音交互并且可以控制LED灯的亮与灭,并且在oled显示器上显示出相应提示;
二、天问Block 单片机开发利器,一站式的开发工具,通过简单易用的图形化模式和代码模式编程,让天问51开发变得简单和高效。天问Block主要包括项目创建和云保存,代码编辑,调试配置,程序下载和调试等功能,结合图形化、代码编程以及丰富的软件资源,减少重复工作,提高开发效率。
- 1、图形化界面编程(入门模式)
- 2、零基础入门,快速上手。程序多型号单片机互通。
- 3、自定义图形库,各类元器件使用更方便
- 4、字符界面编程(专业模式)
- 5、代码自动补全,无需记忆库函数
- 6、简洁方便的库管理,提升开发效率
- 天问Block下载链接:http://www.twen51.com/new/twen51/art_show.php?id=230
- 天问Block上手视频链接:http://www.twen51.com/new/twen51/coursePlayCloud.php?id=24&info_id=217
三、ASRPRO 基础开发板:长宽为 30x28mm,板载麦克风、指示灯,用户只需要外接喇叭就可以使用,下载程序需要搭配 STC-LINK 下载器。

四、DFRobot Beetle RP2350 开发板是一款基于RP2350芯片设计的高性能迷你体积的开发板,该开发板仅硬币大小(25*20.5mm),专为对空间有要求的嵌入式应用设计。该微控制器拥有独特的双核双架构设计,允许选择Arm Cortex-M33或Hazard3 RISC-V内核。RP2350拥有150MHz主频,520KB RAM和2MB Flash,可处理大量高速数据;
- 基本参数
- 1、工作电压: 3.3V
- 2、Type-C输入电压: 5V DC
- 3、VIN输入电压:5V DC
- 4、最大充电电流:0.5A
- 5、休眠电流:
- 6、工作温度:-10~60℃
- 7、模块尺寸:25*20.5mm
- 硬件信息
- 1、处理器:双核Cortex-M33或RICS-V Hazard3 processors
- 2、主频:150 MHz
- 3、SRAM:520KB
- 4、Flash:2MB
五、引脚示意图

六、0.96寸oled显示屏模块
尺寸:
- 常规外形尺寸:通常为 26.7mm×19.26mm×1.4mm。
- 小玻璃外形尺寸:一般是 24.7mm×16.6mm×1.3mm。
- 工作电压:支持 3.3V 至 5V 的工作电压区间,能够适应不同的电源环境,方便与各种微控制器等设备连接。
- 接口类型:通常提供 IIC(两线制)和 SPI(四线制)接口选项,方便连接到各类微控制器上,实现数据传输和显示控制。
- 显示颜色:有单色(如蓝色、白色等),也有彩色类型,不过彩色 OLED 在小尺寸上成本相对较高。
- 响应速度:刷新率极高,响应时间短,一般可达到 0.1 毫秒甚至更低,适合动态画面展示,几乎无延迟现象发生,能够快速地显示和切换图像。
- 4针oled资料链接: https://pan.baidu.com/s/1ZqmuUOlk4oYGygYAbgfx1g 提取码: gk7a
七、接线示意图

八、天问图形化编程工程代码
识别到语音“来财”时唤醒设备,在10秒内说开灯,语音模块反馈“好的,已打开,离开记得说关灯哟”;唤醒设备时10秒内说关灯,语音模块反馈“好的,已关闭,需要打开灯光时说开灯”;程序每隔200秒语音自动提示“需要打开灯光请说,开灯,需要关闭灯光请说,关灯”;
通过光照传感器去检测光照的值通过判断值的大小从串口返回一个字符串,根据字符串的内容进行提示,如果ASRPRO串口接收到“on”,则表明光照传感器检测到现在光照比较暗,语音提示“光照太弱了,建议开灯不然伤眼睛”,否则提示“现在光照很充足,建议关闭灯光节约用电”;

#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
int gz=A0; //26号端口
int flag=0;
U8G2LIB_SSD1306_128X64 u8g2(U8G2_I2C_OPT_NONE); // I2C sda=4,scl=5
void setup()
{
u8g2.begin();
u8g2.enableUTF8Print();
u8g2.setFont(u8g2_font_unifont_t_chinese2);
u8g2.setFontDirection(0);
pinMode(gz,INPUT);
Serial.begin(9600);
}
void loop()
{
int val=analogRead(gz);
if(val>600)//光线不足
{
Serial.write("on");
u8g2.clearBuffer();
u8g2.setCursor(0, 10);
u8g2.print("开关状态:");
u8g2.setCursor(0, 60);
u8g2.print("on");
u8g2.sendBuffer();
}
else if(val<200) //光线充足
{
Serial.write("off");
u8g2.clearBuffer();
u8g2.setCursor(0, 10);
u8g2.print("开关状态:");
u8g2.setCursor(0, 60);
u8g2.print("off");
u8g2.sendBuffer();
}
else{
;
}
delay(100);
}
总结:
注意:上面程序中使用串口发送和接收字符串使用的是se ri a l.write();函数
在天问51中接收到相应字符串便可以让语音合成模块实现相应的语音输出;
2350这块板子性价比很高,数据处理速度也很快,但是在使用的时候需要做的准备比较多!
1、由于arduino ide的限制,需要在左上角Arduino ide ➡️ 首选项 ➡️ 开发板管理器地址:https://github.com/earlephilhower/arduinopico/releases/download/global/package_rp2040_index.json,开发板的下载速度依旧很慢,我们需要修改hosts,这样开发板的下载速度便会很快;
附件:
windows和macos的修改hosts的方法
评论