[arduino|macro](5)分享UNO外部控制3D8S的动画示例(视频)

正如视频所见,动画源,就是光立方前方的那片 arduino UNO。连接方法如前文所示。之前提到,要实现更高级的动画,就需要加入一个中间逻辑层的辅助。而我所用的这个中间层,就是自己写的 dot-matrix 类。视频沿用了,3D8S的前身,Matrix8 动画演示的背景音乐,萧亚轩《幸福的地图(舞曲版)》。相关的视频,可以在《视频专辑:LED 光立方 3D8 / Matrix8 制作及使用演示》找到。从一开始做4x4x4,到8x8x8,到成品板3D8,再到现在新版的3D8S。相信可以看出是如何一步步走来,慢慢鸟枪换炮,一点点进步。其中Matrix4的视频上传日期是2011-03-06,而Matrix8第1集效果视频是在2011-03-27上传。算下来,玩这些已经一年多时间。

现在把之前比较经典的的几个动画,在 arduino 平台上重新编码实现。同样是基于串口通讯协议,因为底层的事情,都交给主板上集成通讯协议的小卡实现。所以在“上位机”(在这集介绍里,上位机就是 Arduino UNO)里,只要关注动画的逻辑就好。

而借助于3D8S的扩展协议,同样的动画效果,可以在三种坐标系内播放,而且我在中间层还添加了“反向”(字节反转)及“全反”(字节取反)的操作,就使得动画的表现形式更加丰富,而并不需要为了特意的显示方向,辛苦地取模。而且,既然显示缓存的实质,就是一个数组,那么所有动画的变化,就是冲着数组去的。可以根据数组的特性,实现一些很有意思的效果和巧妙的算法,会很有意思。如果查看代码的话,可以发现,其实除了极个别用点取模,比方说 Arrow 和 520 效果,其它都是通过函数变化来实现。视频中几个动画的代码编译完成后,也就是10k不到的空间,是不是很省呀?或许可以说,我们实现的是矢量动画,而不是位图动画。

520的效果比较恶俗一些,不过似乎蛮多想用光立方表白的童鞋都蛮希望实现这个效果,不过不知道大家做出来的具体效果如何呀。现在我把我视频中所有动画的代码开放出来,包括怎么旋转之类。希望可以帮助大家自己去实现动画。代码下载以后的使用方法,和在上篇Blog中介绍的一样,解压至 (ADE)/libraries 目录下即可调用。

就现在看来,大多数的动画逻辑代码,我都使用 C,C#,C++,三种语言实现。纯C的话,最体现算法本质,但是变量管理很混乱。C#最高级,又是在PC这端实现,没什么资源限制,实现动画最简单。C++ 的话,现在还在玩咯,不过要实现更复杂的动画,比方说雨滴和烟火效果,还需要建立更加抽象的类,期待更新吧。

3D8S 已经到手的朋友,拿出你的UNO接上,然后把代码烧进去试试吧~

类库及示例下载链接:https://github.com/downloads/aguegu/dot-matrix/Controller_A3D8_Advanced.7z

3D8S 淘宝传送门:http://syyyd.taobao.com/search.htm?scid=506618425

3D8S 论坛讨论区:http://bbs.syyyd.com/forum.php?mod=forumdisplay&fid=111 (里面似乎还有原理图哦)

3D8S 技术交流Q群:165068863,潜水末位淘汰制,潜水员自重。

视频中的 Arduino UNO,由 圣源电子制作论坛淘宝店 提供

Creative Commons License
aGuegu’s dot-matrix library hosting on GitHub is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.

关于aGuegu

向着更高的逼格
此条目发表在3D8 光立方, 成品分类目录,贴了, , , , , , , , , 标签。将固定链接加入收藏夹。