[arduino|macro](4)UNO外部控制3D8S光立方动画效果(视频)

Photobucket

本篇Blog,在《[marco|arduino](3)3D8S串口通讯协议的扩展(视频)》的基础上,介绍使用标准 Arduino UNO 作为“上位机”,控制 3D8S 动画的显示。因为 3D8S 沿用驱动和动画分离的设计,我个人也推荐通过串口通讯协议来控制光立方的动画显示。这样的优点,一方面上位机可以专注于动画的逻辑,不操心底层,代码的复杂程度简单很多,另一方面上位机可以接插更多的传感元件,实现动画的互动。

因为新版的串口通讯协议相对于旧版,只是修改了串口通讯的波特扩率以及一些指令,所以旧版的例程,一样可以适用于 UNO 对 3D8S 的控制。可以直接复制 《[marco|arduino]当 3D8光立方 遇见 Arduino》一文中的例程,将串口波特率设置,从 115200 改为 57600 以后直接使用。下载过程中,因为 UNO 和 3D8S主控芯片 的串口都串联在一起(不过主控芯片的串口是反向的),可能会导致下载失败,所以下载过程中建议先断开 3D8S 和 UNO 之间的数据连接。待下载完成以后再接上。

Photobucket

硬件部分的连接非常简单,将主板上P2接口,从左到右依次与 UNO 的 VCC, TX, RX, GND 相连就好,如上图所示。如果主控板使用了外接电源,那么VCC 这条线就不用连,避免电源的冲突。

结合扩展以后的协议,也另外写了 arduino 的动画控制例程。动画效果依然很简单,包括

  • 背景LED控制
  • 全局闪动
  • 全局呼吸
  • 三向面扫描
  • 三向块扫描
  • 三向随机流

例程以及类库,在https://github.com/downloads/aguegu/dot-matrix/Controller_A3D8_Basic.7z下载到,下载到 arduino 开发环境(ADE)的 libraries 目录下,就可以在 ADE 的菜单中调用到例程。相信其中动画的写法也有一定的参考意义。

如果只有底层的类库,想设计更加复杂的动画(比方说旋转)就有相对困难,这时我们就要再设计一个动画的逻辑库,期待接下来的更新吧。

在接下来的教程中,我会在 arduino 这端基本实现,所有在《[arduino|macro](1)3D8S 8x8x8 LED 光立方归来~ (视频)》中出现的动画,原先的动画都是在电脑上使用C#(这么高级的语言)实现,接下来转移到 C++ 就可以给arduino用了。届时也会以同样的方式开源分享。个人推荐的玩法就是这样,把 3D8S 作为一个显示模块,自己再进行扩展,实现更加丰富的功能。期待也早日看到更多朋友们借助 3D8S 实现的制作哦。

Photobucket
3D8S 不用像旧版那样制作引接线板引出串口,会用到的引脚基本都扩展出来,如何应用,也会陆续更新哦。而如果3D8S上插的是M8版本的小卡,基本只要用到P2扩展口就好。如果要直接在小卡(那也是块 Arduino 的板子嘛)上实现动画和LED驱动,才会用得到其它扩展口。

视频介绍:

3D8S 淘宝传送门(圣源电子)

要编写动画程序,某种程度上来说,是纯软件的事情(再次说明,LED控制驱动部分由主板实现,数据的发送由Basic类库完成)。3D8S 这样的设计,也是为了方便对硬件没概念,而有一定软件基础的朋友玩转光立方。arduino 本身并不是一个什么特别的语言,而是基于 C++ 的开源硬件框架。如果想学习 C/C++ ,向大家推荐姜学锋老师的《C++程序设计》,姜老师我在西工大C语言的老师,是我写程序的授业恩师。这本书才出没多久,是我看到关于C/C++最好的本土教材,强烈推荐。

关于aGuegu

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