ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

智能车制作——从元器件、机电系统、控制算法到完整的智能车设计|文末赠书

2020-06-23 15:07:12  阅读:302  来源: 互联网

标签:竞赛 电机 控制算法 硬件 智能 PCB 车模 文末


 

智能车竞赛背景


全国大学生智能车竞赛是一项举办了十四届的大学生自动控制类科技竞赛,它要求指定的车模能够在规定的赛道上实现路径识别、自主寻迹,并快速行驶。麻雀虽小,五脏俱全,虽然竞赛智能车没有现实生活中的无人驾驶技术来的那么复杂,但是也需要相应的传感器、执行器、控制器以及硬件电路并进行控制算法的设计与调试等。

一般需要数月才能较为系统地掌握上述知识,而能熟练应用并进行系统化调试以及创新往往需要更长时间。因此,该项赛事为大学生将理论知识转化为实践技术提供了良好的平台。同时,智能车组委会每年都会对竞赛规则、赛道元素等进行非常用心的调整,竞赛的新颖性与公平性得到了保证,因此每年都会吸引大量相关学科背景的学生积极参与。

▲ 640

▲ 640

 

如何入门智能车?


智能车竞赛涉及自动控制、机电设计、电机驱动、信息通信等多个领域,那么应该如何快速入门呢?

智能车车的第一步是确定硬件配置。用什么微控制器,是常用的K60,KL26还是性能更好的K64,K66?常用的型号网上成熟的中文的资料较多也有不少第三方的资料支持。性能更好的产品带来更多的挑战,比如说要看英文的手册,但也可以运算更快,实现更复杂的算法。如果选择的微控制器带有FPU(Float Point Unit,浮点运算单元) ,则对于存在着大量浮点运算的平衡组就更好不过啦。

确定微控制器之后就要学习如何应用微控制器了,学习的方法和渠道有很多。我个人建议先用各类库学习上手,实现基本功能后看着Reference Manual学习寄存器操作。虽然现在半导体厂商大都提供官方的SDK或者库文件,但是学习寄存器操作也是很重要的。在确定型号之后,就要去实现具体功能了,比如说让线性CCD能采集到收据(GPIO和ADC),能采集到陀螺仪加速度计的数据(SPI或I2C或ADC)。然后让电机转起来(FTM产生PWM),让电机转起来之后为了实现闭环控制还需要对转速进行测量采集啊,这就需要对旋转编码器数据进行采集(FTM或LPTMR)。

这些基本功能实现了之后,咱们得让他们按照一个相对固定的运行时序工作,这就需要使用定时中断了(PIT)。如果想看看运行过程中的一些数据,常用的就是蓝牙模块,这就需要用到微控制器里的串口了(UART)。另外做摄像头的同学最好再看一下中断嵌套和中断优先级。当然,各种IDE工具也要学着用了啊,什么CodeWarrior、IAR、MDK、KDS(Kinetis Design Studio)之类的,找个自己喜欢用的、用着顺手的。

接下来就是做硬件的同学重点关注了。硬件要学习的东西比较杂,也比较细,首先要了解器件。电容大伙儿都知道,那么电容有哪些分类?钽电容和其他的电解电容有什么区别,适用于哪些场合?这些都是需要了解的。类似的还有电感、电阻。对于器件还需要关注电气性能,需要查阅手册了解工作电压,工作电流和典型电路设计。关于这些本书前面的章节有了很好的介绍,资深工程师凤姐介绍的很详细了,下面我就继续说顺序和思路。

了解好最基本的电阻、电容、电感后,就可以看看常见的稳压芯片。稳压芯片要结合着其他功能模块一起看,比如说选用的微控制器的供电电压是多少,线性CCD的供电电压是多少,为什么有的人会在OLED的信号线上串联20-50Ω的电阻等等,这些都是要结合具体的外设进行设计的。与此同时要注意看功耗即最大输出电流,因为稳压芯片的输出能力是有限的,一个稳压芯片能给几个外部设备几个功能模块供电,是需要进行计算和留有余量的。

对于一个硬件工程师来说,焊接是基本功。如果焊接不过关,那么后面就会有很多奇奇怪怪的问题,比如说虚焊,这里借用超哥的一句话:“虚焊是万恶之源”。当然短路就更要避免了。

