课程设计 智能小车循迹VHDL

合集下载

智能循迹小车课程设计报告

智能循迹小车课程设计报告

智能循迹小车课程设计报告一、课程设计目标:本次智能循迹小车课程设计的目标是让学生了解智能硬件的基础知识,掌握基本电子元器件的原理及使用方法,学习控制系统的组成和运行原理,并通过实践操作设计出一款功能齐全的智能循迹小车。

二、课程设计内容及步骤:1. 调研与分析——首先要对市面上现有的智能循迹小车进行调研与分析,了解各种类型的循迹小车的特点和优缺点,为后续的设计提供参考。

2. 硬件选型——根据课程设计目标和实际需要,选择合适的主控芯片、电子元器件和传感器等硬件。

3. 原理图设计——根据硬件选型,设计出对应的原理图,并在硬件上进行布局与焊接。

4. 程序设计——先在电路板上测试硬件是否正常,随后进行程序设计,根据传感器的反馈控制小车的运动,让小车能够沿着黑线自动循迹行驶,同时加入避障功能和自动寻迹功能。

5. 调试与优化——完成程序设计后,要对小车进行全面验收测试,发现问题及时解决并优化相关程序。

三、设计思路:本次课程设计基于树莓派电路板,利用循迹模块实现小车的自动循迹和自动寻迹。

同时将超声波模块结合避障算法实现小车的自动避障。

小车的外壳采用3D打印技术制作,操作简单实用。

四、课程设计效果:通过本课程设计,学生们从理论到实践,了解了智能硬件的基础知识,掌握了基本电子元器件的原理及使用方法,学习了控制系统的组成和运行原理。

同时,实践操作过程中,学生们培养了动手能力和实际操作的技能。

通过制作一台智能循迹小车,学生们对智能硬件的认识更加深入,并获得了较高的设计满足感。

五、课程设计展望:智能循迹小车是智能硬件应用领域的一项重要发明,具有广泛的应用前景。

未来,可以将循迹小车应用于快递、物流等行业,实现自动化送货、配送。

同时可以将遥控技术与循迹技术相结合,设计出更加高效、实用的智能循迹小车,推动智能化生产和工作环境。

(2024年)智能循迹小车设计

(2024年)智能循迹小车设计
工作原理
通过红外、超声波等传感器感知周围环境信息,将感知数据传输给微控制器进行处理,微控制器根据预设算法控制执行器调整小车行驶状态,实现循迹功能。
4
2024/3/26
随着工业自动化的发展,智能循迹小车在生产线、仓库等场景中的应用需求不断增加。
自动化需求
教育领域需求
娱乐领域需求
智能循迹小车作为教学实验平台,在高等教育、职业教育等领域具有广泛应用前景。
高精度定位技术
30
2024/3/26
THANKS
感谢您的观看。
31
2024/3/26
模块测试
集成测试
仿真测试
实地测试
将所有模块集成在一起进行测试,验证系统整体功能是否正常。
使用仿真软件对智能循迹小车进行仿真测试,模拟实际运行环境。
在实际场地对智能循迹小车进行测试,验证其在实际环境中的性能表现。
21
2024/3/26
系统联调
将硬件和软件集成在一起进行系统联调,确保系统整体运行稳定可靠。
智能循迹小车设计
1
2024/3/26
目录
项目背景与意义系统总体设计循迹算法研究控制系统设计调试与测试项目成果展示总结与展望
2
2024/3/26
01
CHAPTER
项目背景与意义
3
2024/3/26
定义
智能循迹小车是一种基于微控制器、传感器和执行器等技术的自主导航小车,能够按照预定路径进行自动循迹。
电机类型
选用直流电机或步进电机,根据实际需求进行选择。
保护措施
加入过流保护、过热保护等电路,确保电机和驱动电路的安全运行。
17
2024/3/26
18
2024/3/26

循迹小车课程设计报告

循迹小车课程设计报告

循迹小车课程设计报告一、课程设计目标。

本课程设计旨在通过循迹小车的设计与制作,培养学生的动手能力、创新意识和团队合作精神,同时提高学生对于电子技术和机械原理的理解与应用能力。

二、课程设计内容。

1. 理论学习,学生将学习循迹小车的基本原理、电子元件的使用方法、以及相关的机械知识。

2. 实践操作,学生将动手制作循迹小车,并学习如何进行程序编写和电路连接。

3. 创新设计,学生将有机会对循迹小车进行改进和创新设计,提高其性能和功能。

三、课程设计步骤。

1. 理论学习阶段。

在这个阶段,学生将学习循迹小车的原理,包括红外线传感器的工作原理、电机驱动原理等。

同时,学生还将学习相关的电子知识,包括电阻、电容、电感等元件的使用方法。

2. 实践操作阶段。

