测试和使用Pogo-DroneCAN CANUART串口扩展模块

news2024/11/15 15:56:47

关键词:Ardupilot,Pixhawk,DroneCAN,CANUART,Serial over DroneCAN,DroneCANUART,UAVCAN,MAVlink,Px4

Keywords:Ardupilot,Pixhawk,DroneCAN,CANUART,Serial over DroneCAN,DroneCANUART,UAVCAN,MAVlink,Px4

摘要:分享Pogo-DroneCAN CANUART模块,实现CAN口的UART通信,完全兼容Ardupilot。通过DroneCAN调试器和DroneCAN_GUI_Tool上位机,可查看、更新模块参数。使用MissionPlanner和Ardupilot/Pixhawk飞控,可以配置串口参数,实现CANUART功能。

哈喽大家好我是Mokel,我将在这期视频和大家分享Pogo-DroneCAN CANUART模块,这个模块让我们能够通过CAN口,在这里是GH1.25-4P口,实现UART通信即串口通信,不过需要注意的是,逻辑上属于同一个的CAN口最多扩展三个UART口,也就是说当你有两个或多个物理CAN口属于同一个逻辑CAN口时,你的多个物理CAN口之间是冗余关系,不同物理CAN口扩展的UART口之间也是冗余关系。

Pogo-DroneCAN CANUART扩展板是与Ardupilot完全兼容的模块,你可以查看Ardupilot的文档和讨论相关信息,文档链接:https://ardupilot.org/rover/docs/common-dronecan-serial.html ,讨论链接:https://discuss.ardupilot.org/t/serial-over-dronecan-support/109783 ;此外,你可以查看Pogo智能科技店铺的商品详情页了解更多信息,商品链接:https://item.taobao.com/item.htm?spm=a21n57.1.item.7.513e523c4fsElw&priceTId=214782d217205805099463638ec04e&utparam=%7B%22aplus_abtest%22:%2243b7cd8383a05658f17287a48c9d4473%22%7D&id=763474006000&ns=1&abbucket=17&skuId=5270245629865

图片

一、使用Pogo-DroneCAN调试器和DroneCAN_GUI_Tool上位机查看、更新DroneCAN CANUART模块

按照下图将CANUART模块和DroneCAN调试器接线,并通过typeC将DroneCAN调试器接到电脑,在电脑上打开DroneCAN_GUI_Tool上位机,选择STM...Virtual COM Port,点击OK进入上位机。然后依次在左上角点击✅设置localNodeID,在右下角点击小火箭icon给所有连接到DroneCAN调试器的DroneCAN节点自动分配NodeID,可以看到,识别到了Pogo-DroneCAN CANUART模块。

图片

图片

图片

图片

点击识别到的Pogo-DroneCAN CANUART节点,上位机会打开一个Node属性界面,你可以点击FetchAll获取和修改模块的所有参数,也可以点击Update Firmware更新模块的应用固件,你可以查看 这篇文章 了解更多相关的操作。

图片

关闭Node属性界面,打开 Tools -> Bus Monitor 界面,点击左上角的摄像机icon,可以看到有CANUART模块回传的状态信息,任意点击一条可以查看详情。

图片

二、使用 MissionPlanner 和 Ardupilot/Pixhawk 连接、查看、更新和测试 DroneCAN CANUART模块

按照下图连接Pogo-DroneCAN CANUART扩展板和Ardupilot/Pixhawk飞控,在电脑上打开MissionPlanner,选择对应的端口和波特率,点击连接,等待MP和飞控完成连接。需要注意的是,请确保你的飞控已经开启了CAN总线支持和已经设置通讯协议为DroneCAN,如果你不确定你的飞控是否完成了设置,你可以查看Ardupilot的文档来检查你的飞控,文档链接:https://ardupilot.org/plane/docs/common-canbus-setup-advanced.html 。

图片

图片

在初始设置 -> 可选硬件 -> DroneCAN/UAVCAN界面点击MAVlink-CAN1,MP会加载目前连接到飞控的DroneCAN节点。如果你的飞控开启了Slcan Direct支持,那么你也可以点击Slcan Direct来加载DroneCAN节点,但一般情况下, 除非有特殊需求,否则我们比较少开启Slcan Direct支持。

