32×Raspberry Pi上的32 RGB LED矩阵

23

在上一次《剑桥果酱》中,我拿到了32×来自32个LED矩阵面板 庞ang。它由1024个RGB LED组成,用作您在体育场内看到的大型显示器的构建块。我只能负担一个,所以我的屏幕略小。

它由面板,带状电缆,GPIO适配器和电源线组成。我用了 RAVPower 10400mAh USB移动电源 供电。您需要可以提供至少2A的5V电源。

驱动屏幕需要不断将大量数据发送到屏幕。这使它不适合Python,但更适合C。我倾向于使用Python,因此使它稍微超出了我的舒适范围。对我来说很幸运,Henner Zeller创建了一个C代码库来通过Raspberry Pi驱动该板’的GPIO引脚,并将其提供给他 rpi-rgb-led-矩阵Github页面.

安装C库

您可以使用以下代码将代码下载到您的Pi:

wget //github.com/hzeller/rpi-rgb-led-matrix/archive/master.zip

然后使用以下命令解压缩存档:

unzip master.zip

提取后,您可以转到子目录:

cd rpi-rgb-led-matrix-master/

然后使用以下代码编译代码:

make

用法

编译后,可以使用以下命令运行生成的可执行文件:

./led-matrix

将显示可用的命令行选项:

usage: ./led-matrix <options> -D <demo-nr> [optional parameter]Options:
 -r <rows> : Display rows. 16 for 16x32, 32 for 32x32. Default: 32
 -c <chained> : Daisy-chained boards. Default: 1.
 -L : 'Large' 显示, composed out of 4 times 32x32
 -p <pwm-bits> : Bits used for PWM. Something between 1..7
 -g : Do gamma correction (experimental)
 -D <demo-nr> : Always needs to be set
 -d : run as daemon. Use this when starting in
      /etc/init.d, but also when running without
      terminal (e.g. cron).
 -t <seconds> : Run for these number of seconds, then exit.
         (if neither -d nor -t are supplied, waits for <RETURN>)
Demos, choosen with -D
 0 - some rotating square
 1 - forward scrolling an image (-m <scroll-ms>)
 2 - backward scrolling an image (-m <scroll-ms>)
 3 - test image: a square
 4 - Pulsing color
Example:
 ./led-matrix -t 10 -D 1 运行文本
Scrolls the runtext for 10 seconds

要获得面板上的内容,您可以尝试包括示例图像“runtext.ppm” :

sudo ./led-matrix -d -t 20 -D 1 运行文本

如果您的面板连接正确并且电源充足,则“runtext.ppm”图像将在屏幕上滚动20秒钟。

自定义图形

只要您拥有可以创建图像编辑应用程序,就可以轻松创建自己的图形来滚动 便携式Pixmap格式 (PPM)。我使用GIMP(’s免费!),该文件tpye可通过“Export as” feature.

您首先要加载或创建源图像,然后重新调整其大小以使其只有32像素高。宽度不’无关紧要,因为它将水平滚动。在GIMP中,您可以简单地使用“Export as”,使用扩展名为.ppm的文件名,然后选择“Raw”提示时。然后可以将此文件复制到您的Pi。我的第一个自定义图形是徽标和一些文本:

树莓派间谍Strip

下面的命令在整个面板上滚动良好:

sudo ./led-matrix -d -t 60 -D 1 rpi_logo.ppm

我的下一个测试是一小组标志,看起来像这样:

旗带

这是 custom_ppm_images如果要尝试使用带有我的自定义PPM图像的zip文件。

面板非常有趣,视频也没有’真正做到正义。只要您可以生成PPM文件,就可以滚动任何所需的内容。

我将开始看C代码,看看是否可以修改它,从目录中播放一系列图像。这样,我可以创建动画。使用Python生成文件然后触发C程序显示它也将是很好的。

通用输入输出参考

供参考的是面板和Raspberry Pi之间的连接’s 通用输入输出 header :

