×

Pix a Sketch LED矩阵上的虚拟蚀刻草图

消耗积分:0 | 格式:zip | 大小:0.03 MB | 2022-11-10

张秀兰

分享资料个

描述

概述

该项目是作为对更简单的玩具 Etch-a-Sketch 的回归而创建的,但不是移动一个微小的触控笔将铝颗粒从玻璃表面上擦掉,而是将像素绘制到 RGB 矩阵上。

 

我试图通过添加通过摇动设备来清除屏幕的功能来保持设计的真实性。

一个示范

设计和制造外壳

我强调要在实际的 Etch-a-Sketch 玩具之后对 Pix-a-Sketch 进行建模,包括“屏幕”的大小、旋钮和位置。我首先使用 Fusion 360 对每个组件进行建模,例如矩阵和旋转编码器。然后将它们放置在虚拟胶合板上,并在其周围建造一个塑料框架。每一块都用 PLA 进行 3D 打印,然后用 CNC 路由器切割底部木板。

下面是最终迭代的渲染。

您现在可能已经听过一千遍了,所以只需在此处查看有关如何设置 Raspberry Pi 的指南

 

将其连接到 WiFi 路由器后,按照以下说明安装 rgb-matrix 库:

赶紧跑

curl 
sudo bash rgb-matrix.sh

然后按 y 继续并选择选项 2 以选择 Adafruit Matrix HAT。

然后选择数字 2 以释放针脚 18,以便声音仍然可以通过音频插孔输出。

要对其进行测试,请进入 examples-api-use 目录并运行

sudo ./demo -D0 --led-rows=64 --led-cols=64 --hardware-mapping=adafruit-hat

您应该看到演示正在运行。只需按 ctrl-c 即可退出。

您还需要安装 mpu6050 库

pip3 install mpu6050-raspberrypi

然后将用户 root 添加到 i2c 和 gpio 组。

读取编码器数据

因为 RGB 矩阵占用了这么多 GPIO 引脚,所以为两个旋转编码器使用四个额外的 GPIO 引脚是不可能的,所以我不得不有点创意。

 

为了解决这个问题,我使用了一个 Arduino Nano 作为 I2C 从设备,它能够计算每个编码器的旋转次数,然后在请求时将该信息发送到主机设备。在每次请求编码器数据时,总旋转数设置回零,这提供相对位置数据而不是绝对定位。

显示图像

Python 脚本首先初始化矩阵,包括大小、面板数量和它使用的引脚等信息。然后,两个 I2C 设备连同硬件按钮开关一起被初始化和复位。然后重复调用update()函数,类似于Arduino的loop()函数。它读入新的编码器数据,找到新位置应该在哪里,然后将光标移动到那里。

擦除和重置

如果设备检测到它正在晃动,则会选择 5 个随机点亮的像素,然后将其关闭。要擦除整个矩阵并将光标返回到其原点 (0, 0),可以按住硬件按钮两秒钟。

 
 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !