Windows下安装和使用dronecan_gui_tool

哈喽大家好,我是Mokel,这是DroneCAN调试器系列视频的第2期。这期视频我们将介绍在Windows下安装和使用dronecan_gui_tool的内容。

你可以在ardupilot的文档 (ardupilot.org/plane/docs/...) 找到dronecan_gui_tool的下载链接,推荐你下载msi安装文件,下载完成后,只需要点击安装,并依次点击下一步即可,推荐你修改软件的安装位置,将非系统软件安装在C盘以外的软件盘,避免C盘存储空间的无故消耗,比如我这里将它安装到了D盘的dronecan_gui_tool文件夹下。

安装完成后,dronecan_gui_tool就可以正常使用了,我们将使用两个Pogo-DroneCAN调试器互连来演示测试dronecan_gui_tool的使用,你可以在淘宝搜索"DroneCAN调试器"找到这个商品,也可以通过评论区置顶链接(item.taobao.com/item.htm?sp...) 直接跳转商品,调试器默认为slcan固件,同时支持使用QGC更新固件,我们将在后续视频里分享利用QGC更新固件的过程,并介绍官方提供的几个可用固件。

如我所演示,我们将两个DroneCAN调试器的GH1.25口通过一根双头反向端子线连接在一起,然后通过USB-TypeC线或者TypeC-TypeC线先将其中一个调试器连接到电脑上,等它通电启动后,重新打开dronecan_gui_tool上位机,可以看到上位机识别到了我们的DroneCAN调试器STM...Virtual COM Port,选择这个CAN Interface,点击OK进入上位机主页面。

注意观察,在进入上位机主页面的过程中,已经通过TypeC线连接到电脑的DroneCAN调试器会闪烁一下,你可以把这个理解为是调试器正常工作的一个前置信号。在主页面的左上角,点击 √(对勾)应用本地节点ID,此时点击右下角的小火箭,dronecan_gui_tool上位机会识别到我们已经连接到电脑的DroneCAN调试器,它的节点ID为127。

然后我们再用另外一根TypeC线把另外一个DroneCAN调试器连接到电脑,然后新开一个dronecan_gui_tool窗口,与刚才相同的情况,点击OK进入上位机主页面,这里你可能会遇到报错,提示端口被占用,此时你需要关闭刚刚打开的dronecan_gui_tool新窗口,然后重插一下刚刚的DroneCAN调试器,等个5s,等电脑识别到了新插入的调试器后再新开一个dronecan_gui_tool窗口,与刚才相同的情况,点击OK进入上位机主页面。

你可能已经注意到,我是依次将DroneCAN调试器连接到电脑的,具体地说,先插上一个DroneCAN调试器,然后打开并进入dronecan_gui_tool上位机,设置好local node ID;再插上另外一个DroneCAN调试器,然后打开并进入一个新的dronecan_gui_tool上位机页面,并设置好local node ID。请注意,目前在Windows下连接多个DroneCAN调试器时,你必须采取依次连接的方式。

在新开的dronecan_gui_tool上位机主页面里,注意这几个情况,首先是左上角的本地节点ID,它需要与刚刚的本地节点ID不同,比如刚刚的本地节点ID为127,那么这里可以更改为126,然后点击 √ (对勾)应用本地节点ID;然后是这边的online nodes,可以看到,它已经识别到了我们刚才的127节点;最后点击一下右下角的小火箭,可以看到已经成功地识别到了我们的127和126节点。

回到127节点的上位机主页面中,可以看到online nodes有126节点,右下角同样识别到了126节点和127节点,这意味着两个DroneCAN调试器都成功被上位机识别了,且两个调试器之间也成功建立了连接。

最后,我们通过dronecan_gui_tool的工具来测试一下通过这两个DroneCAN调试器的CAN数据的收发、转换是否能够正确执行。

在127节点的dronecan_gui_tool主页新建一个执行器面板(actuator panel),它位于Panels -> Actuator Panel下,将其修改为我所演示的设置,具体是:value值分别为0.1、0.2、0.3、0.4,ID值分别为0、1、2、3,并且勾选四个Enabled,可以看到在Generated message中显示了完整的数据内容,如果有需要你可以点击Pause暂停数据的发送,再次点击则恢复数据的发送。

然后在126节点的dronecan_gui_tool主页新建一个bus monitor,它位于Tools -> Bus Monitor下,点击左上角的摄像头icon开始捕获数据(start capturing),可以看到数据在持续地刷新,随机选择一条uavcan.equipment.actuator数据,它的数据详情会显示在下方, 可以看到,126节点收到的数据与127节点发出的数据完全一致。

也就是说,dronecan_gui_tool上位机向127节点DroneCAN调试器以slcan协议发送的CAN数据,经过127节点调试器转换为dronecan协议数据并发送给126节点DroneCAN调试器后,126节点调试器再将dronecan协议数据转换回slcan协议数据并回传给dronecan_gui_tool上位机显示,经过一个完整的发送、转换、传递、转换、回传环节的收发数据完全一致,这意味着DroneCAN调试器正确地工作了。

并且,你可以注意到,发送数据的DroneCAN调试器的呼吸灯的闪烁频率更快。如下面视频所演示,右侧的DroneCAN调试器为127节点调试器,它是发送数据侧,它的呼吸灯的闪烁频率更快。 两个DroneCAN调试器互连收发数据演示

后续,你可以将其中一个调试器更换为你的DroneCAN外设并给外设通电,然后外设将持续产生dronecan协议的数据发送给DroneCAN调试器,调试器将dronecan协议的数据转换为slcan协议数据后回传给dronecan_gui_tool显示,此时你就可以根据外设的实际数据进行相关开发调试工作了,我们将在后续视频中演示测试DroneCAN调试器与CANGPS外设之间的连接与调试。

那么这期视频就到这里了,记得点赞投币收藏和关注,我们下期视频,不见不散!

相关推荐
玄奕子8 小时前
GPT对话知识库——在STM32的平台下,通过SPI读取和写入Flash的步骤。
stm32·单片机·gpt·嵌入式·嵌入式驱动
卑微求AC10 小时前
(C语言贪吃蛇)16.贪吃蛇食物位置随机(完结撒花)
linux·c语言·开发语言·嵌入式·c语言贪吃蛇
憧憬一下1 天前
驱动中的device和device_driver结构体
驱动开发·嵌入式
winddevil2 天前
[rCore学习笔记 029] 动态内存分配器实现-以buddy_system_allocator源码为例
rust·嵌入式·rcore
卑微求AC2 天前
(C语言贪吃蛇)14.用绝对值方式解决不合理的走位
linux·c语言·开发语言·嵌入式·c语言贪吃蛇
卑微求AC2 天前
(C语言贪吃蛇)13.实现贪吃蛇四方向的移动
linux·c语言·嵌入式·c语言贪吃蛇
玄奕子3 天前
GPT对话知识库——bootloader是什么?ymodel协议是什么?
stm32·gpt·嵌入式·传输协议·嵌入式驱动
FreakStudio4 天前
全网最适合入门的面向对象编程教程:55 Python字符串与序列化-字节序列类型和可变字节字符串
python·单片机·嵌入式·面向对象·电子diy
我想学LINUX4 天前
一文带你掌握 tmux -- 高效的终端复用工具
linux·嵌入式硬件·嵌入式·策略模式·tmux·tmux命令
极客小张5 天前
基于STM32和FPGA的射频数据采集系统设计流程
c语言·stm32·物联网·算法·fpga开发·毕业设计·嵌入式