单片机.docx
- 文档编号:17244729
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:15
- 大小:362.81KB
单片机.docx
《单片机.docx》由会员分享,可在线阅读,更多相关《单片机.docx(15页珍藏版)》请在冰点文库上搜索。
单片机
介绍
我们设计和建造了一个电子记录器,它拥有录音机的功能。
这台录音机是来自木管乐器家族的乐器。
它由一个中空的管子,八个洞(7在顶部和底部之一)构成,游戏时玩家可用手指覆盖这八个空洞。
吹送话器的同时,就可以用手指弹奏音符。
这个想法来自我们小学时就讨论过的如何实现录音机话题。
对于音乐老师每天要列出20到30个不同的录音的问题,我们也很无奈。
我们认为电子模拟录音机的,可以使用耳机将是一个好主意。
我们还想让这个设备可以通过游戏的形式教会人们实现录音。
这将使学习乐器变得更简单、更有趣。
设计
概观
我们的项目有三个主要部分组成:
控制器组件,音频组件,和一个可视组件控制器组件仿真实际录音机与一系列按钮代表孔和一个麦克风话筒,可以探测出用户是否吹到它。
Theaudiocomponentisresponsibleforreproducingthecorrectnotefrquenciescorrespondingtowhatholesontherecorderarebeingcoveredandwhethertheuserisblowing.音频部分负责复制相应的录音机上的孔被覆盖发出的声音以及用户是否在吹。
控制器和音频组件组合在一起形成了我们的模拟实际的录音机。
视频组件显示的通知(如果有的话)一个用户是否在玩以及有哪些洞是被覆盖的。
它还提供了一个有趣的方式,以了解如何发挥录音机。
Thecomponentsworktogethertocreateanentertaininginteractiveexperiencefortheuser.组件一起工作,为用户创造一个有趣的互动体验。
要充分纳入项目中的声音和视频,我们决定使用两个通信微控制器。
一个是致力于产生音频,另一个则致力于视频。
这一决定是因为使用Mega32显示视频是非常耗费时间,而且只有一个小一点点时间可以用于计算和其他进程。
我们的视频的代码需要编写接近最大数量的可能的像素在每一帧视频内存,所以我们认为,它将不可能生产视频和也有时间来生成的音频信号,读取ADC,解码输入从控制器。
硬件设计
特别重要的是,我们的控制器准确地模拟真实的录音机。
我们构建了一个框架的木材和规模类似于一个录音机,一个小框架被连接到房子前面结构麦克风和模拟喉舌,这个框架允许插入一个小草帽,可以很容易地以任何方式清理喉舌,而不是取代。
我们安装的八套在框架上的按钮位置,正好是一个真正的录音机应该有的按钮位置这意味着七个按键在画面的顶部,分为一组四和一组三个,同时这组有三个的按键的放置接近喉舌。
最后一组按钮被安装在框架的底部,靠近喉舌。
对于每个八按键记录器,我们用的是一组两个按钮。
Foreachoftheeightbuttonsonarecorder,weusedasetoftwopushbuttons.对于每一个录音机上的八个按钮,我们用一组两个按钮。
Thiswasdonetobeabletosimulatehalf-coveringholes,whichisnecessarytoplaycertainnotesontherecorder.这样做是为了能够模拟半覆盖的洞,这是必要的录音机上播放某些音符。
控制器后面是一个彩虹电缆十九电线。
Sixteenofthesegotothesixteenpushbuttons,oneisusedasVccforthepushbuttons,andtwoareusedfortheoutputandgroundofthemicrophone.这16个十六按钮,一个用来作为VCC的按钮,和两个麦克风输出和地面。
Sinces两MCUs依靠来自控制器的输入,输出的按钮去两个视频和音频单片机MCU。
视频MCU需要确定按钮图像显示在屏幕上的按键信号。
TheaudioMCUneedesthepushbuttonsignalstodeterminewhatfrequencyaudiosignaltogenerate.音频MCUneedes按键信号,以确定哪些频率的音频信号产生。
一个白板致力于分发到MCUs按钮的信号。
电线从录音机设备运行下一个白板,电线被连接到100k下拉电阻器和分发给MCUs(PORTC和PORTD单片机对音频和视频上的PORTC门户网和MCU)。
我们用另一种白板容纳一个麦克风放大电路。
Themicrophoneisattachedtotheinputoftheampcircuit,andtheanalogtodigitalconverteroftheaudioMCUisconnectedtotheoutput.麦克风连接到放大器电路的输入,模拟到数字转换器的音频MCU连接到输出。
Theaudioamplifiercircuitisneccessarybecausethemicrophonegeneratesonlyverysmallvoltageoccilationswhenairisblownatit.音频放大器的电路是必要的,因为麦克风只生成非常小的电压,因此,我们需要放大这些微乎其微的几十毫伏的电压,以便有一个足够大的范围的电压以ADC给一个足够宽范围的值是有用的。
我们设计了一个两阶段的音频放大器基于一个教授的讲座。
我们设定的直流偏置到Vcc/2,并用两个LM358的放大器阶段,每个增益约为10。
这个放大器的输出被发送到ADC的音频MCU,它使用了内部参考电压2.56伏带隙。
Wethenapplyasimplealgorithm(describedinthesoftwaredesignsection)inordertodetermineifauserisblowinginthemic.然后,我们运用一个简单的算法(描述在软件设计部分),以确定如果用户在话筒吹。
WesendasignalfromtheaudioMCUtothevideoMCUthatishighwhentheuserisblowingsothatthevideoMCUcandisplayvisualconfirmationofthenotetheyareplaying.我们从音频的MCU是当用户被吹的这么高的视频MCU发出一个信号,视频MCU可以显示说明,用户正在使用。
我们从视频音频MCUMCU和麦克风放大器电路供电的按键电路。
ThegroundsofthetwoMCUswereconnectedtogether.连接在一起的两个MCU的理由。
PORTB.0wasanoutputfromtheaudioMCU.PORTB.0是从单片机的音频输出。
B.0wasusedtoindicatewhethertheuserwasblowing,anditwasconnectedtoPORTB.4onthevideoMCU(B.4wasaninputonthevideoMCU).B.0被用来指示用户是否被吹,它是连接上视频MCU(B.4节是一个视频MCU输入)PORTB.4。
Additionally,SW2-SW5wereconnectedtoB0-3onthevideoMCUtocontrolthegamemenuandgamereset.此外,SW2-SW5连接视频MCUB0-3来控制游戏菜单和游戏复位。
Wealsoallowedtheusertoscrollupanddownonthegamemenuusingpushbuttonsontherecorder,andtheusercanblowintothemouthpiecetoselectanitemfromthemenu.我们也允许用户上下滚动使用录音机上的按钮菜单上的游戏,用户可以吹的喉舌,从菜单中选择一个项目。
WeusedthesamesimplelowpasscircuitfromLab2toconvertthePWMsignaltothenotefrequencies.我们从实验2使用同样简单的低通电路,PWM信号转换成音符频率。
WeconnectedPORTB.3(outputofPWM)toalowpasscircuitwithR=2kOhmandC=100nF.我们连接PORTB.3与R=2kOhm和C=100nF的低通电路(PWM输出)。
WeusedthesamevideocircuitfromLab4,usingPORTD.6forVideoandPORTD.5forSync,alongwitha330ohm,1kOhm,and75ohmresistor.我们使用相同的视频电路实验4,使用视频和同步PORTD.5PORTD.6,连同一个330欧姆,1kOhm,75欧姆的电阻。
软件设计
在程序启动时,它进入一个菜单。
Thereare4optionsatthemenu.在菜单中有4个选项。
Oneis"FreePlay",whichallowsausertosimplyplaynotes,andviewonthescreenwhatbuttonshe/sheispressingaswellaswhatnote,ifany,isbeingplayed.一个是“自由模式”,它允许用户简单地弹奏音符,并查看屏幕上的什么按钮他/她是按下的,以及什么音符。
那些其他的以歌曲命名的模式是为游戏模式设计的。
游戏需要涉及列对应的按钮右到左指出在屏幕上。
在屏幕的左边有八个圆圈,显示何种按钮用户当前按下的。
当用户按下正确的按钮后,圆圈就回滚动。
积分被授予的正确性和错误中扣除。
ThisgamecloselyresemblesGuitarHero.这个游戏非常类似于“吉他英雄。
Thissimilaritywasoriginallyunintended,butwhenwediscussedideasofhowtoshowtheuserwhattoplay,wedecidedthatthiswouldtrulybethebestwaytodoit.这种相似性本来是无意的,但是,当我们讨论如何向用户展示玩什么想法,我们认为,这将是真正的实现的最好的方式,但随着我们的比赛,因为我们的控制器准确地模拟一个真实录音机,玩游戏是一个学习的经验。
视频MCU使用的基础上由教授实验室4开发的大量代码。
Anarrayisusedtostoreinmemoryvaluesofthepixelstobedisplayedonthetelevision.一个数组,用于存储在内存要在电视上显示的像素值我们经常需要改变大量像素的显存在一次,但是有一个限制数量的变化,可以实现视频内存每一帧中的不引起视频工件。
成功输出视频,我们利用缓冲区以便更新尽可能多的屏幕,尽我们所能在每一帧。
为了进一步减少的像素需要更新的,我们写函数,可以将图像代表一个按钮1像素留下的最低数量的像素的更新。
采用单片机致力于生产音频使用直接数字合成(DDS)。
我们使用MCU的脉冲宽度调制(PWM)功能,以产生脉冲,然后再通过一个简单的一阶低通滤波器的传递到生产所需的频率信号。
TheaudioMCUgetsinputsfromthepushbuttonsandcomparesthebuttonsbeingpressedagainstasetofhardcodedvaluesrepresentingbuttonsthatcorrespondtoactualrecordernotes.音频MCU得到从按钮的投入和对一组硬编码值较符合实际记录笔记的按钮被按下的按钮进行比较。
Wegotthesebuttoncombinationsfromthetablehere.我们从这些按钮组合表。
WechosetheCtuningbecauseitgaveusagoodrangeoffrequenciesforplayingmostsongs.我们选择了C的调整,因为它给了我们一个好播放大多数歌曲的频率范围。
Weusedfixedpointmultipliestofadeinandfadeouttheaudiosignaltogetacleantransistionwithnopop.我们用定点乘法淡入和淡出音频信号,得到纯净的转换。
ADC的音频MCU需要作为输入放大的结果麦克风。
当用户正在吹和持有正确的键盘组合,相应的音符是输出。
如果用户吹但不是在玩一个真正的音符,一个“坏”音符就生成了
当用户对着麦克风的增加音频放大器的输出信号的幅度的打击。
SincewebiasedtheaudioamptoVcc/2,or2.5V,whentheuserisnotblowing,theinputtotheADCwillstayrightaround2.5V.由于我们偏向音频放大器VCC/2,或2.5V,当用户不是吹的,到ADC的输入将留在2.5V左右。
Whentheuserblows,thesignalwilloscillatebetweenaround2.3and2.7V.用户烧断时,信号会振荡约2.3和2.7V之间。
WeusedtheADCconverteroftheaudioMCUwiththe2.56Vbandgapvoltagereference.我们用2.56V带隙电压基准的ADC转换器的音频MCU。
ThisgivesanADCvalueof255forvoltagesgreaterthan2.56V,and0for0V.这给出了一个255的ADC值电压大于2.56V,0为0V。
Inourprogram,wekeepthelastseveralvalues(MIC_SIZE)oftheconversion.在我们的节目中,我们保持过去几年的转换值(MIC_SIZE)。
Ifanyofthesevaluesisbelowacertainthreshold(MIC_THRESHOLD),theADChasrecentlyseenalowerinputvoltage,sowecanassumetheuserhasbeenblowingintothemicrophone.如果其中的任何值低于某一阈值(MIC_THRESHOLD),ADC最近看到一个较低的输入电压,所以我们可以假设该用户已被吹麦克风。
设计结果
我们能够通过使用缓冲区分裂更新的视频,以防止任何犹豫或在屏幕上闪烁,通过使用一个专用的音频单片机产生声音。
Ouruseoffixedpointarithmeticandenvelopingtheaudiosignalsalsominimizedtheamountofpoppinganddistortionheardwhileplayingnotesontherecorder.我们使用定点算术和包络的音频信号,也尽量减少弹出和失真听到同时播放音符的机会。
Togeneratethecorrectnotes,weroundedtheincrementerusedtothenearestinteger.为了产生正确的音符,我们四舍五入到最接近的整数使用的incrementer。
Wemeausredthesynthesizedfrequenciesandfoundtheywereveryclosetotheactualdesiredfrequencies.我们meausred合成的频率和发现,他们实际需要的频率非常接近。
为了执行安全性,在我们的设计中,肯定没有大的电压或电流不断发生。
Also,allopenelectricalconnectionsarewrappedinelectricaltapetofurtherpreventthechanceofshock.另外,所有开放的电气连接电工胶带包裹,以进一步防止休克的机会。
However,ifweweretomarketouridea,severalstrictersafteyprecautionswouldneedtobemet.然而,如果我们推销我们的想法,几个严格的安全预防措施,将需要得到满足。
Forexample,ourcurrentdeviceleavesmuchofitselectricalcomponentsexposed.例如,我们目前的设备留下多少暴露了其电器元件。
Wedidthisprimarilysothatifsomethingcameloosewecouldeasilyfixit.我们这样做,主要是因为,如果有些松了,我们可以很容易地解决它。
成品的设备,将需要在更坚固的容器内。
Ourdevicewasaclosedsystem,anddidnotuseRFtransmissionsoitdidnotinterferewithotherpeoplesprojects.我们的设备是一个封闭的系统,并没有采用射频传输,所以它不干扰其他民族的项目。
我们很满意我们的项目的可用性。
这台录音机是相当简单的实用,并真实发挥了一个录音机应有的作用。
Also,ourgameisdesignedtoprovidetheuserwithalearningexperiencethatdoesnotleavehim/herfrustrated.此外,我们的游戏设计,向用户提供一个学习的经验,反复演奏歌曲绝对会用户习惯于玩录音机。
.同时,通过显示注意被一起打球按钮的推,用户可以了解到他们在演奏的音符,并可能在未来复制它们。
测试
硬件测试
当我们建立组件的硬件部分的项目,我们的总体测试策略是首先隔离电路和测试它本身,然后集成到系统的其余部分和测试整个系统。
一般来说,我们测试了部分的项目,我们预期的潜在问题。
其它问题也可能出现,这个部分包含总结了一些我们自己的测试以及我们所遇到的问题,以及我们如何对待他们。
在早期,我们意识到,我们需要有几英尺长的电线连接录音机控制器电路的其余部分,以提供一个舒适的用户体验足够范围内的议案。
Wewereworriedthatacloselybunchedgroupofwiresovera3-4footdistancemaydistortsignalssentoverthem.我们担心,密切的3-4英尺距离的电线束可能会扭曲对他们发出的信号。
Wewerenotsuretheeffectthiswouldhave,soweimprovisedasimpletestbyconnectingfourofourpushbuttonstofourLEDsontheMCUthroughfourfootlongwires.我们不能肯定这将有效果,所以我们即兴MCU上的四个按钮连接四个LED,通过四英尺长的电线,一个简单的测试。
Wealsousedapotentiometertomeasurethevoltagefromtheswitchstoground.我们还使用了一个电位器来测量电压从开机到地面。
WefoundthattheLEDslitupasexpected,andthepotentiometershowednosignificantdegradationofVccalongthelengthofwire.我们发现,指示灯亮了起来如预期,并没有显着降低Vcc的电位表明沿线的长度。
Wewerealsoworriedthattheverysmallsignaloutputbythemicrophonewouldgetovercomewithnoisebeforeittravelledthethreefeettoouramplificationcircuit.我们还担心麦克风会得到克服噪声非常小的信号输出之前跑遍了三英尺的放大电路。
Earlyintheproject,wetestedthemicrophonecircuitrywithverylongwires,andfoundthatlongwireswouldnotbeaproblemforoutmicrophonecircuitryeither.在项目的早期,我们测试了很长的电线,麦克风电路,发现长导线不会了麦克风电路问题。
因为按钮从录音机导致港口都MCUs视觉和听觉,MCUs被连接到各自其它虽然此连接。
我们担心这可能导致错误的输入时由于不同的Vcc。
与助教讨论后,我们决定连接两个MCUs到一个共同点。
这个措施确保逻辑高值和逻辑低的值将会解释方式由两MCUs。
早期我们遇到的一个问题是Vcc的降解,同时按下几个按钮。
WenoticedthiserrorwhentheMCUbeganincorrectlydetectingthatsomeonewasblowingintothemicwhilemanybuttonswerepressedatonce.我们注意到这个错误时,MCU开始错误地检测,有人把话筒吹,而许多按钮被按下一次。
Measuringthevoltagesofthemicamplificationcircuits,wesoonrealizedthattheDCbiasfortheopamps,whichwassupposedtobe2.5volts,wassightlylowerthatitshouldhavebeen.麦克风放大电路的电压测量,我们很快就意识到,这应该是2.5伏,运算放大器的直流偏置数目,它应该已经降低。
Tracingtheproblemback,wesawthattheVccbeingfedinto
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机