智能小车总结_第1页
智能小车总结_第2页
智能小车总结_第3页
智能小车总结_第4页
智能小车总结_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

第二届“飞思卡尔杯”智能小车技术总结报告队名:BIT电气二队队员:叶林瓒李文楠学院:信息科学技术学院专业:电气工程与自动化宣言:做到最好2008-9-3第二届“飞思卡尔杯”智能小车1技术总结报告1摘要2第一章:智能小车总体概况31.1概况32.总体结构如图33.作品智能小车如图3第二章智能小车硬件系统设计42.1控制核心DSP电路42.2直流电机驱动模块52.3智能小车路径检测8第三章智能小车软件设计113.1算法描述113.2主程序流程图123.3程序清单14四:总结与体会19五:参考书目19摘要本智能小车采用飞思卡尔公司的56F8013VFDSP芯片作为控制核心,通过红外发射管和接收管识别路径,利用PWM技术控制直流电机的前进速度和方向,硬件电路基于提供的DSP开发板可靠完善,软件采用C语言编程简单明确,经反复调试安装,形成一完整作品,可满足大赛要求。关键词:DSP智能小车路径识别PWM控制技术第一章:智能小车总体概况1.1概况智能小车采用56F8013VFDSP开发板和一块通用板为根底,经焊接相关控制芯片而成,通过I/O口检测信号,输出PWM信号控制直流电机前进停止左转右转。检测信号那么为三组红外发射和接收管,黑线时输出高电平,白线时输出低电平。2.总体结构如图3.作品智能小车如图第二章智能小车硬件系统设计2.1控制核心DSP电路如图输出主要包括:1.6通道PWM模块2.串行通行接口〔SPI〕3.16位定时器4.6通道12位ADC5.26个GPIO智能小车主要利用PWM模块,定时器,GPIO口。2.2直流电机驱动模块直流电机采用H桥控制方案如图通过采用L293D芯片可以到达目的,整体控制方案如图电机有两个分别作为左右轮的驱动,而通过两路PWM输出即可控制一个电机,故共需4路PWM输出。L293D芯片内部结构如图真值表如下当允许信号ENABLE为高时输出才随输入变化,否那么为高阻态,所以焊接时,ENABLE及VS均接VCC。具体控制过程为:通过编程由控制芯片8013经PWM发出驱动信号,PWM输出作为L293D的输入,经L293转换输出控制信号使电机转动,进而带动车轮转动,使小车前进后退。PWM输出信号的上下那么可以控制直流电机转动的快慢,当占空比大时,转速高,占空比小时,转速低,所以当PWM输出占空比为0时可控制电机停止。当左轮停止,右轮转时,小车右转。当右轮停止,左轮转动时,小车左转。而两路PWM输出的正负顺序转换那么可控制电机的正反转,进而控制小车的前进和后退。2.3智能小车路径检测1.路径检测原理路径检测采用红外光电传感器,包括白色的发射管和黑色的接收管。如图根据不同颜色对红外光的反射率不同,白色很高,黑色很低。所以当发射管发出红外光线经白色线时,觉大局部都被黑色管接收,处于导通状态,输出低电平,而红外光经黑色线时,接收缺乏,黑色管无法导通,输出高电平。输出的上下电平经GPIO口接入8013DSP中,通过一定的算法即可判断,从而输出控制信号,控制小车的路径。2.红外传感器电路如图a.红外发射管为二级管,接收为三极管,当接收三级管导通时集电极输出低电平,断开时集电极输出高电平。b.如下图,接收管集电极输出接入比拟器339正极,比拟器负极那么为滑动变阻器的输出,当正极高于负极时,比拟器输出5V高电平,否那么为0V低电平c.比拟器输出那么接入8013DSP的GPIO口,通过读GPIO口的状态即可判断是黑线或白线d.光电传感器都接限流电阻,比拟器输出接上拉电阻。3.检测算法规划根据比赛要求采用三组红外光电传感器即可,排列如图a.小车前两组用于辨识黑色线,使小车能沿着黑色线前进,且两组宽度要恰好,太窄那么同时感应到黑线或白区域,算法不好控制小车能沿着黑色线行走,即易偏离轨迹。太宽那么令小车容易成大S型行走,影响前进速度。当左组光电传感器检测到黑色线时,小车右转,当右组光电传感器检测到黑色线时,小车左转,否那么小车前进,这样即可保证小车能沿着既定的轨迹前进而不篇路。b.第三组位于小车左中间电路板外侧,用于判断黑色线十字交叉口,控制小车的停止,左转或右转,亦可判断小车前进了几个方格。第三章智能小车软件设计软件编程采用codewarrior软件在线编程,C语言模式,通过添加相关“豆子”简单方便。3.1算法描述预赛主要通过定时器定时扫描,GPIO口读入黑白线判断,从PWM口输出驱动信号驱动电机。具体如下定时器定时10ms,中断中断程序读入,三个GPIO口数据,value1,value2,value3,其中value3为底盘左侧信号,为停止转弯信号,value1,value2使小车直走。如果读入value3大于0,那么为停止信号,PWM输出0信号小车停止,定时10秒。否那么假设value1大于0,那么小车右转,输出PWM信号控制小车右转,否那么假设value2大于0,那么小车左转,输出PWM信号控制小车左转。否那么为直线前进,两边输出PWM信号,使小车全速前进。d.决赛阶段考虑到两车PK,小车前进速度优先,故编程时会让小车一直走直线,但我们会在小车前进前方设置干扰装置,破坏对方,除定时停止外,程序根本不变。3.2主程序流程图定时器流程图3.3程序清单主程序:/**###################################################################**Filename:xiaoche1.C**Project:xiaoche1**Processor:56F8013VFAE**Version:Driver01.09**Compiler:MetrowerksDSPCCompiler**Date/Time:2008-8-28,12:22**Abstract:**Mainmodule.**Hereistobeplaceduser'scode.**Settings:**Contents:**Nopublicmethods****(c)CopyrightUNIS,spol.sr.o.1997-2004**UNIS,spol.sr.o.**Jundrovska33**62400Brno**CzechRepublic**###################################################################*//*MODULExiaoche1*//*Includingusedmodulesforcompilingprocedure*/#include"Cpu.h"#include"Events.h"#include"PWMC1.h"#include"Bits1.h"#include"Bits2.h"#include"Bits3.h"#include"TI1.h"#include"PC_M1.h"#include"Inhr1.h"/*Includesharedmodules,whichareusedforwholeproject*/#include"PE_Types.h"#include"PE_Error.h"#include"PE_Const.h"#include"IO_Map.h"voidmain(void){/***ProcessorExpertinternalinitialization.DON'TREMOVETHISCODE!!!***/PE_low_level_init();/***EndofProcessorExpertinternalinitialization.***//*Writeyourcodehere*/PWMC1_Enable();PWMC1_OutputPadEnable();for(;;){;}}/*ENDxiaoche1*//***中断程序:#pragmainterruptcalled/*Commentthislineiftheappropriate'Interruptpreserveregisters'property*//*issetto'yes'(#pragmainterruptsaveallisgeneratedbeforetheISR)*/intvalue1=0;intvalue2=0;intvalue3=0;inttime=0;voidTI1_OnInterrupt(void){value1=Bits1_GetVal();//leftvalue2=Bits2_GetVal();//rightvalue3=Bits3_GetVal();//centenif(value3>0&&time<1000)//stop{PWMC1_SetDutyPercent(0,0);PWMC1_SetDutyPercent(1,0);PWMC1_SetDutyPercent(2,0);PWMC1_SetDutyPercent(3,0);time++;//stop10s }elseif(value1>0)//turnright{PWMC1_SetDutyPercent(0,0);PWMC1_SetDutyPercent(1,0);PWMC1_SetDutyPercent(2,0);PWMC1_SetDutyPercent(3,100);}elseif(value2>0)//turnleft{PWMC1_SetDutyPercent(0,100);PWMC1_SetDutyPercent(1,0);PWMC1_SetDutyPercent(2,0);PWMC1_SetDutyPercent(3,0);}else//go{PWMC1_SetDutyPercent(0,100);PWMC1_SetDutyPercent(1,0);PWMC1_SetDutyPercent(2,0);PWMC1_SetDutyPercent(3,100);}/*Writeyourcodehere...*/}/*ENDEvents*/四:总结与体会 经过两周左右的时间,我们终于完成了小车的制作和程序的编写。制作过程中,我们克服了许多困难,通过参考前人的经验,完成了小车主体的器件分布规划和焊接。期间出现了很多错误,但都被及时发现并纠正了。从中我们体会到前期规划的重要性,在焊之前考虑一下器件的焊接顺序和可能出现的问题,这样在焊的时候才会比拟流畅,布线也比拟

温馨提示

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

评论

0/150

提交评论