2022年基于Labview的智能小车控制平台.docx

上传人:Che****ry 文档编号:12904710 上传时间:2022-04-26 格式:DOCX 页数:27 大小:939.66KB
返回 下载 相关 举报
2022年基于Labview的智能小车控制平台.docx_第1页
第1页 / 共27页
2022年基于Labview的智能小车控制平台.docx_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《2022年基于Labview的智能小车控制平台.docx》由会员分享,可在线阅读,更多相关《2022年基于Labview的智能小车控制平台.docx(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品学习资源基于 Labview 地智能小车掌握平台摘要:该课程设计是基于Labview 地智能汽车掌握平台,该平台建立在飞思卡尔单片机及51 单片机掌握芯片基础上,基于Labview 仿真 .采纳无线掌握小车转向,加速,刹车系统.该设计是测控专业集单片机掌握,电路,软件编程于一体地平台练习,是集测控专业所学地一门综合提高同学素养地课程设计.关键词: Labview智能汽车 飞思卡尔单片机测控Abstract: the course is designed based on the intelligent vehicle control platform Labview, this platf

2、orm based on SCM and 51 single-chip microcomputer control freescale Labview, based onthe chip. Using radiocontrol car accelerated, braking system, steering. This design is aprofessional sets single-chip microcomputer control, the control circuit and the software programming in one of the platform, w

3、hich is a professional knowledge of measurement to improve students comprehensive quality of the course design.Keywords: intelligent vehicle freescale microcontroller measure-control Labview一、 单片机系统地组成1. 改装缘由:(1):市面上地嬉戏方向盘都是USB 通信协议,用户不明白协议内容,无法用于自己掌握要求 .( 2 ): USB 通信优势虽然特别明显,但由于其协议复杂,且受其通信距离限制, USB

4、 信号一般只能在几M 地传输范畴内,较串口较短,因此挑选了简易可行欢迎下载精品学习资源地串口协议 .2. 设计步骤:( 1 ):明白内部工作及传感原理.拆开嬉戏方向盘,结果发觉传感原理特别简洁,仅靠变阻器和按键传递掌握信号.( 2):使用一款自己熟识地单片机(AT89S52)依据硬件电路接口电路设计自己地硬件掌握电路板卡 .其中包括方向盘指挥输入部件和与PC 机通信地串口通信模块.(3):编写自己地用户应用程序,创建自己和PC 地通信协议,发挥软件编程地敏捷性 .3. 硬件原理图说明:( 1 ) : 核 心 控 制 芯 片 选 用AT89S52, 其各接口使用情形如下图所示:0834_DI 、

5、 0834_DO 、 0834_CLK 、0834_CS 用于 AD 采样地接口 .图7核心掌握芯片 89S52( 2)AD 转换及采样接口电路说明:采样电路地等效电路图图所示:欢迎下载精品学习资源图( 8) AD 转换油门和刹车: 注:刹车和油门地机械结构将脚下力转换为对应变阻器地阻挡变化,只需采样阻值大小即可判定力地大 小 . 经 测 量 知 : 刹 力 越大 , 电 阻 值 越 小 . 图( 9)油门和刹车等效图接口 3、4 之间接到游戏方向盘地刹车掌握变阻器两端,相当于接一可变电阻.接口 1、2 之间接到嬉戏方向盘地油门掌握变阻器两端,相当于接一可变电阻.AD_Brake 和 AD_T

6、htottle 用于 AD 采样油门和刹车地模拟信号,R18, R19 用于采样时分压 .方向盘:方向盘地转向信号仍是模拟信号,用AD 采样之后即可判定转动方向及幅度 .接口地 1、2、3 分别对应于三端滑动变阻器地三个端子.图( 10)方向盘等效电路左转时 1、2 之间电阻逐步变小, AD_L 地分压将逐步变大 .右转时 2、3 之间地电阻逐步变小,AD_R 地分压将逐步变大.AD 转换电路图:AD 芯片使用地是 TI 公司地一款欢迎下载精品学习资源8 位 4 通道串行 AD 芯片,正好满意要求 .与单片机地接口为SPI 地接口,详细说明和使用请参考芯片资料里地TLC0834 使用范例文档,

7、也可参考该芯图 ( 11) AD转 换 电 路片 厂 商 供应 地 技 术 文 档, 内 含 具 体操作时序 .图( 12)按键电路( 3)按键接口硬件说明按键地设计依靠于详细地硬件结构,在此给出说明 .下图为按键地设计原理(并非实际电路), 由于嬉戏方向盘上按键单独设计已经由机械结构确定,故在主掌握板上只是留出对应接口(J)即可 .分布在方向盘地各个按键小板原理图如下所示(GND 、KEY1 KEYn为留出地插槽)该嬉戏方向盘上共计有19 个用户按键使用(包含最中间地复位按键),详细排列如下.图( 13)按键小板对应于嬉戏方向盘上5、6、7、8、9、10、11、12和中间地 cruise(我

8、们设为复位键)地按键.见下图:图 ( 13 )方向盘按键对应于对应于嬉戏方向盘上UP 、 DOWN 、 LEFT 、RIGHT 地按键 .见下图:图( 14) UP、 DOWN 、LEFT 、RIGHT 地按键对应于对应于嬉戏方向盘上1、2、 3、4 地按键.见下图:欢迎下载精品学习资源对应于对应于嬉戏方向盘上左右两个地按键,在此设为中断按键,便利用于处理实时信息.见下图:另外由于单片机资源较多,仍有余外地IO 口 6个,在此引出以便于扩展外部功能.见下图:(4)振动器驱动硬件电路为增强嬉戏者地手感,嬉戏方向盘上有两个振动器,在此给出驱动电路图及说明如下:三级管在此既作为单片 机掌握地开关,又

9、充当功率 放大地角色 .只需给Mor1 、Mor2给出高电平即可驱动负载,低电平断开.图( 15)驱动电路( 5)在系统编程接口现今单片机一般都支持ISP(在系统编程),这样大大便利了单片机开发用户,在此也引出了 ISP 地接口规范,供参考如下:该款下载线使用地是网上 特别流行地USBASP ,支持USB 下载和供电双功能,并且可以同时下载AT89s5x 和AVR单 片机 Atmage16 , 详欢迎下载精品学习资源细可以参考网上相关资料.图( 16)系统编程图6 串口通信硬件说明为了满意串口传输地电平规范 , 在 此 需 要 设 计 电 平 转 换 电路,电路原理来源于Maxim 公司欢迎下

10、载精品学习资源地max232 芯片说明文档 .图( 17)串口通信电路选用主要材料清单: 注:材料清单中元件除发光二极管以外均要求贴片封装. 型号封装数量厂商说明AT89S52TQFP4412A TMEL单片机TLC0834SOP-1412TI8位串行 AD 转换芯片MAX232SOP-1612MAXIM串口电平转换芯片7805LM7805TO-22012ST5V电源稳压芯片90138050SOT232430NPN三极管有极性贴片钽电容 1uF, 10uF1206有极性贴片电容二、Labview 掌握平台地设计1. 基本界面组成欢迎下载精品学习资源( 1) 串口 1:用于连接单片机和PC 机,

11、作为方向盘数据传送地枢纽.( 2) 串口 2:用于连接 PC 机和无线传输模块,主要是给小车发送相关地数据,实时调整小车地状态 .(3) ) 显示控件:本次设计至少需要显示四个参数,方向(Direction )、转角( Angle )、速度( Speed)、刹车( Brake) .(4) ) 全局变量、美化界面相关控件.2. 串口 1 地协议:(1) ) PC 机先往 51 单片机发送字符 “1,”作为 51 单片机开头发送数据地命令.(2) ) 51 单片机发送地一帧数据格式应为:Dx Ax3x2x1 Bx2x1 Tx2x1 S x x x x x: 表示数据,范畴为0 256,与 ASCI

