电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
制作电脑显示器流光溢彩
分 享
扫描二维码分享
制作电脑显示器流光溢彩
流光溢彩
ws2812b
arduino
gcrisis
关注
发布时间: 2020-08-19
丨
阅读: 3646
之前我发了一个显示器流光溢彩的视频,颜色效果还是很不错的。本文就给大家说说制作方法,过程非常简单,相信每个人都可以轻松搞定。 [显示器流光溢彩](https://www.bilibili.com/video/BV1Q5411a7Bq "显示器流光溢彩") ##1、准备材料 ####需要用到的材料如下: ws2812b灯带(带背胶); arduino (nano、uno都ok); usb线; 导线(杜邦线); AmbiBox软件; arduino软件; ##2、贴灯带和接线 将灯带贴到显示器背面,具体贴法根据自己显示器的情况灵活安排,我的是这样贴的。 ![](https://cf01.ickimg.com/bbsimages/202008/5a3504a755432f728c720ae17c192ae6.jpg) 然后将灯带的三根线接到arduino上,分别是5v,GND和信号线,信号线接D2就行。 ![](https://cf01.ickimg.com/bbsimages/202008/33aee352e12c704eff22d9fca8083194.png) ##3、下载arduino代码 打开arduino开发环境,首先安装FastLED库,代码用了这个库来驱动ws2812b。 ![](https://cf01.ickimg.com/bbsimages/202008/16b47a4ac1ae3b388d347e5bd290d339.png) 新建工程,将下面的代码复制到arduino IDE中,修改一下NUM_LEDS宏的值为你的灯的个数,修改DATA_PIN为灯带数据线接的arduino端口号。 ```cpp /* * Arduino interface for the use of WS2812 strip LEDs * Uses Adalight protocol and is compatible with Boblight, Prismatik etc... * "Magic Word" for synchronisation is 'Ada' followed by LED High, Low and Checksum * @author: Wifsimster
* @library: FastLED v3.001 * @date: 11/22/2015 */ #include "FastLED.h" #define NUM_LEDS 39 //(灯带一共有多少个LED?) #define DATA_PIN 2 //(绿色的数据线接在arduino几号端口?) // Baudrate, higher rate allows faster refresh rate and more LEDs (defined in /etc/boblight.conf) #define serialRate 115200 // Adalight sends a "Magic Word" (defined in /etc/boblight.conf) before sending the pixel data uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i; // Initialise LED-array CRGB leds[NUM_LEDS]; void setup() { // Use NEOPIXEL to keep true colors FastLED.addLeds
(leds, NUM_LEDS); // Initial RGB flash LEDS.showColor(CRGB(255, 0, 0)); delay(500); LEDS.showColor(CRGB(0, 255, 0)); delay(500); LEDS.showColor(CRGB(0, 0, 255)); delay(500); LEDS.showColor(CRGB(0, 0, 0)); Serial.begin(serialRate); // Send "Magic Word" string to host Serial.print("Ada\n"); } void loop() { // Wait for first byte of Magic Word for(i = 0; i < sizeof prefix; ++i) { waitLoop: while (!Serial.available()) ;; // Check next byte in Magic Word if(prefix[i] == Serial.read()) continue; // otherwise, start over i = 0; goto waitLoop; } // Hi, Lo, Checksum while (!Serial.available()) ;; hi=Serial.read(); while (!Serial.available()) ;; lo=Serial.read(); while (!Serial.available()) ;; chk=Serial.read(); // If checksum does not match go back to wait if (chk != (hi ^ lo ^ 0x55)) { i=0; goto waitLoop; } memset(leds, 0, NUM_LEDS * sizeof(struct CRGB)); // Read the transmission data and set LED values for (uint8_t i = 0; i < NUM_LEDS; i++) { byte r, g, b; while(!Serial.available()); r = Serial.read(); while(!Serial.available()); g = Serial.read(); while(!Serial.available()); b = Serial.read(); leds[i].r = r; leds[i].g = g; leds[i].b = b; } // Shows new values FastLED.show(); ``` 修改完毕后就可以编译下载了。这个用过arduino应该都会,我就不罗嗦了。下载完要保持usb线的连接,后边上位机软件会通过它给arduino发送命令和数据。 ##4、AmbiBox下载安装配置 AmbiBox是我们将会用到的上位机软件,大家可以到它们官网下载,我也会把安装包共享。 安装都是常规步骤,我就不多说了。安装完后打开软件,选择Intelligent backlight display,我们从上到下一一设置。 ![](https://cf01.ickimg.com/bbsimages/202008/682307253d1969553adf2f1f12017c56.png) 首先要勾选Use backlight,否则灯带不会跟着屏幕变化。 Mode下拉菜单提供了5种显示方式: 屏幕捕获、静态背景、动态背景、跟随音乐、插件。流光溢彩的效果是屏幕捕获的方式,我们这里选择第一个。 ![](https://cf01.ickimg.com/bbsimages/202008/2c4dba2dc1de8a3a0e650dcee97c05d9.png) 下面选择屏幕捕获的方法,软件提供了好多种,我选择了windows 8,没有问题,其他也没仔细研究,懂得小伙伴可以交流学习一下。右边的show areas of capture会显示捕获的屏幕区域,我们稍后再详细说明。 ![](https://cf01.ickimg.com/bbsimages/202008/12802c8956aee68c2832fd32bf150d1c.png) 再往下Device选择adalight,arduino的程序使用的就是adalight的协议。 ![](https://cf01.ickimg.com/bbsimages/202008/3208fecb874b558d56a14544cdec92c1.png) 点more settings,软件会显示出更多设置选项。port设置串口的端口号,端口号可以在设备管理器中查找。order of color设置rgb的顺序,number of zones设置区域个数,一般要等于灯带的led个数。 ![](https://cf01.ickimg.com/bbsimages/202008/46aaa8e6a37132a2a6b76065bd74ab33.png) 我们再次点show areas of capture,这里也会多几项设置,Reset to default复位区域为默认,再下面是向导,我们点它来设置我们的捕获区域。 ![](https://cf01.ickimg.com/bbsimages/202008/8c5d9fca0ad157011ea03bc7fba7a553.png) 在弹出的对话框可以设置水平区域个数,垂直区域个数,第一个区域的偏移,底边去除、放置区域的范围,区域比例、区域排列方向、显示器、有没有拐角等等。一般设置的区域排列与自己贴的灯带要对应上,这样才能在准确的位置显示准确的颜色。通过调整各个参数,就可以让捕获区域的排列与我们预期的一样。 ![](https://cf01.ickimg.com/bbsimages/202008/a7067bc305cd413fc717b6d61225c7ec.png) 设置好最好将它保存一下,通过settings backup setting to a file保存到一个文件中。 ![](https://cf01.ickimg.com/bbsimages/202008/8eab993fd4b476b6aa333917d40dfdff.png) 到这里 ,我们的设置工作就完成了,灯带应该已经按照我们的设置发光了。之后就享受颜色溢出屏幕的视觉盛宴吧。对了,显示器背景墙最好是白色的,而且不要离得太远,否则反光效果不好。 ![](https://cf01.ickimg.com/bbsimages/202008/1facdad9de4eb4c71c70999f7bcf9a90.png) ![](https://cf01.ickimg.com/bbsimages/202008/f51cb202b0582cc64c1af35eeb3caa97.png) ![](https://cf01.ickimg.com/bbsimages/202008/101f2ef80a5d64f6171e8425ce510ad8.png) 附:下载AmbiBox安装包,关注公众号“科G栈”,回复AmbiBox即可得到下载链接。 ![](https://cf01.ickimg.com/bbsimages/202008/b25e7e4a599cbaaf53de0505f6e4d239.jpg)
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
gcrisis
关注
评论
(1)
登录后可评论,请
登录
或
注册
54878b1b1bdb26af
156
天前...
代码报错怎么办
0
回复
发布
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交