龙源期刊网单片机无线小车设计作者:张权皮季骅沈利霖闵盛楠来源:《中国科技博览》2019年第02期[摘要]在当今社会智能化的快速发展,人们的生活中被越来越多的电子产品智能化设备包围着,人们也是对这种智能化发展给生活带来的好处,方便性也是显而易见的。从当今产业来看,各类重工业,轻工业,甚至第三产业也网智能化自动化方向走,从设计的各种生产智能流水线,到现在各种智能玩具,自助商店,自助付款都可能看到当今发展的趋势,当然这给我们也带来了无限的开放性的发展方向,研究方向,这些都是我产品设计的原动力。本设计就是基于51单片机设计的无线遥控智能车。首先他有两个主要设备组成,一个是无线控制器,另一个就是智能小车。无线控制器使用的是51单片机为微控制器……为无线传输控制……为方向控制器,通过我们人为的控制手持控制器的方向来发送数据给小车上的……模块,通过对数据的处理将数据发送给51单片机进行处理,来控制小车的状态。智能小车的的部分设置了LCD1602显示器来展示当时时间,状态,并且在小车中设置了4个LED灯,他的作用是调试的时候方便看清电机的不同状态。我们可以通过控制器的手势控制,通过角度的测量来控制小车,并且可以测量角度的大小来控制车速。[关键词]智能小车;LCD1602;WIFI中图分类号:G623.2文献标识码:A文章编号:1009-914X(2019)02-0158-01一、引言我们从市场上调查看来,市场上大部分设备都是以有线和无线按键为主,我们这一款更具有智能意义,操作起来更舒服,所以从价格到使用方面我们这一款设计有很大的市场。下面我们总体的讲一下我们的设计:二、电路设计我们的硬件电路由2个模块组成,分别是:感应发送器模块和小车控制模块1:其中感应发送器模块我们使用的52单电机为主控芯片,无线发送模块,MMA7361角度采集模块。电源电路模块。。2:小车控制模块主要有:51单片机微处理器,无线接收模块,LCD1602显示模块,电机驱动模块,电源电路模块。龙源期刊网无线模块:使用的是NRF24L01,NRF24L01是一类非常典型的1GHz无线数传芯片,其通常情况下在三个频段运行,分别是433MHz、868MHz、915MHz。除此之外,芯片配置了多种模块,其中比较具有代表性的包括频率合成器、调制器等,性价比高。电机驱动模块:我们使用的是L298N,我们采用的电机驱动芯片是L298N,其中4引脚是接2.5V到4.6V电压的用来驱动电机的转动,而4脚接的是4.5V到7V电压用来为L298N芯片供电,,ENA,ENB是L298N芯片的使能端,只有ENA,ENB两引脚都为高电平时才能控制电机不同的转动,IN1到IN4为单片机的输入端,其中IN1,IN2控制OUT1,OUT2输出,IN3,IN4控制OUT3,OUT4输出。STC89C51是STC企业开发的微控制器,其应用了常规的MCS-51内核,然而其进行了诸多方面的优化,如此就让芯片能够体现诸多优良的特性。对于单芯片来说,其配置了8位CPU,让该控制器提升了装置的灵活性。运作频率的极限值等于35MHz。STC89C51RC是一类应用非常广泛的可编程芯片,其工作时钟频率的极限值等于80MHz,器件兼容标准MCS-51指令系统及80C51引脚结构,如此就省去了常规的编程器,并且效率非常出众。另外,该芯片的能耗达到较低的水平,并应用流水线/精简指令集结构。1其中电源电路原理阐述:我们使用的是AMS1117降压稳压芯片,该芯片价格低稳定性高,5V输入端输入通过降压芯片降压到3.3V稳定给电源供电,其中用到滤波电容,将电源谐波过滤掉电源更清洁便于我们调试的稳定性。使用一个开关控制电源电路的通断,有利于方便我们单片机重新启动,方便复位。电机驱动电路的作用:我们使用的电机都是需要较大电压驱动的,单片机是不能满足电机的驱动需求,所以我们需要用到驱动电路放大电压电流,我们使用的驱动芯片为ULN393驱动芯片,该芯片性价比高,功能稳定,8路输入8路输出,其他脚接电源接地,单片机通过将信号传送给驱动器来,再通过驱动器放大电压电流来控制电机的转动。三、软件设计我们软件设计主要对各个一一对应分配的I/O口做初始化,在主程序中我们设置LCD显示屏的显示程序,我们使用库函数中Lcd_Puts()来输出我们想要的内容,有时间日期和装置的工作时间。并且设置电机正反转的电机驱动程序,实现正反转的原理就是在程序中设置相反的脉冲顺序这样电机就会实现不同的转动方向。程序中的慢速快速设计在原有转动的基础上设置给脉冲的频率来控制转速。无线通讯主要是利用NRF24L01模块进行具体实现,遥控板当中的单片机可得到MMA7361采集的角度指令,在这之后利用相关算法得到小车中的指令,并对其进行加密处龙源期刊网理,利用NRF24L01发送至小车,通过这种方式,小车就得到了遥控板的命令,如此就能够实现无线通讯,无线发送和接收程序所对应的设计流程详见下图。1:首先对遥控器NRF24L01无线控制模块进行初始化,设定无线模块为待机模式。voidnRF24L01_Init(void){CE=0;//待机模式ⅠCSN=1;SCK=0;IRQ=1;}2:初始化SPI时序函数BYTESPI_RW(BYTEbyte){BYTEi;for(i=0;i{if(byte&0x80)//如果数据最高位是1MOSI=1;//向NRF24L01写1else//否则写0MOSI=0;byteSCK=1;//SCK拉高,写入一位数据,同时读取一位数据if(MISO)byte|=0x01;SCK=0;//SCK拉低龙源期刊网}returnbyte;//返回读取一字节}3:设定函数BYTESPI_W_Reg()为SPI写寄存器函数。BYTESPI_W_Reg(BYTEreg,BYTEvalue){BYTEstatus;//返回状态CSN=0;//SPI片选status=SPI_RW(reg);//写入寄存器地址,同时读取状态SPI_RW(value);//写入一字节CSN=1;//returnstatus;//返回状态4:经过一系列需要初始化的程序,下面就是完成通讯,首先我们先初始化无线模块MPU6050然后设置为发送数据模式,读取陀螺仪的角度数据,通过函数nRF24L01_Set_TX_Mode()发送数据给小车的无线模块,在经过无线模块对数据的处理将所需要控制的信号发送给51单片机,然后进行不同方式的驱动,做到无线控制小车的目的。voidmain(){InitMPU6050();//初始化MPU6050nRF24L01_Init();while(1){TX_Buffer[0]=125+GetData(ACCEL_XOUT_H)%16384/125;龙源期刊网[1]=125+GetData(ACCEL_YOUT_H)%16384/125;nRF24L01_Set_TX_Mode(TX_Buffer);//发送数据while(Check_Ack());//等待发送完成}}参考文献:[1]张颖,吴成东,原宝龙.机器人路径规划方法综述[J].控制工程,2003(z1):152-155.被引量:52[2]衣云龙[1],关颖[1].基于Dijkstra算法的足球机器人的一种路径规划方法[J].沈阳工程学院学报:自然科学版,2009(1):67-69.[3]尹宝才[1],徐振华[1],孔德慧[1],肖小芳[1].基于Voronoi图的实时人群路径规划[J].北京工业大学学报,2009(8):1115-1121.