stm32 智能语音电梯系统
做了个stm32智能语音控制的电梯模型,总结一下功能,源码用ST的HAL库写的,整体流程分明。
实物图
这个是整个板子的图片,逻辑其实并不复杂,只是功能比较多,在我看来都是一些冗余的功能,但也可能是电梯为了安全考虑,也可能是学校为了增加一些难度,考察学生的学习能力。
PCB_3D 仿真图
功能包括:
1、OLED显示。显示电梯层数,电梯进出人数,电梯上行,下行箭头表示。
2、红外检测电梯进出人数。
3、舵机模拟电梯开关门。
4、电机模拟电梯运行状态
5、矩阵按键,用来代替电梯的实体按键
6、红外感应开关,用来无接触识别开关门动作。
7、紧急开关,紧急开关
8、语音控制,通过预设的口令来控制电梯系统工作,实现无接触控制。
这些就是这套系统的基本功能了,功能不是很多,但是全部结合起来,也是稍有一点难度。
硬件:
这里最核心的就是stm32f103c8t6单片机,一颗价格便宜,功能强大的小单片机。
通过与红外开关,语音模块,矩阵按键交互,实现对舵机,电机,OLED信息显示。
软件:
软件用HAL库编写,整体程序大一些,这样底层代码接触的就少一些了,可以更专注的对接逻辑业务了。
程序我们一共写了4个控制程序;
while (1)
{
Key_function(); //按键函数
Monitor_function(); //监测函数
Display_function(); //显示函数
Manage_function(); //处理函数
printf("hello");
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,door_stat); //舵机
}
1、Key_function(); 矩阵键盘处理函数。
2、Monitor_function(); 监测红外和电梯人数,用于监测是否产生报警信号。
3、Display_function(); OLED显示函数,很简单,在OLED屏幕上显示电梯信息。
4、Manage_function(); 交互信息处理函数
主程序软件流程图: