《8人形街舞机器人_整机代码.docx》由会员分享,可在线阅读,更多相关《8人形街舞机器人_整机代码.docx(13页珍藏版)》请在第一文库网上搜索。
1、多自由度人形双足舞蹈机器人整机代码疯壳、机器人开发系列官网地址:https:/www.fengke.c1ub/GeekMart/su_fQ5NUtngs.jsp配套资料:https:/www.fengke.c1ub/GeekMart/su_fV1WzKsGQ.jsp配套视频:https:/www.fengke.c1ub/GeekMart/su_fBdB1yTUO.jsp购买地址:https:/www.fengke.c1ub/GeekMart/su_fQ5NUtngs.jspQQ群:457586268整机代码1相关简介本章将结合前面实验章节,完成机器人的整机代码。我们的机器人由17个舵机控制各个
2、关节,拥有在线调试模式和脱机模式两种模式。在脱机模式下,我们的机器人将读取外部F1ash中的数据,完成相应的动作组。而在线调试模式下,机器人将与我们所提供的上位机软件robotCtr1连接,实现在线控制舵机、在线运行动作组以及在线下载动作组等功能。2硬件设计硬件方面,关于外部F1ash和串口Uart部分,可以参照前面的章节。本次将控制17个舵机的转动,17个IO口与3个74HC244相连接,间接控制17路舵机的信号。3软件设计我们整个软件的流程如下:图2代码开始运行之后,首先进行初始化。在初始化进程中,我们完成了串口初始化、IO口初始化、定时器初始化等。关于这三个部分可以查看前面的章节。初始化
3、完毕之后,就进入一个模式选择。我们的模式选择是通过测量IO口POI的电压开控制机器人的模式,当POI为低电平时进入脱机模式,反之进入在线调试模式。如下图所示,两根线接上就是脱机模式,拔掉就是在线调试模式。们的IAP15W4K61S5单片机通信。其实也就是通过串口通信,如同前面的串口控制舵机转动章节。但要注意的是,我们上位机软件BbotCtrI功能对应发送的字符串是固定的,所以我们IAP15W4K61S5单片机处理字符程序也必须相对应。与上位机连接voiduartjnt(void)interrupt4using1if(SBF!=OXOA)&(SBUF!=020)if(SBUF=S)&(DataT
4、yPe=0)ReceDataModIe=1;)e1seif(SBUF=ReceDataModIe=2;if(ReceDataMod1e=1)(if(SBF=,1,)(DataType=1;)if(SBF=2)(DataType=2;if(SBF=,3,)(DataType=3;)ReceDataModIe=0;)e1seif(ReceDataMod1e=2)(if(SBF=,G)(uart_string(O);First1oadPnow=1;)e1seif(SBF=,D,)(DirectionModIe=1;e1seif(SBF=,E,)(DirectionModIe=2;ReceDataMo
5、dIe=O;)e1se(Switch(DataType)(PnextBuffStepCount=SBUF;StepCount+;if(PnetBuffStepCount-1=,S,)(DataType=O;StepCount=O;UartReceFinishFIag=1;break;PnetBuffStepCount=SBUF;StepCount+;if(PnetBuffStepCount-1=,S,)(DataType=0;StepCount=0;UartReceFinishFIag=2;break;)break;PnextBuffStepCount=SBUF;StepCount+;if(P
6、nextBuffStepCount-1=S)(DataType=O;StepCount=O;F1ashDownIoadFIag=1;UartReceFinishFIag=3;break;break;defau1t:break;)Switch(DirectionModIe)(DownIoadSectionNum=AsciiToVaIue(SBUF);UartReceFinishFIag=3;DirectionModIe=O;uart_stnng(O);break;if(SBF=A)(FIashEraserChipFIag=1;EraserSectionNum=AsciiToVaIue(SBUF)
7、;FIashEraserFIag=1;)UartReceFinishFIag=3;DirectionModIe=0;break;defau1t:break;)R1=0;)代码1voiduartjnt(void)interrupt4using1是我们的串口接收中断函数,将上位机软件robotCtr1发送的字符进行处理,执行操作命令,存储舵机角度数据到我们所建立的数据缓冲区PneXtBUff口40里。当接收到上位机软件发送的下载命令字符时,IAP15W4K61S5单片机就将缓冲区PneXtBUff140中的动作组数据下载到外部F1ash中。在脱机模式下,单片机就读取外部F1ash中的动作组数据,然
8、后控制舵机,做出相应的动作。外部F1ash的读写操作比较简单,可以参考前面的外部F1aSh读写章节。4实验现象首先打开下载软件STC-ISPoMSTC-ISP(V6.8SD)0513-55012928)宫目:WWWSTCMCU.coiWIfetHR!IH,J送择使网内皿08找*卬遗劫卜眄仲)W入用M1序运行时的;底频窜0592RHi,港初除大ItjSaN以上透保)JAWftifFftfctI下次启动时,门233为0/0才可TJWS序J上电位使用校长硼J舅WM用作1/0口/元讣公反复位等止戋叵中If)CKtimH263VJ色压Bt禁止IIrai1作.蝌NY”给(S工1tg27V上电量的由it件自
9、动包施ITSIft1停止一重携程饴到IKwJ更王怠/阴就Mgyjpm1/0译)若a*r-o481SftKeo61KerIU24X3大事/突检E勒科/刨串口财手!-.ss7ttra苒魄序工作电庄1:程岸空同:SM大小P嫡彳:皿卜:皿s,jW(1IMS支做.SS-3855-3655-3.55-38J号欠RJtiRiMi斯累贯目标文件电律文件变化时自助停依开左法不依循令发布须QM发布助目网M*na机鱼号ja.awo图4(1)点击Kei1仿真设置,添加STC相关的头文件。STC的相关头文件路径是我们之前安装Kei1C51的路径,如果之前采用的默认路径,那么选择C盘Kei1文件夹。渝STC-ISP(V6
10、.86函第笠电话:0013-55012928)官网:WwW.STCMCUDATACom东支持QQ:8000.10.回rf单片机型号1AP15W4K61S4|引蹴海/瘫室/教材/招聘|串口助手KeiI仿真般盍选怨良国串口号回M9的,最低波特率1400最高波特率1152I下载/编建I蓟重复编程I检测MCU选项II注意/帮助重复延时而miKe1I仿真器Kei1I端建处设置单片机型号:STC8A8K64S4A123TC6CTei将所选目标单片机设置为仿真芯片电脑RXDTXDP3.0TXDGND5时心尸行连接单CPURS232仿真目标CPUP3.1嚏双点击此页面中的“添聘翘疆白制PWM波形发生器J每次下
11、载前都重新装载目标文件当目标文件变化时自动装载并发送下载命令I发布项目帮助11读取本机硬盘号I团提示音成功图5(2)添加完STC相关的头文件,点击弹窗中的确定。(3)设置单片机的型号、最低波特率、最高波特率如下图所示,硬件选项等选项默认即可。串口号根据实际情况选择。jcSTC-ISP(V6.86G)售电话:0513-55012928)官网:WwW.STCMCUDATA.com(技术支QQ:80.0I回J单片机型号IAP15I4K61S4W引脚数豆三I大赛/实验室/教材/招聘I串口助手K.ii仿真设置送,串口,USB-SER1A1CKgO(COMg)1最低波特到2400三最离波特军旅200起始地
12、址0x0000J清除代码缓冲区OxiNju-1清除EEPRoM援中区打开程序文件打开EEPRoK文件硬件送项:脱机下载/U8/W程序加密后传输ID4,J送择使用内部IRC时钟小选为外部a寸钟)输入用户程序运行时的IRC频率3KaMHz,振荡器放大摺益(12M以上建议选择)区使用快速下到模式下次冷启动0寸,P3.2/P3.3为0/0才可下载程序J上电复位使用较长延时:,复位脚用作I/O口允许低压复位黑止低压中断)发布项目程序I发布项目帮助读取本机硬盘号只提示音成,每次下裁前都重新装教目标文件当目标文件变化时自动装载并发送下载命令(4)点击打开程序文件,选择我们例程中的.hex文件。渝STC-IS
13、P(V6.86G)(绡售电话:0513-55012928)官河:WWWSTCMCUDATACOm(技术3aQQ6000。亶汉单片机型号IIAPI5*4K61S4引脚额AUto串口号USB-SERIA1CH340(COMg)扫将最低波特率12400最高波特率115200T起始地址,二OxOOOO”!清除代码缓冲区I打开程序文件0x0000-0清除EEPRoM缓冲区|打开EEPRoF-硬件选项脱机下载/U8/K:程序加密后传输IID4|因选择使用肉部IRC时钟坏不为外部时钟)输入用户程序运行时的IRC频率MHz.a振荡器放大出益(12M以上建议选择)a使用快速下戮模式1下次泠启动时,P3.2/P3.3为0/0才可下载程序/上电复位使用较长延时团复位脚用作I/O口M允许低压复位黑止低压中断)OOOOOh回00OEFFFFFFFFFFFFFFFF0OOO1OhE4F6D8