1-4 完成线控底盘串口的调试_第1页
1-4 完成线控底盘串口的调试_第2页
1-4 完成线控底盘串口的调试_第3页
1-4 完成线控底盘串口的调试_第4页
1-4 完成线控底盘串口的调试_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《ROS原理与技术应用》能力模块一掌握车身硬件的搭建方法

任务四完成调试线控底盘串口的调试导入线控底盘是自动驾驶车辆的重要组成部分。通过线控底盘开放的接口,依照约定协议对其进行运动调试是顺利执行车辆自动驾驶的重要保障。智慧猫线控底盘开放了串行通信接口,并设计了简单的通信协议保证决策单元下发的电机转速指令被精确执行。此外线控底盘驱动电机的旋转圈数也通过串行接口发送到决策单元。如何使用串口通信完成对智慧猫线控底盘的调试呢?目录

CONTENTS0102认识线控底盘选用Arduino平台的依据03认识ArduinoMega25600405认识ArduinoIDE串行通信与并行通信06认识串口监视器新授一、认识线控底盘线控底盘(如图所示)是指采用了线控技术的汽车底盘。而线控技术指的是将传统的底盘机械操纵系统变成通过高速容错通信总线(比如车载常见的CAN总线)与高性能计算处理单元(比如智慧猫装备的JetsonNano)相连的电气系统。线控底盘的使用能让汽车机械结构更简单、质量更小、制造更方便以及运转更高效。线控底盘将是智能汽车的标准配备。目前的线控技术主要包括线控动力系统、线控制动系统和线控转向系统等。以色列REEAutomotive和日本KYBCorporation共同合作开发的线控底盘对于智慧猫而言,因为实训项目的重点是自动驾驶系统的安装和参数调校,所以它的线控底盘进行了简化。智慧猫线控底盘的动力系统、制动系统和转向系统都是通过对驱动电机发布不同控制策略来实现的。二、选用Arduino平台的依据3412Arduino名字的起源编程语言开放性CC许可据说“Arduino”这个名字源于大约一千年前某个意大利国王的名字。MassimoBanzi,DavidCuartielles以及DavidMellis等人为了解决当时市场上难以找到便宜好用的单片机模块这一难题而设计了电路板,并为该电路板设计了编程语言,这就是Arduino。Arduino作为开源电子原型开发平台,其软硬件设计资料都全面向学习者开放。Arduino平台包含了Arduino系列开发板(硬件)和ArduinoIDEArduino官方团队决定采用CreativeCommons(CC)许可。在CC许可下,任何人都被允许生产和销售Arduino开发板的复制品,只需要说明Arduino团队的贡献以及保留Arduino这个名字,实现开放学习的目的。二、选用Arduino平台的依据目前通用的开发版有两种,一种是Arduino官方出品的官方板(板子上印刷有“Arduino”字样),另一种则是其它厂商使用Arduino团队的设计所制作和销售的克隆板(板子上没有印刷“Arduino”字样),如图所示官方板(左)与克隆板(右)二、选用Arduino平台的依据方便与ROS系统连接通信适合跨平台开发程序语言清晰明了拥有大量开源代码和扩展硬件Arduino平台作为智慧猫线控底盘控制单元的优势二、选用Arduino平台的依据(一)方便与ROS系统连接通信