学生将根据所学理论知识,动手制作循迹小车的电路连接,并编写相应的程序。

在这个阶段,学生将学会如何使用焊接工具、编程软件等工具,培养他们的动手能力和实际操作能力。

3. 创新设计阶段。

在完成基本的循迹小车制作后,学生将有机会对其进行改进和创新设计。

他们可以尝试使用不同的传感器、改进电路连接方式,甚至加入遥控功能等。

通过这一阶段的设计,学生将培养他们的创新意识和解决问题的能力。

四、课程设计评价。

1. 学生的实际操作能力,通过学生对循迹小车的制作和程序编写,可以评价学生的动手能力和实际操作能力。

2. 学生的创新能力,通过学生对循迹小车的改进和创新设计,可以评价学生的创新意识和解决问题的能力。

3. 学生的团队合作能力,在课程设计过程中,学生需要分工合作,可以评价学生的团队合作能力。

五、课程设计实施建议。

1. 提供足够的实践操作时间,保证学生有充分的时间动手制作循迹小车。

2. 强调创新设计的重要性,鼓励学生尝试不同的设计方案,培养其创新意识。

3. 加强团队合作意识的培养,让学生在课程设计过程中学会分工合作、协调沟通。

六、课程设计总结。

通过本课程设计,学生将不仅仅是学习了循迹小车的制作和原理,更重要的是培养了他们的动手能力、创新意识和团队合作精神。

智能小车系统设计(循迹,超声波,遥控)

智能小车系统设计(循迹,超声波,遥控)

<<计算机控制技术综合训练>>任务书年季学期附录:电信学院课程设计报告要求1、设计题目;2、目录;3、本设计的基本原理;4、简要说明本设计内容、用途及特点;5、本设计达到的性能指标;6、设计方案的选择;7、写出各部分设计过程、工作原理、元器件选择;8、绘制图纸(手绘2号图纸);9、设计参考文献;10、附录;11、设计总结体会;12、设计说明书不得少于10000字。

智能小车运行图经过调试,小车完美实现了如下功能1.小车具有无线遥控功能,小车可完成前进、后退、左转、右转等动作,并且可以正确显示当前的速度及行进位移。

2.小车具有循迹及避障功能,实现了舵机转动下的超声波壁障功能,并且可以正确有序显示小车位移、速度及与前方障碍物距离。

3.与其它组的小车模型配合可以完成交替领跑任务。

4.小车所有模式切换均由遥控器控制。

