购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

任务四
完成基础线控底盘串口调试

学习目标

●认识Arduino Mega 2560,了解其基本性能和外设。

●了解串行通信和并行通信的定义。

●熟悉串口监视器。

●能够分辨Arduino Mega 2560的管脚编号及其对应作用。

●能够描述串行通信和并行通信的异同。

●能够使用串口监视器查看串口通信。

●具有利用信息手段查阅相关资料的能力。

●具有分析问题、解决问题和再学习的能力。

●具有良好的团队精神和较强的表达沟通、协调组织能力。

●具有认真负责的职业态度和良好的职业道德。

知识索引

情境导入

线控底盘是自动驾驶车辆的重要组成部分。通过线控底盘开放的接口,依照约定协议对其进行运动调试是顺利执行车辆自动驾驶的重要保障。作为一名测试工程师,你要如何使用串口通信完成对ROS小车线控底盘的调试呢?

获取信息

引导问题1

查阅相关资料,简述线控技术的作用及组成系统。

____________________________________

____________________________________

____________________________________

认识线控底盘

线控底盘(图1-4-1)是指采用了线控技术的汽车底盘。而线控技术指的是将传统的底盘机械操纵系统,变成通过高速容错通信总线(比如车载常见的CAN),与高性能计算处理单元(比如智慧猫装备的Jetson Nano)相连的电气系统。线控底盘的使用能让汽车机械结构更简单、质量更小、制造更方便,并且运转更高效。

图1-4-1 线控底盘

目前的线控技术主要包括线控动力系统、线控制动系统和线控转向系统等。对于智慧猫而言,因为实训项目的重点是自动驾驶系统的安装和参数调校,所以它的线控底盘进行了简化。智慧猫线控底盘的动力系统、制动系统和转向系统,都是通过对驱动电机发布不同控制策略来实现的。

引导问题2

查阅相关资料,简述智慧猫使用Arduino开发的优势。

____________________________________

____________________________________

____________________________________

选用Arduino平台的依据

2005年,Massimo Banzi,David Cuartielles以及David Mellis等人,为了解决当时市场上难以找到便宜好用的单片机模块这一难题而设计了电路板,并为该电路板设计了编程语言,这就是Arduino。

Arduino平台包含了Arduino系列开发板(硬件)和Arduino IDE(Arduino集成开发环境,是Arduino程序编写及烧录时使用的软件)。

为了保持开放理念,Arduino官方团队决定采用Creative Commons(CC)许可。在CC许可下,任何人都被允许生产和销售Arduino开发板的复制品,而不需要向Arduino官方支付版税,甚至不用取得Arduino官方的许可,只需要说明Arduino团队的贡献以及保留Arduino这个名字。因此在网上有两种开发板,一种是Arduino官方出品的官方板(板子上印刷有“Arduino”字样),另一种则是其他厂商使用Arduino团队的设计所制作和销售的克隆板(板子上没有印刷“Arduino”字样),如图1-4-2所示。

图1-4-2 官方板(左)与克隆板(右)

Arduino平台作为智慧猫线控底盘控制单元具有以下几方面的优势。

1.方便与ROS连接通信

Arduino控制板自带USB接口,可以通过USB线束直接连接到智慧猫的决策单元(Jetson Nano)。智慧猫底盘控制单元已经烧录好可稳定运行的控制程序,能够根据ROS下发指令控制电机驱动模块执行相应动作。

2.适合跨平台开发

Arduino IDE可以在Windows、Mac OS和Linux三大主流操作系统上运行。本教材主要教学内容ROS运行在Linux平台上,所以在对线控底盘进行调整测试时,可以直接在Linux平台上运行Arduino IDE,不需要像其他单片机控制芯片那样必须切换回Windows平台。

3.程序语言清晰明了

Arduino语言是基于Wiring语言开发的,是对AVR-GCC库的二次封装。因为很多功能模块已经预先进行了封装,使用时直接赋参调用即可(图1-4-3),并不需要太多的单片机硬件基础和编程基础,所以学习者可以快速实现自己设计的控制逻辑,或理解已有程序的控制逻辑,非常适合青少年学生入门编程学习使用。

4.拥有大量开源代码和扩展硬件

图1-4-3 Arduino IDE可以直接赋参调用很多Arduino的功能模块

Arduino是全球最流行的开源电子平台之一,其开源属性吸引了众多开发者和用户的参与。因此,可以很方便地通过各类网站找到丰富的开源代码以及成熟的扩展硬件,保证了初学者能更快速、更简单地完成Arduino各种控制任务。图1-4-4是一些可以直接插接到Arduino控制板上的扩展板,非常方便进行任务拓展。

图1-4-4 支持堆叠插接的Arduino扩展板

引导问题3

查阅相关资料,简述Arduino Mega2560控制板的结构。

____________________________________

____________________________________

____________________________________

认识Arduino Mega2560控制板

线控底盘控制单元通常称为下位机,本书提到的智慧猫ROS智能车下位机的核心控制板是Arduino Mega2560(图1-4-5),它的芯片型号是Atmega 2560,同时具有54路数字输入/输出管脚。这些输入/输出口中,2~13号以及44~46号共15个管脚具备PWM输出能力。

