找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1824|回复: 1
收起左侧

赛元单片机带有语音播报的倒车雷达模型

[复制链接]
ID:562614 发表于 2019-7-17 17:32 | 显示全部楼层 |阅读模式
本帖最后由 beijinglingdian 于 2019-7-17 17:36 编辑

   超声波测距技术是一种实用,高效的技术,在社会发展中,应用得越来越广泛,展望未来,超声波测距技术会是一个有着广阔发展前景的领域。由于它能量消耗的缓慢以及可以远距离传播的特性,使得超声波检测往往比较便捷和容易控制,所以超声波测距经常在与距离测量相关联的行业和领域应用。

   超声波测距除了不受光线,颜色因素限制的优势外,最主要的就是他的价格低廉,产生容易。所以超声波测距的应用特别广泛,大型的仪器主要应用在倒车雷达,建筑工地和工业现场中的很多场合,其中,在当今的海战中,也有超声波的身影,比如潜艇中,就用到了超声波测距以及其他手段来探测敌方的位置。

   本方案利用超声波可以被接收的原理,选取超声发射接收模块HC-SR04设计制作超声波发射接收系统,利用单片机所具有的控制、计算的能力做成控制模块,依据超声波发射和接收的时间间隔计算出距离,并利用语音芯片模块所具有的语音播报功能,实时完成对距离的播报。由于赛元单片机应用广泛,稳定性强,性价比高。所以选择SC92F8003单片机,再结合上超声波测距技术来设计一个带有语音播报的倒车雷达模型,SC92F8003引脚图如下:

   引脚图TSSOP20.jpg                           

  单片机传送给超声波模块的TRIG端口触发信号,感应器就会自动发射超声波,此时感应器的端口由低电平装换成高电平,单片机中断开启,而超声波返回以后,接收超声波的ECHO变为低电平,通过高电平持续的时间,就可以知道超声波发射到接收的时间,通过单片机的计算,将距离传送给语音模块进行播报。系统结构图如下:

8003系统结构图.png


软件一共有两大部分,中断程序和主程序。主程序负责初始化以及超声波的发射和接收。中断程序含有中断服务子程序,负责超声波发射时间的读取和结果的输出。

在单片机的初始化以后,定时器开始计时,同时P1被清0。超声波发生子程序在上述的工作完成的同时,将会产生一个超声波脉冲。

工作的过程可以表示如图所示。

流程图.png
                            主程序流程图
接收数据处理子程序如下:

       c_send = 1;                     //10us的高电平触发

       delay();

       c_send = 0;   

       TH0 = 0;                        //给定时器0清零

       TL0 = 0;

       TR0 = 0;                              //关定时器0定时

       flag_hc_value = 0;

       while(!c_recive);          //c_recive为零时等待

       TR0=1;

       while(c_recive)                 //c_recive1计数并等待

       {

              flag_time0 = TH0 * 256 + TL0;

              if((flag_hc_value > 1) || (flag_time0 >65000))     //当超声波超过测量范围时,显示3888

              {

                     TR0 = 0;

                     flag_csb_juli = 2;

                     distance = 888;

                     flag_hc_value = 0;

                     break ;         

              }

              else

              {

                     flag_csb_juli = 1;

              }

       }

       if(flag_csb_juli == 1)

       {     

              TR0=0;                                             //关定时器0定时

              distance = TH0;                          //读出定时器0的时间

              distance = distance * 256 + TL0;

              distance +=( flag_hc_value * 65536);//算出超声波测距的时间    得到单位是ms

              distance *= 0.017;               // 0.017 = 340M / 2 = 170M =0.017M 算出来是米

              if(distance > 350)                            //距离 = 速度 * 时间

              {     

                     distance = 888;                         //如果大于3.8m就超出超声波的量程

          }

}

本方案的核心其实就是单片机系统和超声波发射系统,超声波测距和雷达的原理是一样的,超声波发射器向需要测距的物体发射超声波,遇到障碍区就回返回来,而这个过程中的时间可以通过单片机记录并计算,根据超声波在空气中的传播时间就可以算出距离的多少,最后传输给语音芯片进行播报。

回复

使用道具 举报

ID:352784 发表于 2020-1-5 13:14 | 显示全部楼层
没有资料链接吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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