流程图硬件原理图附件一:智能小车系统程序#include <AT89x51.H>#include <intrins.h>sbit AA=P3^0;sbit DD=P3^1;sbit BB=P3^2;sbit CC=P2^2;sbit LCM_RW=P2^4; //定义LCD引脚sbit LCM_RS=P2^3;#define RX P2_0#define TX P2_1#define LCM_E P2_5#define Sevro_moto_pwm P2_7 //接舵机信号端输入PWM信号调节速度#define LCM_Data P0#define Busy 0x80 //用于检测LCM状态字中的Busy标识#define Left_1_led P3_7 //P3_7接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1#define XUNJI_left_led P3_6 //P3_6接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2#define XUNJI_right_led P3_5 //P3_5接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3#define Right_2_led P3_4 //P3_4接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4#define Left_moto_go {P1_4=1,P1_5=0,P1_6=1,P1_7=0;} //左边两个电机向前走#define Left_moto_back {P1_4=0,P1_5=1,P1_6=0,P1_7=1;} //左边两个电机向后转#define Left_moto_Stop {P1_4=0,P1_5=0,P1_6=0,P1_7=0;} //左边两个电机停转#define Right_moto_go {P1_0=1,P1_1=0,P1_2=1,P1_3=0;} //右边两个电机向前走#define Right_moto_back {P1_0=0,P1_1=1,P1_2=0,P1_3=1;} //右边两个电机向后走#define Right_moto_Stop {P1_0=0,P1_1=0,P1_2=0,P1_3=0;} //右边两个电机停转void LCMInit(void); //LCD初始化函数void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);//LCD显示一个字符函数void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);//LCD显示一个字符串函数void Delay5Ms(void); //延时5毫秒函数void Delay400Ms(void); //延时400毫秒函数void Decode(unsigned char ScanCode);void WriteDataLCM(unsigned char WDLCM); //LCD1602写数据函数void WriteCommandLCM(unsigned char WCLCM,BuysC);//LCD写命令函数unsigned char ReadStatusLCM(void);unsigned char code Range[] ="V= cm/s S= . m"; //LCD1602显示格式unsigned char code welcome[] ="=== Welcome === ";unsigned char code key[]="Press any key...";unsigned char code ASCII[13] = "0123456789.-M";unsigned char code table[]="Distance:000.0cm";unsigned char code table1[]="YAO KONG MO SHI ";unsigned char code table2[]="=XUN JI MO SHI= ";unsigned char pwm_val_left = 0;//变量定义unsigned char push_val_left =14;//舵机归中,产生约,1.5MS 信号unsigned int CH0=0; //循迹模式标志unsigned int CH1=0; //超声波模式标志unsigned int t=0; //速度基准变量unsigned int timer=0; //延时基准变量unsigned int time=0;unsigned int pwm=250;unsigned int count1=0; //计左电机码盘脉冲值unsigned char timer1=0; //扫描时间变量unsigned long S1=0;unsigned long S2=0;unsigned long S3=0;unsigned long S4=0;unsigned long S=0;unsigned long V=0; //定义其速度unsigned long SS=0;unsigned char disbuff[4]= { 0,0,0,0,};unsigned char disbuff1[4]={ 0,0,0,0,};void WriteDataLCM(unsigned char WDLCM) //写数据{ReadStatusLCM(); //检测忙LCM_Data = WDLCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0; //若晶振速度太高可以在这后加小的延时LCM_E = 0; //延时LCM_E = 1;}void WriteCommandLCM(unsigned char WCLCM,BuysC) //写指令,BuysC为0时忽略忙检测{if (BuysC) ReadStatusLCM(); //根据需要检测忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;}unsigned char ReadStatusLCM(void) //读状态{LCM_Data = 0xFF;LCM_RS = 0;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;while (LCM_Data & Busy); //检测忙信号return(LCM_Data);}void LCMInit(void) //LCM初始化{LCM_Data = 0;WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,1); //显示模式设置,开始要求每次检测忙信号WriteCommandLCM(0x08,1); //关闭显示WriteCommandLCM(0x01,1); //显示清屏WriteCommandLCM(0x06,1); // 显示光标移动设置WriteCommandLCM(0x0c,1); // 显示开及光标设置}//按指定位置显示一个字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData){Y &= 0x1;X &= 0xF; //限制X不能大于15,Y不能大于1if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;X |= 0x80; //算出指令码WriteCommandLCM(X, 1); //发命令字WriteDataLCM(DData); //发数据}//按指定位置显示一串字符void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData){unsigned char ListLength;ListLength = 0;Y &= 0x1;X &= 0xF; //限制X不能大于15,Y不能大于1while (DData[ListLength]>0x19) //若到达字串尾则退出{if (X <= 0xF) //X坐标应小于0xF{DisplayOneChar(X, Y, DData[ListLength]);//显示单个字符ListLength++;X++;}}}//5ms延时void Delay5Ms(void){unsigned int TempCyc = 5552;while(TempCyc--);}//400ms延时void Delay400Ms(void){unsigned char TempCycA = 5;unsigned int TempCycB;while(TempCycA--){TempCycB=7269;while(TempCycB--);};}/********************************************************/ void Conut(void) //超声波距离计算函数{while(!RX); //当RX为零时等待TR0=1; //开启计数while(RX); //当RX为零时等待TR0=0;time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.7)/10+10;disbuff1[0]=V%10;disbuff1[1]=V/10;DisplayListChar(0, 0, Range);DisplayOneChar(2, 0, ASCII[disbuff1[1]]);DisplayOneChar(3, 0, ASCII[disbuff1[0]]);disbuff1[0]=SS/10%10;disbuff1[1]=SS/100%10;disbuff1[2]=SS/1000;DisplayOneChar(11, 0, ASCII[disbuff1[2]]);DisplayOneChar(12, 0, ASCII[disbuff1[1]]);DisplayOneChar(13, 1, ASCII[10]);DisplayOneChar(14, 0, ASCII[disbuff1[0]]);disbuff[0]=S%10;disbuff[1]=S/10%10;disbuff[2]=S/100%10;disbuff[3]=S/1000;DisplayOneChar(9, 1, ASCII[disbuff[3]]);DisplayOneChar(10, 1, ASCII[disbuff[2]]);DisplayOneChar(11, 1, ASCII[disbuff[1]]);DisplayOneChar(12, 1, ASCII[10]);DisplayOneChar(13, 1, ASCII[disbuff[0]]);}/********************************************************/ void Conut0(void) //循迹模式显示{disbuff1[0]=V%10;disbuff1[1]=V/10;DisplayListChar(0, 0, Range);DisplayOneChar(2, 0, ASCII[disbuff1[1]]);DisplayOneChar(3, 0, ASCII[disbuff1[0]]);disbuff1[0]=SS/10%10;disbuff1[1]=SS/100%10;disbuff1[2]=SS/1000;DisplayOneChar(11, 0, ASCII[disbuff1[2]]);DisplayOneChar(12, 0, ASCII[disbuff1[1]]);DisplayOneChar(13, 0, ASCII[10]);DisplayOneChar(14, 0, ASCII[disbuff1[0]]);}/********************************************************/ void StartModule() //启动模块{TX=1; //启动一次模块_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();TX=0;}/********************************************************/ /*void delayms(unsigned int ms){unsigned char i=100,j;for(;ms;ms--){while(--i){j=10;while(--j);}}}*/void Timer_Count(void) //超声波高电平脉冲宽度计算函数{TR0=1; //开启计数while(RX); //当RX为1计数并等待TR0=0; //关闭计数Conut(); //计算}/******************************************************************** ****///前速前进void run(void){Left_moto_go ; //左电机往前走Right_moto_go ; //右电机往前走}/******************************************************************** ****///前速后退void backrun(void){Left_moto_back ; //左电机往前走Right_moto_back ; //右电机往前走}/******************************************************************** ****///左转void leftrun(void){Left_moto_back ; //左电机往前走Right_moto_go ; //右电机往前走}/******************************************************************** ****///右转void rightrun(void){Left_moto_go ; //左电机往前走Right_moto_back ; //右电机往前走}/******************************************************************** ****///STOPvoid stoprun(void){Left_moto_Stop ; //左电机停走Right_moto_Stop ; //右电机停走}/******************************************************************** ****/void COMM( void ){V=0;push_val_left=5; //舵机向左转90度timer=0;while(timer<=4000); //延时400MS让舵机转到其位置 4000StartModule(); //启动超声波测距Conut(); //计算距离S2=S;push_val_left=23; //舵机向右转90度timer=0;while(timer<=4000); //延时400MS让舵机转到其位置StartModule(); //启动超声波测距Conut(); //计算距离S4=S;push_val_left=14; //舵机归中timer=0;while(timer<=4000); //延时400MS让舵机转到其位置StartModule(); //启动超声波测距Conut(); //计算距离S1=S;if((S2<300)||(S4<300)) //只要左右各有距离小于,30CM小车后退 {backrun(); //后退timer=0;while(timer<=1000);}if(S2>S4){rightrun(); //车的左边比车的右边距离小右转 timer=0;while(timer<=800);}else{leftrun(); //车的左边比车的右边距离大左转timer=0;while(timer<=800);}}/****************************************************/void pwm_Servomoto(void){if(pwm_val_left<=push_val_left)Sevro_moto_pwm=1;else Sevro_moto_pwm=0;if (pwm_val_left>=100)pwm_val_left=0;}/***************************************************////*TIMER1中断服务子函数产生PWM信号*/void time1()interrupt 3 using 2{TH1=(65536-100)/256; //100US定时TL1=(65536-100)%256;timer++; //定时器100US为准。

