小型音乐喷泉模型-毕业设计.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小型 音乐喷泉 模型 毕业设计
- 资源描述:
-
长春工程学院毕业设计(论文) 目 录 1. 绪 论 1 1.1 课题背景 1 1.2 音乐喷泉的发展和现状 1 1.3 音乐喷泉控制系统框架 2 2. 上位机通讯与显示 4 2.1 概述 4 2.2 串口通讯 4 2.3 监控水泵运行 6 2.4 FFT 9 3. 下位机数据采集和传输 13 3.1 概述 13 3.2 对音乐信号的采样与数据传输 13 3.3 下位机采样数据图 14 4. 基于nRF24L01无线传输子系统 16 4.1 nRF24L01模块硬件设计 16 4.2 nRF24L01模块软件设计 17 5. 水泵控制系统 21 5.1 水泵的选定 21 5.2 水泵控制原理图的设计 21 5.3 水泵控制系统的实物图 23 6. 功放 24 6.1 功放电路设计 24 6.2 喇叭保护板电路设计 24 6.3 功放PCB 25 7. 太阳能子系统 26 7.1 太阳能电池 26 7.2 太阳能控制器 26 参考文献 29 致 谢 30 附录 31 1. 绪 论 1.1 课题背景 随着人们生活水平的提高,人们对环境的要求越来越高,城市环境建设日益为人们所重视。喷泉作为一种观赏性较高的艺术水景,不断的出现在城市的广场、公园及其它公共场所,早些的喷泉都是固定不可调的,显得有些单调,随着科技的发展音乐喷泉也进入了我们的城市。音乐喷泉是现代科技与艺术的综合,音乐喷泉将喷水图形、彩色灯光及音乐旋律构成一个有机的整体,随着乐曲旋律和节奏的变化,各种不同的喷水花形相应的配合变换,在五彩绚丽的变幻灯光照耀下,构成一幅幅奇妙无比的景观、令人赏心悦目,叹为观止,在视听上获得极大的享受。 1.2 音乐喷泉的发展和现状 音乐喷泉是高科技与自然的完美结合,充分体验了人们的智慧。世界各地的音乐喷泉体现美的方式也是不尽相同的。 新加坡圣淘沙旅游区的音乐喷泉的设计与效果也是值得参考的,它布置在一个空旷而略有坡度的空间,面积很大,与圣淘沙车站前的长形喷水池共同组成为一个长达数百名的综合系列喷泉,音乐喷泉位于系列喷泉的顶端。舞台为一假山堆叠的西洋式半圆柱廊组成,共分3层。白天,假山瀑布及两侧的喷泉群与3层水池形成一处动静结合的较为文雅悠扬的水景园,入夜则有五光十色,优美动听的喷泉景观,整个舞台区域东西面阔近百米,南北深度约为40m,成为目前亚洲最大的音乐喷泉之一。表现出壮阔。绚丽的水景之美。 台湾台中的亚哥花园,有一个专为音乐喷泉表演的水舞剧场,以气势磅礴的苍穹为天幕,舞台建筑为意大利罗马式柱廊构成,圆形,用喷泉环绕,有600个喷头,配合着135种变化的灯光,组合成一种载歌载舞的美妙舞姿,水舞时,其形色声光的变化,令人目不暇接,叹为观止。 以上几处音乐喷泉从建筑形势、音乐曲调及水舞表演的角度展现了音乐喷泉的美丽姿态,但是都属于大型的音乐喷泉,其控制系统也多采用PLC逻辑编程控制,造价高,流量需求大,一般为专门的定量设计。即使这样,国内外的音乐喷泉控制系统设计均以达到成熟的水平,而且还有专门的生产设计厂家,提供设计、喷泉设备及安装等服务。目前,国内的音乐喷泉逐渐向智能化、分散化、综合化、多样化的方向发展,于是对喷泉控制系统的设计也提出了更高的要求。 37 1.3 音乐喷泉控制系统框架 本系统的总体思路是:音乐信号一路通过功放后播放,另一路则通过单片机进行采样,得到的时域数据传送给VS2012编写的上位机,上位机对音乐信号进行FFT变换得到频域信号并分析得到控制信号,通过nRF24l01无线传输给水泵控制子系统,控制水柱的高度。其中水泵控制模块电源是由太阳能供电。 图1-1音乐喷泉控制系统的总体结构 所以在次太阳能音乐喷泉系统包括以下几个部分:太阳能供电子系统,功放子系统,无线传输子系统,水泵控制子系统,上位机,下位机。该音乐喷泉控制系统的总体结构如图2-1所示。 以下对这几个部分进行简明的讲解: 太阳能供电子系统:由电压能电池组、太阳能控制器、蓄电池和DC/DC部分组成。 功放子系统:由NE5532+LM1875组成的功放,NE5532作为前级,LM1875作为后级。 无线传输子系统:这里采用的是NRF24l01来进行无线传输,一对多的传输类型,这里的“一”是PC的下位机,PC传送来控制信号,通过NRF24l01传输数据。“多”是接受的NRF24l01,接受到数据后,传送给52单片机,52单片机根据控制信号来控制DC/DC输出的电压的大小,从而控制了水泵的高度。 水泵控制系统:由52单片机、DA芯片TLC5615、BUCK电路组成。52单片机读取到了传输到的控制信号之后,通过控制TLC5615得到一个基准电压,BUCK电路根据这个基准电压来决定直流水泵的电压。 上位机:用VS2012编写的上位机,上位机得到下位机传送的数据之后,对数据进行分析,然后将结果传送回下位机。其中通讯方式采用串口通讯。 下位机:由52单片机和AD芯片TLC083组成。1s内进行三次总采样(一次总采样是64次AD转换),将得到的数据传送给上位机,然后接受上位机传送回来的数据。 2. 上位机通讯与显示 2.1 概述 Microsoft Visual Studio 2012 Ultimate (vs2012)是一个最先进的开发解决方案,它使各种规模的团队能够设计和创建出使用户满意的应用程序。在Visual Studio 2012旗舰版(下面称VS2012)中,使用灵活敏捷的规划工具并根据自身进度实现增量开发技术和敏捷方法;使用高级建模、发现和体系结构工具,描述系统并帮助确保体系结构构想;使开发团队和运营团队能够较好地协作;通过从部署的软件生成可对其采取措施的Bug 来改进质量和减少解决时间,使运营人员高效协作,为开发人员能够深入了解生产问题提供数据。简而言之,它可以创建创新的高质量解决方案并降低开发成本。 本系统采用VS2012来实现上位机,实现的功能有:与下位机的通讯,FFT变换,监控水泵运行状态。 2.2 串口通讯 特点是通信线路简单,只要一对传输线就可以实现双向通信,从而大大降低了成本。并且52单片机中自带异步串口,VS2012中也有控制串口的控件SerialPort。所以我选用串口实现上位机与下位机之间的通讯。 2.2.1单片机中的串口 52单片机中虽然自带了异步串口但是,与计算机中的串口电平不同,所以需要一个电平转换芯片,这里选用MAX232,电路连接如图3-2-1所示。 MAX232是一个电荷泵器件,它采用开关电容技术将5V电压升压和获取负电压,图2-1中C13,C14,C15,C18就是升压和负压用的电容。不同的版本有不同的电容取值,有些是0.1uF,有些是1uF,还有些是10uF。通常我们采用1uF就可以正常工作了。如果采用0.1uF驱动会弱点,不能驱动尤其是波特率较高的场合。在本设计中采用1uF的电容。 在本次设计中采用的波特率是9600bps,晶振频率是11.0592MHz。工作在方式1,由公式: 波特率=定时器1的溢出率/32 可以推算出应该设置定时器1的值为:TH1 =FDH。 图2-1 MAX232电平转换电路 2.2.2 VS2012中的串口 在VS2012中.NET Framework 2.0 类库包含了 SerialPort类,方便地实现了所需要串口通讯的多种功能, 可以实现以 SerialPort 类为核心的串口通讯,关于设计和方法。 使用SerialPort方法很简单,只需要简单的配置属性,然后就可以读取和发送数据了。下面介绍SerialPort一些简单的配置和使用方法: 2.2.2.1使用 SerialPort 设置串口属性: .PortName 串口名称,COM1, COM2等。 .BaudRate 波特率,也就是串口通讯的速度,进行串口通讯的双方其波特率需要相同,如果用PC连接其他非PC系统,一般地,波特率由非PC系统决定。 .Parity 奇偶校验位。可以选取枚举Parity中的值 .DataBits 数据位数 .StopBits 停止位数,可以选取枚举StopBits中的值 .Handshake 握手方式,也就是数据流控制方式,可以选取枚举Handshake中的值 2.2.2.2打开与关闭串口 在创建一个SerialPort 对象,设置串口属性后,可以通过 Open()方法 打开串口。数据读写完成后,可以通过Close()方法关闭串口。 2.2.2.3读写字节或字符数据 对于字节或字符数据,用Read()方法来读数据,该方法需要一个字节或字符数组作为参数来保存读取的数据,结果返回实际读取的字节或字符数。写数据使用Write()方法,该方法可以将字节数组、字符数据或字符串发送给另一方。 如果通讯双方交换的数据位字节流数据,要构建一个使用的串口通讯程序,那么双方应该定义数据桢格式。通常数据桢由桢头和桢尾来界定。 发送数据比较简单,只需要用Write()方法将构造好的数据发送出去即可。 接收数据则比较复杂,通讯是以字节流的形式到达的,通过调用一次Read()方法并不能确保所读取的数据就是完整一桢。因此需要将每次读取的数据整合在一起,对整合后的数据进行分析,按照定义的桢格式,通过桢头和桢尾,将桢信息从字节流中抽取出来,这样才能获取有意义的信息。 除了利用Read()方法来读数据,还可以使用ReadExisting()方法来读取数据。该方法读取当前所能读到的数据,以字符串的形式返回。 2.2.2.4事件 SerialPort 提供了DataReceived事件。当有数据进入时,该事件被触发。该事件的触发由操作系统决定,当有数据到达时,该事件在辅助线程中被触发。辅助线程的优先级比较低,因此并不能确保每个字节的数据到达时,该事件都被触发。 在使用该事件接收数据时,最好对定义通讯协议格式,添加桢头和桢尾。在DataReceived事件中接收数据时,把数据放在数组中或字符串中缓冲起来,当接收的包含桢头和桢尾的完整数据时,在进行处理。 2.3 监控水泵运行 2.3.1概述 在音乐喷泉的运行时,在上位机上要反映出各个无线连接状态是否连接,当有故障发生的时候可以很方便的指导哪条通讯线路损坏,方便维修。摄像头监控水泵系统是否正常,以及监控是否有人进行恶意破坏等等。接下来3.3.2与3.3.3章会对这两个方面进行介绍。 2.3.2无线通道连接监控 在无线控制子系统中运用的是nRF24l01模块,而nRF24l01有硬件CRC校验,当发送数据失败时,发送方向单片机请求中断并且重发溢出标志位置位;相反如果发送数据成功时,发送方向单片机请求中断并且发送成功标志位置位。所以我们可以在下位机中断里面判断是否发送成功,然后传送数据给上位机。其中发送成功或则失败的中断引脚为P3.2,即采用的为外部中断0。程序框图如2-2所示: 图2-2 无线连接检测程序框图 2.3.3摄像头监控 DirectShow兼备与底层的硬件设备和与高层的应用程序打交道的能力。如图2-3 所示,虚线以下是Ring0 特权级层的硬件设备,其中包括WDM 视频采集卡(WDM Capture Devices)、VFW 视频采集卡(LegacyVFW Capture Devices)、MPEG2 硬解码卡(Hardware MPEG2Decoders)、声卡(Sound Card)以及显卡(Video GraphicsCard)等等。DirectShow 对这些硬件设备提供了强有力的支持,并在Ring3(图1 虚线以上)应用层上提供统一规范的COM接口,这就将底层硬件设备与高层应用程序隔开,从而很方便地编程实现从设备获取多媒体数据或利用设备回放多媒体数据,而不必考虑具体的硬件特性。 图 2-3 DirectShow 系统构架 其中DirectShow 主要COM 接口有: DirectShow 是建立在组件对象模型(COM)的基础之上的,有很多COM 接口,下面列举一些重要的COM 接口: (1)IGraphBuilder 接口:构建过滤器管理的接口,立和管理一系列的过滤器; (2)IMediaControl 接口:控制多媒体流在过滤器图中的流动,如流的启动和停止; (3)IMediaEvent 接口:捕获多媒体流回放中的事件; (4)IVideoWindow 接口:控制视频窗口的属性; (5)IMediaSeeking 接口:用于媒体流的定位; (6)IBaseFilter 接口:可定义一个具体的过滤器指针; (7)IPin 接口:管理两个过滤器间的针脚,从而连接过滤器。 在VS2012中提供了关于DirectShow的例子,可以根据例子的进行二次开发。下面是系统的整体框图如2-4所示: USB视频采集 计算机 WDM驱动程序 基于DirectShow的应用程序 图2-4系统的整体框图 2.3.4实际监控界面 如图2-5为上位机监控界面。在上位机界面中,左下角红色代表通道没有连接成功,绿色代表连接成功。我只做了三个下位机,第1,2,4通道,在上位机中正好显示的1,2,4通道连接正常。上位机中间是采用笔记本摄像头来监控的画面,由于我只是做了音乐喷泉的模型实物,所以我以三个水泵控制模块作为背景。 图2-5 监控界面 2.4 FFT 2.4.1 FFT简介 FFT(Fast Fourier Transformation),即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的,发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。 2.4.2基-2 FFT算法原理 按时间抽取(DIT)的基-2FFT算法,又称为库利-图基算法,它是很多离散傅立叶变换快速算法之一。 设序列x(n)长度N=2,L为正整数(若不满足该条件,则在序列后面加上若干个零值以达到这个条件)。按n的奇偶把x(n)分解为两个N/2点的子序列(即大点数DFT化成小点数DFT,通过子序列的DFT实现计算整个序列的DFT。 (2-1) 则,序列x(n)的N点DFT为: X(k)=DFT[x(n)]= = = (2-2) 利用系数的可越性质=,上式可以表示为 X(k)==X(k)+W (2-3) k=0,1,2,3,…,N-1 其中 需要注意的是X(k)与X(k)分别是x(r)及x(r)的N/2点的DFT,周期为N/2,所以由(3-3)仅可以得到N点序列X(k)的前N/2点,X(k)的后N/2点为 X(k+N/2)=X(k+N/2)+W(k+N/2) 由X(k)与X(k)的周期性及可得 X(k+N/2)= X(k)- WX(k) (2-4) 综合上面的结果,x(n)的N点DFT可以由x(n)奇偶子序列x(r),x(r)的N/2点的DFT表示,即 (2-5) 至此,N点DFT到N/2点DFT的转换完成了。式(2-5)的运算关系可以用一个流程图来描述,用图2-6所示。 图2-6 蝶形运算流程图 2.4.3编程思想及程序框图 在一般情况下,进行FFT运算的序列至少都有几百点的长度,因此需要编制FFT算法程序以便能够利用计算机来快速进行计算。输入倒位序,输出顺序的DIT-FFT的编程思想, N必须等于2的正整数幂,FFT的计算程序可以分为两部分:一部分是倒序重排,另一部分是用三层嵌套的循环来完成M=log2N次迭代。 倒序重排:由于正序中数的递增量为1,这主要是由于下一个数都是前一个数从最右边加入一个1;倒序时,每个数都是前一个数的最左边加1,进位是向前进位,一个正序对应着一个倒序。因此可以根据这个原理进行倒序的计数,如果当前数最左边位为1,则清零,检查下一位,如果还是为1,再清零,直到遇到0为止,把这个0加为1,这就实现了倒序计数。 三层循环的功能是:最里的一层循环完成相同W的蝶形运算,中间的一层循环完成因子的变化,而最外的一层循环则是完成M次迭代过程。三层循环程序框图如图2-7所示: 图2-7 FFT三层循环程序框图 基于以上思想,给出用C#编写FFT的关键代码,见附录Ⅰ 。 2.4.4 FFT的效果图 如图2-8与图2-9为静音时刻和播放中的某一时刻将采样到的数据得到的FFT后的功率谱。静音中频谱的值都大约为零,在播放时刻的频谱值左右两边完全对称,符合理论。采样频率是20KHz,每两个柱之间相差的频率是20K/64312Hz。 图2-8 静音时FFT的效果图 图2-9 有音乐时FFT的效果图 3. 下位机数据采集和传输 3.1 概述 下位机实现的功能是对音乐信号的采样和数据的传输。对音乐的采样是采用TLC0831这款AD芯片,每次采样一次数据就通过串口传送给上位机,当上位机接受到了一定的数据量之后,会告诉下位机不要发送数据了,此时下位机不会再采样音乐信号,等待上位机分析完数据之后,上位机传送给下位机每个水泵控制子系统的控制信号,下位机通过nRF24l01无线传输给水泵控制子系统,再一次对音乐信号进行采样。 3.2 对音乐信号的采样与数据传输 音乐采样所用的AD芯片是TLC0831,查阅手册可知其工作时序图(如图3-1)和主要特性如下: (1)比例尺工作或用5V 基准电压; (2)8 位分辨率; (3)单5V 供电, 信号输入范围0 ~ 5V ; (4)控制输入和输出与TTL 和MOS 兼容; (5)在输入频率(CK 引脚)为250kHz 时,转换时间约32μs ; (6)总非调整误差:±1LSB 。 图3-1 TLC0831工作时序图 由时序图可以看出, CS 变为低电平后, 经过一个时钟即CLK1 的时间间隔, 使多路复用器选定的通道稳定, D0 便脱离高阻态, 进入低电平状态, 电备工作就绪。第2 个C LK 到来, 转换开始。转换过程中, 转换数据同时从D0输出。第2 个CLK 下降沿后, D0 输出最高位MSB , 8 个时钟后转换完成(即第9 个C LK 下降沿后移出LSB), 此后若CS 仍为低, D0 一直保持LS B 值。CS 变高后D0 呈高阻态, 等待下一次转换开始。 音乐采集电路如图3-2所示,先由OPA2227讲音频信号放大之后,再由TLC0831采样。52单片机的P2.0,P2.1,P2.2分别接的TL0831的DO,CS,CLK引脚。 图3-2 音乐采集电路 由以上分析给出音乐采集的时序图,如图3-3所示 图3-4 音乐采集时序图 3.3 下位机采样数据图 图3-5与图3-6为静音和播放某一时刻的采样的数据图,静音时刻只有2.5V直流偏置,在播放时刻产生的音频信号使数据在0-5V之间变化。 图3-5 静音时刻音乐的采样图 图3-6 播放时刻音乐的采样图 4. 基于nRF24L01无线传输子系统 4.1 nRF24L01模块硬件设计 本系统采用了Nordic公司新推出的工作于2.4 GHz频段的NRF24l01射频芯片和52单片机控制实现短距离无线数据通信。 nRF24L01芯片工作于2.4 GHz全球开放频段,工作速率O~2 Mb/s,最大发射功率0 dBm,外围元件极少,内置硬件CRC校验和多点通信地址控制,集成了频率合成器,晶体振荡器和调制解调器. 它的主要特点如下: 1)低工作电压: 1.9~3.6 V低电压工作; 2)高速率: 2Mbps,由于空中传输时间很短,极大地降低了无线传输中的碰撞现象; 3)多频点: 125频点,满足多点通信和跳频通信需要; 4)超小型:体积小巧, 5mm ×5mm; 5)低功耗:当工作在应答模式通信时,快速地控制传输及启动时间,极大地降低了电流消耗; 6)低应用成本: nRF24L01的SPI接口可以利用单片机的硬件SPI口连接或用单片机I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口,便于使用低成本单片机. 系统硬件主要由nRF24L01 射频芯片和52单片机成。因为52单片机没有SPI接口,所以需要用I/O口来模拟SPI接口。nRF24l01与52单片机的连接电路图如图4-1所示。nRF24L01与52单片机通过MOSI,MISO和SCK组成的SPI接口连接. 单片机接11.0592MHz的低频晶振工作, nRF24L01 的工作频率为16MHz,由低速的单片机控制高速收发的射频芯片正是本系统的特点. 系统由低压3.3 V供电. 系统处于发射模式时,耗电约为3.5 mA,启动发射时约为13mA,接收模式时耗电约为2lmA. 由于系统上电时,单片机通过SPI,对nRF24L01进行状态配置。若处于发射模式单片机就把数据通过输入到nRF24L01,当CE信从1变为0时, nRF24L01就把从单片机收到的数据以2Mbit/ s的速率发射出去;系统设为接收模式,nRF24L01就一直在监测天线上的信号;若有同频的信号,就收下并打开信息包读取地址,地址与自己的相同就取出信息包里的有用数据,并使IRQ信号为低电平通知单片机来取走。 图4-1 nRF24l01与单片机连接电路图 4.2 nRF24L01模块软件设计 在本设计的系统中,各个子模块接受到的数据都由下位机发送,子模块根据得到的数据去控制相应水泵的输入电压,而且nRF24l01有硬件CRC校验,所以数据传输方向使用单向传输就可以满足要求,子模块无需发送数据给下位机。即上位机对nRF24l01的操作只有初始化和发送数据,子模块对nRF24l01的操作有初始化的接受数据。 本系统中采用ShockBurstTMMode完成数据的发送和接收. 下面具体介绍发送和接收的软件编程。 nRF24l01发送模式的过程为: 1)配置寄存器位PRIM_RX为低; 2)当MCU有数据要发送时,接收节点地址和有效数据通过SPI接口写入nRF24L01。 当CSN为低时发送数据被不断地写入; 3)设置CE为高,启动发射. CE高电平持续时间最小为10μs; 4)启动内部16 MHz时钟,MCU设置发送速度为1Mbps,无线发送数据; 5)若启动了自动应答模式, nRF24L01 立即进入接收模式; 6)如果CE置低,则系统进入待机模式。 根据以上思路,给出下位机的相关程序: 初始化: SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 写本地地址 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // 写接收端地址,P0 SPI_Write_Buf(WRITE_REG + RX_ADDR_P1, RX_ADDRESS_P1, RX_ADR_WIDTH); // 写接收端地址,P1 SPI_Write_Buf(WRITE_REG + RX_ADDR_P2, RX_ADDRESS_P2, RX_ADR_WIDTH); // 写接收端地址,P2 SPI_Write_Buf(WRITE_REG + RX_ADDR_P3, RX_ADDRESS_P3, RX_ADR_WIDTH); // 写接收端地址,P3 SPI_Write_Buf(WRITE_REG + RX_ADDR_P4, RX_ADDRESS_P4, RX_ADR_WIDTH); // 写接收端地址,P4 SPI_Write_Buf(WRITE_REG + RX_ADDR_P5, RX_ADDRESS_P5, RX_ADR_WIDTH); // 写接收端地址,P5 // SPI_RW_Reg(WRITE_REG +SETUP_RETR , 0x1f); //不自动重发 SPI_RW_Reg(WRITE_REG + EN_AA, 0x3f); // 频道0,1,2,3,4,5自动 ACK应答允许 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x3f); // 允许接收地址只有频道0,1,2,3,4,5, SPI_RW_Reg(WRITE_REG + RF_CH, 0); // 设置信道工作为2.4GHZ,收发必须一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置通道0接收数据长度,本次设置为3字节 SPI_RW_Reg(WRITE_REG + RX_PW_P1, RX_PLOAD_WIDTH); //设置通道1接收数据长度,本次设置为3字节 SPI_RW_Reg(WRITE_REG + RX_PW_P2, RX_PLOAD_WIDTH); //设置通道2接收数据长度,本次设置为3字节 SPI_RW_Reg(WRITE_REG + RX_PW_P3, RX_PLOAD_WIDTH); //设置通道3接收数据长度,本次设置为3字节 SPI_RW_Reg(WRITE_REG + RX_PW_P4, RX_PLOAD_WIDTH); //设置通道4接收数据长度,本次设置为3字节 SPI_RW_Reg(WRITE_REG + RX_PW_P5, RX_PLOAD_WIDTH); //设置通道5接收数据长度,本次设置为3字节 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //设置发射速率为1MHZ,发射功率为最大值0dB 发射数据: CE=0; //StandBy I模式 SPI_RW_Reg(WRITE_REG + RF_CH, 30); // 设置信道工作为2.4GHZ,收发必须一致 SPI_Write_Buf(WRITE_REG + RX_ADDR_P3, TX_ADDRESS, TX_ADR_WIDTH); // 装载接收端地址 SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); // 装载数据 SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // IRQ收发完成中断响应,16位CRC,主发送 CE=1; //置高CE,激发数据发送 inerDelay_us(20); nRF24l01接收模式和发送模式的设置过程大概相同,具体过程为: 1)配置寄存器位: PRIM_RX为高; 2)打开所使用的接收数据通道,自动应答功能,有效数据宽度由设置; 3)设置CE为高启动接收模式; 4) 130μs后nRF24L01开始检测空中信息; 5)接收到有效的书包后,数据存储在RX_FIFO中,同时RX_DR位置高; 6)如果启动自动应答功能,则发送应答信号; 7)MCU设置CE脚为低,进入待机模式。 根据以上思路给出子模块的nRF24l01相关的程序: 初始化: 各个子模块的对nRF24l01的初始化和下位机的初始化大致相同,只需要给在最后加上一段函数把nRF24l01设置为接受模式: CE=0; SPI_RW_Reg(WRITE_REG + CONFIG, 0x07); // IRQ收发完成中断响应,16位CRC ,主接收 CE = 1; inerDelay_us(130); 接受数据: 当有数据到达的时候会产生中断,且相应的状态标志位会置位,所以在相应的中断函数里面加上以下程序。 unsigned char revale=0; sta=SPI_Read(STATUS); // 读取状态寄存其来判断数据接收状况 if(RX_DR) // 判断是否接收到数据 { CE = 0; //SPI使能 SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO buffer revale =1; //读取数据完成标志 } SPI_RW_Reg(WRITE_REG+STATUS,sta); //接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标志 return revale; 5. 水泵控制系统 5.1 水泵的选定 方案一:采用变频器控制交流潜水泵,调速方便、容易,只要控制口电流范围为4到20毫安就可以,精度高,缺点为价格偏贵。 方案二:采用直流潜水泵,这样会增加电路的电路复杂性,控制经度偏低,优点是价格偏低。本系统是小型系统,成本问题必须考虑,控制精度要求不是很高。 根据上述说明,选择方案二。 5.2 水泵控制原理图的设计 直流水泵的扬程取决于输入电压的大小,所以可以改变潜水泵输入电压的大小来改变水柱的高度。在本设计中采用的直流母线是12V。采用BUCK电路来实现DC/DC电压变换。其原理图如5-1所示: 图5-1 BUCK电路 BUCK电路在电流连续模式下的工作原理,其中D为驱动脉冲占空比,T为驱动脉冲周期: 当t[0,DT]时,控制信号使J1导通,D4截止,向L1充磁,向电容充电。 Vin=U(t)+Vout(t) (5-1) 当t[DT,T]时,J1截止,D4续流,输出电压靠L1与电容放电维持。 0= -U(t)+Vout(t) (5-2) 根据(1),(2)电感伏秒平衡可知: = (5-3) 得: Vout=DVin (5-4) 由(5-4)可知只需要改变占空比D就可以控制直流水泵两端的电压,从而改变水泵扬程的大小。 TL494是一种固定频率脉宽调制电路,它包含了开关电源控制所需的全部功能,广泛应用于单端正激双管式、半桥式、全桥式开关电源的设计。在本次设计中使用TL494来产生DC/DC的PWM驱动信号。TL494的内部结构图如5-2图所示: 图5-2 TL494的内部结构图 TL494内置了线性锯齿波振荡器,振荡频率可以通过5脚和6脚外部的一个电阻和一个电容进行调节。公式为:f=1.1/(Rt*Ct)。 输出脉冲的宽度是通过电容CT上的正极性锯齿波电压与另外两个控制信号进行比较来实现。功率输出管Q1和Q2受或非门控制,仅当双稳触发器的时钟信号为低电平时才工作,亦即锯齿波电压大于控制信号期间工作。因此,当控制信号增大时,输出的脉冲宽度将减小。 PWM驱动信号原理如图5-3所示;TL494的2脚接单片机DA转换得到的基准电压。1脚接DC/DC输出电压,10脚产生PWM信号。这样只用改变单片机DA出来的信号,机可以改变占空比D,从而控制水泵的扬程。 5-3 PWM驱动信号原理图 5.3 水泵控制系统的实物图 实物图如5-4所示,我只做了三个水泵控制,控制水泵1,2,4通道。输入的电源由太阳能控制系统供给,输出接直流水泵。 5-4 水泵控制子系统实物 6. 功放 6.1 功放电路设计 在音乐喷泉中,音乐是少不了的,所以一个好的功放能给人的很好的享受。在本系统中,我采用的功放是NE5532+LM1785的组合,NE5532作为前级,LM1875作为后级驱动。 NE5532是高性能低噪声双运算放大器(双运放)集成电路。与很多标准运放相似,但它具有更好的噪声性能,优良的输出驱动能力及相当高的小信号带宽,电源电压范围大等特点。因此很适合应用在高品质和专业音响设备、仪器、控制电路及电话通道放大器。用作音频放大时音色温暖,保真度高,在上世纪九十年代初的音响界被发烧友们誉为“运放之皇”,至今仍是很多音响发烧友手中必备的运放之一。而LM1875是一款功率放大集成块! 是美国国半公司研发的一款功放集成块! 它在使用中外围电路少 而且有完善的过载保护功能! 它为五针脚形状! 一针脚为信号正极输入 二针脚为信号负极输入三针脚接地 五针脚电源正极输入 四针脚为信号输出 。LM1875采用TO-220封装结构,形如一只中功率管,体积小巧,外围电路简单,且输出功率较大。该集成电路内部设有过载过热及感性负载反向电势安全工作保护。立体声有左右两个通道且左右两个通道的的电路完全相同,下面给出左声道的功放电路图如图6-1所示。 图6-1 左声道功放电路图 6.2 喇叭保护板电路设计 在我们开机和关机的时候功放会产生尖峰,所以在早期的功放里面会听到“啪”的一声,这样会对喇叭产生损坏。所以在一个功放里面喇叭保护板能很好的避免尖峰脉冲,提高喇叭的使用寿命。 UPC1237是一款经典的喇叭保护IC,具有很宽的工作电压范围(25~60V),具备开机延迟、功放输出端直流漂移检测、即时关机功能。图6-2中,7脚为延时检测,延时后6脚控制常开继电器闭合,喇叭开始工作,避免了开机冲击; 2脚为功放输出中点直流漂移检测接两个电阻后接功放左右声道输出,当检测到有直流输出时(一般为零点几伏),切断继电器,保护喇叭;4脚为关机检测,因为4脚是从功放变压器取电,且滤波电容较小,当关闭功放电源时,马上能检测到电压跌落,继而切断继电器,此时功放因为有大容量滤波电容存在不会马上停止工作,而喇叭已被切断,从而避免了关机冲击。 图6-2 喇叭保护板 6.3 功放PCB 下面给出完整的功放PCB板图,如图6-3所示。 图6-3 功放PCB 7. 太阳能子系统 7.1 太阳能电池 太阳能电池是通过光电效应或者光化学效应直接把光能转化成电能的装置。以光电效应工作的薄膜式太阳能电池为主流,而以光化学效应原理工作的太阳能电池则还处于萌芽阶段。太阳光照在半导体p-n结上,形成新的空穴--电子对。在p-n结电场的作用下,空穴由n区流向p区,电子由p区流向n区,接通电路后就形成电流。 太阳能电池的等效电路模型(如图7-1所示)能够帮助我们深入了解这种器件的工作原理。理想PV电池的模型可以表示为一个感光电流源并联一个二极管。光源中的光子被太阳能电池材料吸收。如果光子的能量高于电池材料的能带,那么电子就被激发到导带中。如果将一个外部负载连接到PV电池的输出端,那么就会产生电流。 图7-1 电池的等效电路模型 图7-1由一个串联电阻(RS)和一个分流电阻(rsh)和一个光驱电流源构成的光伏电池等效电路。 由于电池衬底材料及其金属导线和接触点中存在材料缺陷和欧姆损耗,PV电池模型必须分别用串联电阻(RS)和分流电阻(rsh)表示这些损耗。串联电阻是一个关键参数,因为它限制了PV电池的最大可用功率(PMAX)和短路电流(ISC)。 PV电池的串联电阻(rs)与电池上的金属触点电阻、电池前表面的欧姆损耗、杂质浓度和结深有关。在理想情况下,串联电阻应该为零。分流电阻表示由于沿电池边缘的表面漏流或晶格缺陷造成的损耗。在理想情况下,分流电阻应该为无穷大。 7.2 太阳能控制器 太阳能控制器全称为太阳能充放电控制器,是用于太阳能发电系统中,控制多路太阳能电池方阵对蓄电池充电以及蓄电池给太阳能逆变器负载供电的自动控制设备。展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




小型音乐喷泉模型-毕业设计.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/5707331.html