Arduino Mega 2560控制板包含了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号串口与决策单元进行数据传输。

图1-4-5 Arduino Mega2560控制板

图1-4-6 支持堆叠插接的Arduino扩展板

Arduino Mega 2560控制板还包含了16路模拟输入管脚,分别是A0~A15管脚。每个管脚输入精度为10位(即有1024个不同值的输入),默认输入信号范围是0~5V,但可以通过AREF调整输入值的上限。

Arduino Mega 2560控制板的外部中断一共有6路,分别对应0号中断(2号管脚)、1号中断(3号管脚)、2号中断(21号管脚)、3号中断(20号管脚)、4号中断(19号管脚)、5号中断(18号管脚)。这些外部中断的触发模式均有3种,分别是上升沿触发(RISING)、下降沿触发(FALLING)和电平变化触发(CHANGE),如图1-4-7所示。

图1-4-7 外部中断的3种触发模式

引导问题4

查阅相关资料,简述Arduino IDE主要操作有哪些。

____________________________________

____________________________________

____________________________________

认识Arduino IDE

Arduino IDE是一款官方版Arduino集成开发环境,用于完成文本代码的编写和程序烧录工作。Arduino IDE操作界面包含了菜单栏、工具栏、代码编辑区、状态栏、调试信息区等内容,如图1-4-8所示。

图1-4-8 Arduino IDE操作界面

相比Keil等其他专业级的开发环境,Arduino IDE编辑界面非常简单明了,通过这种方式省去了很多不常用到的功能,使得初学者上手更容易。下面简单介绍一下这个集成开发环境常用的一些功能,包括首选项设置和工具栏一些常用功能。

1.首选项的设置

新版本的Arduino IDE默认使用操作系统预设语言作为编辑器语言。如果是老版本的IDE则可以通过以下方法手动修改编辑器语言:菜单栏单击“File”→选择“Preferences”,在弹出的Preferences窗口中(图1-4-9),找到“Editor language”,并在下拉框中选定编辑器语言,选择Chinese Simplified(简体中文)。然后单击窗口下方的【OK】按钮,并重启Arduino IDE,才能生效。

图1-4-9 首选项设置窗口

在“首选项”设置窗口还可以完成多种设定,常用的设定功能包括:

1)项目文件夹位置:单击右侧“浏览”按钮可以修改程序默认保存位置(保存路径最好不要有中文字符)。

2)编辑器语言:更改编辑器界面的语言。

3)编辑器字体大小:可以根据个人喜好修改代码编辑区显示字符的大小。

4)界面缩放:可以根据个人喜好调整操作窗口的大小。

5)显示行号:在其左侧方框中打钩后,每行代码左侧都将显示行号。

6)启用代码折叠:在其左侧方框中打钩后,可以在代码编辑区左侧单击“+”号或“-”号完成代码展开或折叠。

7)启动时检查更新:将其左侧方框中的勾单击去掉后,每次启动IDE可以省略检查更新版本的时间。

首选项设置窗口还有一些其他设置,读者可自行探索尝试。

2.工具栏一些常用功能

工具栏显示了开发过程常用功能的快捷按键,如表1-4-1所示。

表1-4-1 工具栏快捷按键对应功能列表

引导问题5

查阅相关资料,简述串行通信与并行通信的区别。

____________________________________

____________________________________

____________________________________

串行通信与并行通信

串行通信作为计算机通信方式之一,主要起到主机与外设之间或主机之间数据传输的作用。串行通信时数据按位依次传输,每位数据占据固定时长,使用少数几条通信线路就可以完成系统间交换信息。串行通信具有传输线少、成本低的特点,主要适用于近距离的人—机交换、实时监控等系统通信工作当中,借助于现有的电话网也能实现远距离传输,因此串行通信接口是计算机系统当中的常用接口。

并行通信多用于计算机或PLC等各种控制器的内部总线进行数据传送。并行通信在信息传送过程允许多比特数据同时通过并行线进行传送,这样数据传送速度大大提高。不过并行通信线路的长度会受到限制,因为长度增加,干扰就会增加,数据也就容易出错。

综上所述,并行通信可以让数据通过多条通道同步传输,通信速度更快(比如显卡与主板之间的连接);串行通信则是数据排队在单条通道内逐个传输,传输速度稍慢(比如鼠标与电脑之间的连接),如图1-4-10所示。

智慧猫使用的是串行通信,通过USB转串口芯片,将底盘控制单元核心板Arduino Mega2560控制板与决策单元Jetson Nano相连。

图1-4-10 并行通信与串行通信

引导问题6

查阅相关资料,简述串口监视器的作用。

____________________________________

____________________________________

____________________________________

认识串口监视器

在Arduino系列控制板上(包括Arduino Mega 2560),串行通信是通过0号和1号两个管脚实现的。这两个管脚同时也跟USB转串口芯片(通常为ATmega16u2或CH340)相连,该芯片的另一端通过USB线束与电脑相连,从而让Arduino控制板与电脑之间实现通信,如图1-4-11所示。

