找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9537|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

基于STM32的LD3320語音識別垃圾分類的垃圾桶原理圖 源程序有錯誤 求幫助

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:818516 發(fā)表于 2020-9-18 11:58 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
通過說出關(guān)鍵詞“垃圾桶”即可啟動,通過語音識別模塊LD3320識別說出的垃圾名稱,對應(yīng)的舵機(jī)打開對應(yīng)的垃圾桶。
電路原理圖如下:

元件名
STM32F103C8T6核心板
LD3320語音識別模塊
JQ8400語音播報模塊
SG90舵機(jī)
喇叭4Ω3W
直流5V2A電源適配器

此版本F_OS操作系統(tǒng)版本的示波器已經(jīng)基本成型
1:加入了低頻率中斷采集
2:高頻率DMA儲存
3:TFT相關(guān)部分一體化放入同一個任務(wù)中
4:TFT相關(guān)部分加以改進(jìn)
5:低電平觸發(fā)蜂鳴器,解決供電不足觸摸閃屏
6:調(diào)整采集檔位
7:調(diào)整各任務(wù)切換時長
8:修復(fù)F_OS中void Task_Delete(Fu32 Task_Delete)函數(shù)刪除任務(wù)時不會停在此處 加上while(Task_Buff.Buff_DeleteWill==Task_Buff.Buff_Run);可解決   
9:修復(fù)F_OS中Task_Hangup(Fu32 Task_Hangup)函數(shù)刪除任務(wù)時不會停在此處 加上while(Task_Buff.Buff_HangupWill==Task_Buff.Buff_Run);可解決
10:修復(fù)F_OS操作系統(tǒng)中斷中不能調(diào)用接口函數(shù)
11:示波區(qū)加入網(wǎng)格
12:解決慢采集屏幕刷新卡頓
13:優(yōu)化微調(diào)界面
14:慢采集加入自動調(diào)整波形
15:波形拉伸優(yōu)化
16:自動調(diào)整波形優(yōu)化
17:加入菜單界面
18:加入SD卡存儲
19:SD讀取和存儲待優(yōu)化
20:2016.7.12更正了程序中有關(guān)Task_Delete()函數(shù)的小錯誤
21: 20160904加入SD卡數(shù)據(jù)轉(zhuǎn)換成TXT格式,可直接文本查看
22:優(yōu)化程序整體結(jié)構(gòu)
23:加入電子相冊
24:優(yōu)化SD卡存儲讀取函數(shù)sdio_sdcard.c中1291行
25:加入漢字庫省了了漢字取模
26:優(yōu)化GB2312漢字字庫
27:FATFS cc936移植到SD卡,節(jié)省內(nèi)存

單片機(jī)源程序如下:
  1. #include "Header.h"

  2. u8 Target1=0;//舵機(jī)控制時間
  3. u8 Target2=0;
  4. u8 Target3=0;
  5. u8 Target4=0;

  6. u8 Open_JumpEdge=0;//開垃圾桶單位時間
  7. u8 WakeUp_Flag=0;//喚醒標(biāo)志位

  8. int main(void)
  9. {        
  10.         SystemInit(0X00000);        //參數(shù)為向量表的偏移地址
  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;//喚醒詞標(biāo)志位置位
  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);//時間到關(guān)閉
  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);//時間到關(guān)閉
  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);//時間到關(guān)閉
  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);//時間到關(guān)閉
  98.                                         Target4 = 0;
  99.                                 }        
  100.                         }
  101.                 }
  102.         }
  103. }
復(fù)制代碼

所有資料51hei下載,程序有錯誤 求大神指導(dǎo):
智能垃圾桶.7z (1.89 MB, 下載次數(shù): 308)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏19 分享淘帖 頂3 踩1
回復(fù)

使用道具 舉報

沙發(fā)
ID:710888 發(fā)表于 2020-9-20 09:18 | 只看該作者
問一下,作為產(chǎn)品而言,舵機(jī)的使用壽命怎么樣?
回復(fù)

使用道具 舉報

板凳
ID:553941 發(fā)表于 2020-10-9 09:26 | 只看該作者
seanking 發(fā)表于 2020-9-20 09:18
問一下,作為產(chǎn)品而言,舵機(jī)的使用壽命怎么樣?

越簡單越穩(wěn)定,舵機(jī)結(jié)構(gòu)比較復(fù)雜,更容易出問題。產(chǎn)品一般用步進(jìn)電機(jī)+限位開關(guān)比較好。
回復(fù)

使用道具 舉報

地板
ID:860439 發(fā)表于 2020-12-17 20:44 | 只看該作者
請問大佬,LD3320語音識別模塊也要燒代碼嗎?
回復(fù)

使用道具 舉報

5#
ID:892777 發(fā)表于 2021-3-16 20:27 | 只看該作者
Lepeing 發(fā)表于 2020-12-17 20:44
請問大佬,LD3320語音識別模塊也要燒代碼嗎?

要先燒代碼
回復(fù)

使用道具 舉報

6#
ID:892777 發(fā)表于 2021-3-17 16:31 | 只看該作者
請問有語音播報的源文件資料嗎
回復(fù)

使用道具 舉報

7#
ID:913777 發(fā)表于 2021-4-28 21:23 | 只看該作者
YuYin_RX_CMD==49 || YuYin_RX_CMD==50  49和50怎么講
回復(fù)

使用道具 舉報

8#
ID:913777 發(fā)表于 2021-4-28 21:26 | 只看該作者
ljl劉 發(fā)表于 2021-3-17 16:31
請問有語音播報的源文件資料嗎

網(wǎng)上會有LD2230模塊的學(xué)習(xí)資料會帶有源碼示例
回復(fù)

使用道具 舉報

9#
ID:447114 發(fā)表于 2021-5-6 12:02 | 只看該作者
程序一堆警告和錯誤
回復(fù)

使用道具 舉報

10#
ID:922932 發(fā)表于 2021-5-17 21:18 | 只看該作者
請問LD3320的代碼可以開源嗎?
回復(fù)

使用道具 舉報

11#
ID:843616 發(fā)表于 2021-12-19 14:57 | 只看該作者
這不是我在公眾號免費開源的代碼嗎,不過你拿的這個資料明顯被人改過,編譯都不通過,直接到我公眾號下載最新版本,啥都不用動,解壓出來直接編譯運行
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表