阿癫佬与泼妇玩灯光效果

smching 于 2015-2-3 17:59 编辑


Aarduino_communicate_with_Vixen.jpg

2013-7-16 15:27 上传
(54.38 KB)



这里教你怎样使用Vixen软件与Arduino控制灯光效果



Vixen在华文里不懂称为什么。用Google翻译之,很滑稽,泼妇也



Arduino也没有真正的华文名字,直接翻译,就称它为阿癫佬吧



在泼妇(软件)与阿癫佬(硬件)的软硬兼施之下,你可以隨心所意的控制灯光效果了。



这里先简单的介绍一下泼妇(Vixen)

Vixen是一个免费的灯光效果设计软件。 通过电脑和一些硬件,任何人都可以设计与音乐同步的灯光效果显示。



Vixen支持不同的控制器,其中通过DMX(如果需要,可以自制一个OpenDMX,非常简单)可以控制许多市面上销售的专业形DMX设备(fixture),最常见的就是disco场所的激光灯光。

214938ewudujrlsxhh5ipz.jpg.thumb.jpg

2013-7-16 12:40 上传
(8.97 KB)

q.jpg

2013-7-16 12:40 上传
(8.92 KB)





请看泼妇如何与阿癫佬配合



最新的版本是Vixen3,其中最吸引人之处是支持预览。与Vixen2比较,Vixen3应用有些难,且缺少了Vixen2中的某些常用功能。此教程是基于Vixen2,请下载Vixen2,并安装到你的电脑, 但你必须先安装Microsot.NET Framework 2.0在你的电脑上



Arduino代码

由于Arduino Mega拥有12个PWM输出和多个数字(Digital)输出,所以用了它来控制灯光。这里我隋便写了几行代码,上载至Arduino Mega,与Vixen2测试了一下,可以正常运行。如果你不需要多个PWM,只要稍微更改代码就可以用在不同的Arduino了。

ARDUINO 代码复制打印

/* 16 Channels Lighting Controller By smching ([url=http://ediy.com.my]http://ediy.com.my[/url]) Allow Arduino Mega to communicate with Vixen via generic serial plugin/#define CHANNELS_COUNT 16////////// PWM pin#define Ch1 2// PWM Pin 2#define Ch2 3// PWM Pin 3#define Ch3 4// PWM Pin 4#define Ch4 5// PWM Pin 5#define Ch5 6// PWM Pin 6#define Ch6 7// PWM Pin 7#define Ch7 8// PWM Pin 8#define Ch8 9// PWM Pin 9#define Ch9 10// PWM Pin 10#define Ch10 11// PWM Pin 11#define Ch11 12// PWM Pin 12#define Ch12 13// PWM Pin 13/////////// digital pin#define Ch13 18// DIGITAL Pin 18#define Ch14 19// DIGITAL Pin 19#define Ch15 20// DIGITAL Pin 20#define Ch16 21// DIGITAL Pin 21int Ch[CHANNELS_COUNT] = {Ch1, Ch2, Ch3, Ch4, Ch5, Ch6, Ch7, Ch8, Ch9, Ch10, Ch11, Ch12, Ch13, Ch14, Ch15, Ch16};int incomingByte[CHANNELS_COUNT]; // array to store the values from serial portvoid setup(){Serial.begin(9600);  // set up Serial at 9600 bpsfor (byte i=0; i<channels_count; i++)="" pinmode(ch[i],="" output);="" declare="" channel="" pin="" as="" an="" output[/i][i]}[/i][i]void loop() {[/i][i] if (Serial.available() >= CHANNELS_COUNT) {[/i][i]  for (int i=0; i<channels_count; i++)="" {="" [/i][i]  incomingByte = Serial.read(); // read each byte[/i][i]  if (i<12) { //arduino mega consists of 12 PWM[/i][i]   analogWrite(Ch, incomingByte[/i][i]); // Write values to channel pins  } else {   digitalWrite (Ch[i], incomingByte[i]);   }    } }}
/

16 Channels Lighting Controller

By smching ([url=http://ediy.com.my]http://ediy.com.my[/url])

Allow Arduino Mega to communicate with Vixen via generic serial plugin

*/