智能循迹小车

智能循迹小车

智能循迹小车【摘要】智能循迹小车的设计是以MSP430F149单片机为控制核心,利用TCRT5000反射式光电传感器、比较器实现黑线检测,并将检测的信息送单片机分析和处理,单片机根据计算和分析的结果,控制电机的速度及方向,从而实现自动循迹功能。

其中驱动电机由L298N驱动电路实现,速度由单片机输出的PWM实现,并通过单片机内部的AD采样,采样传感器的电压值,根据采集的数据判断小车的行驶状态。

为了实现人机交互功能,设计中增加了LCD和键盘,用LCD12864液晶显示器来显示所检测的黑线状态,按键实现小车的启动和停止。

经测试,智能循迹小车能够自动识别黑线,按照引导线行进,可以左转、右转,也可对测量结果进行实时显示。

达到了预期要求。

【关键字】小车 MSP430单片机 L298N TCRT5000传感器Abstract: The design of intelligent tracking car is based on MSP430F149 microcontroller as the control core ,TCRT5000 reflection type photoelectric sensor is used for comparator implement todetect black line, the information will be sent to microcontroller to analysis and processing,besides, microcontroller according to the result of calculation and analysis control the motor speed and direction, so as to realize automatic tracking function.the drive motor driven by L298N circuit implementation, speed was controlled by PWM output, according to the single chip microcomputer internal AD sampling to collected data so as to judge state of driving cars.In order to reaches interface friendly , the design of LCD and keyboard has been increased in, LCD12864 to display the state of detection by the black line, start and stop buttons to control the car run or not.After testing ,the tracking car can automatically identify the black line, the car can turn left, turn right by it , also may carry on the real-time display of measurement results. The system reaches expected require.Keywords:Intelligent car MSP430F149 L298N TCRT5000 sensor1.方案设计1.1总体方案设计根据题目要求,本系统设计的目标主要包括控制部分,循迹部分,驱动部分,显示部分等组成。

循迹小车课程设计报告

循迹小车课程设计报告

智能循迹小车设计与制作课程设计报告系别:专业:班级:成员:指导老师:时间:二〇一一年6月30日一、设计目的:1、学会智能电子产品的功能设计与任务分析,能进行小型电子产品方案设计;2、掌握基于51单片机、FPGA模数混合硬件系统设计和程序设计;3、熟悉电子信息类企业项目完整的运作过程及管理规范,培养团队协作能力、沟通能力、创新能力和组织能力。