Arduino控制板自带USB接口,可以通过USB线束直接连接到智慧猫的决策单元(JetsonNano)。智慧猫底盘控制单元已经烧录好可稳定运行的控制程序,能够根据ROS下发指令控制电机驱动模块执行相应动作。(二)适合跨平台开发ArduinoIDE可以在Windows、MacOSX和Linux三大主流操作系统上运行。本教材主要教学内容ROS运行在Linux平台上,所以在对线控底盘进行调整测试时可以直接在Linux平台上直接运行ArduinoIDE,不需要像其它单片机控制芯片那样必须切换回Windows平台。二、选用Arduino平台的依据(三)程序语言清晰明了Arduino语言是基于Wiring语言开发的,是对AVR-GCC库的二次封装。因为很多功能模块已经预先进行了封装,使用时直接赋参调用即可(如右图所示),并不需要太多的单片机硬件基础和编程基础,所以学习者可以快速实现自己设计的控制逻辑或理解已有程序的控制逻辑,非常适合青少年学生入门编程学习使用。(四)拥有大量开源代码和扩展硬件Arduino是全球最流行的开源电子平台,其开源属性吸引了众多开发者和用户的参与。因此可以很方便地通过各类网站找到丰富的开源代码以及成熟的扩展硬件,保证了初学者能更快速、更简单地完成Arduino各种控制任务。如右图,是一些可以直接插接到Arduino控制板上的扩展板,非常方便进行任务拓展。可以直接赋参调用很多Arduino的功能模块支持堆叠插接的Arduino扩展板三、认识ArduinoMega2560控制板控底盘控制单元通常称为下位机,本书提到的智慧猫ROS智能车下位机的核心板是ArduinoMega2560(如下图所示),它的芯片型号是Atmega2560,同时具有54路数字输入/输出管脚。这些输入/输出口中,2~13号以及44~46号共15个管脚具备PWM输出能力。5ArduinoMega2560三、认识ArduinoMega2560控制板ArduinoMega2560控制板包含了4路串行通信接口,分别是0号串口,包含0号管脚(RX)和1号管脚(TX);1号串口,包含19号管脚(RX)和18号管脚(TX);2号串口,包含17号管脚(RX)和16号管脚(TX);3号串口,包含15号管脚(RX)和14号管脚(TX)。其中0号串口同时也可以通过USB转串口芯片与方形USB接口(如图1-4-6)连接,所以智慧猫使用了0号串口与决策单元进行数据传输。支持堆叠插接的Arduino扩展板ArduinoMega2560控制板还包含了16路模拟输入管脚,分别是A0~A15管脚。每个管脚输入精度为10位(即有1024个不同值的输入),默认输入信号范围是0~5V,但可以通过AREF调整输入值的上限三、认识ArduinoMega2560控制板ArduinoMega2560控制板的外部中断一共有6路,分别对应0号中断(2号管脚)、1号中断(3号管脚)、2号中断(21号管脚)、3号中断(20号管脚)、4号中断(19号管脚)、5号中断(18号管脚)。这些外部中断的触发模式均有3种,分别是上升沿触发(RISING)、下降沿触发(FALLING)和电平变化触发(CHANGE)。外部中断的三种触发模式四、认识ArduinoIDEArduinoIDE是一款官方版Arduino集成开发环境,用于完成文本代码的编写和程序烧录工作。ArduinoIDE操作界面包含了菜单栏、工具栏、代码编辑区、状态栏、调试信息区等内容。相比于Keil等其它专业级的开发环境,ArduinoIDE编辑界面非常简单明了,但正是这样省去了很多不常用到的功能,使得初学者上手更容易。四、认识ArduinoIDE新版本的ArduinoIDE默认使用操作系统预设语言作为编辑器语言。如果是老版本的IDE则可以通过以下方法手动修改编辑器语言。菜单栏点击“File”选择“Preferences”,在弹出Preferences窗口中(如图所示),找到“Editorlanguage”,并在下拉框中选定编辑器语言,如ChineseSimplified(简体中文)。然后点击窗口下方的【OK】按钮,并重启ArduinoIDE,才能生效。(一)首选项的设置首选项设置窗口四、认识ArduinoIDE(一)首选项的设置(1)项目文件夹位置:点击右侧“浏览”按钮可以修改程序默认保存位置(保存路径最好不要有中文字符);(2)编辑器语言:更改编辑器界面的语言;(3)编辑器字体大小:可以根据个人喜好修改代码编辑区显示字符的大小;(4)界面缩放:可以根据个人喜好调整操作窗口的大小;(5)显示行号:在其左侧方框中打勾后,每行代码左侧都将显示行号;(6)启用代码折叠:在其左侧方框中打勾后,可以在代码编辑区左侧点击“+”号或“-”号完成代码展开或折叠;(7)启动时检查更新:将其左侧方框中的勾点击去掉后,每次启动IDE可以省略检查更新版本的时间。在这个“首选项”设置窗口还可以完成多种设定,常用的设定有以下一些:四、认识ArduinoIDE(二)工具栏一些常用功能工具栏显示了开发过程常用功能的快捷按键,如表所示:五、串行通信与并行通信(一)串行通信的定义串行通信作为计算机通信方式之一,主要起到主机与外设以或主机之间的数据传输作用。串行通信时数据按位依次传输,每位数据占据固定时长,使用少数几条通信线路就可以完成系统间交换信息。智慧猫就是使用串行通信,通过USB转串口芯片,将底盘控制单元核心板ArduinoMega2560控制板与决策单元JetsonNano相连。(二)并行通信的定义并行通信多用于计算机或PLC等各种控制器的内部总线进行数据传送。并行通信在信息传送过程允许多比特数据同时通过并行线进行传送,这样数据传送速度大大提高。不过并行通信线路的长度会受到限制,因为长度增加,干扰就会增加,数据也就容易出错。五、串行通信与并行通信(三)串行通信与并行通信的比较串行通信具有传输线少、成本低的特点,主要适用于近距离的人-机交换、实时监控等系统通信工作当中,借助于现有的电话网也能实现远距离传输,因此串行通信接口是计算机系统当中的常用接口。并行通信可以让数据通过多条通道同步传输,通信速度更快(比如显卡与主板之间的连接);串行通信则是数据排队在单条通道内逐个传输,传输速度稍慢(比如鼠标与电脑之间的连接),如图所示。串行通信与并行通信六、认识串口监视器在Arduino系列控制板上(包括ArduinoMega2560),串行通信是通过0号和1号两个管脚实现的。这两个管脚同时也跟USB转串口芯片(通常为ATmega16u2或CH340)相连,该芯片的另一端通过USB线束与电脑相连,从而让Arduino控制板与电脑之间实现通信,如图所示。串行通信的连接六、认识串口监视器串口监视器就是采用了串行通信的一个人机交互窗口,它通过串行通信把指令发送给Arduino控制板或把控制板反馈的信息显示到电脑端的监视器窗口,传输过程示例如图所示。通常直接采用ArduinoIDE自带的串口监视器,使用过程一定注意,串口监视器的传输速率(波特率)一定要设置成与控制程序中设定值相同,否则将导致通信失败。串口监视器信息传输过程任务实施一、任务准备(一)软件、硬件准备(二)安全要求及注意事项1.智慧猫ROS智能车2.安装ArduinoIDE的系统电脑一台11.安全用电22.符合6S管理要求。

