当前位置: 首页 > news >正文

利用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.lryc.cn/news/355418.html

相关文章:

  • Java开发工具类(JDK、Hutool、Guava)
  • TCP协议的相关特性
  • Lombok,一款超级强大的Java工具库
  • FreeBSD下使用原生虚拟机管理器bhyve
  • CTFshow之文件上传web入门151关-161关解密。包教包会!!!!
  • 【学习记录】服务器转发使用tensorboard
  • 类型转换之显式转换
  • Mybatis多表查询,报错:Column ‘id‘ in field list is ambiguous
  • PyCharm面板ctrl+鼠标滚轮放大缩小代码
  • 【Qt】数据库(一)SQLITE创建、增删查改
  • 【模拟面试问答】力扣165题:比较版本号(逐个比较与双指针法详解及模拟面试问答)
  • 用PhpStudy在本地电脑搭建WordPress网站教程(2024版)
  • 高中数学:平面向量-题型总结及解题思路梳理
  • 【玩转google云】Google Cloud Platform (GCP) (WAF)详解
  • 前端开发工程师——数据可视化
  • 【代码随想录训练营】【Day 35】【贪心-2】| Leetcode 122, 55, 45
  • 【深度学习】ultralytics, yolo seg,实例分割图绘制,核对yolo seg 的txt标记对不对
  • 如何保证员工在精益变革中始终保持积极的态度?
  • 【Java面试】三、Redis篇(下)
  • GpuMall智算云:QwenLM/Qwen1.5/Qwen1.5-7B-Chat
  • CentOS6.5 下编译 FreeSWITCH 1.2.23 版本
  • 2024年03月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • Redis篇 数据的编码方式和单线程模型
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第4节 (内存管理和接口)
  • 【记录贴】docker镜像格式报错
  • 设计模式 19 模板模式 Template Pattern
  • PHP如何实现实时计算使用者消耗服务器资源费用?
  • 在C++中自定义命名空间,在命名空间中定义string变量,同时定义一个函数实现单词逆置
  • 【leetcode 141】环形链表——快慢指针(龟兔赛跑)
  • 容器(Container)的详细介绍