一、完成激光测距需要什么
块 | 功能 |
---|---|
激光测距模块 | 激光测量距离 |
测量角度模块 | 通过角度芯片测量角度 |
显示模块 | 显示测量出来的距离和角度 |
二、介绍每个模块
块 | 功能 | 备注 |
---|---|---|
激光测距模块 | 使用激光测距头:PLS_D1000。这个激光测距模块使用串口与单片机的串口三通信,3.3v供电。 | |
角度测量模块 | 使用MT6701芯片测量角度。这个芯片可以用SPI也可以用IIC,我用的是软件模拟 IIC [PA6、PA7],3.3供电。角度芯片要和径向磁铁搭配使用才能测量出随磁铁变化的角度的,不用磁铁的话,读出来是一个固定的值。 |
串口屏显示|使用的是陶晶驰串口屏,串口屏是串口通信,与单片机的串口2通信,5V供电。
三、查看手册后通信
1、 激光模块:
激光模块有单次测量和无限次测量,两种测量模式。单片机通过串口三给激光模块发送:
激光模块检测到测量命令后,会返回给单片机一串数据,将这个数据寄存到数组里面。再取这个数组的第6、7位,就是距离信息:
测量回来的数据是分米,可以转化成米来显示到串口屏上。
2、测量角度模块:
查数据手册的IIC通信:
代码需要写以下部分:
序号 | 函数名 | 备注 |
---|---|---|
1 | 触发函数 | IIC通信的开始信号,后面跟地址,有可能是器件地址,也有可能是寄存器地址 |
2 | "发送一个字节"函数 | 这个函数可以让单片机发送器件地址、寄存器地址给MT6701 |
3 | "接受一个字节"函数 | 这个函数可以接收到MT6701返回给单片机的数据 |
4 | "发送应答信号"函数 | 但单片机发送完器件地址、寄存器地址后,会受到MT6701发送给单片机的1bit的低电平应答信号 |
5 | "接收应答信号"函数 | 当单片机接收到MT6701返回来的角度数据后,会给MT6701发送一个bit的高电平应答信号 |
6 | 停止函数 | IIC通信结束 |
3、屏幕显示模块:
显示 | 部分 |
---|---|
角度 | 屏幕需要显示测量的距离和角度。将串口三传来的距离显示在屏幕上、将IIC传来的角度显示在屏幕上。传来的角度是浮点数,要显示在串口屏幕上要先将浮点数转化成整数传给串口屏;同时在串口屏的上位机使用浮点数控件来显示角度数据。这样两个配合就可以显示浮点数了; |
距离 | 传来的距离是分米,要将分米转化成米的话,转化后的米可能就是浮点数,因此处理方法也同上面一样。 |
界面设计 | 可以用画图软件将按键、界面切换的图片设计好。如果使用的是X某系列,那么在设计界面的时候,不需要给案件专门裁剪案件图片,直接在上位机上添加一个按键控件------将按键控件设置成透明;而如果使用的是陶晶驰的T1系列那要将所用到的按键专门裁剪成小图片,这是因为这时候的按键控件没有透明模式,设计成图片模式又没给它具体的图片的话,编译会报错。 |