二、智能循迹小车任务分析这是一种基于STC89C51单片机的小车寻迹系统。

该系统采用两组高灵敏度的光电对管,对路面黑色(白色)轨迹进行检测,并利用单片机产生PWM波,控制小车速度。

测试结果表明,该系统能够平稳跟踪给定的路径。

整个系统基于普通玩具小车的机械结构,并利用了小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行三、智能循迹小车循迹原理该智能小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。

利用了简单、应用比较普遍的检测方法—发光二极管+光敏电阻。

发光二极管+光敏电阻,即利用光线在不同颜色的物理表面具有不同的反射性质的特点。

在小车行驶过程中不断地向地面发射白光,当白光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。

四、智能循迹小车总体方案整个电路系统分为检测、控制、显示、驱动四个模块。

首先利用光电对管对路面信号进行检测,经过比较器处理之后,送给软件控制模块进行实时控制,然后显示小车的运行状态,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。

系统方案方框图如图1所示。

图1 智能小车寻迹系统框图五、智能循迹小车各模块方案1、循迹模块设计方案1:用红外发射管:接收管自己制作光电对管循迹传感器。

红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射出的光线则测出黑线继而输出高电平。

课程设计 智能小车循迹VHDL

**大学能源与动力工程学院本科生课程设计题目:智能小车循迹控制系统课程:电子技术专业:测控技术与仪器班级:测控1101学号:**********姓名:****指导教师:****完成日期: 2013年11月26 日目录1、任务及要求 (3)2、整体方案及特点 (4)3、各组成部分的电路结构及工作原理 (4)4、系统硬件电路设计(各模块的硬件连接关系) (9)5、CPLD控制模块内各单元模块的设计 (10)6、CPLD控制模块的顶层电路图 (13)7、系统总装配图 (14)8、实验结果分析 (14)9、调试中出现问题的解决 (15)10、改进意见及收获体会 (15)11、器件与器材 (16)12、使用仪器设备 (17)13、参考文献 (17)一、任务及要求1、课程任务及其功能设计智能小车循迹控制系统(1)小车可完成前进、转向等行驶方式;(2)小车在底盘安装四组红外传感器;(3)系统根据红外传感器提供的信息测算小车与地面深色路径的偏离程度;(4)当小车偏离地面深色路径时自动以转小弯、转大弯的运动方式调整小车的行进轨迹,完成自动循迹的运动方式。

2、设计要求(1)要求用可编程逻辑器件(FPGA/CPLD)设计实现;(2)在实验箱上或印刷电路板上安装、调试出所设计的电路;(3)在EDA编程实验系统上完成硬件系统的功能仿真;(4)写出设计、调试、总结报告。

3、课程设计的时间安排1)方案设计;(1.5天)根据设计任务书给定的技术指导和条件,进行调查研究、查阅参考文献,进行反复比较和可行性论证,确定出方案电路,画出主要单元电路,数据通道,输入、输出及重要控制信号概貌的框图。

2) 电路设计:(2天)根据方案设计框图,并画出各单元电路的详细电路图及总体电路图。

3) 电路仿真:(2.5天)熟悉EDA工具,在EDA软件平台上修改设计的电路,给出正确的仿真结果。

4) 装配图设计:(1天)根据给定的元器件,结合逻辑电路图,设计出电路制作的具体装配图(即绘出组件数量,管脚号以及器件布置的实际位置)。

循迹避障智能小车的实验设计

循迹避障智能小车的实验设计本实验旨在设计和实现一个能够循迹避障的智能小车,通过实践验证其实验设计方案是否可行。

通过本实验,希望能够提高小车的自动化水平,使其能够在复杂的路径环境中自主运行。

循迹避障智能小车:实验所用的智能小车需具备循迹和避障功能。

传感器:为了实现循迹和避障功能,我们需要使用多种传感器,如红外线传感器、超声波传感器等。

电路:实验中需要搭建的电路包括电源电路、传感器接口电路和控制器电路等。

编程软件:采用主流的编程语言如Python或C++进行编程,实现对小车的控制和传感器数据的处理。

搭建电路:根据设计要求,完成电源电路、传感器接口电路和控制器电路的搭建。

安装传感器:将红外线传感器和超声波传感器安装在小车上,并与电路连接。

编程设定:使用编程软件编写程序,实现小车的循迹和避障功能。

调试与优化:完成编程后进行小车调试,针对实际环境进行调整和优化。

通过实验,我们成功地实现了小车的循迹避障功能。

在实验过程中,小车能够准确地跟踪预设轨迹,并在遇到障碍物时自动规避。

