5332浏览
查看: 5332|回复: 2

[进阶] 快乐智造营 | 12 电子像素画板

[复制链接]
本帖最后由 怀若谷 于 2021-5-11 21:52 编辑

本系列教程主要分享基于开源硬件和激光建模的创客作品的制作,每个作品涉及两三个电子模块的使用,让学习者能够轻松、扎实地掌握创客制作的知识和技能,并体会到智造的乐趣。
【目录】
5.快乐智造营 | 05 台灯9.快乐智造营 | 09 桌面温度计
10.快乐智造营 | 10 多功能测量仪
11.快乐智造营 | 11 遥控电风扇
12.快乐智造营 | 12 电子像素画板


v 12.1项目概述
快乐智造营 | 12 电子像素画板图8

图12-1

    “电子像素画板”,是一个使用RGB LED灯来绘制简单像素画的创客作品。通过该项目的学习,可以掌握JoyStick摇杆和RGB LED点阵屏的使用。

       功能介绍:通过JS摇杆来实现绘制点阵图的。往四个方向摇动摇杆可控制点阵屏中的光标分别向上下左右移动;按下JS摇杆,可在绘制、擦除及改变色彩等操作之间进行切换。按下左边的按钮,可清除屏幕上的图案。


演示视频


v 12.2材料准备
快乐智造营 | 12 电子像素画板图3

图12-2

本项目所需要的硬件材料,如图12-2所示,分别为:

(1)DFRduino Uno R3  1块

(2)IO扩展板   1块

(3)数字按钮模块  1个

(4)8*8 RGB柔性点阵屏  1块

(5)JoyStick摇杆模块  1个


v 12.3 电子模块的使用12.3.1  8*8 RGB全彩LED柔性点阵屏

快乐智造营 | 12 电子像素画板图1
图12-3

      8*8 RGB全彩LED柔性点阵屏,是由64个LED灯级联组成的,相当于一个64珠的WS2812 RGB灯带,排列顺序如图12-3所示。只需要一个引脚就可以控制所有LED的亮灭及颜色,还支持级联扩展,连接更多的点阵屏从而组成更大的点阵屏。
快乐智造营 | 12 电子像素画板图2

图12-4

       在与Arduino Uno主控板连接时,可连接到除D0、D1外的任一引脚。连接示例如图12-4所示,GND、VCC、数据三个引脚要分别对应。

快乐智造营 | 12 电子像素画板图4
图12-5
       在编程软件Mind+中,能控制WS2812灯带的积木有很多,需到【扩展】中的【显示器】下找到【WS2812 RGB灯】,然后选择添加才会在积木区出现。在使用时,需要先进行初始设置,示例程序如图12-6所示,该程序执行的结果是使接在引脚D13上的点阵屏上显示一个红色的“+”号。

快乐智造营 | 12 电子像素画板图6
图12-6

       在实际使用中我们可以观察LED灯的灯号与坐标的关系,总结出一个转换公式,才能更方便地控制任意一个LED灯。(后面的项目程序中提供了一个参考公式)

12.3.2  JoyStick摇杆模块
       JoyStick摇杆采用PS2摇杆电位器制作,具有2路模拟输出(X和Y),1路按钮数字输出(Z),需要连接3个引脚。其属于输入设备,在编程软件中一般归于“传感器”模块,或者直接使用“引脚操作”来控制。

快乐智造营 | 12 电子像素画板图5

图12-7
       在与Arduino Uno主控板连接时,X和Y两路数据线需连接到A0-A5中的两个引脚,Z可连接到除D0、D1外的任一引脚。连接示例如图12-7所示,GND、VCC、数据三个引脚要分别对应。

快乐智造营 | 12 电子像素画板图10

图12-8
       在编程软件Mind+中,可通过“引脚操作”中的相关积木来获取JS摇杆模块的三轴输入数据值,其中X和Y可以参照电位器的使用方法,Z可以参照数字按钮模块的使用方法。为了了解处于不同的方向及状态下的输入值,可以使用串口打印方法来读取相应的值,示例程序如图12-8所示,该程序执行的结果是将接在引脚A1、A2、A3上的JS摇杆模块的三轴输入值显示出来。

快乐智造营 | 12 电子像素画板图7

图12-9

       分别摇动摇杆向四个方向运动,再往下按下摇杆,查看数值的变化,如图12-9所示。本项目制作所用的JS摇杆模块的属性为:X(左:0,中:500,右:1022),Y(上:1023,中:500,下:0),Z(松开:0,按下:1)。

v 12.4 项目制作


12.4.1 硬件搭建
       将数字按钮模块连接到扩展板的D3引脚、点阵屏连接到D2引脚、JS摇杆模块连接到A1-A2-A3引脚,如图12-10所示。

快乐智造营 | 12 电子像素画板图15

图12-10

12.4.2 编写程序
       编程思路:(1)按下数字按钮将所有LED灯关闭,达到清除屏幕的作用;(2)建立变量“X坐标”“Y坐标”来记录LED灯的坐标值,并根据转换公式将坐标值转换为相应的灯号;(3)通过JS摇杆模块X、Y的输入值来判断摇杆的运动方向,从而改变变量“X坐标”和“Y坐标”的值;(4)当JS摇杆模块Z输入值等于1时,说明按下了摇杆,建立一个变量“颜色编号”来记录按下的次数,根据“颜色编号”的值来选择执行不同的指令:显示某种色彩或者关闭该LED灯。本项目中,设置了5种不同的色彩(全黑即为关闭,相当于擦除),我们可以根据需要增加或者改变色彩。

       根据编程思路,编写出程序,示例程序如图12-11所示。编好程序后,上传到设备,进行调试。

快乐智造营 | 12 电子像素画板图9
快乐智造营 | 12 电子像素画板图11
快乐智造营 | 12 电子像素画板图13

图12-11

程序中使用的转换公式为:

当Y坐标值为偶数时,灯号=Y*8+X

当Y坐标值为奇数时,灯号=Y*8+7-X

坐标值以第1个灯的坐标为(0,0)计算


12.4.3 设计、切割外型
      使用制图软件进行外型的设计,设计图如图12-12所示。

快乐智造营 | 12 电子像素画板图12

图12-12

     图纸设计好后,使用激光切割机进行切割。切割好的木板件如图12-13所示。

快乐智造营 | 12 电子像素画板图16

图12-13

12.4.4 装配调试
       将切割好的木板和硬件进行组装,步骤如图12-14所示。

快乐智造营 | 12 电子像素画板图14

图12-14

(1)组装好底盒的5块木板

(2)将主控板固定在底板上

(3)固定数字按钮模块和JS摇杆模块

(4)固定RGB点阵屏

(5)安装操控台板

(6)安装显示屏面板

(7)装上顶部横条


v 12.5 拓展学习
       本项目只要改变程序即刻可以变成其他的作品,本人以前就基于相同的材料制作过一个项目——《图像记忆训练器》,可以点击下面的链接进行观摩学习。

        玩物尚志 | 图像记忆训练器

       你还可以把它当成一个迷你游戏机,为它编写一些小游戏,比如“贪吃蛇”等。由于Arduino Uno不支持多线程,编写程序时更考验技巧。想实现更复杂的功能的话,建议将主控板换成支持多线程的主控板。








rzegkly  版主

发表于 2021-5-12 08:20:12

创客和学科融合,赞一个
回复

使用道具 举报

 初级技匠

发表于 2022-4-14 12:17:08

这比上一个高级多了,赞一个!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail