发布时间:2022-11-29 15:12:56
序言:写作是分享个人见解和探索未知领域的桥梁,我们为您精选了1篇的机电中超声波雷达测距与知识模块教学样本,期待这些样本能够为您提供丰富的参考和启发,请尽情阅读。
1前言
汽车电子集成化、网联化、智能化是世界汽车发展的主流趋势,各职业类技术院校的汽车专业基本都开设了智能网联汽车技术相关方向的课程,该类课程的技术相关概念复杂、深奥、抽象,学生根本无法深刻理解其本质含义。本文尝试使用目前主流的软硬件仿真系统Tinkercad与Proteus进行联合仿真,基于智能网联汽车技术的车载超声波雷达测距[1]模块教学案例,仿真实现基本的车载超声波雷达测距系统测距功能,使学生能透彻地理解其测距原理。Tinkercad仿真系统连线简单明了,界面友好,通过几根简单的电路接线即可形象地显示雷达测距原理与各模块之间地逻辑关系,特别适合于没有专业基础或专业基础薄弱的学生入门学习,Proteus软件则侧重于实践开发,如具体硬件模块选型、元器件种类的选择、各元器件参数的设置及具体的电子系统布线图,而且可以完成整个超声波雷达测距系统从硬件系统到软件系统的细节基础设计。显然,整个教学实践过程主要分成两大步骤,即先进行Tinkercad仿真实践,然后再进行Proteus仿真实践。
2车载超声波雷达测距原理Tinkercad仿真
Tinkercad是世界著名图形设计公司Autodesk(AutoCAD为其代表产品之一)近年来新推出的一款开源软硬件电子仿真设计系统,该设计系统提供了许多市场上典型的开源硬件处理器及电子元器件,可以进行电子电路设计及单片机或嵌入式系统仿真设计,并支持C或C++语言进行系统编程。在Tinkercad网站完成Autodesk账户的注册之后,如图1所示,进入Tinkercad电子电路设计界面,界面简单明了,只需把右侧“基本组件”的元器件拖拽至左侧”电路设计区”,采用简单的连线即可完成车载雷达系统硬件设计。其中,微处理器芯片采用ArduinoUNO,雷达传感器采用HC-SR04型号。在教学过程中,重点向学生阐明雷达传感器四个引脚的物理意义,分别是电源引脚VCC、地引脚GND、Trig引脚为超声波触发引脚、Echo为雷达反馈信号接收引脚,引脚物理意义阐述清楚,学生即可初步理解超声波测距原理,与蝙蝠探测食物昆虫距离类似,超声波测距雷达系统只需计算发射的超声波信号与接收的超声波信号时间间隔,声波速度乘以间隔时间除以2即为汽车与障碍物之间的距离。如图1所示,Arduino单片机[2]的5V电源引脚接到面包板的正极,Arduino单片机板的GND引脚接到面包板的负极,雷达传感器HC-SR04的VCC与GND引脚再分别接到面包板的正负极,即Arduino单片机通过面包板给雷达传感器HC-SR04供电。Arduino单片机的9号引脚通过面包板连接到HC-SR04的Trig端子,用以触发HC-SR04工作,8号引脚通过面包板连接到雷达传感器HC-SR04的Echo端子,用以接收超声波反射信号,该反射信号为高电平,高电平持续时间即为超声波从发射到探测到障碍物后反射的时间间隔。同时,在8号超声波信号接收引脚外接一个简易示波器,用以直观显示超声波传感器的返回高电平信号持续时间。其中示波器的分辨率设置为10ms(具体分辨率参数设置可根据不同的系统实测后设定)。在连接完成硬件电路之后,点击“图标菜单栏”右侧的“代码”按钮进行程序编辑,编辑完成右侧所示代码区代码。车载雷达测距仿真案例采用Arduino单片机,该类型单片机具有强大的函数库功能,在编程过程中避免初学学生陷入复杂的单片机寄存器编程操作,使得编程更容易上手,软硬件结合方便学生更好地理解车载雷达测距原理。如图2所示,在代码区,Arduino单片机核心函数有两个,一个是setup函数,该函数主要用来设置Arduino单片机引脚工作模式,根据前述硬件连线方式,采用pinMode函数设置8号引脚为接收雷达测距传感器反馈信号引脚,9号引脚为雷达测距传感器触发信号引脚。Arduino单片机第二个核心函数为loop循环函数,该函数主要实现具体的系统功能,在每一个循环内,利用digitalWrite函数先设定9号引脚为高电平,然后利用延迟函数delayMicroseconds令9号引脚的高电平持续10微秒,只有这样,雷达传感器才能触发工作,最后利用digitalWrite函数设置9号引脚为低电平,这样便完成一次雷达传感器SR04的触发工作。最终,每一个循环,9号引脚高电平持续10微秒一次,雷达传感器SR04触发工作一次。在每一个循环最末尾利用delay函数延迟100毫秒,以避免雷达传感器触发工作太频繁,影响示波器信号的采样与显示。点击图1中Tinkercad上方菜单栏里的“开始模拟“按钮,进入Tinkercad仿真环境,在仿真状态下,如图2所示,点击超声波传感器,在其图形的上方出现一个带有绿点的扇形区域,该绿点即为障碍物,通过鼠标拖拽该绿点,使其与超声波传感器的距离不停变化,雷达传感器SR04上的距离数值也不停变化,同时,示波器的电压脉冲信号宽度大小将随着绿点障碍物的远近发生变化,学生通过Tinkercad的简单仿真,即可充分理解障碍物距离、超声波发射与返回间隔时间、超声波传感器返回高电平信号持续时间三者之间严密的逻辑关系。
3车载超声波雷达测距系统Proteus仿真
Proteus仿真软件界面较复杂,菜单栏与工具栏功能强大,对学生专业基础知识及操作技能要求较高,学生通过前期Tinkercad软件系统仿真,已经理解了车载雷达系统的基本原理、核心雷达传感器SR04的测距原理及主要端子的功能及信号特点,对车载雷达测距系统的编程逻辑也有了一定了解。以此为基础,学生可以细致全面地在Proteus仿真软件实现车载雷达系统的硬件设计及软件仿真,如图4所示,与Tinkercad软件仿真类似,Arduino通过IO2与IO3引脚分别连接雷达测距模块的ECHO与TR端子相连,即IO2引脚接收雷达传感器的反馈测距信号,IO3引脚控制雷达传感器工作触发。同时,IO2(ECHO)引脚连接到示波器模块的A通道,IO3引脚(TR)引脚连接到示波器模块的B通道,在程序仿真运行时,能实时显示SR04雷达模块的工作时序,显示曲线明显比Tinkercad示波器更加详实细致,SR04雷达模块的触发信号与输出回想信号(反馈信号)在Proteus示波器动态数据显示中具有更强的对比度与可调整性。在授课过程中,Proteus仿真比Tinkercad仿真更能说明如图3所示的雷达模块SR04工作时序原理图,即Arduino通过IO3(TR)引脚持续输出10微秒以上高电平触发雷达模块SR04工作,SR04模块连续发出8个40KHz雷达脉冲,Arduino通过IO2(ECHO)收到SR04模块反馈回声信号,回声高电平信号持续时间与所测障碍物距离成正比。得益于Proteus元器件库的系统全面,学生更能细节掌握LCD显示模块[3]的硬件电路布线及LCD基于Arduino的软件编程函数库。如图3所示,Arduino的IO8号引脚连接LCD1602模块的数据/指令寄存器选择控制端,IO9引脚连接LCD1602模块的R/W读写选择控制端,IO10引脚连接LCD1602模块的使能端E。Arduino的IO4~IO7四个引脚分别连接LCD1602模块的D4~D7端,使得LCD1602模块工作于4位显示模式下。Proteus程序代码比Tinkercad程序代码更加详实具体,全面细致。在Proteus仿真编程中,除了要求学生更加熟练掌握利用digitalWrite函数与delayMicroseconds延迟函数触发雷达模块SR04工作的编程技能,还要求学生掌握利用pulseIn函数读取雷达反馈信号高电平脉冲宽度,从而通过计算获得雷达测距数值。此外,还要求学生掌握关于液晶显示模块LCD1602的Arduino库函数库LiquidCrystal里面常见的显示参数与显示模式设置相关函数的编程。在实践教学过程中,学生需掌握的Arduino软件编程库函数如表1所示。至此,分别通过Tinkercad仿真与Proteus仿真,学生由浅入深,循序渐进地掌握了车载雷达测距系统测距原理、系统硬件电路设计及布线、软件系统编程。
4结论
智能网联汽车技术相关课程概念深奥难懂,硬件化实现困难,采用仿真系统不仅可以大大降低硬件成本,把深奥抽象的概念理论转化成看得见的可视化的仿真结果,使学生不再局限于理论知识的粗浅了解,对车载雷达测距系统有了深刻的理解与认知,大大提高学生学习兴趣与教学效果。Tinkercad电子电路仿真软件特点是界面友好,操作极其简单。所以在本教学案例中,主要用该软件来进行简单的系统原理仿真,使无理论与实践基础的学生对车载雷达测距系统有初步理解及概念。但其不足也较明显,其核心芯片及元器件种类有限,芯片与元器件硬件资源库远远比不上Proteus的全面系统,具体的芯片引脚及端口不如Proteus标注详实具体,不能体现系统连线布线细节,且Proteus能直接生成PCB图,更贴合实际嵌入式系统设计情况。但Proteus对学生操作技能要求较高,要求学生必须掌握所设计系统基本原理,相关微处理器芯片及核心元器件主要信号物理意义及布线原理。两款仿真软件的结合,更能优势互补,达到最佳的教学效果。
参考文献:
[1]基于超声波雷达的自动泊车自适应测距与定位设计[J].张海焕,陈彩霞,马逸.科技视界.2020(28).
[2]基于Arduino的智能家居控制系统设计[J].李宗峰.信息技术与信息化.2021(06).
[3]TFT-LCD源驱动电路设计和仿真[D].申国辉.上海交通大学.2015.
作者:陆人定 单位:常州信息职业技术学院