对于刚刚入门的硬件来说,最好不要直接就画PCB板子。如果能用洞洞板(也有人叫万用板)手焊一些板子出来用用,会对后续的学习比较有帮助。因为在这个过程中即练习了焊接技术,也对电路板的设计有了更感性的认识。其实硬件的同学在很大程度上充当着定方案的角色,但这个并不是绝对的。因此需要做硬件的同学广泛的了解不同芯片,传感器的异同和优缺点。在了解好各个功能模块的供电和设计好电源管理之后,就可以进入硬件电路中比较大头的部分了,电机驱动的设计。

电机驱动一般有两种方案,集成芯片构成H桥和分立器件构成H桥。对于H桥的概念以及这两种方案的具体区别,本书都有具体介绍,这里就不在赘述了,分立器件构成的电路在其他工程领域内应用的还是挺多的,建议还是仔细研读研究一下。对于传感器,平衡车中常用的姿态传感器,旋转编码器以及循迹传感器(线性CCD,摄像头,电磁传感器)的接口接口电路也要有所了解。电磁传感器的基本原理和放大方法也是很重要的一环。

在这里还有必要学习一下运算放大器的知识,比如说什么叫增益带宽积啊,是不是轨到轨运放啊。在学习上述内容的时候,其实就可以开始学习如何用EDA工具进行PCB板的绘制了,常用的工具有Altium Designer,Cadence,PCB的绘制中的细节,本书也有介绍。如果是刚入门的电路,还是建议自己在洞洞板上搭一下验证一下再去画PCB,且不说如果打样回来电路不能用浪费钱,就是这个电路不能用这个事儿就挺闹心的。画PCB的时候也可以了解一下PCB制板的工艺流程,相信这些知识也会让你受益匪浅。

硬件电路中少不了需要调试,最常用的两个助手就是万用表和示波器。万用表使用时有几个点想提醒一下,电压档和电流档的接头是不一样的,用完后最好及时恢复常用状态。另外一点是蜂鸣档的使用,蜂鸣档可以用来简单的判断的通断,但是这不是判断问题根源的绝对因素。因为蜂鸣档是当阻抗低于某一数值就会发出鸣叫,最好的判断短路的方法还是打到电阻档看阻抗。

示波器的使用也不用多说,看信号看波形的助手,但是示波器测量电压并不是很准。另外用示波器的时候注意看清楚用的是直流档还是交流档。无论是我们自己用洞洞板焊接出来的电路,还是外出PCB打样的PCB板,在第一次上电时建议分区域分功能焊接并检测。焊接好第一个电源模块后,上个电用万用表测测电压是不是我们想要的,然后一步一步的焊接测试。这样可以最大程度的减少硬件电路的损坏并发现问题。还记得当年我们第一次用沉金工艺的一块电路板,一回来电源和地线就是短路的,那酸爽简直不敢相信。另外关于车模的搭建,智能车制作论坛上有很多往届参赛车模的照片,第一次搭建可以先仿制结构。

我们再看软件部分,负责软件的同学在学会用单片机之后就可以开始学习PID控制技术。智能车是用的是数字PID,学习好了可以在单片机上写写看,看看有没有疑问,接下来就可以尝试在车上进行实验和运行了。在小车的制作过程中,时时刻刻要记得分清主要矛盾和次要矛盾。在绝大多数情况下要先解决有无问题再去解决好坏问题。对于首次在车模实体上进行实验,首先需要解决的是让电机转起来。别的不说,先输出个PWM让电机转起来,并借此记录下来电机运行的正方向。下一步我们就要研习算法让小车站起来了。

平衡车想站起来得先获取姿态倾角,如何获取姿态倾角呢,本书也是有介绍的。在这里想强调一点(敲黑板!划重点!),要确定一个正方向。比如说以小车前进方向为正方向,倾角以向前倾斜为正方向等。正方向的方向可以不一样,但是一定要统一。获取倾角之后就可以利用倾角偏差让车站起来了,简单的PD控制就可以让车站起来。这个PD参数整定的时候建议慢慢来,不要一下子给的很大,这样没准儿电机一猛转就扫齿了。看车有站起来的趋势再慢慢的把参数给大。有时候你调了半天参数还是站不起来,可以检查一下正方向的问题。