图1-4-11 串行通信的连接

串口监视器就是采用了串行通信的一个人机交互窗口,它通过串行通信把指令发送给Arduino控制板或把控制板反馈的信息显示到计算机端的监视器窗口,传输过程示例如图1-4-12所示。在教学中通常直接采用Arduino IDE自带的串口监视器,但使用过程一定注意,串口监视器的传输速率(波特率)一定要设置成与控制程序中设定值相同,否则将导致通信失败。

图1-4-12 串口监视器信息传输过程

拓展阅读

智能网联汽车的中国方案

智能汽车是汽车产业的变革性技术,已引起世界各国的激烈角逐。在中国,发展智能汽车已经形成共识。我国的顶层规划以及产业政策日趋完善,网络安全与融合发展成为焦点。技术研发逐渐进入商业阶段,各地也在通过政策法规创新推动智能网联汽车的商业化部署应用。此外,我国在技术路线的探索与产业体系建设上也取得了巨大进步,率先提出了网联化的理念和分级,网联化与智能化深度耦合,正在形成明确的C-V2X的路径和领先的C-V2X的产业体系。

我国发展自动驾驶难以采用国际上“单车智能”的发展路径,我们需要充分融合智能化和网联化的技术路线,考虑到智能网联汽车的技术特征及社会属性,积极探索中国方案。智能网联汽车是单车自动驾驶与网联汽车融为一体的新产品、新模式、新生态。智能网联汽车是典型的信息物理融合的复杂大系统,其建设、管理、运营涉及汽车、交通、运输、通信、公共安全等多行业、多领域,需要在更广泛的、协同的体系下来解决智能网联汽车相关的发展问题。

智能网联汽车中国方案的内涵可以用三个方面来表达:第一,要符合中国基础设施的标准,包括道路基础设施和信息基础设施;第二,要符合中国联网运营的标准,包括智能网联汽车准入、联网运营监管、信息安全等相关标准;第三,要符合中国新体系架构汽车产品标准,包括智能终端、通信系统、云平台、网关、驾驶辅助系统、自动驾驶系统等。通过建立中国方案的智能网联汽车信息物理系统架构,充分融合智能化与网联化发展特征,以五大基础平台为载体,实现“人-车-路-云”一体化的智能网联汽车。

支撑中国方案智能网联汽车探索实践的核心平台有:云控基础平台、高精度动态地图基础平台、车载终端基础平台、计算基础平台以及信息安全基础平台。其中,最核心的是计算基础平台,或称之为“驾驶脑”。计算基础平台会诞生一种新的产业链,我们称之为1.5级供应商,可以看到现有的传统汽车电子产业链一级供应商、二级供应商、主机厂组成了一个生态体系,未来智能网联时代将出现一些新兴的跨界技术,包括处理器的异构基础技术、基础软件框架、AI应用加速、数据共享和信息安全和高精度地图的基础支撑。这些关键技术集合总成将诞生一个1.5级计算基础供应商。

国家智能网联汽车创新中心联合全行业已经形成中国共识和标准。我们率先提出了计算基础平台的创新思想和先进架构,它将是智能网联汽车最核心的新增零部件,是“软、硬”一体的高科技平台产品,并通过行业白皮书、蓝皮书和技术路线图的编制,持续建立计算基础平台行业共识,牵引形成《车用操作系统标准体系》核心标准。基于计算基础平台共识的参考架构,我们已经组建市场化的主体,推进计算基础平台的自主研发以及产业化工作,包括“OS+硬件/车辆”和“OS+边缘云”两大平台、“ICVOS1.0”、异构硬件和车云协同基础软件三大产品。我们联合全行业共同打造智能网联汽车计算基础平台生态圈,包括长安、上汽、长城、比亚迪等主机厂,华为、国机智控等,推动汽车计算基础平台生态圈的建立。

源自:2022年12月全球智能汽车产业峰会李克强演讲内容

任务分组

学生任务分配表

工作计划

扫描二维码了解基础线控底盘串口调试步骤,结合前面所了解的知识内容和小组内部讨论的结果,制定工作方案,落实各项工作负责人,如任务实施前的准备工作、实施中主要操作及协助支持工作、实施过程中相关要点及数据的记录工作等。

工作计划表

进行决策

1.各组派代表阐述资料查询结果。

2.各组就各自的查询结果进行交流,并分享技巧。

3.教师结合各组完成的情况进行点评,选出最佳方案。

任务实施

评价反馈

1.各组代表展示汇报PPT,介绍任务的完成过程。

2.以小组为单位,请对各组的操作过程与操作结果进行自评和互评,并将结果填入综合评价表中的小组评价部分。

3.教师对学生工作过程与工作结果进行评价,并将评价结果填入综合评价表中的教师评价部分。

综合评价表 FLlOfhRpH+h4ntzZ13S8bMNTbxnlfPPC5KOWb0eAmUN/tzrYVIht2GOQDgc0dEWH

点击中间区域
呼出菜单
上一章
目录
下一章
×