利用ESP32(Arduino IDE)向匿名上位机发送欧拉角

文章目录

  • 一. 匿名上位机介绍
  • 二. 匿名协议说明
    • 1. 匿名协议官方说明文档
    • 2. 协议说明
  • 三. 向匿名上位机发送数据(基于Arduino IDE的esp32)
  • 四. 运行效果

一. 匿名上位机介绍

匿名上位机官方介绍视频

匿名上位机官方下载
在这里插入图片描述

二. 匿名协议说明

1. 匿名协议官方说明文档

官方对于协议的说明文档可以在下载的匿名上位机中打开,是一份PDF文档
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 协议说明

这里假设我们想向上位机发送计算出来的欧拉角参数

  1. 首先了解匿名协议的数据格式
    在这里插入图片描述
  2. 了解完基本数据格式,找到文档中我们要上传欧拉角的数据帧格式
    在这里插入图片描述

三. 向匿名上位机发送数据(基于Arduino IDE的esp32)

#include <SimpleFOC.h>// 用于数据转换
#define BYTE0(dwTemp) (*(char *)(&dwTemp))
#define BYTE1(dwTemp) (*((char *)(&dwTemp) + 1))
#define BYTE2(dwTemp) (*((char *)(&dwTemp) + 2))
#define BYTE3(dwTemp) (*((char *)(&dwTemp) + 3))static uint16_t a = 0;void usart1_niming_report(uint16_t a, uint16_t b, uint16_t c, uint8_t fu)
{unsigned char send_buf[13];unsigned char cnt=0; send_buf[cnt++]=0XAA;  //帧头send_buf[cnt++]=0XFF;  //功能字send_buf[cnt++]=0X03;  //功能字send_buf[cnt++]=7;  //数据长度//原始数据,这里代表的是计算出的欧拉角参数send_buf[cnt++]=BYTE0(a);send_buf[cnt++]=BYTE1(a);send_buf[cnt++]=BYTE0(b);send_buf[cnt++]=BYTE1(b);send_buf[cnt++]=BYTE0(c);send_buf[cnt++]=BYTE1(c); send_buf[cnt++]=BYTE0(fu);// 计算校核位unsigned char sc = 0;unsigned char ac = 0;for(int i=0; i<send_buf[3] + 4; i++){sc += send_buf[i];ac += sc;}send_buf[cnt++]=sc;send_buf[cnt++]=ac;// 串口发送数据Serial.write(send_buf, sizeof(send_buf));
}void setup() 
{Serial.begin(115200);  //设置串口通讯波特率
}void loop() 
{// 像上位机发送自定义的欧拉角参数usart1_niming_report(a, a+100, a+200, 0);a+=100; // 角度+1度delay(50);  // 延时50ms
}

四. 运行效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/16962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现代 c++ 三:移动语义与右值引用

移动语义很简单&#xff0c;但它相关联的术语很复杂。本文尝试从历史的角度解释清楚这些乱七八糟的术语及其关联&#xff1a; 表达式 (expression)、类型&#xff08;type&#xff09;、值类别 (value categories)&#xff1b; 左值 (lvalue)、右值 (rvalue)、广义左值 (glval…

Flink 数据源

原理 在 Flink 中&#xff0c;数据源&#xff08;Source&#xff09;是其中一个核心组件&#xff0c;负责从各种来源读取数据供 Flink 程序处理。 Flink 的数据源类型丰富&#xff0c;涵盖了从简单测试到生产环境使用的各种场景。Kafka、Socket、文件和集合是 Flink 中最常见…

5.2 Go 参数传递

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

【傻呱呱】VirtualHere共享局域网中的USB设备(使用Pavadan老毛子固件搭建篇)

前期准备 SSH工具&#xff08;FinalShell&#xff09;老毛子固件路由器一台 搭建VirtualHere服务端 进入VirtualHere官网下载对应处理器架构的包&#xff0c;我的是RT-N14U-GPIO路由器刷的老毛子固件&#xff0c;这种一般选择最后一个或者倒数第二个包&#xff0c;这里我选择…

Transformers集成SwanLab实现AI训练可视化监控

&#x1f917;HuggingFace Transformers Hugging Face 的 Transformers 是一个非常流行的开源库&#xff0c;它提供了大量预训练的模型&#xff0c;主要用于自然语言处理&#xff08;NLP&#xff09;任务。这个库的目标是使最新的模型能够易于使用&#xff0c;并支持多种框架&…

Topogun 3 for Mac——您的专业三维模型处理利器

Topogun 3 for Mac&#xff0c;无疑是三维模型处理领域的翘楚。该软件不仅功能全面&#xff0c;而且操作简便&#xff0c;能够满足您对于三维模型处理的各种需求。 导入高模、视图操作、新建拓扑层&#xff0c;一切都在您的掌控之中。Topogun 3强大的自动拓扑功能&#xff0c;…

小猪APP分发:一站式免费应用推广的理想平台

在日益拥挤的移动应用市场中&#xff0c;对于独立开发者和新兴应用而言&#xff0c;找到一个高效且成本效益高的分发渠道至关重要。这正是小猪APP分发平台www.appzhu.cn脱颖而出的原因&#xff0c;它不仅提供了一个全面的解决方案&#xff0c;帮助开发者免费推广他们的应用程序…

家政预约小程序06服务展示

