基于ros_arduino_bridge的智能小车----下位机篇
基于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的智能小车----下位机篇相关推荐
- Arduino基础项目篇-基于Arduino的智能小车
从这篇开始,后续会陆陆续续写一些自己入门单片机以来做过的一些项目教程,y由于不是现在做的,所以我可能没有调试的照片啥之类的,而且做的东西大多都拆了. 我刚入门Arudino时,做的第一个项目,就是Ar ...
- 基于STM32的智能小车方案设计
基于STM32的智能小车设计 前言 一.什么是STM32智能小车? 二.模块汇总 1.主控板(STM32F103ZE) 2.底板 3.电机 4.避障模块(超声波传感器,红外传感器) 5.寻迹模块(3路 ...
- 基于STM32的智能小车--电机驱动设计
基于STM32的智能小车 第一章 基于STM32的智能小车方案设计 基于STM32的智能小车--电机驱动设计 基于STM32的智能小车 前言 一.电机是什么? 二.常见电机分类 1.有刷电机 2.无刷 ...
- 【毕业设计之树莓派系列】基于树莓派的智能小车设计
基于树莓派的智能小车设计 摘要 随着人们对智能化生活的需求不断增长,智能小车的发展逐渐受到关注.然而,现有的智能小车硬件和软件设计有一定的局限性,需要进一步改进和完善.本文旨在基于树莓派PICO开发板 ...
- Arduino智能小车——拼装篇
Arduino智能小车--拼装篇 Arduino智能小车系列教程时空门: Arduino智能小车--拼装篇 点击跳转 Arduino智能小车--测试篇 点击跳转 Arduino智能小车--调速篇 点击 ...
- 智能循迹避障小车C语言程序编写思路,基于单片机的智能小车红外避障循迹系统设计与制作...
余秀玲 余秀娟 摘 要:随着科技的高速发展,人们对生活质量的要求越来越高,无人驾驶汽车已经被广为研发和试用,由此智能小车的快速发展也是在情理之中.通过对基于单片机的智能小车的硬件及软件设计分析,实现红 ...
- 基于linux的智能小车_基于ARM10与LINUX智能小车系统设计.doc
基于ARM10与LINUX智能小车系统设计 基于ARM的智能小车系统的设计 摘 要 基于ARM的嵌入式系统其性能优良,移植性好,已广泛应用在各个行业,因此将ARM微处理器应用于智能小车的控制系统是一种 ...
- 毕业设计 - 题目_ 基于单片机的智能小车 - 嵌入式 物联网 本科毕设
文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 系统设计 3.1 设计方案 3.1.1 小车遥控部分 方案一 方案二 3.1.2 小车驱动部分 方案一 方案二 3.2 系统架构 3.3 主要 ...
- Arduino智能小车——循迹篇
Arduino智能小车--循迹篇 Arduino智能小车系列教程时空门: Arduino智能小车--拼装篇 点击跳转 Arduino智能小车--测试篇 点击跳转 Arduino智能小车--调速篇 点击 ...
最新文章
- webpack初探——js打包
- mormot数据库连接+查询+序列为JSON
- python的字典与集合
- 网络工程师Day2---实验2-1:HDLC和PPP配置
- 简洁/易用/灵活/高效-RecyclerView适配器封装
- cacheable中的condition和unless
- php天气预报小偷,php天气预报的小偷程序
- 路由守卫(全局钩子(全局路由守卫)、路由单独钩子(router独享守卫))
- JQuery常见命令查找网站
- spring boot通用办事流程管理软件 毕业设计-附源码211819
- 【年中总结】与自己来一场博弈,带着温柔与敌意。
- MySQL Notifier
- 单元测试怎么就成了银弹?
- 只读了半年大学的院士——苹果CEO乔布斯
- 2022年快手电商“大搞产业带”,如何抢跑快手电商下半场?
- 小分子php蛋白,小分子-蛋白相互作用关系——简单的docking介绍
- 使用ZED相机识别颜色醒目的水壶并计算与相机的距离
- java编程——案例1:模拟购物车
- 可擦写光盘不能擦除和刻写_什么是可擦写光盘 什么时候要用到可擦洗光盘(擦除光盘)...
- 基于Grad-CAM与KL损失的SSD目标检测算法