回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

基于Pinpong Board的语音互动测试项目 简单

头像 天然闪队 2021.05.08 530 0

拿到Pinpong Board有一段时间了,做了一些简单的测试,最近几天把以前做的一个项目(语音互动垃圾自动分类)迁移过来了。

步骤1 方案介绍

我们准备了4个小垃圾桶,采用舵机开关垃圾桶盖子,采用离线语音模块和MP3模块实现语音互动。

1. 3D打印了一个零件把舵机装在垃圾桶上,然后用Pinpong Board控制舵机动作。

2.离线语音模块检测到声音进行识别:

可回收垃圾:旧报纸、塑料瓶、废铁等等;

其他垃圾:果壳、泥土、瓜子壳等等;

厨余垃圾:剩菜、剩饭、菜叶等等;

有害垃圾:灯泡、电池、药品等等;

3.Pinpong Board串口和离线语音模块连接通讯。

步骤2 制作过程

本方案包含4个小垃圾桶、4个舵机(9g micro servo)、Pinpong Board、离线语音识别模块、开源Mini MP3模块小喇叭、电源模块:

(1)控制模块:采用Pinpong Board代替Arduino uno开发板、Arduino uno扩展板;

(2)语音互动模块:采用离线语音识别模块M08b、开源Mini MP3模块和小喇叭;

(3)驱动:舵机(9g micro servo)

(4)电源模块:采用DC9V 1A电源。

材料清单

  • Pinpong Board X1
  • 舵机(9g micro servo) X4
  • 离线语音识别模块M08b X1
  • Arduino uno扩展板 X1
  • 开源Mini MP3模块和小喇叭 X1
  • DC9V 1A电源 X1
  • 3D打印安装零件 X4

步骤3 安装

project-image
代码
#include <DFRobot_Servo.h>
#include <DFRobot_PlayerMini.h>
#include <SoftwareSerial.h>

// 动态变量
volatile float mind_n_a;
// 创建对象
Servo              servo_4;
Servo              servo_5;
Servo              servo_6;
Servo              servo_7;
DFRobot_PlayerMini mp3;
SoftwareSerial     softSerialmp3(2, 3);


// 主程序开始
void setup() {
	servo_4.attach(4);
	servo_5.attach(5);
	servo_6.attach(6);
	servo_7.attach(7);
	Serial.begin(9600);
	servo_4.angle(abs(0));
	servo_5.angle(abs(0));
	servo_6.angle(abs(0));
	servo_7.angle(abs(0));
	mp3.begin(&softSerialmp3);
	mp3.volume(100);
}
void loop() {
	mind_n_a = Serial.read();
	if ((mind_n_a==1)) {
		mp3.playMp3Folder(1);
		servo_4.angle(abs(70));
		delay(2000);
		servo_4.angle(abs(0));
	}
	if ((mind_n_a==2)) {
		mp3.playMp3Folder(2);
		servo_5.angle(abs(70));
		delay(2000);
		servo_5.angle(abs(0));
	}
	if ((mind_n_a==3)) {
		mp3.playMp3Folder(3);
		servo_6.angle(abs(70));
		delay(2000);
		servo_6.angle(abs(0));
	}
	if ((mind_n_a==4)) {
		mp3.playMp3Folder(4);
		servo_7.angle(abs(70));
		delay(2000);
		servo_7.angle(abs(0));
	}
}

通过语音识别自动打开垃圾箱盖子的基本功能实现了。

遇到几个问题正在解决:

1.开机后Pinpong Board上的蜂鸣器一直响,有问题待解决。

2.语音识别干扰很大,识别不准确。

3.小喇叭没有声音。

换成原来的Arduino uno开发板后以上问题没有。要解决以上问题还需要进一步测试。

评论

user-avatar