×

像DJ一样控制 NeoPixels

消耗积分:0 | 格式:zip | 大小:0.06 MB | 2022-12-28

张燕

分享资料个

描述

为了控制我们的 LED,我们将使用 Art-Net 协议,该协议通过使用 UDP 的网络传输DMX 闪电协议。

非常快速并且与大多数专业闪电系统兼容。

准备你的 ESP8266

您需要将 ESP8266 支持添加到您的 Arduino IDE,如果您之前没有这样做,请按照以下说明操作:https ://github.com/esp8266/Arduino#installing-with-boards-manager

http://arduino.esp8266.com/stable/package_esp8266com_index.json

上传固件的方式有很多种,我用的是Examples->ESP8266WebServer->WebUpdate sketch

不要忘记使用您的 SSID / PASSWORD 更改 STASSID 和 STAPSK

#define STASSID "your-ssid"
#define STAPSK  "your-password"

上传ESP8266_ArtNetNode

现在我们可以将固件刷入我们的 ESP8266。

 
pYYBAGOrhsGAH4qRAAA5PW_qh_8818.png
 

您的 ESP8266 将重启多次。

设置 Wi-Fi

您的 ESP8266 现在处于热点模式,在您的 wifi 网络中搜索espArtNode_00XXX。

WiFi密码为:byMtongnz2017

  • 转到: http: //2.0.0.1并单击WiFi并设置 SSID/PASSWORD。
  • 点击重启
 
poYBAGOrhsSAZoGxAACsRim9no0898.png
无线网络设置
 

 

查找espArtNode的IP地址

不幸的是,espArtNetNode 没有使用mdns ,你必须自己找到 ip 地址。

你可以用fing (Android版本更容易使用)或ArtNet-Lite (这个应用程序可以检测ArtNet设备)找到它。

Jinx 也有扫描功能,但我没能在 espArtNetNode 上使用它。

设置 NeoPixels

最后要做的事情:设置 PORT A 来管理 NeoPixel LED。

端口 A 是引脚 TX

  • 点击端口 A
  • 端口类型:LED 像素 - WS2812
  • 保存更改
  • 更改像素数
 
pYYBAGOrhsWAYf_eAAB4TmKW1GY792.png
像素数只会在您保存更改后出现!
 

设置矩阵选项

我们就快到了 !我们需要在 Jinx 中设置 3 个东西:

  • 矩阵选项:此选项在 Jinx 中设置您的虚拟矩阵。
  • 输出设备:连接到 Jinx 的设备。
  • 输出贴片:告诉 Jinx LED 的顺序。

如果您还没有这样做,请将 LED 灯条插入 ESP8266。本教程末尾提供了原理图。

只要相应地降低亮度,您就可以使用 USB 为很多 LED 供电,如果亮度太高,LED 会表现得很奇怪,并且可能会损坏!

  • 转到设置 --> 矩阵选项
  • 设置宽度/高度

如果您使用的不是矩阵,而是LED 灯条,请将宽度设置为灯条的长度,将高度设置为 4 (最小值)。

 
poYBAGOrhseANkLxAAA4A1SSm-0301.png
20x5 矩阵的设置
 

 

设置输出设备

  • 转到设置 --> 输出设备
  • 点击添加
  • 选择 Art-Net(默认)
  • 取消选择广播(广播真的很慢)
  • 将 IP 地址更改为您的 ESP8266 地址
 
pYYBAGOrhsqACbjPAABCHKme8a8934.png
 

 

设置输出补丁

  • 转到设置 --> 输出补丁
  • 选择您的设备
  • 点击快速补丁
  • 选择矩阵的大小
  • 在 Patch 模式下,选择矩阵的设置方式
  • 在像素顺序中,选择 GRB
  • 检查 First Channel 是否设置为 0
 
pYYBAGOrhsyAOSAZAAAuqEz8rs8015.png
 

测试你的 LED

您可能第一次无法正确设置您的 LED,如果某些东西不能正常工作,只需清除补丁并重试。

如果您不确定您的电源是否足以为所有矩阵供电,请降低主亮度。

 
poYBAGOrhs-AVpMvAAActqoHasY874.png
 
  • 转到设置/开始输出
  • Channel 1中,选择Simple Color ,检查所有LED 是否亮起
  • 单击编辑检查红色/绿色/蓝色是否正确
 
pYYBAGOrhtGAS4uaAAAP-AUxgLI116.png
 
  • 在通道 1 中,选择雷达/扫描线
  • 检查您的矩阵是否正确遵循线条。
 
poYBAGOrhtOAPhP-AAA2ZjUvRvg735.png
 

我不会详细解释 Jinx 的工作原理,请自行尝试选项!

关于我的 LED 的注意事项

您可以在 Thingiverse 中找到我的 led thingies 的 3D 打印模型:

它是由 Olivier Sarrailh 制作的。

我不建议用 LED 灯条做一个 LED 矩阵,因为很难对齐它们,使用灵活的预制矩阵(如果你想把它做成圆形)

我设法通过 USB 为我的 20x5 矩阵供电,但您需要检查您是否从未在全亮度下使用它,因为这可能会损坏您的 LED。

 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'像DJ一样控制 NeoPixels',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);