找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8568|回复: 10
收起左侧

基于STM32的LD3320语音识别垃圾分类的垃圾桶原理图 源程序有错误 求帮助

  [复制链接]
ID:818516 发表于 2020-9-18 11:58 | 显示全部楼层 |阅读模式
通过说出关键词“垃圾桶”即可启动,通过语音识别模块LD3320识别说出的垃圾名称,对应的舵机打开对应的垃圾桶。
电路原理图如下:
51hei.png
元件名
STM32F103C8T6核心板
LD3320语音识别模块
JQ8400语音播报模块
SG90舵机
喇叭4Ω3W
直流5V2A电源适配器

此版本F_OS操作系统版本的示波器已经基本成型
1:加入了低频率中断采集
2:高频率DMA储存
3:TFT相关部分一体化放入同一个任务中
4:TFT相关部分加以改进
5:低电平触发蜂鸣器,解决供电不足触摸闪屏
6:调整采集档位
7:调整各任务切换时长
8:修复F_OS中void Task_Delete(Fu32 Task_Delete)函数删除任务时不会停在此处 加上while(Task_Buff.Buff_DeleteWill==Task_Buff.Buff_Run);可解决   
9:修复F_OS中Task_Hangup(Fu32 Task_Hangup)函数删除任务时不会停在此处 加上while(Task_Buff.Buff_HangupWill==Task_Buff.Buff_Run);可解决
10:修复F_OS操作系统中断中不能调用接口函数
11:示波区加入网格
12:解决慢采集屏幕刷新卡顿
13:优化微调界面
14:慢采集加入自动调整波形
15:波形拉伸优化
16:自动调整波形优化
17:加入菜单界面
18:加入SD卡存储
19:SD读取和存储待优化
20:2016.7.12更正了程序中有关Task_Delete()函数的小错误
21: 20160904加入SD卡数据转换成TXT格式,可直接文本查看
22:优化程序整体结构
23:加入电子相册
24:优化SD卡存储读取函数sdio_sdcard.c中1291行
25:加入汉字库省了了汉字取模
26:优化GB2312汉字字库
27:FATFS cc936移植到SD卡,节省内存

单片机源程序如下:
  1. #include "Header.h"

  2. u8 Target1=0;//舵机控制时间
  3. u8 Target2=0;
  4. u8 Target3=0;
  5. u8 Target4=0;

  6. u8 Open_JumpEdge=0;//开垃圾桶单位时间
  7. u8 WakeUp_Flag=0;//唤醒标志位

  8. int main(void)
  9. {        
  10.         SystemInit(0X00000);        //参数为向量表的偏移地址
  11.         delay_init();//初始化延时
  12.         TFT_Init();//TFT初始化
  13.         MP3_Init();//初始化MP3语音播报模块
  14.         YuYin_Init();//初始化语音识别模块
  15.         SysTick_Init();//初始化多功能定时器
  16.   PWM_Init();//初始化PWM
  17.         
  18.   while(1)
  19.         {
  20.                 if(YuYin_RX_STA == 1)//收到语音指令
  21.                 {
  22.                         if(MP3_State() == 0)
  23.                         {
  24.                                 if(YuYin_RX_CMD==49 || YuYin_RX_CMD==50)//唤醒
  25.                                 {
  26.                                         WakeUp_Flag = 1;//唤醒词标志位置位
  27.                                         MP3_Star(5);
  28.                                 }
  29.                                 else if(WakeUp_Flag == 1)
  30.                                 {
  31.                                         WakeUp_Flag=0;
  32.                                        
  33.                                         if(YuYin_RX_CMD%4 == 1)//厨余垃圾
  34.                                         {
  35.                                                 MP3_Star(1);
  36.                                                 Target1 = 1;
  37.                                         }
  38.                                         else if(YuYin_RX_CMD%4 == 2)//其他垃圾
  39.                                         {
  40.                                                 MP3_Star(2);
  41.                                                 Target2 = 1;
  42.                                         }
  43.                                         else if(YuYin_RX_CMD%4 == 3)//有害垃圾
  44.                                         {
  45.                                                 MP3_Star(3);
  46.                                                 Target3 = 1;
  47.                                         }
  48.                                         else//可回收物
  49.                                         {
  50.                                                 MP3_Star(4);
  51.                                                 Target4 = 1;
  52.                                         }
  53.                                 }
  54.                         }
  55.                         
  56.                         YuYin_RX_STA = 0;
  57.                 }
  58.                
  59.                 if(SysTick_JumpEdge(&Open_JumpEdge, &SysTickBit.Time1s)==1)//开垃圾桶单位时间到
  60.                 {
  61.                   if(Target1 != 0)//厨余垃圾桶打开
  62.                         {
  63.                           Target1++;
  64.                                 TIM_SetCompare1(TIM4,1200);//打开
  65.                                 if(Target1>6)
  66.                                 {
  67.                                         TIM_SetCompare1(TIM4,400);//时间到关闭
  68.                                   Target1 = 0;
  69.                                 }                                       
  70.                         }
  71.                         if(Target2 != 0)//其他垃圾桶打开
  72.                         {
  73.                                 Target2++;
  74.                                 TIM_SetCompare2(TIM4,1200);//打开
  75.                                 if(Target2>6)
  76.                                 {
  77.                                         TIM_SetCompare2(TIM4,400);//时间到关闭
  78.                                         Target2 = 0;
  79.                                 }        
  80.                         }        
  81.                         if(Target3 != 0)//有害垃圾桶打开
  82.                         {
  83.                                 Target3++;
  84.                                 TIM_SetCompare3(TIM4,1200);//打开
  85.                                 if(Target3>6)
  86.                                 {
  87.                                         TIM_SetCompare3(TIM4,400);//时间到关闭
  88.                                         Target3 = 0;
  89.                                 }        
  90.                         }
  91.                         if(Target4 != 0)//可回收物桶打开
  92.                         {
  93.                                 Target4++;
  94.                                 TIM_SetCompare4(TIM4,1200);//打开
  95.                                 if(Target4>6)
  96.                                 {
  97.                                         TIM_SetCompare4(TIM4,400);//时间到关闭
  98.                                         Target4 = 0;
  99.                                 }        
  100.                         }
  101.                 }
  102.         }
  103. }
复制代码

所有资料51hei下载,程序有错误 求大神指导:
智能垃圾桶.7z (1.89 MB, 下载次数: 308)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表