1.EtherCAT从站硬件设计

18年8月的时候,基于LAN9252、stm32、mpu9250芯片设计了一款EtherCAT从站,是我设计的第一款从站。手工焊芯片和元件,焊得我眼睛都快瞎了~~~~~~

第二版采用了双层设计,将stm32层和lan9252层分开,stm32直接可以买现成的核心板用上,因此我只需要手工焊接lan9252电路部分,大大减少了工作了,哈哈、这下爽多了!!!

硬件架构如下,stm32和lan9252之间通过fsmc进行数据交互,stm32通过IIC读取mpu9250的数据。

2.修改XML文件

CANopen是基于CAN总线的应用层协议,EtherCAT在应用层支持CANopen协议。从站传递给主站的EtherCAT数据帧中包括横滚角Roll、俯仰角Pitch和偏航角Yaw数据,需要对XML文件进行修改。

3.姿态解算程序

通过MPU9250采集到的是3轴角速度、3轴加速度和3轴磁感应强度数据。利用得到的9轴原始数据,进行姿态融合解算,就能求出运动物体的姿态角:Roll、Pitch和Yaw。姿态融合算法有很多,比如著名的基于卡尔曼滤波的解算方法,这些算法在无人机等领域已经大量运用了,我们也可以在网上找到一部分开源算法,这些算法我就不详述了。

4.从站测试

本文采用TwinCAT3.0软件对EtherCAT从站进行测试,使用Qt开发的“三维姿态监测软件”与TwinCAT进行ADS通讯。pc机与EtherCAT从站的连接如图所示。

在twincat中新建工程,扫描得到三个从站设备。在PLC程序中添加9个变量,分别对应每个从站的横滚角roll、俯仰角pitch和偏航角yaw。变量声明如下:

PROGRAM MAIN
VARpitch AT%I* : INT:=0;roll AT%I* : INT:=0;yaw AT%I* : INT:=0;pitch1 AT%I* : INT:=0;roll1 AT%I* : INT:=0;yaw1 AT%I* : INT:=0;pitch2 AT%I* : INT:=0;roll2 AT%I* : INT:=0;yaw2 AT%I* : INT:=0;
END_VAR

然后将PLC程序中定义的变量链接到对象字典,接着在twincat中新建ScopeYT工程。Scope模块能通过ADS协议获取到变量,从而将欧拉角变量曲线在图表栏里显示出来,实验中将监测到的姿态数据放大了100倍。

使用Qt开发的“三维姿态监测软件”查看姿态角