实验成功的主要因素包括:正确的电路设计、合适的传感器选型、高效的编程实现以及良好的调试与优化。

在实验过程中,我们发现了一些需要改进的地方,例如传感器的灵敏度和避障算法的优化。

为了提高小车的性能,我们建议对传感器进行升级并改进避障算法,使其能够更好地适应复杂环境。

通过本次实验,我们验证了循迹避障智能小车实验设计方案的有效性。

实验结果表明,小车成功地实现了循迹避障功能。

在未来的工作中,我们将继续对小车的性能进行优化,以使其在更复杂的环境中表现出更好的性能。

本实验的设计与实现对于智能小车的应用和推广具有一定的实际意义和参考价值。

随着科技的不断发展,智能小车已经成为了研究热点之一。

避障循迹系统是智能小车的重要组成部分,它能够使小车自动避开障碍物并按照预定的轨迹行驶。

本文将介绍一种基于单片机的智能小车避障循迹系统设计,该设计具有简单、稳定、可靠等特点,具有一定的实用价值。

课程设计智能循迹小车

课程设计智能循迹小车一、教学目标本课程旨在通过智能循迹小车的制作与编程,让学生掌握基础的电子电路知识、传感器原理以及简单的编程技巧。

在知识目标方面,学生需要理解电子元件的功能,如电机、传感器等,并能够运用编程语言对小车进行控制。

技能目标方面,学生应能够独立完成智能循迹小车的组装,并进行编程调试。

情感态度价值观目标方面,通过课程的学习,培养学生对科技创新的兴趣,增强动手实践能力,并培养团队合作意识。

二、教学内容教学内容将围绕智能循迹小车的制作与编程展开。

首先,学生将学习电子电路基础知识,包括电机、传感器等元件的功能和应用。

接着,学生将学习编程语言,并通过实践操作,掌握如何编写程序控制小车。

最后,学生将进行智能循迹小车的组装和调试,以巩固所学知识。

三、教学方法为了提高学生的学习兴趣和主动性,将采用多种教学方法。

包括讲授法,用于传授电子电路知识和编程技巧;讨论法,让学生在团队中交流想法,共同解决问题;案例分析法,分析实际案例,让学生更好地理解理论知识;实验法,让学生动手实践,提高操作技能。

四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。

教材将提供理论知识的学习,参考书将提供额外的学习资料。

多媒体资料包括教学视频和图片,用于辅助学生理解复杂概念。

实验设备包括智能循迹小车套件、电子元件、编程软件等,让学生能够进行实际操作和编程练习。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分。

平时表现主要评估学生的课堂参与度和团队合作表现,通过观察和记录学生在课堂上的表现来进行评估。

作业方面,学生需要完成一系列与智能循迹小车相关的实践任务,如组装、编程和调试,通过提交作业来评估学生的实践能力。

考试则主要评估学生对电子电路知识、传感器原理和编程技巧的理解和应用,通过书面考试来评估学生的理论水平。

六、教学安排本课程的教学安排将分为10个课时,每个课时45分钟。

前5个课时用于讲解电子电路知识和传感器原理,中间3个课时用于编程技巧的学习和实践,最后2个课时用于智能循迹小车的组装和调试。

智能寻迹小车的课程设计

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊1 引言遂着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。

这种技术促使机器人技术也有了突飞猛进的发展。

单片机技术作为自动控制技术的核心之一,被广泛应用于工业控制、智能仪器、机电产品、家用电器等领域。

随着微电子技术的迅速发展,单片机功能也越来越强大,本设计基于单片机技术在智能寻迹小车控制系统的设计中,以STC89C51为核心,用LG9110驱动两个减速电机,当产生信号驱动小车前进时,是通过寻迹模块里的传感器管是否寻到黑线产生的电平信号通过传感器再返回到单片机,单片机根据程序设计的要求作出相应的判断送给电机驱动模块,让小车实现前进、左转、右转、停车等基本功能,寻白线时,外部环境光线的强弱对小车的运动会产生很大的影响,基于此原因,本实验中的寻迹是指在白色地板上寻黑线。

1.1设计目的1、了解机械部件结构与机械安装过程;2、掌握电动机齿轮箱内部结构及减速原理;3、了解电子元器件的基本形状及焊接过程;4、掌握电子元器件的焊接步骤与检测过程;5、了解单片机内部结构与程序编制方法;6、了解 LED 灯驱动方法,全面掌握流水灯/跑马灯编程技术;7、了解数码管内部结构,掌握数码显示技术;8、了解键盘结构原理,掌握中断查询技术;9、了解话筒电路结构,掌握话筒输入技术;10、了解蜂鸣器驱动技术,全面体现音乐报警功能;11、了解光敏电阻结构原理,充分体现夜间自动照明功能;12、了解红外发射与接收技术,有力体现防撞检测与智能寻迹功能13、了解直流电机驱动原理,掌握电机驱动技术;14、认识红外检测传感器,全面掌握红外遥控编码解码技术;15、了解 R232 通信协议,掌握串口通信技术。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

