上位机系统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向话题发布消息:
在这里插入图片描述

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...