12、I 码表一一对应 .(3) D 为方向标识符,后面紧跟地数据必需为0 或 1(对应地十六制数为30H 和31H ) .0 为前进, 1 为后退,默认为 0.(4) A 为方向标识符 ,后面紧跟地第一位数是左右转标识符,取值为0 或 1,为为右转, 1 为左转 .其次、三位分别为转角(Angle )地十位和个位,取值范畴为0 60.(5) B 为刹车标识符,后面数据地第一、二位分别为刹车(Brake)值地十位和个位,取值范畴为 0 30,即把刹车档分为了30 档.(6) T 为油门标识符,后面数据地第一、二位分别为速度Speed值地个位和小数点后地第一位,取值范畴为0.0 3.0.(7) ) S

13、 为传送到小车单片机地标识符,用于PC 机识别该信息后向串口2 发送由 51 单片机读取到地 AD 值.(8) ) S 后面地数据均由单片机得到地AD 值,详细范畴见串口2 地协议 .3. 设计思路依据制定地协议要求:小车发送上来地数据严格遵守肯定地数据格式,在实际数据前面都有一个标识符:D 为方向, A 为转角, B 为刹车, T 为油门,因此在Labview中就必需判定发送上来地字符(串口每次只能发送一个字符内容)中是4 个地哪一个欢迎下载精品学习资源标识符,后面紧跟地数据便是需要送给程序处理地.依据以上分析,在Labview 地程序设计中采纳并行程序地处理方式,判定从串口1 送上来地数据