EtherCAT从站读取MPU9250数据并进行姿态解算相关推荐

  1. STM32入门笔记(02):MPU6050、MPU9250、ICM20948及姿态解算(SPL库函数版)

    目录 MPU6050 什么是MPU6050? MPU6050的特点 MPU6050框图 MPU6050初始化 MPU6050寄存器 电源管理寄存器1(0X6B) 陀螺仪配置寄存器(0X1B) 加速度传 ...

  2. 树莓派采集MPU9250运行AHRS进行姿态解算

    文章目录 1.几种概念的区分 2.消费级IMU的AHRS 3.树莓派玩转MPU9250 3.1树莓派配置 3.2在树莓派中移植MPU9250库 3.3使用MPU9250库 4.校准 4.1IMU误差模 ...

  3. 树莓派IIC通讯获取BMI08x IMU数据进行姿态解算,并通过UART/TCP在rviz上显示

    截至2021年,树莓派出的最新款应该是Raspberry Pi 400,设计得跟键盘一样,很难想象到这是个树莓派,尤其是它的标语写的很好"你的下一个电脑,何必是电脑",不言而喻.反 ...

  4. 获取MPU9250九轴数据--以四轴飞行器姿态解算为例

    文章目录 MPU9250 简介 概述 特性 MPU9250的通信协议 四轴原理图 MPU9250地址确定 MPU9250与IIC通信时序 MPU9250获取原始数据 MPU9250的初始化流程 MPU ...

  5. 姿态解算知识(三)-陀螺仪加速度计6轴数据融合

    这么久的惯导总算是没白看,加上一篇博客的指点,这两天把Mahony的九轴数据融合算法看懂了.可惜第二版硬件还没到,磁力计用不了,没法验证效果~今天先总结下陀螺仪和加速度计的六轴数据融合. 版权声明 原 ...

  6. 基于STM32F407四旋翼无人机 --- 姿态解算讲解(四元数)(叉积法融合陀螺仪数据和加速度数据)(五)

    基于STM32F407四旋翼无人机 --- 姿态解算讲解(五) 姿态解算 姿态解算定义 欧拉角 四元数 四元数性质 方向余弦矩阵 四元数方向余弦矩阵 叉积法融合陀螺仪数据和加速度数据 叉积运算 一阶龙 ...

  7. 【毕业设计】MPU6050姿态解算 姿态估计 - 物联网 单片机 stm32

    文章目录 1 简介 2 MPU6050 3 工作原理 4 单片机与MPU6050通信 4.1 mpu6050 数据格式 4.2 倾角计算方法 5 实现代码 6 最后 1 简介 Hi,大家好,这里是丹成 ...

  8. MiniFly微型四轴学习开发日志(三)——关于姿态解算的相关算法

    目录 大致内容介绍 欧拉角与四元数 互补滤波算法的姿态解算 一些疑问 大致内容介绍 之前两篇日志当中提到了关于角度-角速度串级PID与定高Z轴PID配合对四轴进行姿态矫正的大概算法.但是对于测量而来的 ...

  9. Arduino 与 MPU6050 姿态解算+ PROCESSING

    2019独角兽企业重金招聘Python工程师标准>>> 买的MPU6050自带姿态解算大大减轻了上层处理器所做的工作. 通过熟悉了一下processing之后做了一个小例子更是感觉这 ...

最新文章

  1. 熟悉Linux实验实训,非常详细的Linux操作系统与实训教程实验(三)
  2. gpg加密命令 linux_用 PGP 保护代码完整性(四):将主密钥移到离线存储中 | Linux 中国...
  3. Bootstrap3免费单页面模板-Shuffle
  4. vim 编辑器命令整理
  5. 【ubuntu】ubuntu下用make编译程序报错找不到openssl/conf.h
  6. ros构建机器人运动学模型_ROS入门学习之八机器人综合应用
  7. Ubuntu 16.04 + Nginx + Django 项目部署
  8. 【论文复现】使用RNN进行文本分类
  9. 任正非:鸿蒙最快1年可媲美iOS;首例Apple Card用户遭盗刷;Firefox 69.0.3 发布 | 极客头条...
  10. java重排序_Java synchronized 能防止指令重排序吗?
  11. win11联网不能打开网页怎么办 windows11联网不能打开网页的解决方法
  12. LaTex warning:Font shape `TU/ppl/bx/n' undefined(Font) using `TU/ppl/m/n' instead
  13. Azkaban的Web Server源码探究系列22: 一次性执行execute的提交准备
  14. 重启oracle数据库
  15. Javascript 面向对象编程(一):封装
  16. python如何爬取百度云_python如何爬取百度云连接方法指导
  17. 3ds Max 实验十四 UVW展开
  18. Mysql的避坑---- The error may involve defaultParameterMap #The error occurred while setting parameters
  19. 信号、传输介质、数制转换
  20. Sanity Check: SRM, AA test

热门文章

  1. mapstd matlab详解,Matlab中的数据预处理-归一化(mapminmax)与标准化(mapstd)
  2. 某软件平台定制开发项目技术标书
  3. Poker time 2 (enhanced version) 北理乐学作业题
  4. 【ENVI入门系列】10.图像裁剪
  5. Oracle 11g RAC 原地升级到 19c
  6. 耶鲁大学博弈论公开课全24集第19集笔记:招商引资和战略投资
  7. Linux 私房菜速读
  8. 罗格评论北京奥运会全文(中英文)
  9. 网工小记录(5):华为交换机acl配置、vpn-instance调用问题
  10. linux下ntp对时设置