查看: 2401  |  回复: 7
参赛作品《跳舞机器人》
慌慌哲哲
1
主题
1
回复
发表于2018-05-25 14:19:35 | 显示全部楼层
1# 电梯直达
【报名阶段需要填写的内容】

1. 参赛者姓名(必填项):陈方哲


2. 单位或学校名称(选填项):福建师范大学


3. 当前职务或职称(选填项):在校学生


4. 参赛作品的名字(必填项):跳舞机器人


5. 简要陈述您的idea和作品(必填项):

跳舞机器人是利用3D打印机的特殊蜡材等可粘合材料打印一层层的粘合材料制造出三维外壳模型的一款能跳舞、并且可让儿童自行语音编舞的儿童陪伴机器人。


6. 拟用到的立创商城在售物料(必填项):ULN2003,stm32f103c8t6芯片,杜邦线,LM2731XMF DC-DC芯片

7. 拟用到的非立创商城物料或其它补充(必填项):LD3320语音识别芯片,MP3音频播放模块,锂电池


8. 拟用到的EDA工具软件名称(必填项):Keil,Altum Designer


【作品正式发表(报名成功后进入设计阶段)需要填写的内容】


一、作品简介

    在我国人口数目与日俱增的压力之下,“独生子女”早已成为了一种普遍的现象。《中国2010年人口普查资料》显示中国的生育率在1990年后就一直低于更替水平,2000年、2010年人口普查显示只有1.221.18,抽样调查显示2011年、2012年、2013年只有1.041.261.24。再加上在巨大生活压力下孩子的父母为了生计只能整日奔波。缺少陪伴这个问题已经普遍存在于当今社会孩子们身上。于父母而言,儿童智能机器人可以减少父母在孩子教育方面的压力。也可以让孩子们的童年不再孤单的同时,接受高质量的早期教育。让儿童通过与机器人语音编舞,从而达到益智的效果。真正的做到了缓解当今社会的儿童缺少陪伴的问题,将在很大程度上减少父母在孩子教育上的压力。

    本作品的创新性在于外观采用3D打印机设计制作,其外观有多种选择性,更受儿童的喜爱,机器人真正实现了人机互动,儿童可通过语音自行设计舞蹈动作,达到益智的目的。

以下是跳舞机器人实物图片:

 



二、系统构架图

   


三、硬件部分的描述

机器人设计的原理图:机器人.rar 

    系统的整体方案为由语音识别模块实现对指令的采集,主控芯片将指令处理后通过语音播放模块实现人机交互,继而使SG90舵机运作,完成一系列连续舞蹈动作。LD3320语音模块接收外部语音数据流采用频谱分析方式提取特征值,进行关键词的匹配对识别信号进行处理给STC11L08XSTC11L08X将处理后的语音信号发送至STM32,单片机对语音模块进行循环识别过程,MCU接收语音识别数据后,将识别到的编舞数据储存在特定数组,之后由计数器进行脉冲计数产生PWM信号控制舵机转动形成指令动作,同时ULN2003芯片进行低功耗处理。同时锂电池是7.2V,所以需要DC-DC电路将电源电压进行转换。


本设计使用的EDA工具是Altum Designer 09。


四、材料清单(BOM列表)

1.处理器/微控制器stm32f103c8t6        链接:https://item.szlcsc.com/9243.html

2.大电流驱动ULN2003A                  链接:https://item.szlcsc.com/193127.html

3.LM2731XMF DC-DC芯片                链接:https://item.szlcsc.com/61998.html

4.处理器STC11F08XE                   链接:https://item.szlcsc.com/9217.html

5.LD3320语音识别芯片(非立创商城购买)


五、软件部分的描述(选填)

 

以下是机器人识别跳舞的主函数,res为串口读到的指令,先识别是否进行编舞模式,编舞结束后根据指定动作跳舞。(格式好像有点问题,中文变成乱码了)

