设计方案范例.docx
- 文档编号:24617247
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:18
- 大小:148.13KB
设计方案范例.docx
《设计方案范例.docx》由会员分享,可在线阅读,更多相关《设计方案范例.docx(18页珍藏版)》请在冰豆网上搜索。
设计方案范例
声音导引系统设计报告
院系:
姓名:
学号:
1方案设计与论证…………………………………………………………………………2
1.1主控系统选择…………………………………………………………………………3
1.2电机选择………………………………………………………………………………3
1.3电机控制系统选择……………………………………………………………………3
1.4无线数据通信模块选择………………………………………………………………3
1.5声音信号处理方案选择………………………………………………………………3
2硬件电路设计…………………………………………………………………………………3
2.1系统组成………………………………………………………………………………4
2.2音频发射………………………………………………………………………………4
2.3音频处理………………………………………………………………………………4
2.4电机控制系统…………………………………………………………………………5
3软件设计…………………………………………………………………………………5
4系统测试…………………………………………………………………………………6
4.1测试仪器………………………………………………………………………………6
4.2测试方法………………………………………………………………………………6
4.3测试数据………………………………………………………………………………7
4.4误差分析………………………………………………………………………………7
5设计总结……………………………………………………………………………………7
参考文献…………………………………………………………………………………7
附录…………………………………………………………………………………………8
附1:
部分元器件清单……………………………………………………………………8
附2:
仪器设备清单……………………………………………………………………8
附3:
部分程序清单…………………………………………………………………8
声音导引系统设计与总结报告
摘要:
本系统采用两片STC12C5A60S2增强型51单片机,双直流电机双轮驱动小车。
通过接收点收到声音信号时间不同,判断小车离各个接收站的距离远近,通过无线传输模块控制车载单片机,进而控制小车运动,到达目的地,发出声光信号。
本系统在设计中注意低功耗处理和力求高性价比等细节。
特点:
高效的L293电机驱动电路,提高电源利用率;双电源设计,控制电路电源与电机电源隔离,信号通过光耦传输;采用测时间差的方式,通过3点声音信号实现精确定位。
关键词:
声音导引可移动声源声音接收器单片机 智能车
Abstract
ThissystemusetwoSTC12C5A60S2enhanced51-seriesmicrocomputer,doubledcmotordrivecaroutfit.Throughdifferentvoicesignalmethod-thepeak-troughreceivedfromvariousterminal,thecarofdistance,throughwirelesstransmissionmodulecontrolvehicle,andcontrolchipcarmovement,destination,asoundsignal.Thissysteminthedesignoflowpowerconsumptionandhighperformancetosuchdetails.
1.方案设计与论证
1.1主控系统选择
方案一:
采用高性能嵌入式系统,比如ARM。
如果采用此方案,可以很好的解决数据处理和控制功能,但是ARM价格昂贵且本科阶段很少接触,在短时间内完成困难比较大。
方案二:
采用大规模可编程逻辑器件,如FPGA,CPLD但本题属于控制类,不适合采用此方案。
方案三:
采用2片高性能单片机来实现,一片用来处理音频信号接收,同时控制车载单片机,担当主控单片机。
另一块作为从单片机,用来控制小车运动。
考虑到方案的可实行性和性价比,我们采用STC12C5A60S2增强型51单片机,此款单片机内部不分频,采用RISC精简指令集,可实现高速运算,存储空间大,价格低廉,性价比极高。
1.2电机选择
本题是控制类题目,所以电机的选择尤为重要。
方案一:
选择普通直流电机,通过减速齿轮增大扭力,提高带负责能力。
直流电机的优点是价格便宜,控制容易,但难以精确控制是其一大弱点。
方案二:
选择步进电机。
步进电机的特点是可以精确控制电机选择步数和角度,缺点就是力矩比较小,容易失步,而且价格比较昂贵。
考虑到题目要求性价比高,所以我们选择普通直流电机,通过优良的控制算法,达到高精度定位。
1.3电机控制系统选择
方案一:
通过晶体三极管等分立元件搭H桥。
优点是价格便宜,结构简单,控制简单。
但由于晶体三极管的承载电流比较小,驱动能力受到限制,因为是分立元件,稳定性不敢保证,且体积比较大。
方案二:
采用集成芯片,如L293,L298等。
其优点是集成度高,电路简单,控制方便可靠,体积小,效率高。
考虑到小车比较小,要安装的电子装置比较多,控制精度比较高,所以选用低电压驱动高效率的L293驱动芯片(L298需要的驱动电压高,效率低)。
1.4无线数据通信模块选择
方案一:
红外通信,红外通信器件易得,价格低廉,但必须直线收发是其致命弱点。
方案二:
采用nFR24L01无线通信模块,此无线通信协议工作于2.4~2.5GHzISM频段,数据传输率最快可达2Mb/s。
我们选用nFR24L01无线通信模块,确保通信的流畅性和准确性。
1.5声音信号处理
方案一:
由于声源离各接收站距离不等,所以各接收站收到声音信号所需时间不等,进而可以判断出小车方位,引导小车前进。
方案二:
由于声源离各接收站距离不等,所以各接收站收到声音信号的强度不等,通过AD转换器测出电压大小,进而可以判断出小车大概方位,引导小车前进。
由于接收站离主控单片机有1米距离,传输距离比较远,需要导线比较长,容易受分布电容等干扰,直接传输电压信号容易导致不精确,所以我们采用测时间差的方法。
小结:
经过几番仔细的论证和比较,我们决定了本系统主要模块方案如下:
音频处理方案:
采用测时间差的方式。
主控制器:
两片STC12C5A60S2增强型51单片机。
小车行驶方案:
双直流电机双轮驱动。
无线通信模块:
nFR24L01通信模块。
电机控制系统:
NEC_MMC电机控制芯片和L293集成芯片。
2.硬件电路设计
2.1系统组成原理
本系统由声源发射器,接收站A,接收站B,接收站C,主控单片机,无线传输模块,从控单片机,NECMMC-1电机控制芯片,电机驱动模块,声光电路等组成。
图2.1系统组成原理图
2.2音频发射
通过单片机定时器产生一个4Khz的脉冲信号,控制三极管的通断,使喇叭产生一个高频音频信号。
图2.2音频发射原理图
2.3音频接收
通过MIC接收,音频信号经放大和滤波后再整形成方波,测出响应时间。
具体工作原理:
主控单片机通过无线给从机发送触发信息,并开始计时,当车载单片机接收到信号后发出4Khz音频信号。
当MIC接收到小车上发来的音频信号,从而停止计时,再根据声速便可测出声源距3个接收点之间的距离,通过主控单片机计算,给小车发送指令,引导小车到达目的地。
图2.3音频接收原理图
2.4电机控制和驱动
单片机发出控制命令给MMC1,MMC1通过处理后控制电机驱动电路进而控制小车行驶。
图2.4电机控制和驱动原理图
3.软件设计
设可移动声源为S点,如果AS距离大于BS距离,则车向9点钟方向前进,如果AS距离小于BS距离,则车向3点钟方向倒车,如果AS等于BS,则说明小车在AB的中垂线上。
如果AS距离大于CS距离,则车向6点方向前进,如果AS距离小于CS距离,则小车向12点钟方向倒车,如果AS等于CS,则小车到达W点。
图3.1小车行驶示意图
图3.2系统整体流程图
4.系统测试
1.测试仪器
秒表,米尺等。
2.测试方法
通过改变小车的起始位置,测量小车走完全程所需时间,计算出平均速度。
3.测试数据
设小车离W点水平线的垂直距离为H,单位厘米。
H(cm)
时间1(s)
平均速度1(cm/s)
时间2(s)
平均速度2(cm/s)
误差(cm)
第一次
0
4.7
10.63
0
0
0
第二次
10
4.5
11.11
0.8
12.5
2.1
第三次
20
4.9
10.20
1.8
11.1
1.9
第四次
30
4.7
10.63
3.0
10.0
1.6
第五次
40
4.4
11.36
4.6
10.6
1.3
第六次
50
4.5
11.11
5.1
9.8
1.9
表4.1实际测试数据
经测试,本小车基本达到发挥部分要求。
4.误差分析
小车有时并不能完全直线行走,略微有点跑偏,经分析原因有两个:
1)小车是新买的,齿轮磨合情况不同,导致两个轮子速度不一致。
2)因为小车上装置比较多,导致重心偏移,轮子受到的阻力不同,导致小车跑偏。
5.设计总结
本作品以两片STC12C5A60S2增强型51单片机为核心部件,通过个接收站收到音频信号的响应时间不同,配合一套完整的程序,实现了小车的精确定位。
在设计中,我们尽量采用低功耗器件,力求硬件电路的经济性和精简性,充分发挥软件控制灵活方便的特点,来满足设计要求。
.参考文献
[1]全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品选编[M].北京理工大学出版社,2007
[2]黄开胜.学做智能车——挑战“飞思卡尔”杯[M].北京航天航空大学出版社,2007
[3]万福君,潘松峰.单片微机原理系统设计及应用[M].合肥:
中国科学技术大学出版社,2001
[4](日)森政弘,(日)铃木泰博.机器人竞赛指南[M].北京:
科学出版社,2002
[5]王灏,毛宗源.机器人的智能控制方法[M].北京:
国际工业出版社,2002
[6]张培仁,张志坚.基于16/32位DSP机器人控制系统设计与实现[M].北京:
清华大学出版社
.附录
附1:
部分元器件清单
芯片:
STC12C5A60S2*2NEC_MMC*1L293*174LHC04*1,
LM386*3LM567*3TP521*1nFR24L01无线通信模块*2
MIC*3喇叭*1电阻电容若干导线若干
单片机最小系统
附2:
仪器设备清单
秒表米尺万用表函数信号发生器示波器
附3.:
程序清单
/********************************************************************************
*FileName:
carmotorSPI.C(beincludedinprojectfts-89c52.Uv2)
*
*BriefIntroduction:
2009年全国大学生电子设计竞赛本科组题目B中需要用到的对电机
控制芯片(C公司的MMC-1)的单片机控制程序。
单片机采用STC12C5A60S2芯片,接PWM或步进
电机波形产生芯片MMC-1,通过L293驱动芯片驱动直流电机。
*
*Author:
吴飞
*
*Date:
2009.9.2~2009.5
*
*Edition:
*
*note:
STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,
是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。
所以本系统中的延时程序delay_10us(ucharn);delay_ms(uintn);延时时间只有设定值的1/10左右!
!
!
!
********************************************************************************/
//#include
//fortheintended8051derivative*/
#include
//fortheintendedSTC12C5A60S2derivative*/
#include
#defineucharunsignedchar
#defineuintunsignedint
//==========================================
//定义空指令
#define_Nop()_nop_()
//==========================================
//端口定义
//uchartemp1,temp2;
sbitSPISO=P1^3;
sbitMOSI=P1^4;
sbitSPICLK=P1^5;
//变量定义
ucharmotor;
//常量定义
#definemotorL0x50//小车左轮直流电机受MMC电机通道0(CH1DCPWM及CH1DCDIR)
//0x50为该通道命令寄存器地址
#definemotorR0x54//小车右轮直流电机受MMC电机通道1(CH2DCPWM及CH2DCDIR)
//0x50为该通道命令寄存器地址
#definedirfront1
#definedirback0
//===========================================
//函数声明
voidWT_BYT_SPI(unsignedcharcByte);
voiddrivemotor(ucharmotor,ucharspeed,bitdir);
voidstopmotor(ucharmotor);
voiddelay_10us(ucharn);
voiddelay_ms(uintn);
//voidSPI_Write(chardat);
//unsignedcharRD_BYT_SPI(void);
//voidWT_WORD_SPI(unsignedintcWord);
voidmain()
{
EA=0;//关中断
delay_ms(10);//等待系统及MMC-1初始化
while
(1)
{
drivemotor(motorL,0x1F,dirfront);//fortesting
delay_ms(30000);
stopmotor(motorL);//fortesting
delay_ms(30000);
drivemotor(motorL,0x1F,dirback);//fortesting
delay_ms(30000);
stopmotor(motorL);//fortesting
delay_ms(30000);
}
}
/*********************************************************************
*FunctionName:
drivemotor
*Functiondescription:
驱动电机运转.可控制且必须依次正确填写以下输入参数。
*Parameter:
IN:
motor:
电机编号,取值范围---motorL、motorR;
speed:
电机转速等级,取值范围从慢到快为---0xff至0x0,注意顺序;
dir:
电机转动方向,取值范围---dirfront、dirback.
OUT:
void
**********************************************************************/
voiddrivemotor(ucharmotor,ucharspeed,bitdir)
{
ucharcommand;
if(dir==dirfront){command=0xc0;}
else{command=0xe0;}
WT_BYT_SPI(motor+3);
WT_BYT_SPI(speed);
WT_BYT_SPI(motor);
WT_BYT_SPI(command);
}
/*********************************************************************
*FunctionName:
stopmotor
*Functiondescription:
停止电机运转.可控制且必须依次正确填写要停止的电机编号。
*Parameter:
IN:
motor:
电机编号,取值范围---motorL、motorR;
OUT:
void
**********************************************************************/
voidstopmotor(ucharmotor)
{
WT_BYT_SPI(motor);
WT_BYT_SPI(0x40);
}
/*********************************************************************
*FunctionName:
WT_BYT_SPI
*Functiondescription:
向SPI总线写出一个字节。
*Parameter:
IN:
cByte:
写出的内容,取值范围---0x0至0xff;
OUT:
void
**********************************************************************/
voidWT_BYT_SPI(unsignedcharcByte)
{
unsignedchari;
SPICLK=0;
delay_10us(10);
for(i=0;i<8;i++)
{
if((cByte&0x80)==0)MOSI=0;
elseMOSI=1;
delay_10us(10);//根据MMC-1用户手册sck频率:
500HZ~100KHZ即周期0.2ms~10us
//注意定时时间约为1/10的10*10us即10us,周期为20us9
SPICLK=1;
delay_10us(10);
SPICLK=0;
cByte<<=1;
}
}
/*********************************************************************
*FunctionName:
delay_10us
*Functiondescription:
1.delayn*10us.
*Parameter:
IN:
void
OUT:
void
**********************************************************************/
voiddelay_10us(ucharn)
{do
{_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}while(--n);
}
/*********************************************************************
*FunctionName:
delay_ms
*Functiondescription:
1.delayn*1msfunction.
*Parameter:
IN:
void
OUT:
void
**********************************************************************/
voiddelay_ms(uintn)
{dodelay_10us(131);
while(--n);
//WDI=~WDI;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计方案 范例
![提示](https://static.bdocx.com/images/bang_tan.gif)