目录 1 首页展示2 团购详情总结 在家政小程序中&#xff0c;最重要的信息就是各项服务的内容。顾客通过服务的信息&#xff0c;了解家政公司可以提供什么样的服务以及相关的收费。本篇我们介绍一下服务展示功能如何开发。 1 首页展示 在首页我们已经开发了活动展示、服务分类展…

月入25000,因何焦虑?

遇到一位铁粉经常给我点赞评论&#xff0c;没勾兑之前还以为他赋闲在家&#xff0c;没想到收入很高&#xff0c;要是放在5年前相比很多人都不会这么焦虑&#xff0c;那个时候大环境很好&#xff0c;随便跳个槽收入至少能增长30%。 这位铁粉从事java开发&#xff0c;目前就职于某…

C++ 程序的基本要素

一 标识符 程序中变量、类型、函数和标号的名称称标识符。 a,b,name,int,char,main,void等。 系统已有的标识符称为关键字。 常见关键字 using,namespace,void,return; int,float,double,char,bool,signed,unsignex, long,short,const,true,false,sizeof if,else,for,do,whil…

统信UOS专业版操作系统如何安装惠普打印机驱动

通用集成驱动安装方法 以惠普P1566激光打印机为例介绍一下&#xff0c;在打印机管理器中选择打印机&#xff0c;手动选择安装驱动&#xff0c;找到品牌&#xff1a;惠普&#xff0c;型号&#xff1a;1566&#xff0c;安装驱动后测试打印&#xff1b;LaserJet Pro P1566 Foomati…

单细胞 10X 和seurat对象学习

单细胞seurat数据的基础知识 rm(list ls()) library(Seurat) #注意这个报错 #Warning: Feature names cannot have underscores (_), replacing with dashes (-) folderslist.files(./,pattern[123]$) folders scList lapply(folders,function(folder){ CreateSeuratObject(…

系统安全扫描扫出了:可能存在 CSRF 攻击怎么办

公司的H5在软件安全测试中被检查出可能存在 CSRF 攻击&#xff0c;网上找了一堆解决方法&#xff0c;最后用这种方式解决了。 1、问题描述 CSRF 是 Cross Site Request Forgery的缩写(也缩写为也就是在用户会话下对某个 CGI 做一些 GET/POST 的事&#xff0c;RIVTSTCNNARGO一这…

Transformer详解(4)-前馈层残差连接层归一化

1、前馈层 前馈层接收自注意力层的输出作为输入。 from torch import nn import torch.nn.functional as Fclass FeedForward(nn.Module):def __init__(self, d_model512, d_ff2048, dropout0.1):super().__init__()# d_ff 默认设置为2048self.linear_1 nn.Linear(d_model,…

CentOS 7安装prometheus

说明&#xff1a;本文介绍如何在CentOS操作系统上安装prometheus Step1&#xff1a;下载安装包 访问Github仓库&#xff0c;下载对应版本的prometheus安装包 https://github.com/prometheus/prometheus/releases 操作系统的版本信息&#xff0c;可通过下面这两个命令查看&am…

【UE Slate】 虚幻引擎Slate开发快速入门

目录 0 引言1 Slate框架1.0 控件布局1.1 SWidget1.1.1 SWidget的主要作用1.1.2 SWidget的关键方法1.1.3 使用SWidget创建自定义控件1.1.4 结论 1.2 SCompoundWidget1.2.1 SCompoundWidget的主要作用1.2.2 SCompoundWidget的使用示例1.2.3 SCompoundWidget的关系1.2.4 总结 1.3 …

Linux 磁盘管理命令tune2fs mkisofs cfdisk sfdisk parted

文章目录 3.Linux 磁盘管理命令3.26 tune2fs:文件系统调整案例练习 3.27 mkisofs:建立ISO9660 映象文件案例练习 3.28 cfdisk:磁盘分区案例练习 3.29 sfdisk:硬盘分区工具程序案例练习 3.30 parted:磁盘分区工具案例练习 3.Linux 磁盘管理命令 3.26 tune2fs:文件系统调整 作用…

2024经济管理、社会科学与教育国际会议(ICEMSSE 2024)

2024经济管理、社会科学与教育国际会议(ICEMSSE 2024) 会议简介 2024年国际经济管理、社会科学和教育会议&#xff08;ICEMSSE 2024&#xff09;专注于经济、社会发展和教育。会议旨在为专家、学者和社会人士提供一个交流平台。通过讨论科学研究成果和前沿技术&#xff0c;我…

如何解包 Python 恶意可执行文件

使用 Python 编写的程序通常以源码的形式发布&#xff0c;也可以将所有依赖都打包到一个可执行文件中。那么如何解包 Python 恶意可执行文件呢&#xff1f; 打包 打包与加壳不同&#xff0c;打包 Python 程序的目的是创建一个可以在操作系统上独立运行的可执行文件。使用例如 …

【Qt】深入探索Qt事件处理:从基础到高级自定义:QEvent

文章目录 前言&#xff1a;1. 事件的介绍2. 事件的处理2.1. 示例1&#xff1a; 重写鼠标进入和鼠标离开事件2.2. 示例2&#xff1a;当鼠标点击时&#xff0c;获取对应的坐标值&#xff1b;2.3. 鼠标释放事件2.4. 鼠标双击事件2.5. 鼠标移动事件2.6. 鼠标滚轮的滚动事件 3. 按键…