树莓派滚动文本面罩

对于我们大多数人来说,面部遮盖物也阻碍了我们进行口头交流的能力。我已经看到很多人说话时放下口罩,但不幸的是,这削弱了他们使用口罩的能力。我们如何在保持鼻子和嘴巴遮盖的同时清晰地表达自己?

在本文中,我们将向您展示如何使用树莓派和 8x8 灵活的 NeoPixel 矩阵构建滚动文本面罩。对于该项目,我们还将针对 16 像素和 32 像素宽的矩阵提供 2 种版本。布面罩应具有半透明的顶层,并完全覆盖您的嘴和鼻子。请在清洗面罩之前取下所有电子设备。

树莓派滚动文本面罩如何工作?

戴上口罩,遮住您的鼻子和嘴,打开电源,导航到本地网页的前端,然后输入文本以滚动您的面罩。

您需要什么

  • 树莓派 3

  • 电源 / 键盘 / 鼠标 / 显示器 / HDMI 电缆 (适用于树莓派)

  • 具有可单独寻址的 LED 的 8x8 柔性 NeoPixel 矩阵 或连接 2 个灵活的 8x8 NeoPixels 创建 16x8 矩阵 或 32x8 Flexible NeoPixel Matrix 用于面罩版本

  • 1N4001 二极管

  • 带热缩管的焊接套件

  • 助焊剂

  • 剪线钳 / 剥线钳

  • 迷你热风枪或吹风机

  • 小面包板

  • 跨接线组 (M 到 F , M 到 M 和 F 到 F)

  • 半透明的布面罩前层

  • 小型移动电源充电器

  • 带鳄鱼夹的测试引线组

  • 迷你或微型 USB 电缆

  • 可选:面罩支架 - 轻轻将口罩稍微远离您的嘴,以帮助呼吸。

  • 可选:带有墙插的 5V 电源

第 1 部分:设置 NeoPixel 矩阵

在此步骤中,我们将执行基本的接线并运行 Adafruit 的 NeoPixel Uberguide 提供的示例代码。 NeoPixel 矩阵需要单独的 5 伏电源。为了使该项目可移动,我正在使用 5V 移动电源充电器。

1 通过柔性 NeoPixel 矩阵连接 GND 电源输入至面包板接地线。(M 对 M 线)

2 将 NeoPixel 矩阵的第二个 GND (DIN 旁边的连接) 连接到面包板上的接地线。 NeoPixel Matrix 实际上需要连接 2 根 GND 线,一根在 5V 红线旁边,另一根 GND 线在 DIN 旁边。请将两者都连接到 GND 。

3 将树莓派的任何 GND 引脚连接到面包板上的接地线。

4 将 5V 电源的地线连接到面包板的地线。

5 将正极端子 (电源输入) 从 NeoPixel 矩阵连接到二极管阴极 (带有条纹的一面)

6 将电源的正极端子连接到二极管阳极 (无条纹的一面)。

7 将 GPIO 21 连接到 NeoPixel 矩阵的 DIN (数据输入)。 (M 对 F 线)

为了使用 5V 移动电源充电器为 NeoPixel 矩阵供电,我使用了一根旧的 microUSB 电缆,并切断了 microUSB 的一端 (保留 USB),剥去了电线,露出了红色 (电源) 和黑色 (接地) 线。

