上位机系统Ubuntu 20.04与下位机arduino UNO通讯
创始人
2024-06-02 22:57:41
0

目录

  • 一、安装arduino IDE
    • 1.1安装方法
      • 1.1.1终端里命令下载(不推荐)
      • 1.1.2官网下载(不推荐)
      • 1.1.3论坛下载(不推荐)
      • 1.1.4系统应用商店(推荐!)
    • 1.2配置项目文件位置
    • 1.3测试IDE功能
  • 二、配置ros与arduino通讯的库文件
    • 2.1安装软件包
    • 2.2开启roscore
    • 2.3配置库文件位置
  • 三、创建一个发布者publisher
    • 3.1重新打开arduino IDE
    • 3.2编译示例代码
    • 3.3运行arduino节点
    • 3.4查看arduino节点信息
  • 四、创建一个订阅者sublisher
    • 3.1重新打开arduino IDE
    • 3.2编译示例代码
    • 3.3运行arduino节点
    • 3.4改变LED状态
      • 3.4.1方式一
      • 3.4.2方式二


Windows 10 + VMware 16 + Ubuntu 20.04+ Noetic
台式机 + arduino UNO


一、安装arduino IDE

1.1安装方法

1.1.1终端里命令下载(不推荐)

下载的版本太老,是1.0.5的,编译时会报错

sudo apt-get install arduino

报错内容:
在这里插入图片描述

1.1.2官网下载(不推荐)

从官网下载: https://www.arduino.cc/,速度很慢

1.1.3论坛下载(不推荐)

不好找Ubuntu版本的IDE安装包

1.1.4系统应用商店(推荐!)

Ubuntu software ——> 弹出snap商店——> 左上角 搜索 arduino
可以看到版本是1.8.19的,可以!下载速度也可以!
在这里插入图片描述
在这里插入图片描述

1.2配置项目文件位置

打开arduino IDE——>文件——>首选项——>项目文件位置
选择主目录下的一个文件夹,权限高!
在这里插入图片描述

1.3测试IDE功能

打开blink示例,进行编译,编译成功后,arduino开发板的小灯一直闪烁说明IDE安装成功
在这里插入图片描述

二、配置ros与arduino通讯的库文件

2.1安装软件包

sudo apt-get install ros-noetic-rosserial-arduino
sudo apt-get install ros-noetic-rosserial

2.2开启roscore

打开一个终端,输入:

roscore

2.3配置库文件位置

[PathToYourSketchbookLibraries] 指 项目文件位置

rosrun rosserial_arduino make_libraries.py [PathToYourSketchbookLibraries]

三、创建一个发布者publisher

3.1重新打开arduino IDE

3.2编译示例代码

文件——>示例——> ros_lib ——> HelloWorld

3.3运行arduino节点

IDE右下角显示串口号,我的是 ttyACM0,改成自己的

rosrun rosserial_python serial_node.py /dev/ttyACM0

在这里插入图片描述

3.4查看arduino节点信息

示例内容是,arduino作为一个节点以/chatter 为话题向外输出 “hello world!”
用命令行查看话题内容和频率,没有问题!

rostopic echo /chatter
rostopic hz /chatter

在这里插入图片描述

四、创建一个订阅者sublisher

3.1重新打开arduino IDE

3.2编译示例代码

文件——>示例——> ros_lib ——> Blink
代码解释: link

#include 
#include ros::NodeHandle  nh;void messageCb( const std_msgs::Empty& toggle_msg){digitalWrite(LED_BUILTIN, HIGH-digitalRead(LED_BUILTIN));   // blink the led
}ros::Subscriber sub("toggle_led", &messageCb );void setup()
{ pinMode(LED_BUILTIN, OUTPUT);nh.initNode();nh.subscribe(sub);
}void loop()
{  nh.spinOnce();delay(1);
}

3.3运行arduino节点

IDE右下角显示串口号,我的是 ttyACM0,改成自己的

rosrun rosserial_python serial_node.py /dev/ttyACM0

3.4改变LED状态

3.4.1方式一

用pub

rostopic pub toggle_led std_msgs/Empty --once

3.4.2方式二

设置QT工具箱:使用rqt向话题发布消息:
在这里插入图片描述

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...