这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 毕业设计专区 » 身高测量仪

共1条 1/1 1 跳转至

身高测量仪

专家
2013-01-21 11:26:21     打赏

作者:聊城大学 高全明 辛宏伟 王文信
指导教师:田存伟

  作品简介

  开发背景:在以往学校组织学生体检过程中,测量学生身高时采用传统立尺测量,需要一位老师测量、一位老师记录,不但费时费力而且效率低下。为了解决这一问题,我们设计制作了身高测量仪,将所学知识应用于实际,很好的解决了传统测量身高方式的弊端。
  结构说明:身高测量系统运用超声波采集数据,运用无线模块NRF24L01传输数据。LCD12864将测量结果显示出来。运用语音模块WT588D报读测量结果。采用Visual basic编写可视化控制界面作为上位机来控制测量仪工作。
  功能与使用说明:身高测量系统运用超声波采集数据,该模块可以实时检测高度的变化,灵敏度高,受外界干扰很小 。超声波采集数据后通过无线模块NRF24L01将数据发送至单片机,单片机接收数据后对数据进行处理,将最终数据发送至电脑终端和LCD液晶显示。LCD液晶采用的是12864,可显示中文及图片,可视性非常好,对其控制也很容易。电脑终端则采用Visual basic编写上位机控制界面,学以致用。在上位机控制界面上设置串口属性,根据实际情况选择端口,波特率选取“9600”,校验位设置为“无NONE”,停止位设置为“1”。然后点击“打开串口”按钮,若按钮左侧显示灯变为红色,则说明串口已打开,这样上位机就可与单片机进行通信。单片机用串口通信的方式将测量结果发生给上位机,此时测量的结果显示在上位机“测量结果”显示框内。为了方便记录管理,上位机控制界面编写有学生基本信息(姓名、性别、学号、专业、班级)输入框。待将学生基本信息输入完毕后,点击“保存”按钮。这样学生的基本信息与身高测量结果就会保存起来。同时在点击保存的时候上位机会发给单片机报读测量结果的指令,当单片机接收的报读指令后,就会驱动语音模块报读出测量值。这样就完成了一次测量。全部测量完毕后,点击上位机上“导出信息”按钮,上位机就会将全部测量信息和学生基本信息以excel电子表格的形式导出保存在电脑桌面上。在测量工作完成后点击“关闭”按钮关闭上位机控制界面。  

 
 

  平台选型说明

  单片机开发板

  设计说明

  原理图:  

 

  设计原理:
  超声波:超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波, 从而测出发射和接收回波的时间差t,然后求出距离式中的c为超声波在空气中传播的速度。  

 

  用定时器中断记录时间差t,当发射方波后单片机启动定时器中断,当接收到回波后关闭定时器中断。计算时间差,即可得到超声波传播的时间t。

  无线模块NRF24L01:
  增强型ShockBurstTM 发送模式
  1 配置寄存器位PRIM_RX 为低
  2 当MCU 有数据要发送时接收节点地址TX_ADDR 和有效数据(TX_PLD)通过SPI 接口写入
  nRF24L01 发送数据的长度以字节计数从MCU 写入TX FIFO 当CSN 为低时数据被不断的写入
  发送端发送完数据后将通道0 设置为接收模式来接收应答信号其接收地址(RX_ADDR_P0)与接收端地址(TX_ADDR)相同例
  3 设置CE 为高启动发射CE 高电平持续时间最小为10 us
  4 nRF24L01 ShockBurstTM 模式
           无线系统上电
            启动内部16MHz时钟
            无线发送数据打包见数据包描述
           高速发送数据由MCU 设定为1Mbps 或2Mbps
  5 如果启动了自动应答模式自动重发计数器不等于0 ENAA_P0=1 无线芯片立即进入接收模式。如果在有效应答时间范围内收到应答信号则认为数据成功发送到了接收端此时状态寄存器的TX_DS 位置高并把数据从TX FIFO 中清除掉如果在设定时间范围内没有接收到应答信号则重新发送数据如果自动重发计数器ARC_CNT 溢出超过了编程设定的值则状态寄存器MAX_RT 位置高不清除TX FIFO 中的数据当MAX_RT 或TX_DS 为高电平时IRQ 引脚产生中断IRQ 中断通过写状态寄存器来复位见中断章节如果重发次数在达到设定的最大重发次数时还没有收到应答信号的话在MAX_RX 中断清除之前不会重发数据包数据包丢失计数器(PLOS_CNT)在每次产生MAX_RT 中断后加一也就是说重发计数器ARC_CNT 计算重发数据包次数PLOS_CNT 计算在达到最大允许重发次数时仍没有发送成功的数据包个数。
  6 如果CE 置低则系统进入待机模式I 如果不设置CE 为低则系统会发送TX FIFO 寄存器中下一包数据如果TX FIFO 寄存器为空并且CE 为高则系统进入待机模式II.
  7 如果系统在待机模式II 当CE 置低后系统立即进入待机模式I.
  增强型ShockBurstTM 接收模式
  1 ShockBurstTM 接收模式是通过设置寄存器中PRIM_RX 位为高来选择的准备接收数据的通道必须被使能EN_RXADDR 寄存器所有工作在增强型ShockBurstTM 模式下的数据通道的自动应答功能是由(EN_AA 寄存器)来使能的有效数据宽度是由RX_PW_Px 寄存器来设置的地址的建立过程见增强型ShockBurstTM 发送章节
  2 接收模式由设置CE 为高来启动
  3 130us 后nRF24L01 开始检测空中信息
  4 接收到有效的数据包后地址匹配CRC 检验正确数据存储在RX_FIFO 中同时RX_DR 位置高并产生中断状态寄存器中RX_P_NO 位显示数据是由哪个通道接收到的
  5 如果使能自动确认信号则发送确认信号
  6 MCU 设置CE 脚为低进入待机模式I 低功耗模式
  7 MCU 将数据以合适的速率通过SPI 口将数据读出
  8 芯片准备好进入发送模式接收模式或掉电模式__

  液晶LCD12864:
  12864点阵液晶显示模块(LCM)就是由128*64个液晶显示点组成的一个128列*64行的阵列。每个显示点对应一位二进制数,1表示亮,0表示灭。存储这些点阵信息的RAM称为显示数据存储器。要显示某个图形或汉字就是将相应的点阵信息写入到相应的存储单元中。图形或汉字的点阵信息由自己设计,问题的关键就是显示点在液晶屏上的位置(行和列)与其在存储器中的地址之间的关系。由于多数液晶显示模块的驱动电路是由一片行驱动器和两片列驱动器构成,所以12864液晶屏实际上是由左右两块独立的64*64液晶屏拼接而成,每半屏有一个512*8 bits显示数据RAM。左右半屏驱动电路及存储器分别由片选信号CS1和CS2选择。显示点在64*64液晶屏上的位置由行号(line,0~63)与列号(column,0~63)确定。512*8 bits RAM中某个存储单元的地址由页地址(Xpage,0~7)和列地址(Yaddress,0~63)确定。每个存储单元存储8个液晶点的显示信息。
  12864LCD指令表
  1、开/关指令
  R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB0
  0000111111/0
  当DB0=1时,LCD显示RAM中的内容;DB0=0时,关闭显示。
  2、显示起始行(ROW)设置指令
  R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB0
  0011显示起始行(0~63)
  该指令设置了对应液晶屏最上一行的显示RAM的行号,有规律地改变显示起始行,可以使LCD实现显示滚屏的效果。
  3、页(PAGE)设置指令
  R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB0
  0010111页号(0~7)
  显示RAM共64行,分8页,每页8行。
  4、列地址(Y Address)设置指令
  R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB0
  0001显示列地址(0~63)
  设置了页地址和列地址,就唯一确定了显示RAM中的一个单元,这样MPU就可以
  用读、写指令读出该单元中的内容或向该单元写进一个字节数据。
  5、读状态指令
  R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB0
  10BUSY0ON/OFFREST0000
  该指令用来查询液晶显示模块内部控制器的状态,各参量含义如下:
  BUSY:1-内部在工作0-正常状态
  ON/OFF:1-显示关闭0-显示打开
  RESET:1-复位状态0-正常状态
  在BUSY和RESET状态时,除读状态指令外,其它指令均不对液晶显示模块产生作用。
  在对液晶显示模块操作之前要查询BUSY状态,以确定是否可以对液晶显示模块进行操作。
  6、写数据指令
  R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB0
  01写数据
  读数据指令
  R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB0
  11读显示数据
  读、写数据指令每执行完一次读、写操作,列地址就自动增一。必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。
  语音模块:一线串口通过一条数据通信线控制时序,依照电平占空比不同来代表不同的数据位。先把数据信号拉低5ms,然后再发送数据。高电平与低电平数据占空比1:3即代表数据位0,高电平于低电平数据位占空比为3:1代表数据位1。高电平在前,低电平在后。数据信号先发低位再发高位。在发送数据时,无需先发送命令码再发送指令,直接发送地址数据便可触发播放语音。D0~D7表示一个地址或者命令数据,数据中的00H~DBH为地址指令,E0H~E7H为音量调节命令,F2H为循环播放命令,FEH为停止播放命令。  

   

  设计方案
  身高测量仪在制作之前,我们考虑过两种方案。
  方案一:
  首先树立一个立杆,在立杆上套入一个能够上下滑动的横杆,将测量装置固定在横杆上。当测量时,被测量者站立在立杆前,然后滑动横杆至横杆压倒被测量着头顶,这时测量装置就会测量出其道地面的距离,这个距离就是被测量者的身高。  

 

  树立一个立杆,将测量装置固定在2M高度的位置,当测量时,被测量者站在测量装置下,此时测量装置就会测量出其与被测量者头顶的距离S,而被测量者的身高 H=2M-S。  

 

  方案一:优点:测量精度高,误差小。
  缺点:测量时不方便,需一人上下移动滑杆。
  方案二:优点:测量方便,效率高。不需要额外人员,只需被测者站立在测量装置下数秒即可测量出身高。
  缺点:测量误差大,被测者头发会影响最终测量值。
  两种方案对比:
  方案一测量效率低,测量时不方便,直接违背了最初设计身高测量仪的宗旨;方案二虽误
  差大些,但可通过程序在处理测量数据时减除因被测者头发所带来的误差。因而最终采取

  第二种方案。

  作品特色

  1. 使用本作品进行身高测量时省时又方便,每次测量只需被测者站在测量器下三秒钟左右就可测量完毕,特别适合学校进行学生体检时测量学生身高。
  2. 作品使用高精度超声波,测量范围为2mm—450mm,测量精度为2mm;测量误差小、精度高,可满足实用要求。
  3. 在测量完毕后系统会将所有测量者的信息以电子表格的形式导出,这样省去了以往测量时必须有专人在旁边一个一个记录。大大提高了工作效率。

系统演示视频:http://v.eepw.com.cn/video/play/id/2721




关键词: 身高     测量仪     测量     系统     数据     模块     显示     接收         

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]