我有以下问题。我在我的项目中使用WS2811二极管,Arduino Due和node.js。我想从连接到node.js服务器的设备流式传输视频,并将其显示在二极管阵列上。现在,我可以使用浏览器和摄像头从任何设备捕获视频,将视频的分辨率更改为我想要的(15x10),并创建包含所有二极管所有颜色(R,G,B)信息的字符串链。我将它从node.js服务器发送到arduino虽然是串口,波特率为115200.不幸的是发送过程太慢了。我希望它每秒刷新LED阵列至少10次。所以我想知道压缩这个字符串,我发送到arduino,当它到达那里解压缩它,并设置颜色为二极管。也许你们有类似项目的经验,并建议我做什么。
对于处理二极管,我使用的是adafruit_neopixel库。
提前致谢;)
答案 0 :(得分:0)
如果我是你,我会尝试在您的服务器上将视频转换为16位编码(如RGB565),甚至可能是8位。
即使在低分辨率下,我也不确定atmega328是否足够强大,可以将其转换回24位并将数据发送到显示器,但是TIAS。如果它不起作用,您可能需要考虑切换到BeagleBone或RPi。
答案 1 :(得分:0)
如果你有相似颜色的大区域,特别是如你已经按照上一个答案的建议将位深度降低到16或8位,那么运行长度编码压缩可能值得一试。
在几行代码中实现它很容易: https://en.wikipedia.org/wiki/Run-length_encoding