14、应当送到哪个控件上显示,单片机再发送标识符S,PC 机收到此信息后便把处理后地数据送到串口2,把相关地数据送到小车上,小车依据收到地信息做出相应地决策 .传送完一帧数据后开头下一帧数据地处理,不断循环执行.4. 界面程序图图( 1) 串口 1 和串口 2 初始化欢迎下载精品学习资源图( 2)方向 D 处理程序图( 3)转角 A 处理程序欢迎下载精品学习资源图( 4)刹车 B 处理程序图( 5)油门 T 和串口 2 处理程序欢迎下载精品学习资源5. 前面板模型图( 6)智能小车掌握面板显示图欢迎下载精品学习资源三、智能小车地掌握原理1. PC 机 Labview 程序与小车通讯协议(1) 、方式

15、 ::PC 机 Labview 程序通过无线串口与小车通讯.(2) 、系统串口协议内容:1、当 PC 机接到小车单片机发送地信号“ 1(”数据类型为 unsignedchar)时, PC 机便开头发送一帧数据,此时PC 机地 Labview程序一次性给小车发送四个数据,发送完毕后直到小车下一次发送回来地信号“1”时才再发数据 .例如发送地数据为:0 35 70 -48分别代表:前进 /后退 油门 刹车 方向盘转角(留意次序不能变)(3) 、数据说明如下:前进 / 后退( DirectionFlag ): 0 表示前进, 1 表示后退(数据类型为unsigned char型),只有两种状态 .油

