4 下位机的连线与调试

4.1 连线

(1)连线依据

使用开源项目ros_arduino_bridge。从名字上来看,ros_arduino_bridge是建立了ROS(机器人操作系统)和Arduino之间的桥梁。也就是建立了机器人上位机与下位机之间的通讯。它是一个ROS功能包集,包括了Arduino库(ROSArduinoBridge)和一系列用来控制基于Arduino的ROS功能包。

参考:https://wiki.ros.org/ros_arduino_bridge

a)下载

可直接在https://github.com/hbrobotics/ros_arduino_bridge下载。一般下载在“/home/下载”文件夹下。

4 下位机的连线与调试_第1张图片

 注:也可以使用以下命令 

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

进行下载。本教程采用上一种下载方法进行介绍。

b)解压缩

双击下载的文件,点击提取,即可将文件解压缩。

c)打开ros_arduino_bridge/ros_arduino_firmware/src/libraries/ROSArduinoBridge/文件夹,用Arduino IDE软件打开ROSArduinoBridge.ino(双击即可)。

d)打开encoder_driver.h,如下图所示。从图中可知,左电机的编码器正极(OA)和负极(OB)分别接“Arduino”控制板的D2、D3脚。右电机的编码器正极(OA)和负极(OB)分别接“Arduino”控制板的A4、A5脚。

4 下位机的连线与调试_第2张图片

e)打开motor_driver.h,如下图所示。从图中可知,左电机的前后控制,使用的是“Arduino”控制板的D10和D6脚。右电机的前后控制,使用的是“Arduino”控制板的D9和D5脚。 

4 下位机的连线与调试_第3张图片

 但是“Arduino”控制板的I/O口,不能直接驱动电机。需要连接电机驱动器,因此需要将D10和D6脚分别接电机驱动器的AIN1、AIN2脚,D9和D5脚分别接驱动器的BIN1、BIN2脚。再结合3.2节-(2)-2)电机驱动器部分中的真值表。分别对各脚置“1”或“0”,即可控制电机转动。

接口

AIN1

0

0

1

AIN2

0

1

0

BIN1

0

0

1

BIN2

0

1

0

电机

停止

正转

反转

(2)连线图

根据以上原理,结合电机和电机驱动器等硬件说明,连线图如下。

4 下位机的连线与调试_第4张图片

4.2 下位机调试

1)打开ros_arduino_bridge/ros_arduino_firmware/src/libraries/ROSArduinoBridge/文件夹,用Arduino IDE软件打开ROSArduinoBridge.ino(双击即可)。

2)修改程序。打开ROSArduinoBridge。

4 下位机的连线与调试_第5张图片

下翻,找到以下程序段。 

4 下位机的连线与调试_第6张图片

 将程序进行修改,如下图所示。

4 下位机的连线与调试_第7张图片

 修改完之后,点击菜单栏工具,在下拉菜单中,开发板选择“Arduino Nano”,处理器选择:“ATmega328P(Old Bootloader)”,端口选择/dev/ttyUSB0。

4 下位机的连线与调试_第8张图片

点击“验证”、“上传”。将程序上传到“Arduino”控制板。

4 下位机的连线与调试_第9张图片

 3)打开端口权限。

打开终端,输入

sudo chmod 666 /dev/ttyUSB0

回车。

4)打开串口监视器,调试电机。

点击“串口监视器”,弹出对话框,如下图所示。

修改波特率为57600,输入命令m 30 30。电机即可旋转。

4 下位机的连线与调试_第10张图片

你可能感兴趣的:(零基础带你进入机器人的世界,自动驾驶,人工智能)