图片

可以看到界面中加载出了Pogo-DroneCAN CANUART节点,你可以点击最右侧的menu按钮查看节点的信息或对节点进行相关操作,比如在这里我们可以点击menu -> parameters 查看节点的所有参数,如同在DroneCAN_GUI_Tool上位机中点击FetchAll一样。

图片

图片

对于DroneCAN CANUART模块,由于后续我们需要将该模块的NodeID设置为另一个飞控参数的值,所以这里我建议将DroneCAN CANUART模块的NodeID设置为固定值,在parameters界面修改CAN_NODE参数的值为121(1-126均可),点击写入参数,点击OK,数据更新后给飞控和模块重新上电,并重新连接到MP。这里我们会注意到CAN_NODE的原始值为0,0的含义是让系统自动给该DroneCAN CANUART模块分配NodeID。

图片

然后切换到配置/调试 -> 全部参数表界面,在 CAN -> CAN_D1 -> CAN_D1_UC 下找到 CAN_D1_UC_SER_EN 参数,将该参数修改为1。请务必注意,在你进行这步操作之前,你需要开启飞控的CAN BUS支持并设置通讯协议为DroneCAN,查看Ardupilot文档了解设置的详细教程,文档链接:https://ardupilot.org/plane/docs/common-canbus-setup-advanced.html ,我这里提供一个设置示例:CAN_P1_DRIVER = 1,CAN_D1_PROTOCOL = 1。然后点击右侧的写入参数,点击OK,写入完成后给飞控和模块重新上电,并重新连接到MissionPlanner。

图片

再回到配置/调试 -> 全部参数表界面,可以看到在 CAN_D1_UC 下多了三组串口参数,分别为 CAN_D1_UC_S1, CAN_D1_UC_S2,CAN_D1_UC_S3,我们使用第一组串口来测试DroneCAN CANUART功能,将参数设置为 CAN_D1_UC_S1_BD = 115,CAN_D1_UC_S1_IDX = 1,CAN_D1_UC_S1_NOD = 121,CAN_D1_UC_S1_PRO = 1,其中注意 CAN_D1_UC_S1_NOD 参数,我这里将它设置为了121,是因为我们在上文中将DroneCAN CANUART模块节点的CAN_NODE 设置为了121,这里参数的值要与上文中参数的值保持一致。然后点击右侧的写入参数,写入完成后给飞控重新上电,确保飞控和模块完成重启。

图片

然后将一个串口转USB模块连接到CANUART的串口1,这里我是将STLink下载器作为串口转USB模块使用,用一根GH1.25转杜邦线将CANUART的串口1 和 STLink 接在一起,注意查看CANUART模块背面的串口的引脚标注,将CANUART的GND接到STLink的GND,将CANUART的RX接到STLink的TXD,将CANUART的TX接到STLink的RXD,+5V引脚这里不需要互接,然后将STLink下载器通过typeC接到电脑,由typeC对STLink进行供电。

图片

接好后,在电脑上打开串口调试助手,选择对应的串口号,我这里使用的STLink下载器作为串口转USB模块,所以对应的串口号为 COMxx #STM...STLink Virtual COM Port,底下的接收设置选择 HEX,然后点击打开,可以看到串口调试助手中有MAVLink心跳包的数据了,说明我们的飞控和CANUART正常连通并工作了。

图片

图片

此外,我们打开的MissionPlanner,选择 COMxx STM...STLink Virtual COM Port 端口和对应的波特率115200,点击连接,此时MissionPlanner就是通过 STMLink下载器 -> CANUART 链路与飞控建立连接,因此速度会比直接通过USB与飞控连接更慢一些,等待一段时间,MP和飞控完成连接,这也说明我们的飞控和CANUART正常连通并工作了。

图片

图片

如果你在进行以上操作时遇到无法解决的问题,你可以保留图文信息向Pogo智能科技店铺客服咨询,Pogo智能科技店铺客服会为你提供相应的技术服务。

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

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

