ImageVerifierCode 换一换
格式:DOCX , 页数:49 ,大小:1.78MB ,
资源ID:22700366      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22700366.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(跟着音乐跳舞的光立方结题报告要点Word下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

跟着音乐跳舞的光立方结题报告要点Word下载.docx

1、3D 图形的编程也是很巧妙的事情,并不只是简单地把几个2D 的图形叠加起来这么简单。设计3D 图形,需要有新的思维方式,发现三维空间中点、线、面、体的算法规律。在程序中运用循环、判断语句、参数逻辑运算等方法,用最少的语句达到最佳的显示效果。一改以往的平面显示效果,采用全新的立体显示,展示3D的超炫表现力,让人享受各种视觉上的冲击,迎合3D显示时代的到来。光立方为一个立体LED点阵。本项目制作并实现了一个8*8*8的光立方,较之平时常见的LED点阵屏,其拥有独特的特点:1、8*8*8的LED阵列立体显示器;2、连贯的图形显示效果,浑然一体,一气呵成;3、超炫的立体动态显示,多种显示样式;4、FF

2、T运算,能随着音乐不断变化模式,给人一种“舞动”的美感。1.2 LED灯的选用LED发光体的体积越小,光立方整体的通透性就越好,也就是说后排的LED就越不容易被前排的LED挡住;而另一方面,发光体越大,越容易看到光点,例如使用直径更大的LED或是使用雾面而非光面的LED。这二者是有一定的相互矛盾的关系。此外还要注意LED光点的可视角度,雾面LED要比光面LED要大,而草帽头LED的可视角度又比普通窄体的LED要大。另外,一样可以根据摆放位置,角度,将LED的朝向进行改变(默认是朝天的),以获得更好的观感。本项目使用的LED为台湾产的3MM、圆头、蓝色、雾状散光LED,其最大电流为20mA,电压

3、范围3.0-3.5V,波长460-465nm,亮度,1000mcd,发光角度120度,正极的引脚长度为27mm,负极的为25mm。实物图如图1.1所示: 图2.1 选用的LED灯1.3光立方的焊接为了保持整体的通透性、立体感,3D8光立方没有设计额外的LED支架,所有搭接直接使用LED自身的管脚。注意:正负引脚的夹角一定是90。弯折后的LED灯如图1.2所示: 图1.2 弯折后的LED首先,要进行LED灯立体矩阵的搭建。LED搭接过程还是比较困难的,我们需要8 片8*8 的LED 阵列,8*8*8=512LED,分为8层,每层8列,每列8个LED灯,列内共阴,层内共阳。焊接直接在LED管脚上进

4、行。为使光立方外形的美观,每一片的LED阵列都要求排列整齐,互相看齐。这对焊接的能力有一定的要求。每一束焊接的效果如图1.3所示: 图1.3 每一列的焊接示意图我们可以把它分为8个层,如图1.4所示;每层含64个LED灯,如图1.4所示。我们只要控制这64个灯使其能够自由变换,然后再通过控制每个层依次点亮即可,由于我们眼睛的视觉暂留(大概50ms至200ms),使我们感觉看到的东西是一起再亮的。这样我们就看到了一个完整的个体。 图1.4 光立方层结构示意图 图1.5 光立方每层结构示意图整个光立方焊接完后如图1.6所示: 图1.6 焊接完后的光立方 第二章 模块设计2.1 总体方案选择 本项目

5、首先要实现光立方的立体扫描,产生出特定的显示效果。此外还要求显示效果能依音乐的改变而改变,给人一种随着音乐“跳舞”的感觉,这就要求对音乐进行采集。对音乐采集可以采用外部ATD芯片,或者选用内带ATD功能的MCU。本项目使用的主控为Atmega16,其内部自,8路10位精度的模数转换器。因此,整体功能结构可表示如下:音频功放 图2.1 系统结构框图2.2 主控的最小系统 本项目中使用的主控为Atmega16。Atmega16是一款高性能、低功耗的8位AVR微处理器,采用先进的RISC结构,含16K字节的系统内可编程Flash和512 字节的EEPROM。Atmega16的外设特点为: 两个具有独

6、立预分频器和比较器功能的8 位定时器/ 计数器 一个具有预分频器、比较功能和捕捉功能的16 位定时器/ 计数器 具有独立振荡器的实时计数器RTC 四通道PWM 8路10位ADC,2 个具有可编程增益(1x, 10x, 或200x)的差分通道 两个可编程的串行USART 可工作于主机/ 从机模式的SPI 串行接口 具有独立片内振荡器的可编程看门狗定时器 片内模拟比较器 片内经过标定的RC 振荡器 32 个可编程的I/O 口Atmega16的最小系统主要包括复位电路、外部振荡器电路和AD模块电源等,电路原理图如图2.2所示: 图2.2 Atmega16最小系统2.3 光立方控制模块光立方的扫描控制

7、使用了两片74HC238译码器和8片74HC573锁存器,其中一片74HC238通过地址译码实现光立方的层选,另外一片74HC238用来实现光立方的列选,LED灯的亮灭通过74HC573暂存器暂存的方法,每片74HC573分别用来控制一列LED灯,通过层选和列选信号的切换来实现每个LED灯的扫描,通过不同的扫描顺序实现不同的动态效果。光立方控制的电路原理图如图2.3所示: 图2.3 光立方控制原理图2.4 OTL音频功放模块OTL是英文Output Transformerless的简写,意思是无输出变压器,其采用推挽方式而不用输出变压器的功率放大器。OTL体积小,电路简单,易于集成,是常用的简

8、便型音频功放。本项目设计的OTL如图2.4所示: 图2.4 OTL音频功放2.5 串口通信模块 为使MCU与上位机通信,可以使用串口通信。为此需要设计串口通信模块。 串行通信被广泛用于数据交换中。Atmega16单片机通过复用的PD0和PD1两个管脚与其他设备实现串行数据交换。当设计好串行口工作模式和波特率后,在发送数据时,只要把数据载入UDR中,串行口就会自动将数据发送出去;在接收数据时,串行口接收下来的数据保存在UDR中以供程序读取。 由于电脑串口RS232电平是(-10v +10v),而一般的单片机应用系统的信号电压是TTL电平(0 +5v),MAX232 就是用来进行电平转换的。MAX

9、232符合TIA/EIA-232-F标准,该器件包含2 驱动器、2 接收器和一个电压发生器电路提供TIA/EIA-232-F 电平。每一个接收器将TIA/EIA-232-F电平转换成TTL/CMOS 电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。MAX232的主要特点:1、单5V 电源工作2、LinBiCMOSTM 工艺技术3、两个驱动器及两个接收器4、30V 输入电平5、低电源电流:典型值是8mA 串口通信模块的电路原理图如图2.5所示: 图2.5 串口通信电路原理图 第三章 软件开发3.1 光立方的动态显示 光立方虽然不同于平时常见的LED点阵屏,但其原理还

10、是一样的,都是通过对LED的快速扫描,利用人眼视觉暂留效应,以达到动态显示的效果。只不过设计3D 图形,需要有新的思维方式,发现三维空间中点、线、面、体的算法规律。在程序中运用循环、判断语句、参数逻辑运算等方法,用最少的语句达到最佳的显示效果。要实现光立方的动态扫描,那么首先得先点亮一个灯,然后通过快速依次点亮想显示图形的每一个灯,即可得到动态显示图形。本项目中的光立方为层共阳型的,那么束为低电平点亮,那么点亮一个灯的程序如下所示:#define P0 PORTB#define P1 PORTCvoid light(char ceng,char shu) /点亮一个灯 P1=ceng; P0=

11、(1shu); for(m=0;m=2fmax),采样之后的数字信号才能完整地保留了原始信号中的信息。46.08KHz2*20KHz,符合采样定理的要求。AD结果寄存器采用左对齐方式,因为正常情况ATMEGA16的AD采样频率最大为15KHz,现采样频率至少为声音频率(20KHz)的两倍,即40KHz,所以结果精度不高,也为了有充裕时间进行AD采样,所以只读取ADCH寄存器的值,舍去结果寄存器的末两位。注意在差分模式下,最高位为符号位,所以结果范围为-128+127。参考电压采用内部2.56V参考电压(因为耳机的差分输出电压最高为2V)。现令采样频率为40KHz,则AD转换间隔为t=25us,

12、使用定时器触发方式,每隔25us触发一次AD。采样样本为32个,则频率间隔为40KHz/(32-1)=1.3KHz。FFT运算后,取前面的17(32/2+1)个值,其中第一个值代表直流电压值,亦去掉。最终取结果的X116。本项目中的上位机使用VB开发,上位机的处理频率最大只为1KHz(1ms),而声音的采样频率为40KHz,且AD中如果采用连续转换模式的话,在采样频率为40KHz时,则波特率至少为:BUAD=40K*32(采样点数)*8(每个数的位数)=10240000bps,Atmega16的串口通信根本无法达到如此速率。 故应该间隔发送,不能采用连续发送。现如果每5ms(200Hz)发送一

13、次,一次采样32个点,那么波特率为:200*32*8=51200bps,那么可以设计AVR的串口通信速率为115200bps。串口初始化的函数如下所示:void UART_Init(unsigned int baud) /*默认设置帧格式:异步模式 8 个数据位, 1个停止位*/ UCSRC &= (18);/* 设置波特率*/ UBRRL = (unsigned char)baud; UCSRB = (1RXCIE)|(1RXEN)|(1TXEN); /*接收中断使能,接收器与发送器使能*/ 当为UART_Init(5)时,串口通信速率为115200bps。串口通信的发送和接收函数分别为:

14、void write(char data) while(!(UCSRA & (1UDRE);/* 等待发送缓冲器为空 */ UDR=data;/* 将数据放入缓冲器,发送数据 */ unsigned char read(void)RXC); /* 等待接收数据*/ return UDR;/* 从缓冲器中获取并返回数据*/ 采样后的AD值采用统一发送方式,其函数如下所示: void send() for(i=0;i= J Then GoTo L1190 TR = REX(J) TI = IMX(J) REX(J) = REX(i) IMX(J) = IMX(i) REX(i) = TR IMX(

15、i) = TIL1190: K = ND2L1200: If K J Then GoTo L1240 J = J - K K = K / 2 GoTo L1200L1240: J = J + KNext iFor L = 1 To M LE = CInt(2 L) LE2 = LE / 2 UR = 1 UI = 0 SR = Cos(PI / LE2) SI = -Sin(PI / LE2) For J = 1 To LE2 JM1 = J - 1 For i = JM1 To NM1 Step LE IP = i + LE2 TR = REX(IP) * UR - IMX(IP) * UI

16、 TI = REX(IP) * UI + IMX(IP) * UR REX(IP) = REX(i) - TR IMX(IP) = IMX(i) - TI REX(i) = REX(i) + TR IMX(i) = IMX(i) + TI Next i TR = UR UR = TR * SR - UI * SI UI = TR * SI + UI * SR Next JNext L 第四章 结束语 通过半年的学习和努力,终于成功实现了本项目要求。在本项目的过程中,光立方的制作对焊接和布局提出了一定要求,其次是FFT的学习与应用。经过本次制作,进一步加深了点阵的扫描控制,也学会了如何将理论联系

17、实际,把所学的书本知识应用到实际运用中去。每一次的项目制作,都让自己有一种新的收获,这便是经验逐步积累的过程。希望以后能够参与更多的项目中去,学习更多的知识和经验。 附件下位机程序清单:/*主控为ATMEGA16单片机,采用外部晶振11.0592MHz,选用AD时钟分频因子为16,则AD时钟=691.2KHz。因为差分AD转换需要15个AD时钟,则采样频率最大为691.2KHz/15=46.08KHz(=2*20KHz)。结果寄存器采用左对齐方式,因为正常情况下ATMEGA16的AD采样频率最大为15KHz,现采样频率至少为声音频率(20KHz)的两倍,即40KHz,所以结果精度不高,也为了有

18、充裕时间进行AD采样,所以只读取ADCH寄存器的值,舍去结果寄存器的末两位。注意在差分模式下,最高位为符号位,所以结果范围现为-128+127。采样样本为32个,则频谱的频率间隔为20KHz/(16-1)=1.3333KHz。最终取结果的X116。*/#include macros.hstdlib.h/p1高位:层 P1低位:面 p0:束#define N 32/#define delay 200unsigned char delay=200;unsigned char m;unsigned char i;char count=0,num=0,flag=0,index=0;char ad_data=0,valueN=0,resultN/2+1=0;char const spin1416=0x07,0,0x06,1,0x05,2,0x04,3,0x03,4,0x02,5,0x01,6,0x00,7, 0x06,0,0x06,1,0x05,2,0x04,3,0x03,4,0x02,5,0x01,6,0x01,7, 0x05,0,0x05,1,0x05,2,0x04,3,0x03,4,0x02,5,0x02,6,0x02,7, 0x04,0,0x04,1,0x04,2,0x04,3

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1