1、选择微控制器
常用的主控制器芯片主要有STC 89C52/STC12C5A60S2 (51系列)、ATMEGA16/128(AVR)、PIC16F877(PIC)、MSP430F149(MSP430)、STM32F103VET6(STM32)、EP2C8Q208C8(CPLD/FPGA)、LPC2103(ARM7)、S3C2440(ARM9)等。一般的单片机都可以输出PWM波用来控制电机转速,调节小车的车速和转向。51单片机的PWM输出是使用内部程序模拟出来的(当然部分增强型的51除外),其他系列的单片机如AVR、PIC、MSP430、MC9S系列等等的IC都具有PWM输出功能,只要操作单片机内部的寄存器即可输出不同频率不同占空比的PWM波。另外,比如定时器、中断数量、运行速度等因数也可能会影响到单片机的选型。并不是芯片越高级越好,比如FPGA、DSP、ARM9等用在这个地方很大程度上可以说是资源浪费或者是杀鸡用牛刀---大材小用或说是用错了地方。在这里我推荐大家使用稍微高级的单片机(相对51而言),原因有二:1.功能相应的强大很多,不仅仅是PWM输出功能。有些内部还集成AD转化的接口等,这对于我们来说为设计提供了很多的方便。2.作为学习,51真的是简单得不能再简单了(当然了,还有些是4位的单片机,我们在这不讨论),我们应当抱着追求更多知识的心态,学习和探索高深的宇宙奥妙,要不然你还真的得意忘形会觉得你单片机已经学到家了。
关于单片机的学习,我不得不提几点。
1.不要畏惧:这些不同系列的IC都是人类智慧创造出来的。我们也是人类,不可能我们学不会。学不好的人往往只有两种,一种是方法不对另一种就是不肯花时间,而往往后者占大多数。在学习了51之后,其他系列单片机的学习方法也是相通的,只不过是稍微复杂一些而已。不要只是觉得单片机是个很高深神奇的东西望而却步。好的心态和态度才有好的学习,不信你试试。
2.认清一个事实,不是学了单片机就什么都能做。单片机只是个工具,它的作用不是它有多么多么强大,而是在于我们如何利用它,用它使用在什么方面。一个好的单片机程序编程者,并不一定是那些能够把单片机内部寄存器名称和操作指令都能背得滚瓜烂熟的人。为什么呢?因为我前面说过了,它只是工具,真正使它强大的是你如何编程利用和控制它,也就是要有好的编程思路,并能用程序把你的思路表达出来,这样你才有成为单片机高手的潜质。
话题似乎扯远了,好吧,言归正转。
2、电机的选择
常用的电机一般有3种:直流(减速)电机、步进电机和舵机。在智能车制作中而又前者较为常用。
现在我们要讨论的不是结构和工作原理,主要来说说如何控制改变转向和转速。
直流(减速)电机:利用电压的大小和方向来改变转速和转向。使用PWM电机驱动(下个小节会讲到)来控制电机时,占空比的大小调速实际就是改变电机两端电压的平均大小。至于控制引脚的高低电平使之转向无非就是改变电机两端电压的方向。
步进电机:使用频率来调节转速。改变各相的通电顺序即可改变转速。
舵机:可以不用驱动芯片直接用I/O口控制。控制采用一定频率的PWM波。一般PWM频率为50Hz。高电平时间0.5ms—2.5ms对应舵机转向-90°— +90°。
说到电机的选择,不得不提一点。那就是不管你选择何种电机,都不可能不在加任何控制算法的情况下使小车能够走得很笔直。毕竟生产厂家不可能把电机做得完完全全的一样。而且你在搭小车部件的时候机械结构也不见得做到很完美的程度。认清这一点很有必要,当初我们就是在这上面摔了很大的跟斗。
当然,不只有小车才用得到电机,控制类的题目基本离不开对电机的控制。至于该如何选择电机,请读者自评优劣,谨慎决定。
3.电机驱动的选择
直流电机驱动芯片常用主要有:晶体管或者MOS管搭建的H桥、集成L293、L298N、MC33886、BTN7960B等。使用上一个很大的区别就是工作电流的范围不同。最常用的就当属L298N(双H桥、两路直流、一路步进、双路2A)了。在这我只提思路,至于具体的电路图网上基本都能成片成片的搜索到,我也不敢班门弄斧。
步进电机驱动常用的有:ULN2003/ULN2803(达林顿管)、L297+L298N、TA8435H、THB7128等,还有市面上常见的大功率的驱动模块。有些驱动具有细分的功能,能够使步进电机一个脉冲输入转动很小的角度。电路的原理及电路图在这就不提了。
4、转速的测量
不管使用什么器件,什么原理,最终都基本是靠测脉冲的形式来测量轮子转速。常用的传感器有:霍尔传感器+磁钢、光电传感器+黑胶带、光电传感器+编码盘以及飞思卡尔智能车比赛中常见的测速编码器等。原理不解释,测量转速实质就是测脉冲频率。方法有测频法、测周法、输入捕获等。当然了,这些方法除了可以用于速度的检测之外,还可以计算路程、实现较为精准的拐角功能等。相比霍尔传感器使用光电编码盘精度要稍微高很多。在淘宝上可以买到常用的100线的光电编码盘,价格在20元左右。
5、时间的测量
在题目中一般都对时间有要求。时间的测量常用两种吧:一就是使用单片机内部的定时器定时;二就是使用实时时钟芯片,如DS12C887、DS1302等(只能测量到秒,如果对时间测量要求不高、定时器不够而且I/O口足够的话可以使用此方法)。
6、循迹传感器
循迹基本是黑白线(也有可能是走方格)。常用的传感器主要有:ST188、RPR220、TCRT5000、红外收发管、激光传感器、摄像头等。而又属ST188和RPR220最为常用,在电路设计中电平的转换常用反相器或者比较器。
还有一种,黑线不作为引导线而是边界的情况。如2011年国赛的智能小车。
另外,循迹传感器的布局不要仅局限于使用直线布局方式,应根据实际的要求选择最佳的传感器布局。要是你觉得循迹真的已经不能在无聊了,想像高难度挑战的话建议你可以玩玩复迹,相信一定很爽。
7、壁障模块
附加在小车的基本功能除了循迹之外还有就是壁障。常用传感器有:红外对管/接收头、光电开关(障碍物颜色不同,检测距离有可能不同)、超声波模块(容易受外界干扰,需软件特别处理)等。主要的使用区别就是壁障距离的长度和与障碍物的间距是否可测量等。
8、通讯模块
循迹和壁障也算可以归属于这一类,就是外界物体与小车的通信。如2011年国赛的超车题目,两车的简单通信就可以使用壁障的传感器。不过我这节更想讲的是有线通信和无线通信。
有线方式:简单的导线传输高低电平数据。稍微复杂的还有SPI、IIC、RS232、RS-485总线通信、CAN总线等的通信方式。
无线方式:常用有:无线或网络。网络如果不是应用到项目中就基本用不到。在这就介绍无线模块。常用的模块有:PT2262/2272模块、NRF24L01、CC1100、NRF905、蓝牙模块、zigbee无线网络模块等。这些模块的数据传输距离也各有不同,在电子市场或者淘宝基本能买得到。
9、报警模块
说到报警,自然会想到声光。简单的话可以使用控制蜂鸣器或LED指示灯。为了体现智能化也可以选择语音IC,如ISD2560、ISD4004、MP3模块等。在淘宝上也可以买到订制语言内容的语言芯片。
10、显示模块
常用的有:LED数码管、LCD1602、LCD12864、NOKIA5110、TFT彩屏以及市面上常见的触摸屏等。一般的显示用LCD1602或者NOKIA5110就基本足够了。
11、温湿度传感器
热敏电阻、热电偶、PT100/Pt1000、DS18B20、AD590、DHT11等温度传感器。
湿敏电阻、DHT11、HS1101等湿度传感器。
有些电阻式的传感器可以通过555定时器构成的施密特触发器将电阻的变化转化为频率的变化。
12、AD/DA模块
有些单片机内部会集成A/D或者D/A功能。
常用A/D芯片:ADC0832(8位、双通道、串行控制)、ADC0809(8位、8通道、逐次逼近式、并行)、ADC0804(8位、并行)、 TLC1543(开关电容式、10位、11通道、串行接口)、TLC2543(12位、串行接口、开关电容式、11通道)、TLC5510(8位高速AD)、AD7705(16位SPI接口、1MW超低功耗、2/3通道、1Mksps、DIP16、高精度、超低功耗)、AD7822BA(8bit、2Msps、高速、低功耗)等等。
常用D/A芯片:DAC0832、TLV5618、MAX504(10位串行、600mw)、DAC902u(12bit、165M高速DA)等等。
13、放大器电路模块制作
常用运放及比较器:uA741、OP07(低噪声、高精度、500mW、单路、低噪声、低漂移)/OP27(低噪声、高精度、高、8MHz、单路、低噪声,低漂移)/OP37(TI的精密运算放大器)、TL082/TL084、LM311、NE5532(高速低噪声双运算放大器,有运放之王的美称)、AD620(仪表放大器、高精度低功耗1.3mA、仪表专用放大器)、压控放大器AD603(程控放大器、低噪声、90MHz、低功耗)、AD781(采样保持器、高速、高精度)、LM393/LM339、LM358(低功耗两路运算放大器、可单电源工作)、LM324(这是11年国赛综合测评题中使用的唯一一块芯片,四路运算放大器、可单电源工作)、TBA820M(小功率音频放大器)、OPA842ID(单位增益稳定、低噪声、电压反馈运算放大器)、OPA820ID(宽带、低失真、单位增益稳定、电压反馈运算放大器)、ICL7650 (斩波稳零放大器)、LM386(音频放大器)等等。
除了要做做小信号放大器电路模块,还必须要会滤波器电路设计{列举几个专用的集成芯MAX297CPA(低通滤波器、高速、低漂移)、MAX267(高通滤波器、高速、低漂移)},此外还可以尝试做些音频放大器。
14趋光/火焰检测模块
光敏电阻、光敏二极管、光敏三极管、硅光电池等。参考题点光源跟踪系统。
火焰检测采用红外火焰传感器(检测700到1100nm波长的红外光原理)。参考题灭火机器人。
设计这个的难点就是如何提高抗干扰能力,毕竟日光灯、太阳光等就算得上是一个随处可见的干扰源。此外,在音频信号的采集中,如何抗干扰也十分重要。
15、倾角/角度传感器
倾角传感器:在2007年国赛电动车翘翘板控制题中就有用到,可以参考那年的技术报告选用传感器。
电子罗盘(可以实现精确角度测量)。
16、音频信号检测模块
声音检测:采用驻极体话筒采集信号,将采集到的信号放大,可以根据需要的频率设计滤波器,仅保留有效频率声音。2009年国赛的声音引导系统也很是经典。建议做控制类的童鞋有机会也尝试做做。因为在室内无GPS信号,相信在今后的室内定位发展中,使用声音定位将成为其中的技术之一。
17、I/O口不够用的解决方案
因为有些单片机是DIP40的封装,I/O口资源的确有限,使用两片或以上的单片机未尝不可,现在科技都流行“多核”嘛。另外,可以考虑是否可以使用一些串转并的芯片(比如74HC595、74HC164等)来控制外围器件呢,好像也未尝不可哦。
18、系统控制方案和算法设计
PID算法。增量式的算法、位置式的算法,学会如何用C语言来实现。还有就是PID参数的整定方法也要懂。可以参考水温控制系统、飞思卡尔智能车的设计报告等文档。
先进过程控制策略:模糊控制、模型预测控制、神经网络控制等。
常用的主要还是PID控制算法。
推荐题目:1997年国赛的水温控制系统、2011年国赛高职组帆板控制系统。
19、上位机软件
有能力和兴趣的话可以自己尝试做做手持上位机。另外MFC、Delphi、Labview
等也是不可多得的软件。时间允许的话建议可以学学Labview(入门比较简单)。
20、信号发生
DDS芯片:AD9850(125Mhz、28脚)、AD9852、AD9854等。
ICL8038(用于低频的信号发生)、MAX038(价格较贵,好像、貌似、似乎已经停产,不好买到)。
使用运放产生三角波、矩形波、正弦波的产生原理和电路在电工书上也有提到。
另外用单片机控制DA芯片也可以产生波形。
21、图像识别模块
一般选择使用摄像头,又有CMOS和CCD之分。此外,摄像头的供电电压CMOS一般是+5V可以正常工作。CCD一般正常工作电压是12V。摄像头又有数字和模拟之分,使用片外高速AD可以将模拟摄像头的数据转为单片机所使用的电平信号。但是摄像头的图像处理难度比较大,在电赛中还未出现过。读者若是有兴趣可以参加飞思卡尔智能车竞赛的摄像头组,这对自己的水平也能有很大的锻炼和提高。
22、颜色传感器
图像识别难度确实比较大,但是如果仅仅是区别不同物体的不同颜色,可以考虑颜色传感器。比如TCS3200D。
23、气体或烟雾传感器
烟雾传感器MQ-2 可用于检测CO、CH4等可燃性气体。一般使用是放大滤波比较输出或者AD采样。
还有比如说CO2传感器、CO传感器、酒精传感器等。
24、绘图/仿真软件
Proteus、Multisim、Protel 99 SE、Protel DXP 2004、Altium Designer 10等。前两个主要用于仿真,后三个用于原理图的设计和PCB的制作。在这不得不啰嗦几句,不要过于迷信仿真软件。仿真软件里很多原件都不一定有的,而且你能找到的原件仿真的效果很多时候很现实的结果不太一样。请慎重使用,否则出了错还以为是程序原因,在那反复查找,又浪费时间。
25、一些补充
(1) 电源模块:
①常用的电源稳压模块如±12V,±9V,±5V,3.3V; AMS1117、LM7805/7905、LM7809/7909、LM7812/7912、LM317/337、LM2940、(开关芯片)LM2576等。此外还要考虑若输出需大电流/电压输出时,电源芯片又该如何选用呢。
②可调升/降压电源模块如何制作。
(2) 最小系统:
确定一类自己熟悉的竞赛用的单片机,如C51,AVR,PIC,MSP430,CPLD/FPGA,STM32,凌阳单片机,DSP,ARM7/ARM9等,做一个最小系统,引出所以端口,方便以后扩展使用。
(3) 隔离光耦选用:
6N137(高速光耦10M bit/S)、6N135(1M bit/S)、6N138(100K bit/S)、TLP521、PC817A(线性光耦)、IL420(可控硅型光耦)、HCNR200(线性光耦)等。
(4) 接近开关(探测金属)。
(5) 超声波传感器(测距,避障)。
(6) 加速度传感器 MXD2020EL。
(7) 电流传感器 TBC-XS5系列霍尔电流传感器。
(8) 电压传感器 TBV5/25A系列霍尔电压传感器。
(9) 压敏电阻 14D471K。
(10) LED显示指示。
(11) 矩阵键盘。
(12) 电动小车: 根据不同的场地和题目要求来选择(两驱三轮、两驱四轮(如坦克车)、四驱车、类似飞思卡尔的车模等)。
(13) 电池:锂电池8V、12V(也有可能用到)。有条件的话可以电机和控制系统分开供电,这样有利于提高系统的稳定性和可靠性。
(14) 如何测量液滴速度、如何测量液位高度等。如2010年浙江省赛的运水机器人运水量的测量就很关键。还有同一年的医院病床输液控制系统。
(15) 注意:
1、以上芯片或者模块价格可能会比较贵,一般都会有公司有免费样片或者评估板可以申请使用。
2、建议平时训练都把模块和程序整理好(比如小系统板等模块),待到比赛时就能直接用上,可以省去很多的时间。这也是取得好成绩的有利法宝。
26、关于论文
可能会有人觉得我们是学技术、编程序、设计电路的,还要花时间和精力来写文档,简直是在折煞生命。也有人在写文档时毫无头绪不知该如何下手,聪明点的小朋友自然不会忘记上网百度一下,你就知道了。在这我想说的是,不要以为这是在浪费青春挥霍生命,要学会写文档更佳者就是要写好文档。一个优秀的工程师都会乐于和别人交流传道,在别人交流的过程中不仅可以使人明智也使自己更佳渊博。而这个交流在这个网络发达的时代已经不仅仅局限于口头,有人出书、有人管理或者勤逛论坛也有人写写博客等等,旨在向后来者指明道路或是接受高人点评(再或者你也可以认为他在装13)。自己的学习是有限的,但大家一起交流学习的力量却是无限的,只有你肯把你的智慧分享与他人,你才能得到更多人的帮助,算不算得上是事倍功半呢。。。
况且以后毕业论文、工作上的项目管理等,对你文档写作的能力也是个不小的考验,趁着年轻,为啥不多多锻炼,难道想少壮不努力老大徒伤悲吗。
平时每做完个题目,不妨写写份技术报告。别忘了,在比赛中报告分的比重也是不小的啊。
27、结语
在此感谢党的精心栽培,感谢这一年多来计测学院赵老师和学长们的指导,谢谢队友刘同学和陈同学的帮助让我们一起风雨兼程的经历了人生中永远无法忘怀的一段时光,感谢仰北514电子协会“焊板专业”的学弟们,另外还要特别感谢学院经费的支持,让我们有条件和经费参与到电子设计当中。不管酸甜苦辣,时光总是向前,人也要向前。今后希望学弟学妹们能再接再厉,为自己和学院争光。
由于本人水平和时间所限,以上内容难免存在错漏。欢迎大家批评、指正、补充,还请高手手下留情切莫拍砖哈。