**大学能源与动力工程学院本科生课程设计题目:智能小车循迹控制系统课程:电子技术专业:测控技术与仪器班级:测控1101学号:**********姓名:****指导教师:****完成日期: 2013年11月26 日目录1、任务及要求 (3)2、整体方案及特点 (4)3、各组成部分的电路结构及工作原理 (4)4、系统硬件电路设计(各模块的硬件连接关系) (9)5、CPLD控制模块内各单元模块的设计 (10)6、CPLD控制模块的顶层电路图 (13)7、系统总装配图 (14)8、实验结果分析 (14)9、调试中出现问题的解决 (15)10、改进意见及收获体会 (15)11、器件与器材 (16)12、使用仪器设备 (17)13、参考文献 (17)一、任务及要求1、课程任务及其功能设计智能小车循迹控制系统(1)小车可完成前进、转向等行驶方式;(2)小车在底盘安装四组红外传感器;(3)系统根据红外传感器提供的信息测算小车与地面深色路径的偏离程度;(4)当小车偏离地面深色路径时自动以转小弯、转大弯的运动方式调整小车的行进轨迹,完成自动循迹的运动方式。

2、设计要求(1)要求用可编程逻辑器件(FPGA/CPLD)设计实现;(2)在实验箱上或印刷电路板上安装、调试出所设计的电路;(3)在EDA编程实验系统上完成硬件系统的功能仿真;(4)写出设计、调试、总结报告。

3、课程设计的时间安排1)方案设计;(1.5天)根据设计任务书给定的技术指导和条件,进行调查研究、查阅参考文献,进行反复比较和可行性论证,确定出方案电路,画出主要单元电路,数据通道,输入、输出及重要控制信号概貌的框图。

2) 电路设计:(2天)根据方案设计框图,并画出各单元电路的详细电路图及总体电路图。

3) 电路仿真:(2.5天)熟悉EDA工具,在EDA软件平台上修改设计的电路,给出正确的仿真结果。

4) 装配图设计:(1天)根据给定的元器件,结合逻辑电路图,设计出电路制作的具体装配图(即绘出组件数量,管脚号以及器件布置的实际位置)。

同时配以必要的文字说明。

5)电路制作:(2天)对选定的设计,按装配图进行装配,调试实验。

6) 总结鉴定:(1天)考核样机是否全面达到现定的技术指标,能否长期可靠地工作,并写出设计总结报告。

二、整体方案及特点1、智能小车循迹总体方案2、设计的思路及其特点在智能寻迹小车控制系统的设计中,以CPLD 为核心,用L298N 驱动两个减速电机,当产生信号驱动小车前进时,是通过寻迹模块里的红外对管是否寻到黑线产生的电平信号通过电压比较器LM339返回到CPLD ,然后CPLD 根据程序设计的要求做出相应的判断送给电机驱动模块,让小车来实现前进、左转、右转、停车等基本功能。

三、各组成部分的电路结构及工作原理1、红外寻迹模块的设计(1)电路结构驱动模块电源模块 红外寻迹模块CPLD 控制模块直流电机寻迹信号左右发射部分接收部分(2)工作原理该系统中的寻线模块我们采用的是红外传感器。

它有一个发射管(白色)和一个接收管(黑色),一般情况下接收管能收到发射管发送的红外光,但当遇到吸光介质(如黑色物体)时接收管便不能收到发射管的红外光。

因为传感器输出端得到的是模拟电压信号,所以在输出端增加了电压比较器LM339,先将输出电压与2.5V进行比较(检测到黑线时输出低电平,发光二极管不亮;检测到白线时输出高电平,发光二级管亮),再送给CPLD处理和控制。

本设计中,为使小车寻线稳定,最好选择差异较大的环境,例如在白地板上贴上黑线,可使红外寻线模块工作更加灵敏稳定。

2、电源模块的设计利用L298稳压管输出一路电压,供给单片机和电机驱动,还供给寻迹模块。

L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。

是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。

3、CPLD控制模块设计此部分是整个小车运行的核心部件,起着控制小车所有的运行状态作用。

采用可编程逻辑期间CPLD作为控制器。

CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、IO资源丰富、易于进行功能扩展。

采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心1) 正常前进当寻迹板中间两个传感器检测到白线,小车都正常前进。

2)左小拐弯当只有左端第2个传感器检测到黑线,其余3个传感器检测到白色时,小车应左小拐弯。

3)左大拐弯当只要左端第1个传感器检测到黑线,右端2个传感器检测到白色时,小车应左大拐弯。

