Digispark ATtiny85配合Prismatik软件DIY屏幕流光溢彩效果(见坑填坑)

Digispark ATtiny85配合Prismatik软件DIY屏幕流光溢彩效果

  • 一、硬件准备
    • 1.Digispark ATtiny85
    • 2.CH340 USB转TTL
    • 3.WS2812灯带
  • 二、开发环境与软件
    • 1.Arduino IDE安装
    • 2.添加开发板和驱动
    • 3.安装所需的库
    • 4.重刷ATtiny85的BootLoader
  • 三、程序编写
    • 1.ATtiny85点亮WS2812
    • 2.ATtiny85 SoftSerial
    • 3.Prismatik配置与数据结构
    • 4.ATtiny85通信Prismatik
  • 四、DIY成品
    • 1.硬件接连方法
    • 2.效果展示视频
  • 五、结语

之前偶然间看到了飞利浦电视的流光溢彩效果,淘宝看了一下,最便宜都要一百多一套,懂单片机的我当然不会花这个冤枉钱。

在CSDN搜索了一下,果然有好多大神用Arduino NANO DIY电脑显示器的流光溢彩效果,可是Arduino NANO十几块钱的价格对于我来说也很贵。

手边只有一个Digispark ATtiny85,怎么办正都是在Arduino IDE里面搞开发,为了省钱,当然是要用Digispark ATtiny85 DIY流光溢彩效果啦。

为了省下几块钱的预算,我们搞起。

一、硬件准备

使用的硬件包括:Digispark ATtiny85,CH340USB转TTL,WS2812灯带
调试工具包括:另一个CH340USB转TTL

1.Digispark ATtiny85

ATtiny85是个非常好玩的芯片,体积小巧功能强悍,最开始是用来玩BadUSB的,后来发现功能很强悍,Arduino里面关于ATtiny85的例子也很多,正好有WS2812的例子,就拿过来做流光溢彩效果。

Digispark ATtiny85在淘宝上非常便宜,一般价格都在6-8元还包邮,自行购买即可。我买的是左上角的那种,可以直接插电脑,不再需要USB线连接,做BadUSB拿出去装B携带方便。

ATtiny85官方文档放在了最后的网盘里。

Digispark ATtiny85配合Prismatik软件DIY屏幕流光溢彩效果(见坑填坑)

3.WS2812灯带

WS2812灯带有30、60、144株/每米几种规格,价格分别为12、18、58元/米左右,推荐60株/每米的规格,既便宜,做出来效果的细腻程度也还可以。

开发时用的是下面这个8灯珠的板子,价格大约2.8元/个,1米需要17个,换算后大概50元/米,136株/米,和买灯带价格差不多,并且有PCB板,可能更耐操一点。

关于WS2812的文档,放在了最后的网盘里。

Digispark ATtiny85配合Prismatik软件DIY屏幕流光溢彩效果(见坑填坑)

二、开发环境与软件

1.Arduino IDE安装

直接从Arduino中文社区下载安装就行,文章最后的网盘里也有。过程不多赘述,CSDN上有很多教程。
链接:https://www.arduino.cn/

2.添加开发板和驱动

可以参考下面的文章,在Arduino中添加ATtiny85开发板和安装驱动。
链接:https://blog.csdn.net/wwwwyccom/article/details/95652417

Arduino添加Digistump AVR Boards开发板。点击Arduino-文件-首选项-设置-附加开发板管理器网址-点击查看非官方开发板支持网址列表。点进去过后我们下拉查看,会看到下面这个,我就是用的这个网址。

Digispark ATtiny85配合Prismatik软件DIY屏幕流光溢彩效果(见坑填坑)
如果是IP地址解析出错,那么可以参考下面修改Hosts的的解决方法。
链接:https://blog.csdn.net/Bily_on/article/details/105705332

添加好开发板后还需要安装驱动程序,我的文件位置是在C:UsersAdministratorAppDataLocalArduino15packagesdigistumptoolsmicronucleus2.0a4DPinst64.exe
我也把单独的驱动文件Digistump.Drivers.zip放在了文章最后的网盘里。

3.安装所需的库

Arduino中开发板添加后,会显示Digistump的一些库,我们需要用到的有以下这些,添加开发板后就有了,不用额外安装库。
#include <WS2811.h> //用于控制WS2812灯带
#include <SoftSerial.h> //用于模拟串口通信
#include <TinyPinChange.h> //用于定义引脚

4.重刷ATtiny85的BootLoader

这一步不是必须的,要谨慎进行!!!
ATtiny85的出厂BootLoader可用空间稍微小一点,有需要的话可以刷最新的BootLoader,当然刷了BootLoader后可用空间变大,还需要在Arduino的开发板文件里也修改一下。
以下是GitHub链接,文章最后的网盘里我也放了一份。
链接:https://github.com/micronucleus/micronucleus
之前从网友那里了解到的,所以我去刷了新的,新BootLoader可用空间 6522 Byte(我的ATtiny85淘宝刚买来时可用空间 6012 Byte),刷写速度变快,而且修复了时钟校正、HUB/USB3.0下不识别、Win10驱动等问题。
但是!!!2.0以后的版本不如1.0版本健壮,上电时经常会把自己抹掉。。。所以不建议随便刷BootLoader!!!!!!

三、程序编写

1.ATtiny85点亮WS2812

Arduino点击文件–示例–WS2811–digispark,另存为一个文件。
示例原代码如下:

然后我们点击验证,发现报错如下。

Digispark ATtiny85配合Prismatik软件DIY屏幕流光溢彩效果(见坑填坑)

2.ATtiny85 SoftSerial

同样,Digistump开发板下自带的SoftSerial示例程序如下,作用是在loop循环中,发送接收到的数据。但是实测下来,软件模拟的串口,波特率太高的话丢数据严重,可能9600波特率是比较稳定的。(这个涉及到晶振频率、波特率和丢包率之间的问题,感兴趣的同学可以深入学习。)

3.Prismatik配置与数据结构

Prismatik软件的GitHub和下载地址如下,适用Windows,Ubuntu,OS,Android多种系统,Windows版本的安装包,文章最后的网盘里有一份。
GitHub:https://github.com/psieg/Lightpack
下载地址:https://lightpack.tv/pages/downloads

之前看的最多的是用Arduino NANO做流光溢彩效果,有很多大神写的很详细,我主要参考的是下面这位大神的,包括所需的Prismatik最开始也是从这篇文章里得到的下载地址。
链接:https://blog.csdn.net/u012963827/article/details/89640175

但是,我用的是ATtiny85芯片+WS2811.h库,上面文章用的是Arduino NANO+FastLED.h库,所以只能理解代码后移植。

为了详细了解数据结构,做了如下工作。
先把CH340插到电脑上,找到对应的COM口,设置Prismatik。将CH340的TX脚接到另一个CH340的RX脚,并打开串口调试助手接收Prismatik发送出去的数据,在EXCEL整理数据结构如下。

Prismatik数据结构
可以看到,开头是固定的Ada指令。
随后的灯泡个数信息和校验码,我参考了上面提到的Arduino NANO的代码,其中一段如下:

来源:djddb_believe

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年5月23日
下一篇 2020年5月23日

相关推荐