在调试过程中要做好防撞保护工作,其实在完成了姿态解算之后就可以加一个最简单的软件保护。简单的说就是一个撞停保护,设定个倾角阈值。阈值要设定两个哟,因为平衡车的倾角在运行过程中是可以变化的,保不齐是向前倒还是向后倒呢。当平衡车的姿态倾角超过这个阈值时关掉PWM的输出,让电机停下来防止电机的疯转使车模受损。

在这里插一句放在这里可能不太沾边的话,如果你调好的车(四轮车也如是),进入运行状态后电机就开始疯转,也许是编码器除了问题,比如说线头虚了或者是编码器坏了。不仅软件上要做保护,硬件和机械上也要做点处理。比方说在车前面加一小块防撞泡沫,在发生撞击时起到一个缓冲的作用。调试的时候也要注意,如果车撞了电机发生堵转,一定要在第一时间过去关掉电源。因为发生堵转时通过电机驱动和电机的电流极大,十分容易将电机或者驱动烧坏。

在十一届比赛的的赛场上笔者就亲眼目睹了两次电机堵转。一次是B车冲出赛道撞到防护泡沫上发生堵转,电机驱动冒烟,部分焊锡融化,及时将电源关闭后还能正常使用。另一次的结果就比较伤感了,C车撞击到障碍上,车手没有及时的去将电源关掉(可能是期待车模能蹭过去),然后就看着C车小电机里面各种嘣火花、冒烟,等参赛队员再次发车时发现,电机不转坏掉了。记得笔者最初对车模进行调试时甚至在小车上帮了一根绳子,最终放开手脚把绳子解掉还是拿到了分区赛预赛资格。

总之,智能车的制作需要循序渐进、一步一个脚印的,开始的时候可以多搜集和阅读资料、了解前人的经验。开始做车时要从简到难,制定好计划,在基本的硬件和软件完成后,就是不断调试和优化的过程了。整个过程中涉及的细节很多,多和他人交流、多主动学习,避免闭门造车。

 

相关图书


智能车大赛获奖作品作者联合打造!全国大学生智能汽车竞赛指导用书,智能车制作网站鼎力打造的原创作品!提供工程源文件!智能车制作权威指导书,引领无数学子成功参加比赛。

 

图书赠送


您若是教师,可按以下方式申请图书
(1)关注「人工智能科学与技术」公众号,将本篇文章分享至朋友圈;
(2)填写申请表:打开「人工智能科学与技术」公众号菜单栏,点击 「图书」→「图书申请」进入申请表。
(3)申请人须是普通高校教师并担任所申请样书对应课程,申请表中需要上传相近课程的教学大纲证明身份。

您若不是教师,可按以下方式图书抽奖
(1)关注「人工智能科学与技术」公众号,将本篇文章分享至朋友圈;
(2)打开「人工智能科学与技术」公众号对话框界面,输入文字“抽奖”,系统会弹出抽奖二维码;
(3)长按二维码参与抽奖即可,获奖者请于开奖当日2020年06月22日填写邮寄地址。(抽奖有效期截至2020年06月22日20:00)
注:图书申请长期有效;由于库房变动,图书将于7月初陆续寄送。

 

大咖联袂


  • 樊越骁——当年智能车制作论坛名人凤姐,在硬件设计、开关电源方面极富工程经验,现任职于江苏某科技公司
  • 佟超——北京科技大学智能车领队之一,硬件功底深厚,常年活跃在智能车论坛帮助大家解决问题;
  • 单超群——最早加入智能车论坛管理团队的成员之一,现任职于深圳某科技公司,在程序设计开发方面积累了丰富经验;
  • 王盼宝——于2007年创办了智能车制作论坛,现为哈尔滨工业大学智能车创新俱乐部指导老师;
  • 朱葛峻——毕业于中南大学,曾是学校智能车协会副会长,现就职于国核电力规划设计研究院有限公司;
  • 曹楠——历任第七届至第九届南京师范大学平衡团队队员领队,现任职于恩智浦半导体;
  • 渠占广——毕业于厦门大学,现任职于华为公司,曾获智能车竞赛国家一等奖;
  • 萧英喆——太原理工大学晋豹智能车队的指导老师,带领学生屡获智能车竞赛国家奖项。

标签:竞赛,电机,控制算法,硬件,智能,PCB,车模,文末
来源: https://blog.csdn.net/zhuoqingjoking97298/article/details/106907711

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有