4) 右小拐弯当只有右端第2个传感器检测到黑线,其余3个传感器检测到白色时,小车应右小拐弯。

5) 右大拐弯当只要右端第1个传感器检测到黑线,左端2个传感器检测到白色时,小车应右大拐弯。

6)停车当4个传感器同时检测到黑线或其他情况,小车停车。

4、驱动模块设计(1)电路图(2)工作原理从CPLD输出信号功率很弱,即使在没有其它外在负载是也无法带动电机,所以在实际电路中我们加入了电机驱动芯片提高输入电机信号的功率,从而能够根据需要控制电机转动。

根据驱动功率大小以及连接电路的简单化要求选择L298N为直流电机驱动芯片。

L298N是SGS公司的产品,内部包含4通道逻辑驱动电路,是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。

其引脚排列如下图所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。

L298N可驱动2个电机,OUTl、OUT2和OUT3、OUT4之间分别接2个电动机。

(5、10)、(7、12)脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。

L298N的逻辑功能如表1所示。

表1 L298N逻辑功能表ENA(B) IN1(IN3)IN2(IN4) 电机运行状况H H L 正转H L H 反转H 同IN2(IN4) 同IN1(IN3)快速停止L X X 停止其引脚图如图1所示:引脚介绍:第1、15脚:可单独引出连接电流采样电阻器,形成电流传感信号,也可直接接地。

第2、3脚:A电机输出端口。

第4脚:接逻辑控制的+5V电源。

第6脚:A桥使能端口。

第5、7脚:输入标准TTL电点平对A桥的输出OUT1、OUT2进行控制。

第8脚:接电源地。

第9脚:接电机驱动电源,最高可达50V。

第11脚:B桥使能端口。

第10、12脚:输入标准TTL电平对B桥的输出OUT3、OUT4进行控制。

第13、14脚:B电机输出端口。

5、直流电机(1)实物图(2)原理因为一个驱动芯片L298N 可驱动两个直流电机,可我们这次购买的小车有四个直流电机,所以我们采用两两并联的方法,即左侧两个并联,右侧两个并联。

这样就可以使每一侧的两个电机步调一致起来,便于控制。

四、系统硬件电路设计(各模块的硬件连接关系)驱动模块电源模块 红外寻迹模块CPLD 控制模块直流电机寻迹信号左右五、CPLD控制模块内各单元模块的设计1、PWM(脉冲宽度调制)(1) VHDL程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY PWMA ISPORT( CLK :IN STD_LOGIC;C:IN STD_LOGIC_VECTOR(3 DOWNTO 0);PWM:OUT STD_LOGIC);END PWMA;ARCHITECTURE example OF PWMA ISSIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINPROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' THENIF COUNT="1001" THENCOUNT<="0000";ELSECOUNT<=COUNT+1;END IF;IF COUNT<C THEN PWM<='1';ELSE PWM<='0';END IF;END IF;END PROCESS;END example;(2)原理图(3)仿真波形2、主要控制模块(1)原理和功能根据小车前面的四个红外传感器所检测到的信号控制两端电机的转速。

1)当小车需要正常前进时,左侧两个电机的转速应等于右侧两个电机的转速。

2)当小车需要左小拐时,左侧两个电机的转速应略小于右侧两个电机的转速。

3)当小车需要左大拐时,左侧两个电机的转速应比右侧两个电机的转速小得多。

4)当小车需要右小拐时,左侧两个电机的转速应略大于右侧两个电机的转速。

5)当小车需要右大拐时,左侧两个电机的转速应比右侧两个电机的转速大得多。

6)当小车需要停止时,左侧两个电机的转速和右侧两个电机的转速应都为零。

(2)VHDL程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY control ISPORT(p1,p2,p3,p4:IN STD_LOGIC;A,B: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END control;ARCHITECTURE behave OF control ISBEGINPROCESS(p1,p2,p3,p4)V ARIABLE TEMP: STD_LOGIC_VECTOR(3 DOWNTO 0):="0000"; BEGINTEMP:=p1&p2&p3&p4;IF (TEMP="0000")THENA<="1000";B<="1000";ELSIF(TEMP="0010")THENA<="1000";B<="0011";ELSIF(TEMP=("0001")OR TEMP=("0011"))THENA<="1000";B<="0001";ELSIF(TEMP="0100")THENA<="0011";B<="1000";ELSIF(TEMP=("1000")OR TEMP=("1100"))THENA<="0001";B<="1010";ELSEA<="0000";B<="0000";END IF;END PROCESS;END behave;(3)原理图(4)仿真波形六、CPLD控制模块的顶层电路图1、原理图2、仿真波形七、系统总装配图八、实验结果分析一开始小车总是左大拐弯拐不过去,经过分析,一是程序中小车的速度调的太快,二是左右轮在左大拐弯时左右轮的速度差太小。

相关文档
最新文档