智能小车 技术总结报告.docx
- 文档编号:5677941
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:13
- 大小:993.04KB
智能小车 技术总结报告.docx
《智能小车 技术总结报告.docx》由会员分享,可在线阅读,更多相关《智能小车 技术总结报告.docx(13页珍藏版)》请在冰豆网上搜索。
智能小车技术总结报告
智能小车技术总结报告
队名:
BIT电气二队
队员:
学院:
信息科学技术学院
专业:
电气工程与自动化
宣言:
做到最好
摘要
本智能小车采用飞思卡尔公司的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位ADC
5.26个GPIO
智能小车主要利用PWM模块,定时器,GPIO口。
2.2直流电机驱动模块
直流电机采用H桥控制方案如图
通过采用L293D芯片可以达到目的,整体控制方案如图
电机有两个分别作为左右轮的驱动,而通过两路PWM输出即可控制一个电机,故共需4路PWM输出。
L293D芯片内部结构如图
真值表如下
当允许信号ENABLE为高时输出才随输入变化,否则为高阻态,所以焊接时,ENABLE及VS均接VCC。
具体控制过程为:
1.通过编程由控制芯片8013经PWM发出驱动信号,PWM输出作为L293D的输入,经L293转换输出控制信号使电机转动,进而带动车轮转动,使小车前进后退。
2.PWM输出信号的高低则可以控制直流电机转动的快慢,当占空比大时,转速高,占空比小时,转速低,所以当PWM输出占空比为0时可控制电机停止。
3.当左轮停止,右轮转时,小车右转。
当右轮停止,左轮转动时,小车左转。
而两路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口输出驱动信号驱动电机。
具体如下
a.定时器定时10ms,中断
b.中断程序读入,三个GPIO口数据,value1,value2,value3,其中value3为底盘左侧信号,为停止转弯信号,value1,value2使小车直走。
c.如果读入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
**http:
**mail:
info@
**###################################################################*/
/*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();//left
value2=Bits2_GetVal();//right
value3=Bits3_GetVal();//centen
if(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*/
四:
总结与体会
经过两周左右的时间,我们终于完成了小车的制作和程序的编写。
制作过程中,我们克服了许多困难,通过参考前人的经验,完成了小车主体的器件分布规划和焊接。
期间出现了很多错误,但都被及时发现并纠正了。
从中我们体会到前期规划的重要性,在焊之前考虑一下器件的焊接顺序和可能出现的问题,这样在焊的时候才会比较流畅,布线也比较清楚,查错也很容易。
编程是整个小车制作的重点,我们通过对小车电路、比赛规则、外部环境等情况的研究,编写出了相应的程序,经过几次调试最终完成了比赛用程序。
通过编写程序,我们感到了DSP的功能的确很强大而且程序编写也不是很麻烦。
对于这次比赛,很感谢学校和Freescale公司给了我们参与这次比赛的机会,也很感谢实验室的学长的帮助,通过实际操作加深了我们对理论知识的理解和运用能力,相信我们的努力能使我们取得好的成绩。
五:
参考书目
1.FreescaleDSP实验指导书
2.DSP原理及开发技术清华大学出版社东雷著
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能小车 技术总结报告 智能 小车 技术 总结报告
![提示](https://static.bdocx.com/images/bang_tan.gif)