二、实施步骤

测试前准备:

(1)将底盘控制单元的USB线从决策单元上拔下来,并连接到电脑USB接口

(2)然后在桌面电脑中打开ArduinoIDE,并在菜单栏选择【工具】【端口】【com5】,如图所示。这里需要注意,端口号并不都是“com5”,实际端口号可以通过打开windows操作系统的“设备管理器”查看。如图所示的端口号为“com12”。查看实际端口号二、实施步骤

步骤1:完成编码器数值的读取,具体操作如下:

(1)点击ArduinoIDE右上方图标打开【串口监视器】,如下图所示

二、实施步骤

步骤1:完成编码器数值的读取,具体操作如下:

(2)在打开的串口监视器,完成以下操作:①设置结束符为“换行符”;②设置通信波特率为“115200波特率”;③在文本输入栏输入字符“e”;④点击【发送】按钮。字符“e”表示读取当前编码器状态值。

如果电路连接正确,将在窗口返回类似“00”这样的两个字符。如果两个字符均为零,表示左右两侧的车轮均未转动。二、实施步骤

步骤1:完成编码器数值的读取,具体操作如下:

(3)用手向前转动左前轮,并再次在文本输入栏输入字符“e”,如果电路连接正常应该看到左侧编码器返回值将变成一个正整数,如图中窗口中第二行内容所示。同理右前轮也可以使用同样步骤进行调试,并查看数值是否正常。

读取编码器数值:二、实施步骤

步骤1:完成编码器数值的读取,具体操作如下:

(4)使用指令“r”,可以将编码器读数复位为零。如果执行复位成功,将返回字符“OK”,如图中窗口中第四行显示内容所示。这时如果使用指令“e”查看结果,将看到返回值为“00”,如窗口中第五行显示内容所示。

输入“r”读数复位输入“e”查看当前读数二、实施步骤

步骤2:完成电机旋转指令的发送与验证,具体操作如下:

(1)使用指令“m5050”设置电机转速,如果正常,左右侧电机都将向前转动,并在窗口中返回“MOTOR_SPEEDS:5050”,如图所示。若输入不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论