你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32的智能语音识别的柔光台灯设计(源程序+原理图+PCB+设计说明书+PPT)

[复制链接]
STMCU小助手 发布时间:2022-5-30 10:54
本设计:
基于STM32的智能语音识别的柔光台灯设计(源程序+原理图+PCB+设计说明书+PPT)
原理图:Altium Designer
程序编译器:keil4/keil 5
编程语言:C语言
编号Y001

设计说明:
  课题主要研究语音识别、按键识别、PWM波调节亮度、OLED屏幕显示四个模块,目前市面上语音识别的台灯大多仅是控制灯的亮灭,采用的是普通LED节能灯进行照明,相比较于市场上已有的产品,本课题所研究设计的台灯采用的主控芯片是性能较高的STM32F103C8T6单片机芯片,采用中断方式对台灯进行按键控制,并通过基于LD332O语音识别模块,利用非特定人语音识别技术对台灯的工作状态进行语音控制,同时实现了语音控制和按键控制台灯的工作状态,采用输出波形比较输出PWM波,利用PWM波来控制光照的亮度及达到柔光照射的目的,并采用OLED屏幕显示台灯的工作状态灯信息,因此使用者可以快速的指导台灯目前的工作状态,根据自身的实际需求通过语音或者按键对台灯的工作状态进行调节,这样就能够更好的帮助这些弱势群体,如老人、儿童、孕妇等行动不便的人,由于采用的是柔光台灯照明,在一定程度上减缓青少年近视发病率持续上升的趋势,并且LED灯能够缓解资源消耗过大、污染物排放量的现状。

实现功能如下:
1.语音识别部分:采用市面上流行的基于LD3320语音识别模块,利用非特定人语音识别(ASR)技术,调试语音模块使其满足台灯所需要的特定词汇。词汇包括:唤醒词、开灯、关灯、亮一点、变暗等。采用主控芯片STM32F103C8T6与LD3320语音识别模块进行串口通信,主控芯片接收数据后处理该消息命令。
2.按键控制部分:利用按键中断机制来控制灯的亮度,以及控制灯的开和关。
3.PWM波控制LED柔光灯亮度部分:采用STM32F103C8T6内部自带定时器输出PWM功能,接上外围电路,控制多个LED灯。
4.显示模块部分:主控芯片通过SPI协议驱动0.96寸OLED屏幕,在128*64个像素点的屏幕上显示灯的亮度级数及其他信息。

640 (5).png

640.jpg

640 (4).png

原理图(提供源文件):
640 (3).png

PCB图(提供源文件):
640 (2).png

源程序(提供源文件)
640 (1).png

以下为部分程序,完整程序可在下载链接获取:

  1. int lighter=0;   
  2. int main(void)
  3. {  
  4.     delay_init();   //延时函数初始化   
  5.     NVIC_Configuration();  //设置NVIC中断分组2:2位抢占优先级,2位响应优先级   LED_Init();  
  6.     OLED_Init();  //初始化OLED  
  7.     OLED_Clear();  //OLED清屏
  8.     TIM1_PWM_Init();  //TIM1 PWM波输出初始化,并使能TIM1 PWM输出   
  9.     usart2_Init(9600);  //初始化串口2
  10.     EXTIX_Init();    //外部中断初始化:中断线,IO,设置中断优先级(抢占优先级,响应优先级),触发方式  
  11.     int j;
  12.     show_name();
  13.   
  14.     while(1)
  15.     {        
  16.     j=ld3320_uart_receive();      //得到接受函数的字符串buff
  17.     pwm_led_out_test(lighter);    //设置PWM波占空比,以此控制台灯亮度      
  18.     switch(j)
  19.     {
  20.       case 1:             //一级口令:小陈  
  21.       show_name();  
  22.       break;  
  23.       case 2:    //亮一点
  24.       if(lighter<5)        //亮度还不满5
  25.       {
  26.         lighter++;
  27.         show_light(lighter);  //显示亮度
  28.       }  
  29.       else  
  30.       show_zuida();  
  31.       break;      //显示已达最大亮度      
  32.       case 3:   //变暗
  33.       if(lighter>0)
  34.       {
  35.         lighter--;
  36.         show_light(lighter);  //显示亮度      
  37.       }
  38.       else  
  39.       show_zuidi();  
  40.       break;  //显示已达最低亮度               
  41.       case 4:              //开灯(默认亮度等级3,60)
  42.         lighter = 3;
  43.         show_light(lighter);
  44.       break;     
  45.       case 5:              //关灯
  46.       lighter = 0;
  47.       show_ling();         
  48.       break;      
  49.       case 6:              //亮度20
  50.       lighter = 1;
  51.       show_ershi();        
  52.       break;     
  53.       case 7:              //亮度60
  54.       lighter = 3;
  55.       show_liushi();            
  56.       break;      
  57.       case 8:               //亮度100
  58.       lighter = 5;
  59.       show_yibai();         
  60.       break;      
  61.       case 9:              //显示请重新发口令
  62.       show_chongfa();      
  63.       break;   
  64.       case 10:             //显示请重新发口令  
  65.       show_chongfa();      
  66.       break;
  67.       default:break;
  68.     }
  69.   }   
  70. }
复制代码
设计说明书:
640.png

收藏 评论0 发布时间:2022-5-30 10:54

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版