相关文章

c语言数据结构--图综合应用实验——校院导航

实验内容: 面向学校,构建一个校院导游软件。用无向图表示所在学校的校院景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中边表示景点之间的道路,存放路径距离等信息。该软件具有以…

dledger原理源码分析(四)-日志

简介 dledger是openmessaging的一个组件, raft算法实现,用于分布式日志,本系列分析dledger如何实现raft概念,以及dledger在rocketmq的应用 本系列使用dledger v0.40 本文分析dledger的日志,包括写入,复制…

软件架构之架构风格

软件架构之架构风格 9.3 软件架构风格9.3.1 软件架构风格分类9.3.2 数据流风格9.3.3 调用/返回风格9.3.4 独立构件风格9.3.5 虚拟机风格9.3.6 仓库风格 9.4 层次系统架构风格9.4.1 二层及三层 C/S 架构风格9.4.2 B/S 架构风格9.4.3 MVC 架构风格9.4.4 MVP 架构风格 9.5 面向服务…

力扣 双指针基础

class Solution {public void moveZeroes(int[] nums) {int l 0;//慢指针但先走for (int r 0; r < nums.length; r) {//快指针&#xff0c;遍历次数if (nums[r] 0) continue;//l比r先到&#xff0c;在此处定住l&#xff0c;r继续移动int t nums[l];nums[l] nums[r];num…

上交发布MG-LLaVA,基于多粒度指令调整,横扫视觉大模型榜单

近年来多模态大语言模型(MLLMs)在视觉理解任务中取得了长足进步。然而&#xff0c;大多数模型仍局限于处理低分辨率图像&#xff0c;这限制了它们在需要详细视觉信息的任务中的表现。针对这一问题&#xff0c;上海交通大学的研究团队推出了MG-LLaVA&#xff08;Multi-Granulari…

Animate软件基础:重命名图层或文件夹

默认情况下&#xff0c;Animate 会按照创建顺序向新图层分配名称&#xff1a;图层 1、图层 2&#xff0c;依此类推。为了更好地反映图层的内容&#xff0c;可以对图层进行重命名。 如果需要对图层或图层文件夹进行重命名&#xff0c;请执行下列操作之一&#xff1a; 双击时间轴…

二叉平衡树(左单旋,右单旋,左右双旋、右左双旋)

一、AVL树&#xff08;二叉平衡树&#xff1a;高度平衡的二叉搜索树&#xff09; 0、二叉平衡树 左右子树高度差不超过1的二叉搜索树。 public class AVLTree{static class AVLTreeNode {public TreeNode left null; // 节点的左孩子public TreeNode right null; // 节点的…

MySQL之基本查询(上)-表的增删查改

目录 Create(创建) 案例建表 插入 单行数据 指定列插入 单行数据 全列插入 多行数据 全列插入 插入是否更新 插入时更新 替换 Retrieve(读取) 建表插入 select列 全列查询 指定列查询 查询字段为表达式 为查询结果指定别名 结果去重 where条件 比较运算符 逻辑运…

【UE5.1 角色练习】16-枪械射击——瞄准

目录 效果 步骤 一、瞄准时拉近摄像机位置 二、瞄准偏移 三、向指定方向射击 四、连发 效果 步骤 一、瞄准时拉近摄像机位置 打开角色蓝图&#xff0c;在事件图表中添加如下节点&#xff0c;当进入射击状态时设置目标臂长度为300&#xff0c;从而拉近视角。 但是这样切…

数学建模中常用的数据处理方法

常用的数据处理方法 本文参考 B站西电数模协会的讲解视频 &#xff0c;只作笔记提纲&#xff0c;想要详细学习具体内容请观看 up 的学习视频。国赛的 C 题一般数据量比较大。 这里介绍以下两种方法&#xff1a; 数据预处理方法 数据分析方法 数据预处理方法 1. 数据清洗 为…

【后端开发实习】用MongoDB实现仓库管理的出库入库实战

用MongoDB实现仓库管理的出库入库 MongoDB什么是MongoDBMongoDB安装以及开始运行配置启动以及mongoshmongodb的基础使用命令启动和使用MongoDB服务数据库操作集合操作文档操作 项目部署在数据库中创建一张商品信息表提供信息表的增删改查操作接口 MongoDB 什么是MongoDB Mong…

德语中含“Augen”的惯用语表达-柯桥小语种学习德语考级

在我们的德语学习过程中&#xff0c;除了词汇的记忆&#xff0c;另一项重要的记忆任务就是惯用语的背诵啦。要知道&#xff0c;德语中有大量的Redewendung&#xff0c;他们以其言简意赅的表达&#xff0c;在日常用语中备受青睐。上一期我们已经学习了部分含有“Hand”的惯用语&…

每日一题~abc356(对于一串连续数字 找规律)

添加链接描述 题意&#xff1a;对于给定的n,m 。计算0~n 每一个数和m & 之后&#xff0c;得到的数 的二进制中 1的个数的和。 一位一位的算。最多是60位。 我们只需要计算 在 1-n这些数上&#xff0c;有多少个数 第i位 为1. 因为是连续的自然数&#xff0c;每一位上1 的…

ARM学习(29)NXP 双coreMCU IMX1160学习----NorFlash 启动引脚选择

ARM学习&#xff08;28&#xff09;NXP 双coreMCU IMX1160学习----NorFlash 启动引脚选择 1、多种启动方式介绍 IMX1166 支持多组flexSPI 引脚启动&#xff0c;FlexSPI1以及FlexSPI2&#xff0c;通过boot cfg可以切换FlexSPI得实例。 每个实例又支持多组引脚&#xff0c;总共…

Let‘s Encrypt性价比最高的申请SSL证书

SSL/TLS证书作为确保网站数据传输安全性的重要手段&#xff0c;受到了广大网站运营者的青睐。然而&#xff0c;高昂的证书费用往往成为许多小型网站和个人博客的负担。 申请Lets Encrypt免费泛域名SSL证书步骤 1. 登录来此加密网站&#xff0c;输入域名&#xff0c;可以勾选泛…

食物链之带权并查集解法

直接看题&#xff1a;https://www.acwing.com/problem/content/description/242/ 下面就是代码的实现了&#xff0c;因为自己与自己肯定是同类我们初始化为0. 下面是AC代码&#xff1a; #include<bits/stdc.h> using namespace std; int n,k; int fk,x,y; int fa[10001…

染色法判定二分图

什么是二分图&#xff1f; 二分图&#xff0c;也称作二部图&#xff0c;是图论中的一种特殊模型。在一个无向图G(V,E) 中&#xff0c;如果顶点集合 V 可以被分割成两个互不相交的子集 A 和 B&#xff0c;并且图中的每条边 (i,j) 关联的两个顶点 i 和 j 分别属于这两个不同的顶…

第三课网关作用

实验拓扑图&#xff1a; 基础配置&#xff1a; PC1的基础配置 PC2的基础配置&#xff1a; PC4的基础配置 AR1添加PC4网段: 并且添加pc1,pc2的网段。 并且添加pc1,pc2的网段。 原理&#xff1a;PC4先把数据交给100.100.100.1&#xff0c;交给了路由器&#xff0c;路由器再把数…

分贝通差旅管理费控BI 助力企业差旅报销降本

在企业的日常运营中&#xff0c;每张机票、每个酒店预订、每次用车、每笔对公付款&#xff0c;这些看似零碎的支出累积起来&#xff0c;每月往往能轻松达到数百万元。面对如此庞大的支出&#xff0c;如何及时发现并控制不合理支出&#xff0c;成为企业成本控制的关键。为此&…

引用计数器(kref)

1、什么是引用计数器 如果我们写了一个字符驱动&#xff0c;当硬件设备插上时&#xff0c;系统会生成一个设备节点。用户在应用空间操作这个设备节点就可以操作设备。如果此时将硬件断开&#xff0c;驱动是不是就要立刻释放呢&#xff1f;如果立刻释放&#xff0c;应用程序是不…