16、门 ThrottleData :数据范畴 0127, 0 表示小车速度为0, 127 表示速度为 3.0m/s,线性递增(数据类型为unsigned char 型,共 128 档.刹车 BrakeData :数据范畴 0127,0 表示未踩刹车板,小车速度为当前速度,127表示刹车板踩究竟,小车停止(数据类型为unsigned char 型) .方向盘 AngleData :数据范畴 -6060 ,-60 表示小车左转60 度, 60 表示右转 60 度,即左负右正, 0 表示正中间,小车未转向(数据类型为char 型) .2. 小车模型(1) 小车模型简介模型车尺寸:四轮驱动,长宽高为 27

17、017096(单位: mm) 电机参数为: DC 7.2V ND380舵机参数为: IPS017 伺服器电池参数为: 7.2V 2000mAh(2) 核心芯片采纳飞思卡尔公司生产地16 位单片机 mc9s12xs128 作为主控芯片 .欢迎下载精品学习资源图( 18)小车图片(3) XL105-232AP2无线模块简介PC 机与小车通讯用无线串口XL105-232AP2.XL105-232AP2是 UART接口半双工无线传输模块,内置天线,体积小巧,适合100 M内地无线通讯连接. 模块工作在2400-2483MHz公用频段 .XL105-232AP2地各项参数如:串口速率、工作通道、产品ID

18、 等相关参数可以通过软件设置.图( 19)无线串口 XL105-232AP2图片3、系统框图说明:1. 为了保证数据能够有条不紊地在51 单片机、 PC 机、飞思卡尔单片机间正常地通讯, 必需有相应地和谐信号,统一采纳发送信号“1”来识别是否发送一帧数据.2. 本次课程设计需要采纳双串口通讯,对于笔记原来说需要两个USB 接口,其中一个转换成 RS232 串口,另外一个接无线传输模块.欢迎下载精品学习资源方向盘按键(前进、后51 单片机IOIOAD 转换油门、刹车、左右方向欢迎下载精品学习资源串口 1 发送串口 1 接收PC 机发送信号欢迎下载精品学习资源图( 20)系统框图附录 1:飞思卡尔

19、智能小车程序/Main module of MKCAR摩垦智卡欢迎下载精品学习资源#include /* common defines and macros */ #include /* derivative information */ #includestdio.h#includestdlib.h #includemath.h#pragma LINK_INFO DERIVATIVE mc9s12xs128b/ system & inits系统及初始化 /#define SYNE_SETTING 4#define REFDV_SEETTING1/ PLLCLK=2*OSCCLK*SYNR+

20、1/REFDV+ 1busclk=40M#define delay _asm nop ;#define ENSPDTEST TIE_C2I = 1;#define DISSPDTEST TIE_C2I = 0;#define ENPIDPITINTE_PINTE0=1;#define DISPIDPITINTE_PINTE0=0;#define MOTORFORWORD PWME_PWME3=0;PWMCNT01=0 ; PWME_PWME1=1 ; #define MOTORBACK PWME_PWME1=0;PWMCNT23=0 ; PWME_PWME3=1 ;#define CARSTO

21、PPWME=0 ;#define MAXSPEED 128 unsigned int Receive=0 ;unsigned int ReceiveFlag=0 ;float speed,Throttlespeed,Brakespeed;unsigned char Cardata5,PreCartata5 ;void init_sysbyte p1,byte p2init_CRGp1,p2 ;init_interupt ;init_port ;init_motor ;init_servo ;init_PIT ;/user i/o串行通信函数,用于调试/ char strDisp80=hello

22、n;/*-串口初始化 */void SciInitunsigned int bd ;bd=unsigned int80000000UL/* OSC freq */ / 2 / 9600 /* baud rate */ / 16 /*factor*/;欢迎下载精品学习资源bd+ ;SCI0BDH = unsigned charbd8&0x00ff;SCI0BDL = unsigned charbd&0xff; /unsigned char128000000UL /* OSC freq */ 2 / 19200 /* baud rate */ / 16 /*factor*/;SCI0CR1=0 ;

23、/*normal,no parity*/SCI0CR2=0X2C ;/*RIE=1,TE=1,RE=1*/SCI0CR2=0X08 ;/*发射端程序 - 单字节发送 */ void SciSendunsigned char text/ unsigned char a;/temp=SCI0SR1 ;/*clear flag*/* for ; a=SCI0SR1 ;if a&0x40=0x40 break;*/while .SCI0SR1&0x80; /* wait for output buffer empty */ SCI0DRL=text ;/*-接受部分 unsigned char 型数据

24、 */ char SciReadvoid/unsigned char temp ;unsigned char result;/temp=SCI0SR1 ;/clear flag while.SCI0SR1&0x20;result=SCI0DRL ;return result ;/*wsl*/ void mkTasksvoidbyte iSpdCar=1 ;static int bDir=1 ;float recd_T_speed,recd_B_speed; /接收到地速度值DisableInterrupts ;init_sysSYNE_SETTING ,REFDV_SEETTING;SciIn

25、it ;EnableInterrupts ; StartSpeedTest;/ speed pid action for ; 欢迎下载精品学习资源whileReceiveFlagReceiveFlag=0 ;/前进和后退掌握 / ifCardata0.=PreCartata0if unsigned intCardata0=0x30 MOTORFORWORD; else MOTORBACK;/油门和刹车掌握 / Throttlespeed=floatCardata1*10/MAXSPEED*0.3;SetCarSpeedThrottlespeed;ifunsigned intCardata20x

26、50 CARSTOP;/方向盘掌握 / ifCardata3.=PreCartata3ifunsigned intCardata3=0x3cPWMDTY67=3750+unsigned intCardata3*30;elsePWMDTY67=3750-256-unsigned intCardata3*30;strcpyPreCartata,Cardata;/*程序起点 main*/ void mainvoidmkTasks;/中断程序区 / #pragma CODE_SEGNEAR_SEG NON_BANKEDvoid interrupt 20 sci_interruptvoid/ seria

27、l com interrupt/ not usedCardataReceive=SciRead ;+Receive ;ifReceive=4 Receive=0; ReceiveFlag=1 ;SciSend1;欢迎下载精品学习资源#pragma CODE_SEG DEFAULT 附录 2: 51 单片机程序#include#include #include#define uchar unsigned char #define uint unsigned int sbit mor1=P12 ;sbit mor2=P13 ;sbit key_int0=P32 ;sbit key_int1=P33

28、 ;sbit key_1=P00 ;void clkvoid ;uchar tlc_0834uchar ch ;void send_byteuchar c ;void init_uartvoid ;void delayuint ms ;void SendInformation ;void SendDirection ;void SendAngle ;void SendThrottle ;void SendBrake ;void SendToXS128 ;sbit adc_clk=P16 ;sbit adc_di=P14 ;sbit adc_do=P15 ;sbit adc_cs=P17;uch

29、ar CanRecive=0 ;uchar BrakeData,ThrottleData,DirectionData ;/ 四个需发送信息 .uchar BrakeDataTemp,ThrottleDataTemp , uchar AngleData1,AngleData2;char AngleData;/ 发送到 XS128 地数据 /throttle: 油门( 0 127)/brake: 刹车( 0 127 )/anlge: 转角( -60 60 )char throttle=60,brake=0,angle=-45 ;union serils_floatfloat var_float ;

30、uchar var_char4 ; ;void mainfloat f=124.75 ;欢迎下载精品学习资源while1mor1=0 ;mor2=0 ; /关振动器init_uart ;EA=1 ;EX0=1 ;EX1=1 ;IT0=1 ;IT1=1 ;BrakeDataTemp=tlc_08340 ; /第0通道采集为刹车地数据.BrakeData= uchar 0.359*BrakeDataTemp-42 ;brake= uchar 1.512*BrakeDataTemp-42 ;ThrottleDataTemp=tlc_08341 ; / 第2通道采集地油门数据 . ThrottleDa

31、ta= uchar 0.359*ThrottleDataTemp-42 ;throttle= uchar 1.512*BrakeDataTemp-42 ;AngleData1=tlc_08342 ; /第三和第四通道共同采集方向盘转角信号.,. AngleData2=tlc_08343 ;AngleData= char AngleData1- AngleData2 ; / 范畴为 -60-60.angle=AngleData ;SendInformation ;欢迎下载精品学习资源uchar tlc_0834uchar ch /ch 为要挑选地通道uchar j,p,s;p=0;switchc

32、hcase 0:s=0x0c;break;case 1:s=0x0e;break;case 2:s=0x0d;break;case 3:s=0x0f;break;default: s=0x0c ;break;adc_clk=0 ;adc_di=0;adc_cs=1;adc_cs=0;forj=4 ; j=1 ;j-/ 起始和通道挑选信号,此时上升沿写入数据.clk ;adc_di=s&0x08 ;欢迎下载精品学习资源s=s1;clk ;clk ;adc_clk=1 ;forj=0 ; j8 ;j+/ 此时下降沿读取数据p=p1|adc_do ;clk ;forj=0 ; j0x7b p=0x7

33、e ;ifp0x77 p=0x7e ;ifp0x7d p=0x7d ;/规定采样上下限分ifp0x7d p=0x7d ;/规定采样上下限分别为0x4ifp0x43 p=0x42 ; ;break;default: break ;欢迎下载精品学习资源return p ;void clkvoid欢迎下载精品学习资源unsigned char i;adc_clk=0 ; fori=0 ;i2 ;i+ ;adc_clk=1 ; fori=0 ;i2 ;i+ ;void init_uartvoidTMOD=0x20 ; / 定时器 1为方式 2,波特率发生器SCON=0x50 ; / 答应串行接收,串口

34、于方式1, 8位,可变波特率TH1 = 0xFD ; /9600 波特率, 11.0592MHZTL1 = 0xFD ;PCON = 0x00 ;EA = 1 ;ES = 1;TR1 = 1 ; /start T1 TI=0 ;void UARTInterruptvoid interrupt 4 /串口中断服务子程序uchar CharTemp;ifRICharTemp=SBUF ;ifCharTemp=0x31/READY 信号只能是 1,即 0x31CanRecive=1 ;/能够连续接收信息,告知单片机可以发送方向盘信息RI = 0 ;else/send interrupt TI = 0

35、 ;void send_byteuchar c / 发送一字节数据SBUF=c ;/whileTI=0 ;/TI=0 ;void delayuint msuint i,j ;fori=0 ; ims ;i+欢迎下载精品学习资源forj=0 ; j120 ;j+ ;/ 发送方向函数 / void SendDirectionsend_byteD ;/先发送字母 D 让PC机可以识别delay1 ;if1=DirectionDatasend_byte1; delay1 ;if0=DirectionDatasend_byte0; delay1 ;/ 发送转角函数 / void SendAngleuchar shi=0,ge=0;send_byteA ;/发送识别字母Adelay1 ;ifAngleData0send_byte1;表示左转, 0表示右转/假如需左转,就发送1,delay1 ;AngleData=absAngleData;/把转角转换成正数elsesend_byte0;delay1 ;ifAngleData58AngleData=60 ;欢迎下载精品学习资源shi=AngleData/10 ;/分别十位和个位,然后分别发送给 PC机ge=AngleData%10 ;send_byteshi+48 ;delay1 ;shi=0 ;s

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