zl程序教程

您现在的位置是:首页 >  其他

当前栏目

公交语音播报调试第一天

调试 语音 第一天 公交 播报
2023-09-11 14:20:47 时间

任务书

公交报站器由控制模块STC89C52单片机作为控制核心,硬件电路分为12864液晶屏、ISD1730语音芯片、温湿度传感器和红外传感器等模块。该系统的功能是:首先可以通过八个按键实现“上行报站”、“下行报站”、“语音重播”、“报站器复位”四个功能以及完成时钟参数设置等功能,其次可以实现站点信息语音组合播报和温湿度检测及相应提示;最后可以通过红外传感器自动感应公共汽车是否到达站台,检测到站台后,自动触发报站器语音播报站点信息,和提示语信息。

开发思路:

这个系统的设计需要完成硬件平台和软件平台的搭建,主要的一个特点是涉及的外设比较多,所以对于程序部分的逻辑设计显得尤其重要,另外使用的是51单片机,所以担心性能不一定够用,而且其内部的资源也确实少的可怜,省吃俭用,也就一路串口。

硬件平台:

根据题目的要求,我打算采用以核心板为中心,分别通过外部引线的方式,将不同的模块进行连接,实现这个系统的功能,也就是最后会将各个模块用杜邦线的形式进行连接,因为考虑到任务的时间太短,不能实现更高程度的集成化设计,所以打算采用模块化设计。而不是这个做一个一体化的设计。

note:初步的设想是有两个比较重大的节点,如果程序调试进展顺利,在时间允许的条件下,我会选择使用PCB做一个底板,将所有的模块放在一个板子上;但是如果程序调试不顺利,那我会把时间更多的分配到功能的实现上,而不是做系统的美化处理。

需要购置的模块:

  • Stc89c52核心板:
    担心内部资源不够使用,如果调试不顺利,我会换成STM32R8T6核心板

在这里插入图片描述

  • Oled显示屏: iic接口(2个)
    对于这个模组,主要担心的是能否在51单片机的程序中加入字库

  • 矩阵按键模块:实现扫描显示(占用的引脚数目至少是8个)
    这个模块特别占用引脚数目,单纯不走协议的话,对于4*4的引脚,需要至少8个引脚,来完成电平信号的识别,需要自己对采集的数据进行编码,才可以完成按键键值的确定。(家里有)

  • rtc时钟模块:iic接口(2个)
    根据刚才查阅的资料可以知道,它需要注意的就是对于任务书中的星期的处理。剩下的也都还是可以的。(家里没有)

  • ds18b20: spi接口(2个)
    这个算是一个可选的方案,对于比较老套设计方案,或者当前的单片机开发板上都是板载的资源。通过一个spi接口,需要两个引脚接口来完成对于数据的采集。(家里也有)

  • 温湿度模块:iic接口(集成化的一个温湿度采集模组)(2个)
    这是我第一次发现的模块,可以一次性完成湿度和温度的数据采集,需要调研的就是对于数据的采集和处理过程。(家里没有)

  • 语音播放模块:串口接口(2个)
    经过调研,已经知道这个模块使用的文字转语音模组,可以通过串口将需要说的文字,转化为语音播报。(家里也有)

  • 红外传感模块:(1个)
    需要占用一个引脚,当检测到外部的障碍物后,发送一个高电平,所以需要配置一个引脚作为外部输入检测。(考虑使用外部中断引脚)来提升系统的响应速度。(家里有)

系统框图

在这里插入图片描述

器件选型

  • 红外模块:常规的模块 (资料有) (一个普通IO)
  • OLED显示屏:带有IIC接口的模块 (手头没有) (资料有) (IIC接口)
  • 4*4矩阵键盘:普通的4乘4矩阵键盘 (资料有) (八个普通IO)
  • RTC时钟:PCF8563T带有IIC接口 (手头没有) (资料有) (IIC接口)
  • 语音播报模块:中文TTS文字转语音模块 (这个是重点啊。。) (资料有) (串口接口)
  • 温湿度采集模块:GY-SHT30-D带IIC接口的模块 (手头没有) (资料有) (IIC接口)
  • 电源模组:带有至少5路以上的3.3V和5V的电源模块 (手头有一个,再买一个备用)

软件调试

开发环境:

  • keil软件
  • 串口调试助手

软件设计思路:

分模块单独进行模块的调试,一方面是验证模块的功能性,另一方面是是按照任务书的要求,对模块的独立程序进行探索性开发,预期是达到和任务书的数据接口类型相一致的设计目标,便于最后的程序联调。