如果您还没有准备好切断 USB 线,请使用 [传统 5V 电源] 为 NeoPixel 供电。(https://amzn.to/3kQV8uZ)

对于此步骤中的接线,我使用带鳄鱼夹的测试线将剥开的 USB 电缆连接到 NeoPixel 矩阵上的电源输入。我最后将 USB 插入移动电源充电器。

完成接线后,让我们使用 Adafruit 的测试代码测试矩阵。

1 引导您的树莓派。如果您还没有 microSD 卡,请参阅我们的文章如何首次设置树莓派或如何进行无头树莓派安装。

2 打开终端。可以按 CTRL + T

3 安装必需的依赖项。

 sudo pip3 install rpi_ws281x adafruit python-neopixel 
 sudo python3 -m pip install --force-reinstall adafruit-blinka 

4 克隆此存储库以获取源代码:

git clone https://github.com/carolinedunn/scrollingTextMask 

5 导航到 scrollingTextMask 文件夹。

cd scrollingTextMask 

6 运行测试代码 fillMatrix.py

 sudo  python3 fillMatrix.py

如果您的 NeoPixel 矩阵亮起,表示红色,绿色,蓝色,彩虹,恭喜,您的 NeoPixel 矩阵正在工作,可以继续进行下一步。否则,请返回并排除连接故障。

故障排除技巧:

如果树莓派上的 GPIO 引脚 21 不起作用,则可以将 GPIO 输出更改为 10,12 或 18。使用 Geany 或 Thonny (在文件管理器中单击鼠标右键) 从 scrollingTextMask 文件夹中打开 fillMatrix.py,并更新 GPIO 输出。不要按 Geany 或 Thonny 的 Run 按钮。请记住,如果您选择更改 ** fillMatrix.py ** 中的 GPIO 输出,则在学习本教程时,您将需要对其他文件进行相同的更改。

7 按 Ctrl-C 停止脚本。

在此步骤的最后,您应该有一个基本的 NeoPixel 矩阵可以完全点亮。

第 2 部分:测试滚动文本

在本节中,我们将测试 NeoPixel 矩阵的滚动文本功能。

1 如果您从” 第 1 部分” 打开了” 终端”,但仍在”scrollingTextMask” 目录中,请运行”testMsg.py”。

 sudo  python3 testMsg.py 

您应该在矩阵上滚动看到” 欢迎使用 Tom 的硬件” 文字。

2 ** 按 Ctrl-X ** 停止 python 代码。

有关 testMsg.py 的代码注释

  • 如果您将 fillMatrix.py 中的 GPIO 从 21 更改了,则还需要进行相应的更改。
  • 滚动文本设置为” 欢迎使用 Tom 的硬件”。下一步将提示您滚动文本。
  • “矩阵亮度” 可以设置为 1.0 ,以获得最大亮度。
  • “scrollSpeed” 调整矩阵上显示的文本速度。较小的数字可以更快地滚动文本,而较大的数字可以更慢地滚动文本。
  • “TextColor” 是文本的 RGB 颜色。默认情况下,我们将文本颜色设置为白色 (255 、 255 、 255),但是您可以根据自己的喜好更改颜色。

自定义树莓派滚动面罩上的文本:

3 在同一终端和同一目录中运行 testMsgInput.py。

 sudo  python3 testMsgInput.py 

4 该代码应自动提示您输入自己的文本。 ** 输入 hello ** 或您选择的短语。

设置树莓派滚动文本蒙版的字体 (可选)

您可能会注意到,矩阵上的字母 (字体) 与本教程示例视频中看到的略有不同。示例代码使用树莓派 OS 中包含的默认字体,而视频使用 ** 5x7 ** 字体。您可以下载用于个人使用的字体 5.7.ttf,然后将其安装到树莓派中。

1 下载字体 5.7.ttf

2 打开一个新终端,然后导航到包含 5x7.tff enter:** 的文件夹

 sudo  cp 5x7.ttf/usr/share/fonts/truetype 

3 ** 用 Geany 打开 testMsgInput.py **

4 在”font = ImageFont.truetype (“LiberationMono-Regular.ttf”, 8)” 之前添加 *#*,以注释掉第 26 行

5 取消注释第 28 行,通过删除 # 将字体设置为 5x7.ttf

6 保存 testMsgInput.py

7 再次运行 testMsgInput.py

 sudo  python3 testMsgInput.py 

输入您选择的单词或短语。

树莓派滚动文本蒙版的 Flask 前端网页

在此步骤中,我们将通过创建一个方便的前端 Flask 网站来为矩阵输入滚动文本,从而使我们的解决方案可移动。

1 如果您完成了可选步骤来更改字体 (在上一步中),请在文件 app.py 中进行相同的更改。

2 在您的终端上,导航到 scrollingTextMask 目录,然后使用命令 (sudo python3 app.py) 运行 app.py

3 ** LaunchChromium ** 浏览器。

4 导航到”http://raspberrypi:5000"(假设”raspberrypi” 是您的主机名) 或 **”localhost:5000”**

5 输入您选择的单词或短语,以在矩阵上滚动。

6 在另一台设备上测试。如果您看到两次在矩阵上滚动输入,请转到另一台计算机或手机 (在同一 WiFi 网络上),然后输入 “http://raspberrypi:5000“。再次,我们假设 raspberrypi 是您的主机名。

7 输入您选择的文本。如果看到文本再次在矩阵上滚动两次,则可以设置该脚本以在启动时启动。您可以通过更改重复数 = 2 来调整输入的文本在矩阵上滚动的次数。如果您更改重复数 = 1 ,则每次进入网页时,文本仅滚动一次。如果您希望文本无限滚动,请改用上一步中的 ** testMsgInput.py **,但请记住, testMsgInput.py 没有 html 界面。请等待直到文本完全完成滚动为止在输入另一个短语之前。在上一个短语完成显示之前输入其他文本将导致错误。
* 如果您希望对前端网页进行更改,则 HTML 代码位于 /home/pi/scrollingTextMask/templates/index.html 。

将 app.py 设置为在启动时运行:

在此步骤中,我们将设置 Pi 以始终运行 ** app.py ** 代码以在引导时运行。

1 打开终端

2 输入

 sudo  nano /home/pi/.bashrc 

3 在.bashrc 的底部输入以下文本

 sudo  python3 /home/pi/scrollingTextMask/app.py 

4 按 Ctrl-X 退出,按 Y 保存。

5 关闭您的 Pi。

第 3 部分:使用树莓派滚动文本蒙版移动

在这一步中,我们使解决方案真正具有移动性。在关闭树莓派并完全退出上一步的情况下,我们首先要注意我们的接线,必要时请拍照。

1 拆卸所有接线

2 ** 将二极管的阴极和阳极正确焊接在矩阵的电源输入和 USB 电缆之间。

3 用热缩管覆盖裸露的电线。用吹风机或热风枪密封热缩管。

4 将地线从 NeoPixel 焊接到 USB 电缆。您可能需要在接地线之间添加一小段电线,以使 + 线平整。用热缩管覆盖裸露的电线。用吹风机或热风枪密封热缩管。

焊接完成后,您的 NeoPixel 矩阵电源输入应具有 USB 连接。

5 ** 接下来,使用 2 条公对公电线将 DIN 和 GND 连接到树莓派。将 DIN 连接到 GPIO 21 (或者如果您在上一步中更改了 GPIO 引脚)。将 GND 连接到树莓派上的任何 GND 引脚。

6 将 NeoPixel 矩阵轻轻地滑入面罩中,带有透明的织物正面,注意不要断开任何电线。

7 ** 打开您的 Pi 和 NeoPixel USB **。如果具有 2 个 USB 输出,则可以用一个移动电源充电器为 Pi 和 NeoPixel 供电。 树莓派 4 可以通过带有 USB C 型输出的移动电源充电器供电。

8 pi 启动后,转到同一 WiFi 网络上的任何计算机或移动设备,并浏览到”http://raspberrypi:5000“,然后输入单词或短语。

如果您输入的文字在您的面罩上滚动,那么恭喜!您已经完成了这个项目!

对于真正的移动解决方案 _,如果您拥有移动计划和具有热点功能的智能手机,则可以从家庭 WiFi 上摆脱束缚。

1 在您的智能手机上,启用热点功能

2 在树莓派桌面上,将 WiFi 设置为智能手机的热点,然后输入手机的热点密码。

3 在智能手机上的浏览器中,导航至” [** http://raspberrypi:5000 **](http://raspberrypi:5000 /)**”** 并访问您的前端网页。

奖金配置

我为该项目提供了 2 个其他版本的 Python 文件,用于 16 像素和 32 像素宽的配置。

要为树莓派滚动文本蒙版制作 16x8 NeoPixel 矩阵,您将需要 2 个灵活的 8x8 NeoPixel 矩阵。第二个 NeoPixel 矩阵将由第一个矩阵供电,不需要第二个电源。

1 将主 NeoPixel 的 DOUT 连接至第二个 NeoPixel 矩阵的 DIN

2 将两个 8x8 NeoPixels 矩阵并排排列,并用电气胶带将其固定在适当的位置。

3 将 NeoPixel 对插入半透明顶层的织物布面罩中。请记住,您将需要一个末端为 3.1 英寸高的布面罩,以适合 NeoPixels 。

4 启动您的 Pi 和主要的 NeoPixel 矩阵。

5 从您的终端运行 Python 代码 16-textMsg.py :

 sudo python3 /home/pi/scrollingTextMask/16Matrix/16-testMsgInput.py 

6 如果对 8x8 矩阵的代码进行了任何更改 (字体,文本颜色,滚动速度),则需要对 16Matrix 文件夹中的文件进行相同的更改。

7 像配置 8x8 矩阵一样,通过配置 16-app.py 继续设置。

适用于树莓派滚动文本蒙版的 32x8 NeoPixel 矩阵

32x8 灵活 NeoPixel 矩阵可以立即购买,并可以使用与 8x8 矩阵相同的配置进行连接。 32x8 NeoPixel Matrix 太宽,无法安装在面罩内,但可以很好地安装在面罩上方。

1 按照第 1 部分中的步骤连接您的灵活的 32x8 NeoPixel 矩阵。

2 从终端运行 Python 代码 32-textMsg.py:

 sudo  python3 /home/pi/scrollingTextMask/32Matrix/32-testMsgInput.py 

3 如果对 8x8 矩阵的代码进行了任何更改 (字体,文本颜色,滚动速度),则需要对 32Matrix 文件夹中的文件进行相同的更改

4 像配置 8x8 矩阵一样,通过配置 32-app.py 继续设置。

5 用半透明织物包裹矩阵的前部,并将热胶粘在面罩上。

6 启动您的 Pi 和主要的 NeoPixel 矩阵。

此外,如果您想显示表冠的静态图像,可以使用文件 32-crown.py 。运行代码:

 sudo  python3 /home/pi/scrollingTextMask/32Matrix/32-crown.py 

结论:

我们希望您发现本教程既有趣又有用。这个专案带来了新的含义:” 写在你的脸上。”

分享到