基于ros_arduino_bridge的智能小车----下位机篇

参考文章:
基于ros_arduino_bridge的智能小车----上位机篇
基于ros_arduino_bridge的智能小车----硬件篇

下位机部分实际上可以视作完全独立的一部分,我们从Github下载ros_arduino_bridge后,可以从它的文件中得到小车的下位机部分:

git clone https://github.com/hbrobotics/ros_arduino_bridge.git

下载后你可以得到一个文件夹ros_arduino_bridge

在文件夹这个位置就是arduino的下位机程序,内容是:

我对内容作了一定的修改,使之能够可以被我自己的小车使用,毕竟我的小车驱动部分并没有按照ros_arduino_bridge作者的来。实际上,作者的项目已经很老了,一些东西又贵
又难买,性能还不咋地。

这里我给出了修改版的下位机代码,是在[https://blog.csdn.net/qq_29735067/article/details/81561261]的基础上稍微又修改了一下,主要是修改了控制电机的部分,下面给出下载链接:

https://pan.baidu.com/s/1my9Xh-1gGzufPR_cZpov7w
提取码:ibqk

可以打开ROSArduinoBridge.ino来上传程序,也可以加入arduino库中

请注意,程序默认串口波特率57600,上传好程序后,打开串口监视器

其中左上角是你自己arduino连接主机后显示的串口号,windows下一般是COM*,如COM5,ubuntu下一般是
/dev/tty*,例如/dev/ttyUSB0。

上传好程序后就可以测试了,你可以手动为串口输入控制命令,毕竟上位机是通过相同的命令来控制小
车,这在arduino程序中被定义了:

/* Define single-letter commands that will be sent by the PC over theserial link.
*/#ifndef COMMANDS_H
#define COMMANDS_H#define ANALOG_READ    'a' // 模拟读取
#define GET_BAUDRATE   'b' // 获取波特率
#define PIN_MODE       'c' // 接口模式
#define DIGITAL_READ   'd' // 数字读取
#define READ_ENCODERS  'e' // 读取编码器数据 输出为:左数据,右数据
#define MOTOR_SPEEDS   'm' // 设置马达速度,脉冲计数 如: m 20 20 会以一个很低的速度转动
#define PING           'p' //
#define RESET_ENCODERS 'r' // 重设编码器读数
#define SERVO_WRITE    's' // 舵机相关,我这里没有用到
#define SERVO_READ     't' // 舵机相关,我这里没有用到
#define UPDATE_PID     'u' // 更新pid参数
#define DIGITAL_WRITE  'w' // 数字端口设置
#define ANALOG_WRITE   'x' // 模拟端口设置
#define READ_PIDOUT  'f'   // 读取pid计算出的速度(脉冲数计数)
#define READ_PIDIN  'i'    // 读取进入pid的速度#define LEFT            0
#define RIGHT           1#define FORWARDS true   //FORWARDS前进代表bool真值true
#define BACKWARDS false //BACKWARDS后退代表bool假值false#endif

例子:

输入e:

可以看到下位机回传了编码器信息(原谅我的图片如此糟糕,毕竟我的真实上位机是树莓派,博客又是在电脑上编辑了,只能通过拍照获取图片)

输入m 44 44:

下位机返回OK,表示接收到控制信号,同时小车轮子开始转动,两秒后中停止,修改ROSArduinoBridge.ino中的这一段

#define AUTO_STOP_INTERVAL 2000

可以改变每一个控制命令的作用时间,单位是毫秒

我的小车:

基于ros_arduino_bridge的智能小车----下位机篇相关推荐

  1. Arduino基础项目篇-基于Arduino的智能小车

    从这篇开始,后续会陆陆续续写一些自己入门单片机以来做过的一些项目教程,y由于不是现在做的,所以我可能没有调试的照片啥之类的,而且做的东西大多都拆了. 我刚入门Arudino时,做的第一个项目,就是Ar ...

  2. 基于STM32的智能小车方案设计

    基于STM32的智能小车设计 前言 一.什么是STM32智能小车? 二.模块汇总 1.主控板(STM32F103ZE) 2.底板 3.电机 4.避障模块(超声波传感器,红外传感器) 5.寻迹模块(3路 ...

  3. 基于STM32的智能小车--电机驱动设计

    基于STM32的智能小车 第一章 基于STM32的智能小车方案设计 基于STM32的智能小车--电机驱动设计 基于STM32的智能小车 前言 一.电机是什么? 二.常见电机分类 1.有刷电机 2.无刷 ...

  4. 【毕业设计之树莓派系列】基于树莓派的智能小车设计

    基于树莓派的智能小车设计 摘要 随着人们对智能化生活的需求不断增长,智能小车的发展逐渐受到关注.然而,现有的智能小车硬件和软件设计有一定的局限性,需要进一步改进和完善.本文旨在基于树莓派PICO开发板 ...

  5. Arduino智能小车——拼装篇

    Arduino智能小车--拼装篇 Arduino智能小车系列教程时空门: Arduino智能小车--拼装篇 点击跳转 Arduino智能小车--测试篇 点击跳转 Arduino智能小车--调速篇 点击 ...

  6. 智能循迹避障小车C语言程序编写思路,基于单片机的智能小车红外避障循迹系统设计与制作...

    余秀玲 余秀娟 摘 要:随着科技的高速发展,人们对生活质量的要求越来越高,无人驾驶汽车已经被广为研发和试用,由此智能小车的快速发展也是在情理之中.通过对基于单片机的智能小车的硬件及软件设计分析,实现红 ...

  7. 基于linux的智能小车_基于ARM10与LINUX智能小车系统设计.doc

    基于ARM10与LINUX智能小车系统设计 基于ARM的智能小车系统的设计 摘 要 基于ARM的嵌入式系统其性能优良,移植性好,已广泛应用在各个行业,因此将ARM微处理器应用于智能小车的控制系统是一种 ...

  8. 毕业设计 - 题目_ 基于单片机的智能小车 - 嵌入式 物联网 本科毕设

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 系统设计 3.1 设计方案 3.1.1 小车遥控部分 方案一 方案二 3.1.2 小车驱动部分 方案一 方案二 3.2 系统架构 3.3 主要 ...

  9. Arduino智能小车——循迹篇

    Arduino智能小车--循迹篇 Arduino智能小车系列教程时空门: Arduino智能小车--拼装篇 点击跳转 Arduino智能小车--测试篇 点击跳转 Arduino智能小车--调速篇 点击 ...

最新文章

  1. webpack初探——js打包
  2. mormot数据库连接+查询+序列为JSON
  3. python的字典与集合
  4. 网络工程师Day2---实验2-1:HDLC和PPP配置
  5. 简洁/易用/灵活/高效-RecyclerView适配器封装
  6. cacheable中的condition和unless
  7. php天气预报小偷,php天气预报的小偷程序
  8. 路由守卫(全局钩子(全局路由守卫)、路由单独钩子(router独享守卫))
  9. JQuery常见命令查找网站
  10. spring boot通用办事流程管理软件 毕业设计-附源码211819
  11. 【年中总结】与自己来一场博弈,带着温柔与敌意。
  12. MySQL Notifier
  13. 单元测试怎么就成了银弹?
  14. 只读了半年大学的院士——苹果CEO乔布斯
  15. 2022年快手电商“大搞产业带”,如何抢跑快手电商下半场?
  16. 小分子php蛋白,小分子-蛋白相互作用关系——简单的docking介绍
  17. 使用ZED相机识别颜色醒目的水壶并计算与相机的距离
  18. java编程——案例1:模拟购物车
  19. 可擦写光盘不能擦除和刻写_什么是可擦写光盘 什么时候要用到可擦洗光盘(擦除光盘)...
  20. 基于Grad-CAM与KL损失的SSD目标检测算法

热门文章

  1. 日本房产泡沫的崩塌,虽然很长,希望80后仔细阅读
  2. 有哪些靠谱的淘宝代运营公司?
  3. WPS Office应用大全
  4. 数据分析(Python)入门—鸢尾植物数据集处理
  5. mysql python 2.7.14_python 2.7.14安装包下载|
  6. word文档生成系列:doc和docx插入多图
  7. Android notes
  8. 新浪 透视java_(JAVA)MyColorCube7(透视效果)
  9. TZT3801G无线振弦在线监测系统
  10. Python 常用写法