《17PWM机器人.docx》由会员分享,可在线阅读,更多相关《17PWM机器人.docx(25页珍藏版)》请在优知文库上搜索。
1、一种具有17路可调PWM直流电机的串口遥控机器人技术领域本实用新型涉及一种具有17路PWM直流电机的串口遥控机器人,尤其是一种可以用串口无线WiFl遥控的智能机器人。背景技术现有常规遥控机人按照无线电信号的遥控进行动作,也可以按照存储在寄存器里面的程序动作,但是动作电机较少,一般只有4路PWM直流电机,且PWM方波的频率,占空比保持固定,这对机器人的行动带来很大的不便。一种具有17路可调PWM直流电机的串口遥控机器人是一种具有17路可调PWM频率、占空比的直流电机的机器人,操作者可以使用计算机串口WIFI信号对它的17路直流电机进行遥控,它也可以按照其控制电路中的24C04铁电存储器里面的数据
2、,读取ADC0832芯片采样的温度值,并通过串口WTFI信号发送到操作者的电脑。实用新型内容为了解决常规遥控机器人动作电机较少,动作单一的缺点,一种具有17路可调PWM直流电机的串口遥控机器人提供了一种具有17路可调PWM直流电机进行串口WIFI信号遥控动作的机器人。它可以按照电路中的24C04铁电存储器里面的数据,读取ADCO832芯片采样的温度值,在单片机STCI2C5A60S2的控制下进行动作,也可以按照操作人员的计算机串口WlFl信号的遥控进行动作。由于它具有17路PWM直流电机,所以它可以进行行走,抬手,伸手等多种动作。本实用新型解决其技术问题所采用的技术方案是:一种具有17路可调P
3、WM直流电机的串口遥控机器人是一种可以被WIFl串口信号遥控的机器人,它的17路PWM方波的频率和占空比都可以通过计算机WIFl串口信号进行调节。它依靠外壳下面装配的17路PWM直流电机在操作人员的计算机串口WIFl信号的遥控下进行转动,行走等各种动作。它可以在电机的转动下进行移动,行走,抬手等等动作。同时,它也可以按照控制电路中的24C04铁电存储器(5)里面的数据,在STC12C560S2单片机(4)的控制下进行电机的转动等动作,它可以将ADC0832芯片(6)采样得到的温度值通过WIFl串口发送到计算机。它的控制电路如图1所示。在图1中,STCI2C5A60S2单片机(4)的Pl中的PL
4、2,PL3,Pl.4,Pl.5,Pl.6,PL7端口,P3中的P3.2,P3.5,P3.6端口,P2中的P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7端口在定时器TlMEO的控制下产生17路PWM方波,上面总共17路IO口,每个IO口产生一路PWM信号,总共17路PWM控制方波信号。操作人员通过遥控计算机的WIFI串口发送数据到STCI2C5A60S2单片机(4),就可以改变上述端口的PWM方波信号的频率、占空比等。同时也可以得到ADC0832芯片(6)采样得到的温度值。WIFI模块连接在单片机STC12C560S2(4)的串口上面,它接收操作人员发出的数据,然
5、后单片机STCI2C5A60S2(4)按照程序减少或增加PWM方波的占空比,增加或减少频率。同时单片机(4)按照铁电存储器24C04(5)中的数据控制上面的PWM方波信号。操作人员通过USB串口(1),经过芯片PL2303HX(3),给单片机下载程序。5V开关电源(2)给单片机提供5V直流电。ULN2003D驱动芯片(7)使单片机Pl,P2,P3端口的PWM信号稳定保持不变操作人员通过计算机串口发送十六进制数01,单片机(4)的PO.0端口就是高电平,同时单片机将01发送给计算机,也将ADCO832芯片(6)采样得到的温度值发送给计算机。操作人员通过计算机串口发送十六进制数02,单片机(4)的
6、PO.1端口就是高电平,同时单片机将02发送给计算机,也将ADCo832芯片(6)采样得到的温度值发送给计算机。操作人员通过计算机串口发送十六进制数04,单片机(4)的P0.2端口就是高电平,同时单片机将04发送给计算机,也将ADCo832芯片(6)采样得到的温度值发送给计算机。单片机的程序可以在百度网盘hups:/DarLs14Ui9JTlWZ,OVJPuoOI-cw下载。单片机STCI2C5A60S2(4)的控制程序是在keill4编译环境下,通过C语言编译并通过串口下载到单片机STCI2C5A60S2(4)0程序代码如下:* 程序思路说明:* 关于频率和占空比的确定,对于12M晶振,假定
7、PWM输出频率为IKHZ,这样定时中断次数* 设定为C=IO,即0.OlMS中断一次,则THO=FF,TL0=F6;由于设定中断时间为0.01ms,这样可以设定占空比可从ITOO变化。即0.01ms*10O=ImS*/ttinclude#include#defineucharunsignedcharincludedefineOP_READOxal/器件地址以及读取操作defineOPJrRITEOxaO/器件地址以及写入操作#defineMAX_ADDR0x7f/AT24C02最大地址* THO和TLO是计数器0的高8位和低8位计数器,计算办法:TLO=(65536-C)%256;* THO=
8、(65536-C)/256,其中C为所要计数的次数即多长时间产生一次中断;TMOD是计数器* 工作模式选择,0X01表示选用模式1,它有16位计数器,最大计数脉冲为65536,最长时* 间为lms*65536=65.536ms*/#defineVTHOOXFF#defineV_TLO0XF6#defineVTMOD0X01#defineVTHlOXFF#defineV_TL10XF6#defineVJH2OXFF#defineVTL20XF6#defineuintunsignedintdefineucharunsignedchar#definenopnop()sbitadcs=P3*7;/P3
9、.7连接DC0832的CS使能端sbitadclk=P;PLO连接ADCO832的时钟输入口Sbitaddin=P1;ADeO832的DO,Dl是分时工作的,所以这两个端口可以接在同一个IO口Pl.1ucharaddata;bity;位数据,以0或I区倍两个通道的输入和输出unsignedcharcodedis_code=0x7e,Oxbd,Oxdb,0xe7,Oxdb,Oxbd,0x7e,Oxff;/写入到AT24C01的数据串sbitSDA=P34;sbitSCL=P33;voidadread();voidadstart();voidstart();voidstop();unsignedc
10、harshin();bitshout(unsignedcharwritedata);unsignedcharreadrandom(unsignedcharrandomaddr);voidwritebyte(unsignedcharaddr,unsignedcharwritedata);voidfi11byte(unsignedcharfi11data);voiddeIayms(unsignedcharms);voidinit_sys(void);*系统初始化函数*/voidDelay5Ms(void);voiddelayl(unsignedcharm);unsignedcharZKBl,ZKB
11、2,ZKB3,ZKB4,ZKB5,ZKB6,ZKB7,ZKB8,ZKB9,ZKBlO,ZKBll,ZKB12,ZKB13,ZKB14,ZKB15,ZKB16,ZKB17,ZKB18;unsignedcharZKB19,ZKB20,ZKB21,ZKB22,ZKB23,ZKB24,ZKB25,ZKB26,ZKB27,ZKB28,ZKB29,ZKB30,ZKB31,ZKB32;unsignedcharkey_s,key_v,tmp,tmpl;charcodestr=0x7e,Oxbd,Oxdb,0xe7,Oxdb,Oxbd,0x7e,Oxff,0x7e,Oxbd,Oxdb,0xe7,Oxdb,Oxb
12、d,0x7e,Oxff,0x7e,Oxbd,Oxdb,0xe7,Oxdb,Oxbd,0x7e,Oxff;voidsendstr();bitscankey();voidprockey();voiddeIayms(unsignedcharms);voiddeIaymsl(unsignedchara);voidsendchar(unsignedchartxd);unsignedchari;unsignedchark,m;m为频率常数变量unsignedchars=0;unsignedcharp;unsignedcharp1=0x00,p2,p3,p4;本例采用89C52,晶振为12MHZ关于如何编制
13、音乐代码,其实十分简单,各位可以看以下代码.频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍;所以拿出谱子,试探编吧!/sbitBeep=P37;sbitBeepl=P36;sbitBeep2=P35;/sbitBeep3=P34;/sbitBeep4=P33;sbitBeep5=P32;/sbitBeep6=P31;/sbitBeep7=P30;sbitBeep8=Pl7;sbitBeep9=Pl6;sbitBeeplO=Pl5;sbitBeepll=Pl4;sbitBeepl2=P3;sbitBeep13=P2;/sbitBeepl4=Pll;/sbitBeep15=Pl0;sb
14、itBeepl6=P27;sbitBeep17=P2-6;sbitBeepl8=P2-5;sbitBeep19=P24;sbitBeep20=P23;sbitBeep21=P22;sbitBeep22=P21;sbitBeep23=P2P;unsignedcharn=0;n为节拍常数变量歌曲为八月桂花香unsignedcharcodemusic_tab=0x18,0x30,OxlC,0x10,格式为:频率常数,节拍常数,频率常数,节拍常数,0x20,0x40,OxlC,0x10,0x18,0x10,0x20,0x10,OxlC,0x10,0x18,0x40,OxlC,0x20,0x20,0x2
15、0,OxlC,0x20,0x18,0x20,0x20,0x80,OxFF,0x20,0x30,OxlC,0x10,0x18,0x20,0x15,0x20,OxlC,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,OxFF,0x20,0x20,OxlC,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x20,OxlC,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20