如何用Arduino实现动画效果(1) —点阵模块

By 2021年1月11日 教程&资讯, 新奇设计

今天马克笔设计留学的程老师继续为大家带来关于Arduino的知识,很多同学喜欢做动态的交互效果,那我们如何通过Arduino来实现动画效果呢?这次就给大家讲解几个点阵模块传感器。这次讲解的两种模块都是实现像素画风格动画的,下次程老师会给大家讲解另外几种LCD屏幕模块。

1.电子积木8*8 LED 点阵模块

点阵模块尺寸为32*32*14mm,可以看到是圆形点阵呈8行x8列分布在整个传感器上。体积不大,能呈现的动画效果比较局限,精细化的动画不适合用此模块。

接下来说一下点阵模块的连线规则,我们可以看到它一共有5个可以插线的地方,分别是VCC,GND,DIN,CS,CLK。我们都知道VCC是接正极接口,GND接负极接口,剩下的三个我们应分别去接除2-13之间的任意三个数字口,这三个数字口具体我们自己定义就可以了。在程序上我们一般使用的是“LedControl.h”库,我们在Github上去下载这个第三方库并安装上就可以上传程序了。

这个点阵模块除了8*8这个尺寸之外,还有其他尺寸,比如8*16,16*16,8*32等等。下面图中的这个点阵模块就是8*32规格的,它的连线规则跟8*8是一样的,只是在编程图案上略有不同,很多学生喜欢用它来实现时钟或是滚动的字幕效果。

最后我来讲解一下,点阵模块上的动画效果是如何实现的。我们都知道,动画是由一帧一帧图案组成的,首先给大家一个网站:http://dot2pic.com/,我们所有的点阵图案都是在这个网站上做出来的,这个网站就是由用户自己创作想要的像素画图案,我们可以看到界面上有两个滑块,由我们选择列数和行数,下面我们就以8*8规格为例,把滑块滑到“8”的位置,接着在选择项中选择“8 pixels per byte, horizontal”,点击“create”即可。

接着看到的这个界面就是我们可以去创造图案的,左上角那个8*8的空间,我们可以把想要的图案点击上去,如果画完一帧,想要再继续创作另一帧,我们点击“clear all”即可。这里面也可以选择不同的颜色,由于我们的这个点阵模块是单色的,所以这里的颜色模式是无效的。

2.电子积木 WS2812 5050 全彩LED模块8*8点阵

提到“WS 2812B”,同学们应该不陌生,上次我已经给大家介绍过了WS 2812B灯带,这个8*8点阵模块上面的灯珠跟灯带上的灯珠是一模一样的,也是全彩RGB的,但是上面介绍过的8*8 LED 点阵模块是单色的,所以在应用范围上,全彩的更广一些。大家在做模型的时候,可以给这个屏套上一个磨砂材质的壳子,单独看屏幕上动画效果有时候光太强,不太容易看出来,磨砂壳子套上之后就比较容易看出动画的形态。


连线上也是非常简单的,就只有三根线,跟上次讲过的WS 2812B的连线规则是一样的,红色连接5V,白色连接GND,绿色连接任意数字口。编程语言使用的第三方库也是“Adafruit Neopixel”。这里说一个题外话,大家在网上看到的很多Arduino连线图右下角都会有一个“Fritzing”的标示,就像下面这张图上显示的一样,这里我说一下,Fritzing是个电子设计自动化软件。它支持设计师,艺术家,研究人员和爱好者参加从物理原型到进一步实际的产品。还支持用户记录其Arduino和其他电子为基础的原型,与他人分享。

这种板子除了8*8这个尺寸之外,也还有其他尺寸,比如8*16,16*16,8*32等等。这种板子还分为柔性和硬的两种,柔性的就是可以弯折。在youtube上我们可以找到很多关于这个板子的实验,最常见的就是用声音传感器作为输入端,点阵板子作为输出端,实现的效果就是随着声音传感器能接收到的音乐,点阵板子上可以实时显示高低的类似“音柱”的灯光效果,跟随音乐在摆动音柱。这个板子体积较大,各个灯珠之间的距离比较分散。

好了,今天就介绍到这里吧,感兴趣的同学可以在淘宝上买这两种板子回来自己做做动画试一试,看看有什么意外的发现,下次我会继续为大家讲解其他可以显示精细动画的传感器,请大家持续关注啦。

图片全部来源于网络

往期推荐

可以用Arduino实现的几种常见灯光效果

Arduino基础线路怎么连接

如何为Arduino IDE安装添加库

文章作者:程雅秋
英国皇家艺术学院产品设计硕士
擅长产品服务系统设计、用户体验设计和硬件Arduino交互

任何关于院校和作品集的问题
欢迎随时沟通
知无不言,言无不尽

Leave a Reply