if(res == 'z')//????
		{
			res=0;
			MUSIC1 =1;
			MUSIC2 =1;
			MUSIC3 =0;
			MUSIC4 =1;
			MUSIC5 =1;
			MUSICstop=1;
			delay_ms(500);			
			MUSIC1 =1;
			MUSIC2 =1;
			MUSIC3 =1;
			MUSIC4 =1;
			MUSIC5 =1;
			MUSICstop=1;
		}
		else if(res == 'b')//×????é??
		{
			
			MUSIC1 =1;
			MUSIC2 =0;
			MUSIC3 =1;
			MUSIC4 =1;
			MUSIC5 =1;
			MUSICstop=1;
			res=0;
			delay_ms(500);			
			MUSIC1 =1;
			MUSIC2 =1;
			MUSIC3 =1;
			MUSIC4 =1;
			MUSIC5 =1;
			MUSICstop=1;
		}
		else	if(res== 'y')//????
		{
			res=0;
			MUSIC1 =0;
			MUSIC2 =1;
			MUSIC3 =1;
			MUSIC4 =1;
			MUSIC5 =1;
			MUSICstop=1;
			delay_ms(500);			
			MUSIC1 =1;
			MUSIC2 =1;
			MUSIC3 =1;
			MUSIC4 =1;
			MUSIC5 =1;
			MUSICstop=1;
		}
		if(res == 'c')//±à?è????
		{
			i=0;
			res=0;
			MUSIC1 =1;
			MUSIC2 =1;
			MUSIC3 =0;
			MUSIC4 =1;
			MUSIC5 =1;
			MUSICstop=1;
			
			delay_ms(500);
					
					
			MUSIC1 =1;
			MUSIC2 =1;
			MUSIC3 =1;
			MUSIC4 =1;
			MUSIC5 =1;
			MUSICstop=1;
			while(res!='i')//?¤±???
			{
				
				if(res=='d'||res=='e'||res=='f'||res=='g'||res=='h')
				{
					MUSIC1 =1;
					MUSIC2 =1;
					MUSIC3 =0;
					MUSIC4 =1;
					MUSIC5 =1;
					MUSICstop=1;//????					
					
					
					Dance[i]=res;
					i++;
					res=0;
					res=0;
					res=0;
					delay_ms(500);
					
					
					MUSIC1 =1;
					MUSIC2 =1;
					MUSIC3 =1;
					MUSIC4 =1;
					MUSIC5 =1;
					MUSICstop=1;
					delay_ms(1000);				
				}
				else
				{
					MUSIC1 =1;
					MUSIC2 =1;
					MUSIC3 =1;
					MUSIC4 =1;
					MUSIC5 =1;
					MUSICstop=1;
				}
			}
			j=i;
			MUSIC1 =1;
			MUSIC2 =1;
			MUSIC3 =1;
			MUSIC4 =0;
			MUSIC5 =1;
			MUSICstop=1;
			delay_ms(1000);
			delay_ms(1000);
			delay_ms(1000);
			for(j=0;j!=i;++j)
			{
				switch (Dance[j])
				{
					case 'd':
							Left_Move();//×ó
							delay_ms(500);
							break;
					case 'e':
							Right_Move();//??
							delay_ms(500);
							break;
					case 'f':
							Space_Foot();//??????
							break;
					case 'g':
							Dance_Swing();//?¨??°?
					case 'h':
							Foot_Pad();//??????
							delay_ms(500);
					default:					break;
				}						
			}
			MUSIC1 =1;
			MUSIC2 =1;
			MUSIC3 =1;
			MUSIC4 =1;
			MUSIC5 =1;
			MUSICstop=0;
		}
		if(res=='m')
		{
			res=0;
			if(i!=0)
			MUSIC1 =1;
			MUSIC2 =1;
			MUSIC3 =1;
			MUSIC4 =0;
			MUSIC5 =1;
			MUSICstop=1;
			delay_ms(1000);
			delay_ms(1000);
			delay_ms(1000);
			for(j=0;j!=i;++j)
			{
				switch (Dance[j])
				{
					case 'd':
							Left_Move();//×ó
							delay_ms(500);
							break;
					case 'e':
							Right_Move();//??
							delay_ms(500);
							break;
					case 'f':
							Space_Foot();//??????
							break;
					case 'g':
							Dance_Swing();//?¨??°?
					case 'h':
							Foot_Pad();//??????
							delay_ms(500);
					default:					break;
				}						
			}
			MUSIC1 =1;
			MUSIC2 =1;
			MUSIC3 =1;
			MUSIC4 =1;
			MUSIC5 =1;
			MUSICstop=0;
			
		}

		
		
	}

六、作品演示

视频链接:https://v.qq.com/x/page/e0750i5xu8u.html


七、总结

在整个设计过程中,本队也遭遇重重困难,例如舵机的功耗过大,尺寸设计不合理等问题,队员经过不断摸索与尝试,层层攻坚,终于完成全部设计与功能实现。通过本次实践设计,我们学习到在利用3D打印技术制作机器人的外部结构时,需要考虑到机器人的尺寸以及承重问题;在设计硬件电路、选用元器件时,要尽可能使体积与系统设计要求相匹配。


立创工程小陈
6
主题
548
回复
发表于2018-05-25 16:47:08   |  显示全部楼层
2#

恭喜您已经报名成功!

您现在就可以开始进行设计工作了,后期相关内容请在一楼编辑进行完善。

当前所有参赛选手分值统计表及活动详细介绍见:http://club.szlcsc.com/article/details_12591_1.html

同时,您设计的PCBA板或者模块也可以参与立创商城第二期PCB方案验证板活动(相当于“搭顺风车”),详情请看:http://club.szlcsc.com/article/details_11599_1.html

立创商城电子制作节(审核专员)

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部