基于51单片机WiFi智能小车制作
基于单片机的WIFI智能小车系统
互联管理177基于单片机的WIFI智能小车系统◆高宇轩摘要:本文设计的WIFI 智能小车的主要部件有电机,车体,控制芯片,WIFI 收发模块,舵机,电源辅助部件有蜂鸣器,电平转换器等。
本文设计的WIFI 智能小车能够通过智能的终端设备发送控制指令到无线路由器,然后无线路由器会将接收到的指令传输到单片机只之中,单片机将会将会依据智能终端发出的指令对智能小车之中的电机,舵机等部件进行控制,进而实现对小车运动状态的控制。
关键词:智能小车;WIFI ;路由器;单片机;随着通信技术和网络技术的发展,人类的生活逐渐进入了智能化时代。
各种各样的智能化设备在人们的日常生活之中得到了广泛的应用。
汽车做为生活中常见的运输工具,对其智能化的研究受到了越来越多的人的关注。
本文设计的WIFI 智能小车能够实现自动寻迹,在行驶的过程之中能够自主避障,能够控制行驶的速度,可移动设备可以远程操控小车的运动状态。
本文对小车的设计采用的是实时控制的方式,控制系统对小车的运动状态的控制灵活,可靠,能够在各种情况下快速调节小车的运动状态。
本文以单片机为智能小车的控制核心,选用超声波传感器实现智能小车检测障碍物和小车车距的功能。
智能小车在行驶的过程之中通过对信号的占比的改变进而控制智能小车的行驶的速度。
在改变PWM 信号的占比的过程之中,使智能小车实现自动寻迹,自动停车等功能。
在现阶段,对于智能小车的研究,国内外都取得了巨大的成果。
谷歌公司开发的无人行驶汽车,已经取得了在高速公路上高速行驶数千公里的成绩,创造了智能汽车研制领域内的一座里程碑。
1 WIFI智能小车的整体设计本文设计的WIFI 智能小车由四个主要模块及其他的辅助模块组成。
这四大主要模块分别是电机驱动模块,核心控制模块,摄像头控制模块,WIFI 模块。
四大模块与其他辅助模块的组成关系如下图:图1 模块组成图本文设计的WIFI 智能小车的路由器有两方面的作用。
一是接受移动终端设备发送的指令,二是将小车的摄像头采集的信息传递给移动设备终端。
基于51单片机的无线控制循迹壁障循光小车
项目总结-----循迹壁障循光小车程序如下所示:系统1(上):#include"reg52.h"#include"intrins.h"#define uchar unsigned char#define uint unsigned intuchar Rem_Code[3];uint TimeCount;sbit Get_Rem=P2^0;sbit AO= P2^4;sbit BO = P2^5;sbit CO = P2^6;sbit DO= P2^7;void delay_ms(int z){int i,j;for(i=z;i>=0;i--)for(j=110;j>=0;j--);}void delay8(uint t){while(--t);}void Delay100us(void){delay8(13); //8-18}void Remote_Process(void){uchar i,j,Count=0;Delay100us();if(TimeCount>0)//当按键按下释放后该值不在赋值就同通过递减直到该值等于0{ //等于0后表示按键释放TimeCount--;}if(Get_Rem==0)//如果有低电平就进入解码{for(Count=0;Count<100;Count++) //判断12毫秒左右的引导码{Delay100us(); //100us*100=10msif(Get_Rem==1) //如果在延时10毫秒期间有高电平出现就是干扰信号退出解码{return;}}while(Get_Rem==0);//等待低电平结束for(j=0;j<3;j++) //8位地址码+ 4位数据码{for(i=0;i<8;i++){Count=0;do{Delay100us();Count++;if(Count>20)//如果在大于2毫秒高电平还没有结束认为是干扰退出解码{ //理论上是1.2毫秒,我们2毫秒留有余量,防止遥控批量中的误差return;}}while(Get_Rem==1);//计算高平时间并等待结束Count=0;do{Delay100us();Count++;if(Count>20)//如果在大于2毫秒低平还没有结束认为是干扰退出解码{return;}}while(Get_Rem==0);//计算低电平时间并等待结束Rem_Code[j]<<=1;//数据从高位开始接收所以每次向左移一位if(Count<8) //如果低电平时间小于800毫秒认为该位为1如果不加,则为0{Rem_Code[j]++;}}}ACC=Rem_Code[2];if(ACC==0xc0){AO = 1;BO = 0;CO = 1;DO = 1;delay_ms(10);BO = 1;}if(ACC==0x30){AO = 1;BO = 1;CO = 1;DO = 0;delay_ms(10);DO = 1;}if(ACC==0x0c) {AO = 0;BO = 1;CO = 1;DO = 1;delay_ms(10);AO = 1;}if(ACC==0x03) {AO = 1;BO = 1;CO = 0;DO = 1;delay_ms(8);CO = 1;}if(TimeCount==0)TimeCount=1000;//按键按下标志}}void main(){while(1){Remote_Process();//遥控处理}}1.系统2(下):/************************************************ 按键A:壁障模式按键B:循迹模式按键C:循光模式按键D:停止************************************************/#include"AT89x52.h"//#include"global.h"#include"intrins.h"//#include"51hei.H"#define uchar unsigned char#define uint unsigned int//uchar Rem_Code[3];//uint TimeCount;//sbit Get_Rem=P2^7;//sbit sb = P3^2; //外部中断sbit AO= P2^4; //与上面的单片机连接的端口sbit BO = P2^5; //与上面的单片机连接的端口sbit CO = P2^6; //与上面的单片机连接的端口sbit DO= P2^7; // 与上面的单片机连接的端口sbit hw1 = P1^1; //后外端口sbit hw2 = P1^2;sbit hw3 = P1^0;sbit gm1 = P0^6;sbit gm2 = P0^7;sbit IB1=P1^5; //驱动端口sbit IA1=P1^6;sbit IB2=P1^3;sbit IA2=P1^4;sbit ENA=P2^2;sbit ENB=P2^3;sbit Led_on=P0^0;int n=0;int m=0;int ms_100_you=100; //占空比的时间片int ms_100_zuo=100; // 占空比的时间片//int ms_10 = 12;int ms_houtui_200 = 300; //超声波壁障时后退的时间片int ms_hwled = 1000; //红外的流水灯的时间片int ms_hwbee_50 = 50;sbit bee = P0^5;sbit ECHO = P2^1; //超声波的端口sbit TRIG = P2^0;unsigned int time = 0;unsigned int timer = 0;unsigned char hw_flag;unsigned long S = 0;int ceshi_time=200;int Flag=0;//void Remote_Process();void qian_jin_fast() //快速前进{if (ms_100_zuo<=100 && ms_100_zuo>58) //左轮速度{IA2=0;IB2=1;}else if(ms_100_zuo<=58&& ms_100_zuo>0) // 15{IA2=1;IB2=1;}else if(ms_100_zuo<=0){ms_100_zuo=100;}if (ms_100_you<=100 && ms_100_you>10) //右轮速度{IA1=1;IB1=0;}else if(ms_100_you<=10 && ms_100_you>0) // 15{IA1=1;IB1=1;}else if (ms_100_you<=0){ms_100_you=100;}}void qian_jin_slow() //慢速前进{if (ms_100_you<=100 && ms_100_you>65){IA1=1;IB1=0;}else if(ms_100_you<=65 && ms_100_you>0) // 15 {IA2=1;IB2=1;}else if (ms_100_you<=0){ms_100_you=100;}if (ms_100_zuo<=100 && ms_100_zuo>35){IA2=0;IB2=1;}else if(ms_100_zuo<=35 && ms_100_zuo>0) // 15 {IA2=1;IB2=1;}else if(ms_100_zuo<=0){ms_100_zuo=100;}}void hou_tui_fast() //快速后退{if (ms_100_zuo<=100 && ms_100_zuo>65) //左轮速度{IA2=1;IB2=0;}else if(ms_100_zuo<=65&& ms_100_zuo>0) // 15{IA2=1;IB2=1;}else if(ms_100_zuo<=0){ms_100_zuo=100;}if (ms_100_you<=100 && ms_100_you>14) //右轮速度{IA1=0;IB1=1;}else if(ms_100_you<=14 && ms_100_you>0) // 15{IA1=1;}else if (ms_100_you<=0){ms_100_you=100;}}void hou_tui_slow() //慢速后退{if (ms_100_zuo<=100 && ms_100_zuo>75){IA2=1;IB2=0;}else if(ms_100_zuo<=75 && ms_100_zuo>0) // 15 {IA2=1;IB2=1;}else if(ms_100_zuo<=0){ms_100_zuo=100;}if (ms_100_you<=100 && ms_100_you>65){IB1=1;}else if(ms_100_you<=65 && ms_100_you>0) // 15{IA2=1;IB2=1;}else if (ms_100_you<=0){ms_100_you=100;}}void zuo_zhuan() //左转{if (ms_100_zuo<=100 && ms_100_zuo>65) //左轮速度{IA2=1;IB2=0;}else if(ms_100_zuo<=65&& ms_100_zuo>0) // 15{IA2=1;IB2=1;}else if(ms_100_zuo<=0)ms_100_zuo=100;}if (ms_100_you<=100 && ms_100_you>8) //右轮速度{IA1=1;IB1=0;}else if(ms_100_you<=8 && ms_100_you>0) // 15{IA1=1;IB1=1;}else if (ms_100_you<=0){ms_100_you=100;}}void you_zhuan() //右转{if (ms_100_zuo<=100 && ms_100_zuo>56) //左轮速度{IA2=0;IB2=1;else if(ms_100_zuo<=56&& ms_100_zuo>0) // 15{IA2=1;IB2=1;}else if(ms_100_zuo<=0){ms_100_zuo=100;}if (ms_100_you<=100 && ms_100_you>10) //右轮速度{IA1=0;IB1=1;}else if(ms_100_you<=10 && ms_100_you>0) // 15{IA1=1;IB1=1;}else if (ms_100_you<=0){ms_100_you=100;}}void stop_zhuan(){IA1=1;IB1=1;IA2=1;IB2=1;}/******************************光敏控制的函数*********************************************/void gm_judge(){if (gm1 == 1 && gm2 == 0) zuo_zhuan();else if(gm1 == 0 && gm2 == 1) you_zhuan();else qian_jin_fast();}/*************************************红外控制函数**********************************************/void hw_judge(){if((hw1==0 && hw2==0) || (hw1!=0 && hw2!=0 && hw3==1)) qian_jin_fast();//前else if(hw1==0 && hw2!=0) you_zhuan(); // 右else if(hw1!=0 && hw2==0) zuo_zhuan(); //做else if(hw1!=0 && hw2!=0 && hw3==0) stop_zhuan(); //停}/************************************超声波计算距离的函数******************************************************/void Conut(void){time = TH0 * 256 + TL0;TH0 = 0;TL0 = 0;S=(time * 1.7) / 100;//算出来是CMif(S<=10&&S>0){P0=0xe0;}else if(S>10&&S<=20){P0=0xf0;}else if(S>20&&S<=30){P0=0xf8;}else if (S>30&&S<=40){P0=0xfc;}else{P0=0xff;}}/********************************超声波信号发送和接收函数**********************************************/void chaoshengbo(){switch(m){case 0:if (ECHO!=0) {TR0=1;m=1;}else if(ECHO==0) {TR0=0;m=0;} break;case 1: {if (ECHO!=0) {m=1;}else if(ECHO==0){TR0=0;m=2;}} break;case 2:{Conut();m=0;} break;}}//void delay8(uint t)//{//while(--t);//}////void Delay100us(void)//{//delay8(13); //8-18//}//////因为他的格式是00表示"0"11表示"1"01表示"F"所以我们要把12位乘以2等于24位刚好是3个字节////第一二个字节是地址码,第三个字节是数据码////发射芯片采用的是PT2262芯片用4.7M的震荡电阻315M发射////遥控我们全部默认地址码是FFFFFFFF 单片机解码出来就是0x55 0x55////遥控处理函数//void Remote_Process(void)//{// uchar i,j,Count=0;// Delay100us();// if(TimeCount>0)//当按键按下释放后该值不在赋值就同通过递减直到该值等于0// {//等于0后表示按键释放// TimeCount--;// }//// if(Get_Rem==0)//如果有低电平就进入解码// {// for(Count=0;Count<100;Count++)//判断12毫秒左右的引导码// {// Delay100us();//100us*100=10ms// if(Get_Rem==1)//如果在延时10毫秒期间有高电平出现就是干扰信号退出解码// {// return;// }// }// while(Get_Rem==0);//等待低电平结束// for(j=0;j<3;j++)//8位地址码加4位数据码// {// for(i=0;i<8;i++)// {// Count=0;// do// {// Delay100us();// Count++;// if(Count>20)//如果在大于2毫秒高电平还没有结束认为是干扰退出解码// {//理论上是1.2毫秒,我们2毫秒留有余量,防止遥控批量中的误差// return;// }// }while(Get_Rem==1);//计算高平时间并等待结束// Count=0;// do// {// Delay100us();// Count++;// if(Count>20)//如果在大于2毫秒低平还没有结束认为是干扰退出解码// {// return;// }// }while(Get_Rem==0);//计算低电平时间并等待结束// Rem_Code[j]<<=1;//数据从高位开始接收所以每次向左移一位// if(Count<8)//如果低电平时间小于800毫秒认为该位为1// {// Rem_Code[j]++;// }// }// }// //huqin// ACC=Rem_Code[2];// if(ACC==0x0c) //a// {// Flag=1;// delay8(5);// }// if(ACC==0xc0) //b// {// Flag=2;// delay8(5);// }// if(ACC==0x03) // c// {// Flag=3;// delay8(5);// }// if(ACC==0x30) //d// {// Flag=4;// delay8(5);// }//// if(TimeCount==0)//为0表示是新的一次按下对其进行处理// {//如过该值大于0表示已经按下不在处理,保证按下一次只做一次处理// // if((Rem_Code[0]==Addr_Code_H)&&(Rem_Code[0]==Addr_Code_L)) // // {//// if(Rem_Code[2]==Key_A)//如果数据与A键的值相等表示A键按下对其处理// // {//试验用A键来控制继电器的开关// // Com_Relay;//继电器取反// // Nokia3310();//显示继电器的状态// // Bz_Out();//蜂鸣器响一声// // }// // }// //P2_2=0;// }// TimeCount=1000;//按键按下标志// }//}// void hw_judge()//{// if((hw1==0&&hw2==0)||(hw1!=0&&hw2!=0&&hw3==1)) hw_flag=1; //前// else if(hw1==0&&hw2!=0) hw_flag=2; // 右// else if(hw1!=0&&hw2==0) hw_flag=3; //左// else if(hw1!=0&&hw2!=0&&hw3==0) hw_flag=4; //停//}////void hw_movement()//{// switch(hw_flag)// {// case 1: qian_jin_fast();break;// case 2: you_zhuan();break;// case 3: zuo_zhuan();break;// case 4: stop_zhuan();break;// }// }/*****************************主函数******************************************/void main(){TMOD=0x11; //设T0为方式1,GATE=1;TH0 = 0;TL0 = 0;TH1 = (65536-1000)/256;TL1 = (65536-1000)%256;ET0=1; //允许T0中断ET1=1; //允许T1中断TR1=1; //开启定时器EA=1; //开启总中断Led_on = 1;ENA=1;ENB=1;// IT0 = 0;// EX0 = 1;while(1){while (Flag==1){chaoshengbo();}while(Flag==5){qian_jin_fast();}while(Flag==2){hw_judge();bee=1;}while(Flag==3){gm_judge();bee=1;}while(Flag==4){stop_zhuan();bee=1;}while (Flag==0){stop_zhuan();}}}//void zd0() interrupt 0 //{// Remote_Process(); // ms_10 = 12;// sb = 1;//}/**定时器1***/void zd3() interrupt 3 //T1中断用来扫描数码管和计800MS启动模块{int i = 0;TH1 = (65536-1000) / 256;TL1 = (65536-1000) % 256;/****************************端口信号处理*******************************************/if(AO == 0)Flag = 1;else if(BO == 0)Flag = 2;else if(CO == 0)Flag = 3;else if(DO == 0)Flag = 4;//// ms_10--;// if(ms_10<=0)// {// sb = 0;// // ms_10 = 12;// }ms_100_zuo--;ms_100_you--;// if (Flag==4)// {// bee = 1;// ceshi_time--;// if (ceshi_time<=0)// {// Flag=5;// ceshi_time=300;// }// }/*************************红外的流水灯效果*****************************************/if (Flag==2){ms_hwled--;if (ms_hwled<=1000&& ms_hwled>750){P0=0xfc;}else if ( ms_hwled<=750 && ms_hwled>500){P0=0xfa;}else if ( ms_hwled<=500 && ms_hwled>250){P0=0xf6;}else if ( ms_hwled<=250 && ms_hwled>0){P0=0xee;}else if ( ms_hwled<=0)ms_hwled=1000;}}// else if(Flag == 2)// {// bee = 1;// }// else if(Flag==1)// {// if(S<=35 && S>0)// {// ms_houtui--;// if (ms_houtui<=100)// {// hou_tui_fast();// }// else if (ms_houtui<=50)// { n=n%2;// switch (n)// {//// case 0:you_zhuan();bee=0;break; //// case 1:zuo_zhuan();bee=0;break; // case 0:you_zhuan();break;// case 1:zuo_zhuan();break;// }//// }// }// else// qian_jin_fast();// bee=1;// ms_houtui=100;// }/*************************超声波壁障效果********************************************/else if(Flag==1){Led_on = 0;if(S<=30 && S>0){ms_houtui_200--;hou_tui_fast();if(ms_houtui_200<=0){n=n%2;switch (n){case 0:you_zhuan();bee=0;break;case 1:zuo_zhuan();bee=0;break;}// ms_houtui = 100;}}else{ ms_houtui_200=300;qian_jin_fast();bee=1;}timer++;if(timer>= 800){n++;timer=0;TRIG=1; //800MS 启动一次模块i = 0;for(;i<20;i++)_nop_();TRIG=0;}}}。
基于51单片机的无线遥控小车设计
基于51单片机的无线遥控小车设计随着科技的不断发展,无线遥控小车已经成为了人们生活中不可或缺的一部分。
无线遥控小车具有控制方便、灵活性高等特点,可以广泛应用于各个领域,如家庭娱乐、工业搬运等。
本文将介绍一种基于51单片机的无线遥控小车设计,并附上相应的代码。
本设计的无线遥控小车由四个轮子、两个直流电机、一个超声波测距模块和一个遥控模块组成。
其中,遥控模块用于接收人们发送的指令,超声波测距模块用于测量小车与障碍物之间的距离,以便避免碰撞。
首先,我们需要连接四个轮子和两个直流电机到51单片机的相应引脚上。
接下来,将超声波测距模块连接到51单片机的一个引脚上,用于接收超声波测距的信号。
最后,将遥控模块接收到的指令转化为电平信号,并将其连接到51单片机的引脚上。
在代码部分,我们首先需要初始化相应的引脚和串口,以便接收和发送指令。
然后,我们需要编写一个函数用于接收遥控模块发送的指令,并根据指令来控制小车的运动。
例如,当接收到前进指令时,小车向前运动;当接收到后退指令时,小车向后运动。
在控制小车运动的同时,我们还需要通过超声波测距模块来检测小车与障碍物之间的距离,以便避免碰撞。
此外,在代码中还需设置一些保护措施,例如在小车运动过程中检测到距离障碍物过近时自动停止前进,或者在接收到无效指令时忽略该指令等。
总结起来,基于51单片机的无线遥控小车设计离不开硬件连接和代码编写两个方面的工作。
合理的硬件连接可以保证信号的稳定传输,而完善的代码编写可以保证小车的正常运行和灵活性。
这种无线遥控小车具有控制方便、灵活性高等优点,可广泛应用于各个领域。
通过不断的优化和改进,无线遥控小车的性能将会更加出色。
基于51单片机的四驱无线遥控小车(附电路图,源代码)
基于51单片机的四驱无线遥控小车(附电路图,源代码)遥控小车大家都玩过,网上也有各种DIY小车的制作详解,本文介绍的这个遥控小车和其他的作品大同小异,但作为单片机设计,这次设计主要强调单片机控制,就是说,这个小车是由单片机控制的,把单片机按键发送程序、无线模块使用、电机驱动是本教程的核心内容。
一硬件组装1 小车运动部分所需工件:直流电机4个,L293D电机驱动模块,蓄电池一块,车身底盘说明:车身底盘大家根据自己的购买力自行购买,蓄电池也是,至于L293D模块,淘宝上卖的比较贵,不过我用的就是成品模块,效果非常好,钱不多的同学可以自己买芯片,自制模块,原理很简单,官方资料是很详细的;或者改为继电器控制都可以,具体看自己的实际购买力。
用模块的好处是,模块可以输出5V 电源给系统供电,详细请参考淘宝网。
如果你买的是现成的底盘,那就和我的一样了,组装实在是没啥可说的,把电机固定上去就是,不行?别开玩笑了,小学生都会的!至于想自己做底盘的,我想说,要搞结实点,咱这次的小车马力是很足的,因为有电机驱动,速度比较快(不带减速齿轮的底盘一定要小心,速度非常的快),后劲也足,不小心撞墙很正常,所以不好的底盘就得小心了!组装好后,就是电机和驱动模块的接线了,下面我就详细的说一下L293D模块的使用:L293D是专门的电机驱动芯片,工作电压5V,驱动电压输入可达36V,输出电流正负600ma,4个控制端,4个输出端,原理如图:其中A为输出控制端,Y为输出控制端,1A即控制1Y,以此类推。
1,2EN 3,4EN需要短接,芯片最大工作电压不得超过7V。
封装图:Vcc1接工作电压,5V,Vcc2接电机的驱动电源,一般来说,这个电压要比5V 高,我用的是12V蓄电池,就把12v的正极接到VCC2,要记住的是,芯片、单片机、蓄电池电源是需要共地的,不要觉得你电机是12V,单片机控制部分是5V就把电源完全独立开来,正极是完全独立的没错,但是GND(负极)都必须是接在一起的。
基于51单片机智能小车(电路+程序+论文)
基于单片机的多功能智能小车设计论文(摘要(关键词:智能车单片机金属感应器霍尔元件 1602LCD)智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。
智能电动车就是其中的一个体现。
本次设计的简易智能电动车,采用AT89S52单片机作为小车的检测和控制核心;采用金属感应器TL-Q5MC来检测路上感应到的铁片,从而把反馈到的信号送单片机,使单片机按照预定的工作模式控制小车在各区域按预定的速度行驶,并且单片机选择的工作模式不同也可控制小车顺着S形铁片行驶;采用霍尔元件A44E检测小车行驶速度;采用1602LCD实时显示小车行驶的时间,小车停止行驶后,轮流显示小车行驶时间、行驶距离、平均速度以及各速度区行驶的时间。
本设计结构简单,较容易实现,但具有高度的智能化、人性化,一定程度体现了智能。
目录1 设计任务 (3)1.1 要求 (3)2 方案比较与选择 (4)2.1路面检测模块 (4)2.2 LCD显示模块 (5)2.3测速模块 (5)2.4控速模块 (6)2.5模式选择模块 (7)3 程序框图 (7)4 系统的具体设计与实现 (9)4.1路面检测模块 (9)4.2 LCD显示模块 (9)4.3测速模块 (9)4.4控速模块 (9)4.5复位电路模块 (9)4.6模式选择模块 (9)5 最小系统图 (10)6 最终PCB板图 (12)7 系统程序 (13)8 致谢 (46)9 参考文献 (47)10 附录 (48)1. 设计任务:设计并制作了一个智能电动车,其行驶路线满足所需的要求。
1.1 要求:1.1.1 基本要求:(1)分区控制:如(图1)所示:(图1)车辆从起跑线出发(出发前,车体不得超出起跑线)。
在第一个路程C~D区(3~6米)以低速行驶,通过时间不低于10s;第二个路程D~E区(2米)以高速行驶,通过时间不得多于4秒;第三个路程E~F区(3~6米)以低速行驶,通过时间不低于10s。
基于51单片机WiFi智能小车制作
基于51单片机WiFi智能小车制作基于51单片机WiFi智能小车制作一、基本原理51单片机WiFi智能小车是利用PC或手机作为控制端,通过手机连接wifi模块(路由器)以获得wifi信号,同时车载也连接wifi模块以获得和手机相同的IP地址,实现手机和小车的连接,然后利用PC或手机上的控制软件以wifi网络信号为载体发送相关信号,wifi模块接收PC 或手机端发送来的相关信号并分析转换成TTL 电平信号,然后发送给单片机,单片机接收到的电平信号处理、分析、计算,转化成控制指令并发送给电机驱动模块以实现小车的前进、后退、左拐、右拐等功能。
二、购买所需材料了解51单片机WiFi智能小车基本原理后,需要购买所需材料进行制作。
下面列出所需制作材料:序号材料备注图例6 小车底盘7 摄像头 根据固件支持摄像头购买8 电源根据自己需要购买种类9 杜邦线及小配件制作所需工具:序号工具名备注图例称1 电烙铁一套 包括松香焊锡2 螺丝刀 平口、十字等3 微型电钻 可以自制4手工刀5 剪刀6 万用表7 热熔胶枪或快干胶8US B下载器三、开始制作1、制作流程开始制作前,我们首先需要看购买路由器的型号,笔者采用的是703n 路由器,所以需要引出ttl 线。
总体步骤为:路由器引TTL 线→路由器刷OpenWrt 固件→制作51单片机最小系统→下载下位机程序到51单片机→安装上位机程序至PC 或手机→测试上、下位机通信→组装→调试完成。
2、路由器引ttl线首先打开703n路由器,按照下图标示位置焊接ttl线。
注意:1、焊接的时候要小心焊接,焊好后微拉下查看松紧2、焊接最好采用软线焊接,防止意外整块拉掉焊点3、焊好后一定用胶固定,最好采用热熔胶下图为引好ttl线样子3 刷OpenWrt固件何为OpenWrt固件,OpenWrt可以被描述为一个嵌入式的Linux 发行版,(主流路由器固件有dd-wrt,tomato,openwrt三类)而不是试图建立一个单一的,静态的系统。
基于51单片机红外无线遥控智能小车控制设计
基于51单片机红外无线遥控智能小车控制设计摘要:本文利用51单片机设计了一款具有红外无线遥控功能的智能小车控制系统。
该系统基于红外技术,实现了对智能小车的远程控制。
通过建立遥控信号传输模型和小车控制模块,实现了智能小车的实时运动控制,包括前进、后退、左转、右转等操作。
本文详细介绍了系统设计方案、硬件设计和软件设计,通过实验验证,证明该系统能够稳定地实现智能小车的远程控制,具有一定的应用价值和推广前景。
关键词:51单片机;红外无线遥控;智能小车控制;遥控信号传输模型Abstract:In this paper, a smart car control system with infrared wireless remote control function based on 51 single-chip microcomputer is designed. The system is based on infrared technology, which realizes the remote control of the smart car. By establishing the remote control signal transmission model and the car control module, real-time motion control of the smart car, including forward, backward, turning left and turning right, is realized. This paper introduces the system design scheme, hardware design and software design in detail. Through experiments, it is proved that the system can stably realize the remote control of the smart car, and has certain application value and promotion prospects.Keywords:51 single-chip microcomputer; infrared wireless remote control; smart car control; remote control signaltransmission model1. 引言智能小车控制系统是一种目前比较受关注的智能化系统,在智能出行和智慧交通中有着广泛的应用。
51单片机无线遥控小车设计
51单片机无线遥控小车设计一、引言无线遥控小车是一种基于51单片机的智能小车系统,它利用无线通信技术实现了对小车的遥控。
通过无线遥控,我们可以随时控制小车的方向,实现室内或者室外的移动。
本设计将详细介绍51单片机无线遥控小车的整体设计框架、电路连接和关键模块设计。
二、整体设计框架整个系统分为遥控器端和小车端两个部分。
遥控器端通过按键或者摇杆输入控制指令,经过编码和解码处理后,通过无线传输模块将指令发送给小车端。
小车端接收到指令后,通过解码和控制模块来控制小车的运动。
三、电路连接遥控器端由单片机、按键(或者摇杆)、编码芯片和无线传输模块组成。
按键用于输入控制指令,编码芯片用于将按键输入的模拟信号转换为数字信号,单片机将数字信号进行编码后发送给无线传输模块,最终通过无线通信将指令传输给小车端。
小车端由单片机、解码芯片、电机驱动、电机和无线接收模块组成。
无线接收模块用于接收遥控器端发送过来的指令,解码芯片将数字信号转换为控制信号,单片机根据控制信号来控制电机驱动,从而实现小车的运动。
四、关键模块设计1.编码和解码模块设计编码和解码模块是整个系统中的关键部分,它负责将模拟信号转换为数字信号,并将数字信号转换为控制信号。
2.无线传输模块选择无线传输模块是实现遥控通信的关键组件,我们可以选择使用蓝牙模块、无线射频模块等。
选择合适的无线传输模块需要考虑通信距离、通信速率、功耗等因素。
3.电机驱动模块设计电机驱动模块负责将控制信号转换为电机运动控制信号,驱动电机完成小车的移动。
在设计电机驱动模块时,需要考虑电机的类型和电机驱动电路的选型。
五、总结本设计详细介绍了51单片机无线遥控小车的整体设计框架,电路连接和关键模块设计。
通过对整个设计的理解和实现,我们可以实现对小车的远程遥控,从而实现室内或者室外的自动移动。
这种无线遥控小车系统在娱乐、智能家居、无人巡检等领域都有广泛的应用前景。
实例制作基于C51的无线遥控玩具汽车
实例制作基于C51的无线遥控玩具汽车从事无线遥控玩具开发工作多年,开发了很多种类的无线遥控玩具产品。
总结了很多工作经验。
用的绝大部分IC是T X2C(遥控)和RX2C(接收),其功能分别是:前进,后退,左转,右转。
笔者利用工作的空闲时间用AT89C2051单片机编出了跟TX2C和RX2C一样的编解码程序,并成功进行了实际制作。
编解码与TX2C和RX2C兼容。
现将制作原理图和源程序公开给读者参考学习与制作,相信对初学者有极大的帮助,这也是笔者的心愿!其原理图如下:图2为接收部分,图3为发射部分。
源程序和仿真文件见附件.读者如果想仿制的话,建议RF接收和RF发射部使用市面上成品的315MHz模块,应用起来很方便,这样可以免去调试高频部分。
下面图1是遥控前进部分编码波形:从编码图1中看出有四个周期一样的同步脉冲,各个功能是按数据脉冲个数的不同实现功能不同的。
这样编码有很强的搞干扰能力,也可以应用到其它领域遥控上面去,可以做成遥控飞机,也可以做成遥控船……这要看读者的需要应用了。
具体功能相应编码以下:前进:同步脉冲+10个数据脉冲后退:同步脉冲+40个数据脉冲左转:同步脉冲+64个数据脉冲右转:同步脉冲+58个数据脉冲前进+左转:同步脉冲+34个数据脉冲前进+右转:同步脉冲+28个数据脉冲后退+左转:同步脉冲+46个数据脉冲后退+右转:同步脉冲+52个数据脉冲按键松开时发送2帧停止位:同步脉冲+4个数据脉冲。
接收部分收到的是反相的信号,读者在制作时要注意。
图二(点击放大)图三;五功能遥控车发射程序.;MCU:2051;OSC:12M;DATE:08.05.18;功能:;前进(F);后退(B),;左转(L),;右转(R).;加速(T).;作者:徐增钟;===================================================================================KEY EQU P3DATAOUT BIT P1.0 ;数据输出口.LED BIT P1.1 ;发射指示灯.KEYBUF EQU 70H ;键号存放单元.KEYMASK BIT 01HKEYFLAG BIT 05HORG 0000HAJMP STARTORG 000BHAJMP INTTCCORG 0030H;======================================================= ============================CLEAR_RAM:MOV R0,#30H ;从30H单元开始.MOV R3,#127 ;清除127个单元NEXT: MOV @R0,#00 ;清除INC R1 ;DJNZ R3,NEXT ;127个单元清完?;RET;======================================================= ===========================;程序初始化;BEGIN:MOV SP,#50H ;MOV P1,#00H ;MOV P3,#0FFH ;MOV TMOD,#01HMOV TH0,#0B1HMOV TL0,#0E0HSETB TR0SETB EASETB ET0CLR KEYFLAGSETB KEYMASKRET;======================================================= ============================START:CALL CLEAR_RAM ;清除RAMCALL BEGIN ;程序初始化;LOOP:CALL KEYON ;调用KEYSCANAJMP LOOPNOPNOPNOPAJMP START;======================================================= ============================INTTCC:MOV TH0,#0B1HMOV TL0,#0E0HSETB KEYFLAGRETI;======================================================= ============================KEYON:MOV A,KEYCJNE A,#0FFH,KEYSENDJB KEYMASK,ETSETB KEYMASKCLR LEDMOV R5,#2X2: MOV R3,#4CALL SENDDJNZ R5,X2SETB DATAOUTCALL DY5MSMOV P1,#00ET:RET;======================================================= =============================KEYSEND:SETB LEDCLR KEYMASKCJNE A,#0DFH,K1MOV R3,#10 ;发送10个脉冲. AJMP SENDRETK1: CJNE A,#0EFH,K2MOV R3,#40 ;发送40个脉冲. AJMP SENDRETK2: CJNE A,#0F7H,K3MOV R3,#64 ;发送64个脉冲. AJMP SENDRETK3: CJNE A,#0FBH,K4MOV R3,#58 ;发送58个脉冲. AJMP SENDRETK4: CJNE A,#0D7H,K5MOV R3,#34 ;发送34个脉冲. AJMP SENDRETK5: CJNE A,#0DBH,K6MOV R3,#28 ;发送28个脉冲. AJMP SENDRETK6: CJNE A,#0E7H,K7MOV R3,#46 ;发送46个脉冲. AJMP SENDRETK7: CJNE A,#0EBH,K8MOV R3,#52 ;发送52个脉冲. AJMP SENDK8: CJNE A,#0FFH,KEXIT KEXIT:RET;======================================================= ============================DOUT:SETB DATAOUTCALL DYMS5CLR DATAOUTCALL DYMS5DJNZ R3,DOUTMOV P2,#00RETSEND:MOV R1,#04N1: SETB DATAOUTMOV R4,#255D1: NOPNOPNOPNOPDJNZ R4,D1CLR DATAOUTCALL DYMS5DJNZ R1,N1AJMP DOUTNOPNOPAJMP START;======================================================= ============================DYMS5:MOV R6,#250D2:DJNZ R6,D2RET;======================================================= ===========================DY5MS:MOV R5,#4D3: MOV R3,#248DJNZ R3,$DJNZ R5,D3RET;======================================================= ===========================END以下是接收部分程序;遥控车接收程序.;MCU:AT89C2051;OSC:12M;DATE:08.05.18;接收相应功能:前进,后退,左转,右转.;E-MAIL:chinameifen@;作者:徐增钟;======================================================= ==========IN EQU P3.2 ;RECEIVERXMA BIT 05H;======================================================= ==========ORG 0000HAJMP STARTORG 0003HAJMP INRXORG 0030H;======================================================= =========CLEAR_RAM:MOV R1,#30HMOV R3,#127NEXT: MOV @R1,#00INC R1DJNZ R3,NEXTRET;======================================================= =========START:MOV SP,#50HMOV P3,#0FFH ;MOV P2,#0FFH ;MOV P1,#00 ;SETB EASETB EX0CLR RXMALOOP:CALL NORXAJMP LOOP;======================================================= =============INRX:CLR EX0MOV R4,#4 ;同步脉冲.MOV TMOD,#01HNX1: MOV TH0,#00 ;计数初值为00.MOV TL0,#00 ;SETB TR0INC1: JNB IN,INC1 ;低电平在此等CLR TR0MOV A,TH0CJNE A,#05H,EXITHERE1: JB IN,HERE1 ;等待0.5MS高电平结束.DJNZ R4,NX1JNB IN,$CLR ARD1: INC ARD2: JB IN,RD2MOV R1,#05RD3: JB IN,RD1LCALL DYMS5DJNZ R1,RD3DEC ADEC ADEC ADEC AJZ STOPDEC ADEC ADEC ADEC ADEC ADEC AJZ K1DEC ADEC ADEC ADEC ADEC ADEC ADEC ADEC ADEC ADEC ADEC ADEC ADEC ADEC ADEC ADEC ADEC ADEC AJZ FRDEC ADEC ADEC ADEC ADEC A JZ FL DEC A DEC A DEC A DEC A DEC A DEC A JZ K2 DEC A DEC A DEC A DEC A DEC A DEC A JZ BL DEC A DEC A DEC A DEC A DEC A DEC A JZ BR DEC A DEC A DEC A DEC A DEC A DEC A JZ K3 DEC A DEC A DEC A DEC A DEC A DEC ANOPNOPEXIT: SETB EX0RETISTOP: MOV P1,#00AJMP EXITK1:MOV P1,#00010000B ;FAJMP EXITK2:MOV P1,#00100000B ;BAJMP EXITK3:MOV P1,#01000000B ;LAJMP EXITK4:MOV P1,#10000000B ;RAJMP EXITFR: MOV P1,#10010000B ;F+RAJMP EXITFL:MOV P1,#01010000B ;F+LAJMP EXITBR:MOV P1,#10100000B ;B+RAJMP EXITBL:MOV P1,#01100000B ;B+LAJMP EXIT;======================================================= =======NORX:MOV R1,#200RX: JNB IN,NETCALL DY1MSDJNZ R1,RXMOV P1,#00NOSI:RET;======================================================= =======DYMS5:MOV R5,#135DJNZ R5,$RET;======================================================= =======DY1MS:MOV R6,#138D2:DJNZ R6,D2RET;======================================================= =======END。
基于51单片机的智能小车设计报告
本人保证自写文档,文档不足之处请谅解目录一、设计的目的------------------1二、设计的模块------------------1三、程序的流程------------------6四、元器件清单------------------8五、成品的制作------------------8六、注意事项--------------------9七、设计的总结------------------9设计的目的智能遥控车地目的主要突出在智能与遥控上,遥控意思明显就是通过某种控制手段使得小车能够实现由控制者控制前进后退等操作;智能可以体现为功能上的智能化。
本作的目的是实现控制小车移动时对前方所存在的威胁进行报警提醒。
设计的模块此次设计的硬件电路模块大致为五大类,分别是51单片机最小系统模块、电源模块、电机工作驱动模块、超声波报警系统模块、无线控制发射接收模块。
下图为硬件电路框图:1、单片机最小系统此模块式是本设计的控制核心模块,单片机最小系统由三部分组成:STC89C52芯片部分、复位部分(由按键开关、极性电容、10K电阻组成)、晶振部分(由12M石英晶振、两个30PF的瓷片电容组成)。
主要起程序的输入与控制、程序的复位、时间频率控制的作用。
2、无线控制模块本设计的无线控制模块是由编码芯片PT2262和解码芯片PT2272组成的电路模块组成,工作方式是编码芯片PT2262 发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272 接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。
3、电机驱动模块本设计是采用了L298N电机驱动模块来驱动减速电机工作;L298N是ST公司生产的一种高电压、大电流电机驱动芯片。
该芯片采用15脚封装。
主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。
基于单片机控制的wifi智能小车毕业设计
篇一:基于51单片机WiFi智能小车制作
基于51单片机WiFi智能小车制作
一、基本原理
51单片机WiFi智能小车是利用PC或手机作为控制端,通过手机连接wifi模块(路由器)以获得wifi信号,同时车载也连接wifi模块以获得和手机相同的IP地址,实现手机和小车的连接,然后利用PC或手机上的控制软件以wifi网络信号为载体发送相关信号,wifi模块接收PC或手机端发送来的相关信号并分析转换成TTL电平信号,然后发送给单片机,单片机接收到的电平信号处理、分析、计算,转化成控制指令并发送给电机驱动模块以实现小车的前进、后退、左拐、右拐等功能。
第1章
1.1
1.2
第2章
2.1
2.2
2.3 绪论 ................................................................................. 错误!未定义书签。 智能小车的意义和作用 ........................ 错误!未定义书签。 智能小车的现状 ............................................... 1方案设计与论证 ............................................................................................... 2 主控系统 ..................................................... 2 电源模块 ..................................................... 2 电机驱动模块 ................................................. 3
基于51单片机的智能小车控制系统设计与制作
• 186•自从单片机问世以来,就被广泛地运用在各个行业中,如工业自动化,自动检测与控制系统,智能仪器仪表,家用电器等各个方面。
在当今社会,几乎所有的电子类产品都会用到单片机的集成芯片。
51单片机是一款八位单片机,它的易用性和多功能性受到了广泛使用者的一致好评,单片机的运用正在不断强化,基于它具有体积小,功耗低并且成本低的特点,工作可靠性强,根据这些特点特别适合用于控制有关的系统。
该设计在车身部分采用STC89C52RC 单片机作为主要的核心控制芯片。
通过无线传送操作指令,利用光电门来监测小车驱动轮的转速,从而用PWM 动态调节和控制小车的速度与方向。
该设计主要实现以下几点功能:前进后退、左转右转、黑线寻迹、避障、红外遥控、以及调节小车行驶速度。
智能遥控小车的研究现状首先在美国工业方面首先展开运用,由于很大的便利之处和智能化,就让其得到了政府的认可,得到了相关技术和政策的支持,因此各大工业大国都在智能无线遥控上占据着一定的优势。
因此,在未来智能小车的应用将随处可见。
本总体结构图如图1所示。
本设计系统主要以STC89C52RC 为核心的单片芯片为中心,芯片使用T0定时器的中断方式,形成更精确的脉冲波,以驱动发动机L298N 芯片精准的控制发动机的旋转速度。
采用PT2262的编码解码芯片并进行无线传输和操作:执行指令接收和控制车身移动平台上的单片机收到相应的指令后改变发动机的PWM 脉冲波形,并调整车辆当前的操作状态。
2 硬件设计在小车设计的硬件模块中单片机采用的是51系列作为控制的核心处理器,这里主要是以STC89C52RC 作为主要控制芯片,它兼容51的全部功能并且功能更加优化。
单片机最小系统由外围信号I/O 口组成的,包括电源、CPU 时序电路、复位电路,在这三个模块的基础上,单片机就能够正常的工作。
设计系统中,时钟晶振电路模块采用的工作方式是内部时钟的工作方式,是通过利用芯片内部的实时震荡谐振电路模块来进行实现。
基于STC51单片机315M无线遥控智能小车-Protues仿真-程序编写
无线遥控智能小车摘要:本设计就采用了比较先进的89C51为控制核心,89C51采用CHOMS工艺,功耗很低。
这种方案能实现对智能小车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。
本设计采用MCS-51系列中的89C51单片机。
以89C51为控制核心,利用超声波传感器检测道路上的障碍,控制电动小车的自动避障、自动寻迹功能。
整个系统小巧紧凑,控制准确,性价比高,人机互动性好。
关键词:单片机;避障;寻迹;89c51图2-1系统硬件框图三、硬件的设计(一)系统硬件设计思路按设计要求,根据超声波测距原理,以单片机AT89c51为核心的测液位系统。
设计系统各部分电路功能。
图3.1为89C51单片机的最小系统。
图3.1 89C51单片机最小系统1.时钟电路89C51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。
89C51单片机的时钟产生方法有两种。
内部时钟方式和外部时钟方式。
本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。
本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。
振荡晶体可在1.2MHZ到12MHZ之间选择。
电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,CX1、CX2可在20pF到100pF之间取值,但在60pF到70pF时振荡器有较高的频率稳定性。
所以本设计中,振荡晶体选择6MHZ,电容选择65pF。
在设计印刷电路板时,晶体和电容应尽可能靠近单片机芯片安装,以减少寄生电容,更好的保证振荡器稳定和可靠地工作。
为了提高温度稳定性,应采用NPO 电容。
2.复位电路89C51的复位是由外部的复位电路来实现的。
复位引脚RST通过一个斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
基于51单片机的WIFI遥控小车
基于51单片机的WIFI遥控小车本文所述智能车寻迹系统采用红外反射式光电管识别路径上的黑线,并以最短的时间完成寻迹。
通过加长转臂的舵机驱动前轮转向,使用符合PI算法的控制器实现直流电机的调速。
为了使智能车快速、平稳地行驶,系统必须把路径识别、相应的转向伺服电机控制以及直流驱动电机控制准确地结合在一起。
本设计最大亮点在于WIFI智能,过高速WIFI信号来控制小车的前进、后退、左右转弯、高清摄像头实时拍摄。
具有高度的智能化、人性化。
标签:智能;WIFI;51单片机1 引言智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。
电动智能车就是其中的一个体现。
本次设计的电动智能车可实现循迹、避障、WIFI 智能视频等功能。
随着控制技术及计算机技术的发展,智能车系统将在未来工业生产和日常生活中扮演重要的角色。
2 设计方案该设计以AT89C51为核心,经焊接相关芯片用电路板自制而成,通过I/O 口检测信号,输出信号到LD293D,从而驱动两个直流电机控制其前进、停止、左转、右转。
检测信号则为三组红外发射和接收管,一组黑线时输出高电平,白线时输出低电平。
另两组黑线时输出低电平,白线时输出高电平。
并通过采用红外反射式光电管识别路径上的黑线,并以最短的时间完成寻迹。
通过加长转臂的舵机驱动前轮转向,使用符合PI算法的控制器实现直流电机的调速。
为了使智能车快速、平稳地行驶,系统必须把路径识别、相应的转向伺服电机控制以及直流驱动电机控制准确地结合在一起。
3 硬件电路设计硬件电路分为电源模块、单片机最小系统模块、传感器模块、LM298电机驱动模块。
下面分别介绍下电源模块、传感器模块和电机驱动模块。
4 研究内容设计采用Atmel系列中的AT89C51单片机。
以AT89C51为控制核心,利用红外反射式光电管识别路径上的黑线,并以最短的时间完成寻迹。
基于单片机的无线遥控智能小车的设计与制作
基于单片机的无线遥控智能小车的设计与制作基于单片机的无线遥控智能小车的设计与制作一、引言无线遥控智能小车作为一种具有很高应用价值的机器人产品,广泛应用于工业自动化控制和科研实验等领域。
本文通过基于单片机技术的无线遥控智能小车的设计与制作,并对其硬件框架、控制原理与实现过程进行了详细介绍。
二、硬件框架设计无线遥控智能小车的硬件框架主要包括:单片机控制模块、无线收发模块、电机驱动模块、传感器模块和电源供应模块。
其中,单片机控制模块采用Arduino Uno开发板,具有良好的稳定性和可扩展性;无线收发模块采用nRF24L01无线收发模块,能够实现稳定的无线通信;电机驱动模块采用L298N电机驱动模块,能够实现电机的正反转和速度调节。
三、控制原理与实现过程1. 信号传输通过无线收发模块实现遥控信号的传输。
遥控器通过按键发送指令信号,无线收发模块接收到信号后解码,并将解码后的数据发送给单片机控制模块。
2. 控制逻辑设计单片机控制模块接收到解码后的数据,并根据指令进行相应的处理。
根据指令控制电机驱动模块的工作状态,从而控制小车的行进方向和速度。
3. 传感器模块为了使无线遥控智能小车具备一定的智能化能力,我们添加了一些传感器模块,如红外避障传感器、超声波测距模块和光敏传感器。
通过这些传感器模块,小车能够实时感知周围环境并根据实际情况进行相应的处理,如避开障碍物、自动停车等。
四、制作过程1. 硬件组装首先,将Arduino Uno开发板与nRF24L01无线收发模块、L298N电机驱动模块和传感器模块相连接,并通过杜邦线进行连接;其次,将电机连至电机驱动模块,并将驱动模块与单片机控制模块进行连接;最后,为整个系统供电,利用适配器连接至电源供应模块。
2. 软件编程使用Arduino编程软件进行代码编写。
根据硬件框架设计和控制原理,编写相应的控制程序,实现指令接收、电机控制、传感器数据处理等功能。
五、实验结果与展望经过完整的设计与制作过程,我们成功地实现了基于单片机的无线遥控智能小车。
基于单片机的WIFI智能小车设计
企业实践报告( 2016-- 2017年度第1学期)基于51单片机的WIFI遥控小车设计专业学生**班级*学号***指导教师完成日期2016.12.*目录第1章绪论 (2)第2章方案论证及选择 (2)2.1 系统方案选择 (2)2.2 总体设计方案 (2)2.2.1 整机系统 (2)2.1.2 整机工作原理 (2)第3章硬件系统设计 (2)3.1 路由器 (2)3.2 ESP8266WIFI模块 (2)3.2.1 ESP8266WIFI模块引脚功能 (2)3.3 STC89C52RC单片机 (2)3.3.1 STC89C52RC单片机引脚功能 (2)3.3.2 单片机的外围电路 (2)3.4 L293D电机驱动模块 (2)3.4.1 L293D引脚功能及原理图 (2)3.5 3.3V降/稳压模块 (2)3.5.1 降/稳压模块的原理图 (2)3.6 5V和3.3V串口电平转换模块 (2)3.6.1 引脚功能和原理图 (2)第4章软件系统设计 (2)4.1 软件开发环境 (2)4.1.1 Android的APP软件的开发 (2)4.1.2 单片机程序开发环境Keil (2)4.2 程序流程图 (2)4.2.1 主程序流程图 (2)4.2.2 串口中断接收流程图 (2)4.2.3 串口发送指令流程图 (2)第5章设备调试 (2)5.1 系统调试 (2)5.2 硬件设备调试 (2)5.2.1 ESP8266串口WIFI的连线 (2)5.2.2 STC89C52RC单片机连线 (2)5.2.3 单片机和WIFI模块的连线 (2)5.3 软件调试 (2)5.3.1 WIFI模块的调试 (2)5.3.2 单片机的调试 (2)5.3.3 单片机和WIFI模块的调试 (2)心得体会 (2)总结 (2)参考文献 (2)附录1 单片机程序 (2)第1章绪论现在是一个智能化的时代,各种智能化的设备正在逐步代替人为的操作。
基于51单片机的无线遥控小车讲解
题目:基于51单片机的无线遥控小车学生姓名:武宏宝学生学号:1008030311系别:电气信息工程学院专业:电子信息工程专业年级:10(3)班任课教师:权循忠电气信息工程学院制2012年11月基于51单片机的无线遥控小车学生:武宏宝指导教师:权循忠电气信息工程学院:电子信息工程专业摘要遥控小车利用单片机作为控制核心,使用红外线发射和接收器件、接近反射式光电感应器件、编码解码芯片和无线收发模块,实现智能小车的遥控小车的运动轨迹,用单片机输入/输出接口控制伺服电机方向、速度和运行时间,模块化结构保证了小车成为一个可靠整体,软件采用C语言编程,完成小车所要实现的功能。
关键词:单片机红外遥控目录摘要1.智能小车总体设计结构及硬件模块设计 (4)1. 1 总体设计结构 (4)2.智能小车各模块电路设计 (4)2. 1 无线遥控原理 (4)2. 2 无线遥控发射原理 (5)2. 3 无线遥控发射原理 (6)2. 4 无线遥控接收原理图 (7)2. 5 无线遥控接收原理 (8)3. 总结 (9)4. 参考文献 (9)附录无线遥控控制程序1.小车总体设计结构及硬件模块设计1.1总体设计结构遥控小车采用STC单片机集中控制和分散模块化设计。
智能小车硬件由STC单片机开发板以及无线遥控模块组成,智能小车采用左右两个伺服电机,高电平持续的时间控制电机运动转速。
智能车前下端4组检测灯对黑线的反馈信号,通过单片机控制伺服电机的转动。
前端的两组红外检测灯对障碍物进行检测,通过单片机P2口的低四位对遥控信号进行检测。
小车的机械结构设计:为了保证小车能够进行遥控,我们将道路检测电路板放在小车底盘的前端,无线接收模块放在小车的尾部,单片机控制板放在小车的正上方保持小车的平衡性,小车的主动轮为前端两个,从动轮为后面一个,电池放在两个主动轮之间,这样的整体设计既可以保持重心尽量在一条竖直线上又方便电源的开关,使小车转弯时的转动惯量减小,增强其稳定性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于51单片机WiFi智能小车制作
一、基本原理
51单片机WiFi智能小车是利用PC或手机作为控制端,通过手机连接wifi模块(路由器)以获得wifi信号,同时车载也连接wifi模块以获得和手机相同的IP地址,实现手机和小车的连接,然后利用PC或手机上的控制软件以wifi网络信号为载体发送相关信号,wifi模块接收PC或手机端发送来的相关信号并分析转换成TTL电平信号,然后发送给单片机,单片机接收到的电平信号处理、分析、计算,转化成控制指令并发送给电机驱动模块以实现小车的前进、后退、左拐、右拐等功能。
二、购买所需材料
了解51单片机WiFi智能小车基本原理后,需要购买所需材料进行制作。
下面列出所需制作材料:。