模拟舞台灯光控制系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011-2012德州仪器C2000及MCU创新设计大赛
项目报告
题目:模拟舞台灯光控制系统
学校:孝感学院
组别:本科组
应用类别:控制系统类
平台:C ortex-M
题目:模拟舞台灯光控制系统
摘要(中英文)(概述项目内容,简单介绍所实现的系统(100-150字左右))
我们此次设计利用M3内核控制RGB彩灯阵列,借鉴点阵的控制方法定位矩阵列中的彩灯,每三路DAC分别控制一行彩灯的R、G、B配色比,总共通过8组DAC 来控制整个舞台的RGB彩灯阵列发出任意我们想要颜色的光,同时通过控制不同行列RGB彩灯变换的速度来调节彩灯闪烁的频率和变换的规律,从而达到舞台灯光控制的效果。
1.引言(简述系统设计的背景、目的、和所要解决的问题。)
设计背景:我们知道从个人演唱会到各种大型文艺活动,一方面舞台灯光起着照明的作用;另一方舞台灯光效果直接影响着整个活动现场的气氛,比如诗歌
朗诵类感情色彩比较丰富的节目,需要色彩柔和且节奏变换缓慢的灯光效果,而像劲歌、热舞类节目,则需要色彩鲜明节奏极富变化的灯光效果来烘托整个活动现场的气氛,但是这些效果如果单靠人为去控制就显得有些繁琐,而且人为控制容易出错,很多情况都需要灯光师有敏捷的反应能力和熟练的操作技巧,一般人很难操作,另外人为控制过程中抖动情况比较严重,容易造成发光器件的损坏,可以说人工控制已经无法满足要求。
目的:我们利用单片机的准确性和灵活性,将各种形式的灯光变换效果整理成册,我们只需要控制按键就可以让舞台上的灯光变换出我们需要的灯光效果,这样一方面提高了控制的准确度;另一方面也减少灯光控制师工作量,设定效果,灯光就按我们预定的效果运行,让舞台灯光操作起来更加简便、快捷。
2.系统方案
整个舞台灯光的控制电路分为主控制电路和灯光
实现电路,只要我们对应主控制电路中TFT彩屏上的
效果按下对应矩阵键盘中的效果按键,蓝牙○1就会
发出信号,同时灯光实现电路中蓝牙○2接受信号并送
给控制器,控制器根据接收到的信号迅速调节24路
DAC输出不同的电压来变换灯光效果,完成舞台灯
光控制!
(详细说明系统设计的整体思路,用模块的形式指出系统设计的各个关键点,并指出其中使用的关键算法)
3.系统硬件设计
(详细介绍系统各个模块的硬件实现过程,说明采用关键器件的理由及关键部分的原理图(不得大量复制原理图,更多用框图的方式示意,仅对能体现工作量和创新的部分提供原理图,评委有权对滥用原理图的论文扣分))
输入部分:由于,且对于舞台上的效
果要求达到实时控制的目的,故必须每种
效果设定单独的按键,如果考虑传统的5
×5、6×6矩阵键盘则需要十多个I/O口,
这样不仅需要控制器更多的I/O口而且不
便于扩展,此处我们的输入部分则采用4
片SN74hc148八线三线编码器级联而成,
构成4×8的矩阵键盘只需要7个I/O口,
而且只需要级联八线三线编码器就可以继
续扩展键盘,便于扩展键盘。
由于采用八线三线编码器级联电路,
故我们需要利用单片机检测然后解码来确
定按键!
显示部分:由于灯光控制效果比较多,则必然要求控制系统可显示信息量大而且直观,便于操作,故此处我们采用TFT彩屏显示器!
传输部分:由于控制室一般设在比较角落的地方,而且很多户外临时搭建的控制室位置不定,而且有线会影响舞台美观,故我们采用蓝牙无线通讯,既美观又方便了操作台的的架设,为可移动控制室提供了很大的便利!
由于传输信息量比较大,故此处我们采用了集中编码的形式,用定长码编码信息,让传输的信息更加准确!
灯光控制部分:我们利用红、绿、蓝(Red Green Blue )基本颜色可配比出其他任意颜色的原理,每一行利用三路DAC 给不同的电压来调节一组灯珠中R 、G 、B 亮度的强弱,从而得到我们需要的颜色。另外通过合理控制灯光交替变换的时间让我们的灯光赋予节奏感,更加适应舞台的变换!
此处24路DAC 我们采用了3片TLV5628串行输入并行输出八位八路DAC 。串行输入节约控制器I/O 口,八路并行输出可以实现每一路单独控制,从而实现每一路R 、G 、B 任意控制的目的。
4. 系统软件设计
详细介绍算法设计与算法流程图(不得大量复制源代码)
控制电路流程图灯光实现电路流程图
检测标志位自变量代码
void judge(void)
{
switch(flag_effect)
{
case flag_only:
{
switch(flag_colour)
{
case flag_white : all_colour(white);break;
case flag_blue : all_colour(blue);break;
case flag_yellow : all_colour(yellow);break;
case flag_green : all_colour(green);break;
case flag_red : all_colour(red);break;
case flag_purple : all_colour(purple);break;
case flag_blue_light : all_colour(blue_light);break;
case flag_black : Black();break;
}
}break;
case flag_several:
{
several_colour_change(white,red,blue,yellow,green,purple);
}break;
case flag_water:
{
water_colour();
}break;
case flag_informal:
{
switch(flag_colour)
{
case flag_white : slow_light(white);break;
case flag_blue : slow_light(blue);break;
case flag_yellow : slow_light(yellow);break;
case flag_green : slow_light(green);break;
case flag_red : slow_light(red);break;
case flag_purple : slow_light(purple);break;
case flag_blue_light : slow_light(blue_light);break;
case flag_black : Black();break;
}
}break;
case flag_two_four: {
two_four();
}break;
case flag_three_four: {
three_four();
}break;
case flag_four_four: {
four_four();