欢迎来到天天文库
浏览记录
ID:61999309
大小:452.00 KB
页数:13页
时间:2021-04-10
《智能循迹小车--刘华南.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、智能循迹小车设计——华宁16设计人:刘华南2012/11/25一、系统设计本组智能小车的硬件主要有以STC12C5A60S2作为微处理器,小车主要由自动循迹模块,电机驱动模块,前轮转向模块,电源模块,比较器模块组成。电机驱动部分我们采用12V直流电源直接供电,其他部分由3个5V稳压模块供电。小车硬件系统结构示意图如下:1、电源模块:采用3个5V稳压模块分别给各个模块供电,单片机系统由单独供电模块,避免单个稳压模块大功率长时间发热导致微处理器的病态工作。电源模块如下图所示:二、系统硬件设计主要应用的技术32、微处理器模块
2、:选用STC12C5A60S2单片机,STC12C5A60S2单片机内部自带两路PWM,所以可以利用自带的PWM进行负载电压调节,使用单片机内部PWM输出口P1^3和P1^4口调节直流减速电机的转速。电路图如下所示:43、电机驱动模块:我们的系统设计前轮采用直流电机实现小车转向,后轮采用两个直流减速电机驱动小车前进。小车共有3个电机,都采用LM298N进行驱动。采用LM298N原因主要是:1.驱动能力强:内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准T
3、TL逻辑电平信号,可驱动46V、2A以下的电机。2.控制简单,反应速度快。电路图如下所示:54、循迹模块:根据比赛要求和实际需求我们采用TCRT5000红外一体传感器,其距离调节范围在8mm---65mm间都具有较为理想的检测效果。我们共使用到10个红外传感器。电压比较器采用LM339四位比较器,电路图如下所示:6三、系统软件设计采用的技术一辆车要想跑得好,不仅要有良好的硬件支持,同时得有好的思想——软件支持。比赛部分设计要求:1.起跑区开启后,经过3S左右自动前进;2.车到达终止线后在3M内停车;3.小车在跑道白色区
4、域前进;根据这些比赛要求,我们设计相应的软件进行处理。1.起跑区开启后,经过3S左右自动前进voidmain(){PWM_init();delay_ms(4000);DianJi_init();speed();Timer_Init();while(1){Check_Load();Control_Wheels();}}2.车到达终止线后在3M内停车在车底盘下安装2个ST178检测跑道停车线,软件设计:voidTimer1()interrupt0{PWM_set(255,255);EN=0;}/**************
5、*******************************函数功能:外部INT1中断服务函数(已验证)入口参数:无出口参数:无备注:随影20121103*********************************************/voidTimer2()interrupt2{PWM_set(255,255);EN=0;}3.小车在跑道白色区域前进红外传感器采集到的跑道数据反馈给单片机,单片机通过分析处理数据控制小车速度和方向,我们加接拨码开关根据赛道实际情况选择行车速度。sbitIN5=P3^5;//
6、转向位定义sbitIN6=P3^6;sbitEN=P3^7;/*sbitX1=P1^6;//最外传感器P16左边P17右边sbitX2=P1^7;*/sbitTU1=P3^0;//调速位定义sbitTU2=P3^1;ucharLoad_Size=0;//赛道类型存储变量ucharLoad_Size2=0;ucharz=0,y=0;//速度调节变量voidspeed(){if(TU1==0&&TU2==1)//一级速度{z=100;y=100;}if(TU1==1&&TU2==0)//二级速度{z=80;y=80;}if
7、(TU1==0&&TU2==0)//三级速度{z=50;y=50;}if(TU1==1&&TU2==1)//四级速度{z=0;y=0;}PWM_set(z,y);}voidCheck_Load(void){Load_Size=P2;//读取P0端口,初步提取赛道信息P0=Load_Size;//Load_Size2=P1;}/****************************************函数功能:处理赛道信息传感器排列左边低4位,右边高4位入口参数:Load_Size*****************
8、************************/voidControl_Wheels(void){if((Load_Size&0xf0)!=0){IN5=0;IN6=1;//左转;}if((Load_Size2&0x40)==0x40){IN5=0;IN6=1;//左转}if((Load_Size&0x0f)!=0){IN5=1
此文档下载收益归作者所有