746|1

7

帖子

1

TA的资源

一粒金砂(中级)

多功能水平仪作品 [复制链接]

多功能水平仪

作品简介

    本次参赛想制作一个多功能电子水平仪,实现距离测量,角度测量,滚动距离距离等功能,主要用于日常家居测距和充当电子水平仪功能;

    角度测量基于IMU模块, 可以测量3轴加速计和3轴角速度计功能, 距离测量采用激光反射测距模块,模块直接输出距离数据;

    主要用用到的器件:

  •         SEN0588 一款高精度的激光测距模块是,最大测量测距可达15m,可以满足我实现手持测距的需求
  •         esp32-c3-lcdkit 采用esp32-c3模块,自带一块圆形lcd屏幕,另外板载旋转编码器,利用它可以实现 用户交互,传感器数据采集与运算,同时兼具联网功能
  •         m5stack 6dof imu模块可采集三轴加速度计和三轴陀螺仪 数据,配合绿波算法可以算出当前角度。
IMG_8539.jpg
IMG_8540.jpg

 

系统框图

    核心板为esp32-c3-lcdkit, 自带显示屏驱动为gc9a01,1.28寸圆形屏幕;

    传感器MPU6886为IMU模块, 距离测试模块为SEN0588,采用串口通信, 供电为5V, 使用5v <-> 3.3v 电平转换芯片连接到ESP32C3的串口0上;

截屏2024-01-12 21.40.54.png
各部分功能说明
 
  •          激光测距功能:
                硬件为SEN0588, 该模块配置启动命令后,直接通过串口发送距离数据;
 
                
123.png
124.png
125.png
  •     测量角度功能

            测量角度又陀螺仪模块加角度融合算法得到;

             MPU6886接口I2C, 3.3V供电可以和ESP32-C3直连;

             (MPU6886)6轴IMU单元是带有3轴重力加速度计和3轴陀螺仪的6轴姿态传感器,可以实时计算倾斜角度和加速度。该芯片采用mpu6886,具有16位ADC,内置可编程数字滤波器和片上温度传感器,采用I2C接口(addr:0x68)与上位机通信,并支持低功耗模式。

              MPU6886 驱动程序参考: 

链接已隐藏,如需查看请登录或者注册

                

IMG_8541.jpg
                MAHONY角度解析算法
                MPU6886不直接输出角度数据, 需要算法解析;
                

                AHRS(Attitude and heading reference system,也就是航姿参考系统。在互补滤波算法中传感器主要采用了IMU(陀螺仪、加速度计)和磁力计。

                AHRS的基本思想是,在载体没有平移运动的情况下,通过加速度感知重力分量,可以计算出载体的俯仰和横滚;磁力计可以感知磁北方向,因此可以计算载体的磁北航向;而陀螺仪测量输出载体的旋转角速度,通过积分可以计算得到横滚、俯仰、航向增量,但由于陀螺输出值含有误差,采用积分计算,误差会随着时间累积。陀螺仪动态响应特性良好,但计算姿态时会产生累积误差, 磁力计和加速度计测量姿态没有累积误差,但动态响应较差,那么采用加速度计和磁力计的即时输出值对陀螺进行修正,则可以达到优势互补的效果,提高测量精度和系统的动态性能。

    

            算法流程

                整体流程如下图,只不过图里面的公式用的四元数做旋转,而不是旋转矩阵。

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev55e05a-86Iiq5ZGY,size_20,color_FFFFFF,t_70,g_se,x_16

 

                

   作品源码

            https://download.eeworld.com.cn/detail/xianxiaoxu/630762

 

            Arduino平台, 依赖库需要自行安装, 包括 lvgl, tft_espi

 

            

截屏2024-01-12 21.56.33.png

作品功能演示视频

        https://training.eeworld.com.cn/video/38966

 

总结

    本次制作过程用到了知识非常多, 时间又非常紧张, 作品还可以进一步完善:

  • GUI需要重绘制, 已经搭好了lvgl 环境, 后续可以充分利用lvgl的特性,将GUI 做得精美;
  • 滚动测距离功能待实现, 硬件和方案已经明确, 待实现;
  • 后续可以打印3D外壳,将硬件封装一下;
  • 角度测量功能还需要进一步优化, 角度测量在平放时会有2-4度的偏移,后续可以通过上电校准
  • 距离侧脸功能还需要进一步优化, 测距模块范围最大15m, 近距离的误差比较大; 没有可见激光点辅助, 测远距离时不知道点打到什么位置;
其他
    开箱连接
    文档
      多功能水平仪.docx (484.11 KB, 下载次数: 3)

最新回复

陀螺输出值有误差,再用积分算,误差随时间累积是会越来越大,怎么改进呢   详情 回复 发表于 2024-1-13 21:05

回复
举报

6417

帖子

0

TA的资源

五彩晶圆(高级)

陀螺输出值有误差,再用积分算,误差随时间累积是会越来越大,怎么改进呢


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

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
德州仪器:Concerto 双核MCU 让世界更环保

http://player.youku.com/player.php/sid/XMjc2OTEwMjM2/v.swf

430驱动继电器死机问题~

小弟做了一块板子,用msp430f149通过继电器来驱动2路220V的负载,开始试验的时候用台灯、电脑显示器等做负载,运行的还比较正常 ...

ccs5和ccs4中文教程

新手分享点资料给大家,当新手间的相互帮助吧

基于Z7010的EBAZ4205矿板改造

本帖最后由 chenzhufly 于 2019-6-11 00:32 编辑 主要改造了电源,增加了串口,和JTAG,方便调试,至于SD卡,暂时没有打算 ...

5G射频前端解决方案

在未来三年,移动设备中的射频前端市场会跃升到200亿美元,而 5G 会在当中扮演一个非常重要的动力角色。根据Qorvo 亚太区市场高 ...

TMS320C55x汇编语言编程

1.通用目标文件格式 ---- COFF,common object file format 段(section)是COFF文件的基本单元。 一个段是一个占据存储器里 ...

STM32项目外包

我们希望基于STM32MP157-DK1,通过SPI接口控制intan 2132 headstage。 只需要实现数据读取,采样率10KHZ。 如果有意向,请联系 ...

【花雕动手做】有趣好玩的音乐可视化系列小项目(22)--LED无限魔方

偶然心血来潮,想要做一个音乐可视化的系列专题。这个专题的难度有点高,涉及面也比较广泛,相关的FFT和FHT等算法也相当复杂,不 ...

2024年2月 TIOBE 编程指数

二月头条:编程语言Go进入前十 本月,Go在TIOBE指数前10名中排名第8。这是Go有史以来的最高位置。当谷歌于2009年11月推出Go时 ...

PCB上MCU周围的锡块有什么用

这是ST公司产品的NUCLEO-64开发板,在PCB上面MCU周围有4个焊锡块,请教各位这些区域作用是什么。 828003

关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表