Panel Connections        Pi Header Connections
=================        =====================
GND (Ground, '-')        Ground
R1 (Red 1st bank)        通用输入输出17
G1 (Green 1st bank)      通用输入输出18
B1 (Blue 1st bank)       通用输入输出22
R2 (Red 2nd bank)        通用输入输出23
G2 (Green 2nd bank)      通用输入输出24
B2 (Blue 2nd bank)       通用输入输出25
A (Row address)          通用输入输出7
B (Row address)          通用输入输出8
C (Row address)          通用输入输出9
D (Row address)          通用输入输出10
OE- (neg. Output enable) 通用输入输出 2 (Pi Rev 2)
                         通用输入输出 0 (Pi Rev 1)
CLK (Serial clock)       通用输入输出 3 (Pi Rev 2)
                         通用输入输出 1 (Pi Rev 1)
STR (Strobe row data)    通用输入输出 4
分享。

23条留言

  1. 你好

    做得好!
    我也得到了这个面板,我试图用Raspberry Pi运行它,但是没有成功:o(。
    仅激活面板的第一行。我为面板提供的电源为5 V,2A。请声明面板与Raspberrry Pi的连接状态,请:

    RO(面板PIN)=? (RPI PIN)
    G0(面板PIN)=? (RPI PIN)
    B0(面板PIN)=? (RPI PIN)
    GND(面板PIN)=? (RPI PIN)
    R1(面板PIN)=? (RPI PIN)
    G1(面板PIN)=? (RPI PIN)
    B1(面板PIN)=? (RPI PIN)
    GND(面板PIN)=? (RPI PIN)
    A(面板PIN)=? (RPI PIN)
    B(面板PIN)=? (RPI PIN)
    C(面板PIN)=? (RPI PIN)
    D(面板PIN)=? (RPI PIN)
    CLK(面板PIN)=? (RPI PIN)
    STB(面板PIN)=? (RPI PIN)
    OE(面板PIN)=? (RPI PIN)
    GND(面板PIN)=? (RPI PIN)

    谢谢高级
    问候

    • 屏幕将显示代码可以抛出的任何内容… but the library I’m using是围绕PPM文件设计的。它’s将PPM转换为所需信号的代码。从技术上讲,您可以修改C代码以转换任何输入图像。

  2. 我挂了一个面板并运行了您很棒的演示程序,但是我的显示效果非常好“jiggly”…像素从左到右跳动,使字母和图像看起来有些模糊/锯齿状和不规则。关于问题可能有什么想法?面板不好?电源噪声? EMF?任何帮助将不胜感激。聚苯乙烯–感谢您为这些面板做的库!

    • 嗨,约翰,

      您的问题有多幸运。我似乎也有类似的问题。似乎很不规则。我同意,似乎很吵。即将再次检查接线,看是否有毛病… weird

  3. 瓦尔·洛佩兹

    你好,
    我想知道矩阵是否有可能显示图像而不是图像。
    我知道可以将文本转换为图像,但是我一直在考虑通过键盘输入(实时交互)显示文本。
    是否有人对此有想法?
    I’初学者,任何指导都广为接受ðŸ™,

    • 唯一的方法是收集按键以构建文本字符串,转换为图像并覆盖要发送到面板的图像。我似乎认为您可以替换图像,并且面板将使用修改后的图像。

        • 您可以使用任何语言创建它,但应该可以使用C或Python来创建它。它可以独立于屏幕驱动程序运行。它只需要收集按键,构建字符串,然后更新屏幕驱动程序用来发送到面板的图像文件即可。一世’尚无任何示例,因此这是一次逐步构建功能的情况。

  4. 美好的一天,

    我对Arduino和带领rgb`s非常感兴趣。但是我的第一个想法是如何显示像视频一样的全彩色DVD?

  5. 你好
    很棒的教程,只是想知道是否有一种简单的方法可以在LED面板上滚动文本而不是使用图像文件?

    谢谢,

    保罗

  6. 你好
    我正在尝试使用带有不同库的键盘箭头键移动单个led像素,但在adafruit rgb-led-panel 32中没有成功×32矩阵,请给我一些关于此应用的建议。

  7. 你好
    我运行了make,但是没有任何反应。它没有’t
    给出任何错误消息只是不创建led矩阵文件

    有任何想法吗

发表评论

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.