快乐智造营 | 12 电子像素画板
本帖最后由 怀若谷 于 2021-5-11 21:52 编辑本系列教程主要分享基于开源硬件和激光建模的创客作品的制作,每个作品涉及两三个电子模块的使用,让学习者能够轻松、扎实地掌握创客制作的知识和技能,并体会到智造的乐趣。
【目录】1.快乐智造营 | 01 贪吃的小鸡2.快乐智造营 | 02 抢答器3.快乐智造营 | 03 电子蜡烛4.快乐智造营 | 04 小夜灯5.快乐智造营 | 05 台灯6.快乐智造营 | 06 温度计
7.快乐智造营 | 07 警报器8.快乐智造营 | 08 盆栽浇水提示器9.快乐智造营 | 09 桌面温度计
10.快乐智造营 | 10 多功能测量仪
11.快乐智造营 | 11 遥控电风扇
12.快乐智造营 | 12 电子像素画板
v 12.1项目概述
图12-1
“电子像素画板”,是一个使用RGB LED灯来绘制简单像素画的创客作品。通过该项目的学习,可以掌握JoyStick摇杆和RGB LED点阵屏的使用。
功能介绍:通过JS摇杆来实现绘制点阵图的。往四个方向摇动摇杆可控制点阵屏中的光标分别向上下左右移动;按下JS摇杆,可在绘制、擦除及改变色彩等操作之间进行切换。按下左边的按钮,可清除屏幕上的图案。
https://v.qq.com/x/page/v324527bulx.html
演示视频
v 12.2材料准备
图12-2
本项目所需要的硬件材料,如图12-2所示,分别为:
(1)DFRduino Uno R31块
(2)IO扩展板 1块
(3)数字按钮模块1个
(4)8*8 RGB柔性点阵屏1块
(5)JoyStick摇杆模块1个
v 12.3 电子模块的使用12.3.18*8 RGB全彩LED柔性点阵屏
图12-3
8*8 RGB全彩LED柔性点阵屏,是由64个LED灯级联组成的,相当于一个64珠的WS2812 RGB灯带,排列顺序如图12-3所示。只需要一个引脚就可以控制所有LED的亮灭及颜色,还支持级联扩展,连接更多的点阵屏从而组成更大的点阵屏。
图12-4
在与Arduino Uno主控板连接时,可连接到除D0、D1外的任一引脚。连接示例如图12-4所示,GND、VCC、数据三个引脚要分别对应。
图12-5 在编程软件Mind+中,能控制WS2812灯带的积木有很多,需到【扩展】中的【显示器】下找到【WS2812 RGB灯】,然后选择添加才会在积木区出现。在使用时,需要先进行初始设置,示例程序如图12-6所示,该程序执行的结果是使接在引脚D13上的点阵屏上显示一个红色的“+”号。
图12-6
在实际使用中我们可以观察LED灯的灯号与坐标的关系,总结出一个转换公式,才能更方便地控制任意一个LED灯。(后面的项目程序中提供了一个参考公式)
12.3.2JoyStick摇杆模块
JoyStick摇杆采用PS2摇杆电位器制作,具有2路模拟输出(X和Y),1路按钮数字输出(Z),需要连接3个引脚。其属于输入设备,在编程软件中一般归于“传感器”模块,或者直接使用“引脚操作”来控制。
图12-7 在与Arduino Uno主控板连接时,X和Y两路数据线需连接到A0-A5中的两个引脚,Z可连接到除D0、D1外的任一引脚。连接示例如图12-7所示,GND、VCC、数据三个引脚要分别对应。
图12-8 在编程软件Mind+中,可通过“引脚操作”中的相关积木来获取JS摇杆模块的三轴输入数据值,其中X和Y可以参照电位器的使用方法,Z可以参照数字按钮模块的使用方法。为了了解处于不同的方向及状态下的输入值,可以使用串口打印方法来读取相应的值,示例程序如图12-8所示,该程序执行的结果是将接在引脚A1、A2、A3上的JS摇杆模块的三轴输入值显示出来。
图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-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-11
程序中使用的转换公式为:
当Y坐标值为偶数时,灯号=Y*8+X
当Y坐标值为奇数时,灯号=Y*8+7-X
坐标值以第1个灯的坐标为(0,0)计算
12.4.3 设计、切割外型
使用制图软件进行外型的设计,设计图如图12-12所示。
图12-12
图纸设计好后,使用激光切割机进行切割。切割好的木板件如图12-13所示。
图12-13
12.4.4 装配调试
将切割好的木板和硬件进行组装,步骤如图12-14所示。
图12-14
(1)组装好底盒的5块木板
(2)将主控板固定在底板上
(3)固定数字按钮模块和JS摇杆模块
(4)固定RGB点阵屏
(5)安装操控台板
(6)安装显示屏面板
(7)装上顶部横条
v 12.5 拓展学习
本项目只要改变程序即刻可以变成其他的作品,本人以前就基于相同的材料制作过一个项目——《图像记忆训练器》,可以点击下面的链接进行观摩学习。
玩物尚志 | 图像记忆训练器
你还可以把它当成一个迷你游戏机,为它编写一些小游戏,比如“贪吃蛇”等。由于Arduino Uno不支持多线程,编写程序时更考验技巧。想实现更复杂的功能的话,建议将主控板换成支持多线程的主控板。
创客和学科融合,赞一个 这比上一个高级多了,赞一个!
页:
[1]