#define CHANNELS_COUNT 16



////////// PWM pin

#define Ch1 2// PWM Pin 2

#define Ch2 3// PWM Pin 3

#define Ch3 4// PWM Pin 4

#define Ch4 5// PWM Pin 5

#define Ch5 6// PWM Pin 6

#define Ch6 7// PWM Pin 7

#define Ch7 8// PWM Pin 8

#define Ch8 9// PWM Pin 9

#define Ch9 10// PWM Pin 10

#define Ch10 11// PWM Pin 11

#define Ch11 12// PWM Pin 12

#define Ch12 13// PWM Pin 13

/////////// digital pin

#define Ch13 18// DIGITAL Pin 18

#define Ch14 19// DIGITAL Pin 19

#define Ch15 20// DIGITAL Pin 20

#define Ch16 21// DIGITAL Pin 21



int Ch[CHANNELS_COUNT] = {Ch1, Ch2, Ch3, Ch4, Ch5, Ch6, Ch7, Ch8, Ch9, Ch10, Ch11, Ch12, Ch13, Ch14, Ch15, Ch16};

int incomingByte[CHANNELS_COUNT]; // array to store the values from serial port



void setup()

{

Serial.begin(9600); // set up Serial at 9600 bps

for (byte i=0; i<channels_count; i++)="" pinmode(ch[i],="" output);="" declare="" channel="" pin="" as="" an="" output[/i]

[i]}[/i]



[i]void loop() {[/i]

[i] if (Serial.available() >= CHANNELS_COUNT) {[/i]

[i] for (int i=0; i<channels_count; i++)="" {="" [/i]

[i] incomingByte = Serial.read(); // read each byte[/i]

[i] if (i<12) { //arduino mega consists of 12 PWM[/i]

[i] analogWrite(Ch, incomingByte[/i][i]); // Write values to channel pins

} else {

digitalWrite (Ch[i], incomingByte[i]);

}

}

}

}



注意:上面代码编辑将会不成功,也许是copy与paste时,Geek-workshop.com翻译错误吧?在此还保留着错误的代码。我在11#更正了(03/10/2013)

启动与设定Vixen
打开Vixen点击Sequence>New event sequence>Vixen standard sequence当出现New Sequence Wizard,点击Next按钮点击Next按钮以便使用100毫秒Event Period点击Next按钮,不使用Profile输入Channel以配合你的控制器。由于使用了16 Channels设计的Arduino,所以这里输入16,然後点击Next按钮继续点击Setup Plugins按钮以便设定Vixen插件,如图

Sequence_Plugin_Mapping.jpg

2013-7-16 15:27 上传
(47.12 KB)



在Available Plugins里双击Generic serial以便启动串行插件在Plugins in Use里点击Generic serial点击Pugin Setup以便设定设定值串口设置选择Arduino使用的串口以及Baud reate,然後点击OK按钮,如图

Com_port_settings.jpg

2013-7-16 15:27 上传
(24.22 KB)



点击Next按钮继续下一步骤点击Next按钮跳过Audio and Extent Patterns(需要与声频同步时才设定)输入Sequence Time,默认是一分钟点击Create It按钮,然後输入一个文件名字,再点击Save以保存文件此时Vixen灯光效果设计窗口出现了

Vixen_Main_Screen.jpg

2013-7-16 15:27 上传
(94.9 KB)







使用Vixen

选择Channel(你可以同时选择多个Channel)和Sequence Time,如图。现在选择了十个Channel和两秒Sequence Time。完成你想要放置灯光效果的范围后,现在可以点击效果icon以便控制效果重复步骤2以制造更多效果点击Play/Pause/Stop icon起始播放灯光效果

Using_Vixen.jpg

2013-7-16 15:27 上传
(117.27 KB)



想要怎样效果,就有怎样效果,非常方便



与声频同步

Synchronise_audio.jpg

2013-7-16 15:27 上传
(67.26 KB)




Event_Sequence_Aduio.jpg

2013-7-16 15:27 上传
(69.35 KB)



根据声频信号设计你的灯光效果

ss.jpg

2013-7-16 12:49 上传
(197.89 KB)


via - 极客工坊

标签: Arduino教程