邵阳学院信息工程学院 向延辉 江世明 米灵勇
激光水平仪是一种新型的激光类小型测绘测量仪器,放置在某个点,就能在墙面投射出相互垂直的水平直线和垂直线,起到标定基准线的作用。传统的激光水平仪,是通过人为调节,使水平方向与水平面平行,垂直方向达到铅垂。由于不同人的视角存在差异,因此传统的激光水平仪不可避免存在人为误差。针对传统激光水平仪存在人为调节误差,提出了自平衡的激光水平仪方案,并对方案进行了说明。文章详细介绍了角度检测电路、自平衡调节电路、激光控制电路设计。在20°度范围内,对实物进行了测试,测试的结果表明,该水平仪测量误差为3.29mm,满足普通水平测量需要,作为标定基准线使用,该产品具有智能化程度高,造价低等特点。
自平衡激光水平仪,系统组成如图1所示。角度传感器采用MPU-6050,CPU用STM32,步进电机用28BYJ-48,显示器采用OLE串行显示屏。系统在程序控制下,读取角度传感器的值,通过计算得到步进电机的调整值,控制步进电机达到系统自平衡。
图1 系统组成框图
光水平仪的结构如图2所示,1、2是水平调节装置,3是固定支架。在水平面上,安装有传感器,控制器及激光发射器。控制器不断读取传感器数据,数据经处理后得到步进电机的调节值,通过控制图3的调节装置(图2中的1、2),从而达到水平。
图2 自平衡激光水平仪结构
图3 水平调节装置
角度检测用MPU-6050传感器,其主要技术参数如下:
供电电源:DC3.3V/5V;
通信方式:IIC,通信速度400KHz(Max);
ADC位数:16位;
角度检测电路如图5所示。
图4 激光投射
图5 角度检测电路
STM32的PA7、PA6与角度传感器MPU6050相连,STM32与MPU6050之间,通过IIC总线,实现对MPU6050的系统初始化配置。
unsigned char MPU_Read_Len(u8 addr,u8 reg,u8 len,u8 *buf)是IIC连续读取函数。
Addr:器件地址;
reg:要读取的寄存器地址;
len:要读取的长度;
buf:读取到的数据的存储区。
STM32通过函数向IIC总线上发送MPU6050器件地址(0x68)+写命令;写入陀螺仪数据输出寄存器地址(0X43~0X48)+读命令;通过IIC读取陀螺仪数据寄存器的值。陀螺仪有6个数据寄存器,读取6个寄存器的值,就可以读到陀螺仪X、Y、Z轴的值。
unsigned char MPU_Write_Len(u8 addr,u8 reg,u8 len,u8 *buf)是IIC连续写入函数,用法与IIC连续读函数类似,用于初始化时对MPU6050进行配置。
将得到的原始数据,利用MPU6050自带的数字运动处理器DMP,和InvenSense提供的嵌入式运动驱动库,结合MPU6050提供的固件库,得到俯仰角pitch、滚转角roll和偏航角yaw,实现程序如下:
2.2.1 步进电机控制电路
激光水平仪的自平衡是通过对步进电机控制来实现的,步进电机控制电路如图6所示。
图6 步进电机控制电路
步进电机选用28BYJ-48,其主要技术参数是:①相数:四相;
②驱动方式:1-2相励磁单极驱动;
③步距角:11.25/64(输出轴),减速比1/64;④电压:5VDC(电机端子);
图3中,套筒内螺纹采用M10*1.5内螺纹,因此,步进电机升降高度L,与脉冲数的关系为:脉冲数=(L/1.5)*360/(11.25/64)=(L/1.5)*2048。
2.2.2 步进电机控制
根据国标GB/T 20920-2007,用惠利水准仪,在20°范围内,对系统进行测试。观察到,水平仪在X、Y、Z三个方向,在20°范围内,无论怎么放置,系统都能自动达到水平。在20°范围内,分别对X、Y、Z三个方向,对平衡度进行测试,测试结果如表1所示。
表1 X、Y、Z三个位置平衡能力测试结果(20°以内)
水平仪平衡误差=(X误差+Y误差+Z误差)/3=(2.98+3.3+3.61)/3=3.29mm。
对照国家标准(GBT10156-2009):1km往反偏误0.2-0.5mm(高精密);1mm(精密);1.5-4(普通),本水平仪能满足普通水平测试需要。
针对传统激光水平仪存在的问题,设计了自平衡激光水平仪。从样机测试看,该水平仪在0-20°范围内,能自动平衡,平衡误差为:3.29mm,满足普通水平测量需要。该水平仪用于基建行业,作为普通标定基准线使用。