安小芯 发表于 2022-4-14 17:41

基于RT-Thread和N32G457的RGB点阵屏

本帖最后由 安小芯 于 2022-4-14 17:43 编辑


基于RT-Thread和N32G457的RGB点阵屏作品出处:RT-Thread作者:**の我手中1.作品介绍
- 硬件部分:
使用32*32 P5 RGB LED 屏,HUB接口,1/16扫描,之前淘宝 20块买了两块,没事就拿出来玩玩又放回去,一直没有把这个做成实用的
HUB75┌─────────┐
│ R1G1│   MTX_PR0 MTX_PG0
│ B1GND │   MTX_PB0
│         │
│ R2G2│   MTX_PR1 MTX_PG1
└┐B2GND │   MTX_PB1
│      │   
┌┘A0A1│   MOVE_IOA MOVE_IOB
│ A2AEX │   MOVE_IOC MOVE_IOD
│         │
│ CLK LOCK│   MTX_PCLK MTX_PLOCK
│ OEGND │   MTX_POE
└─────────┘
显示原理:
32X32 RGB LED被分为 上下2部分 上半部分有R1 G1 B1输入信号,下半部分由R2 G2 B2输入信号,每部分16横行,由A0 A1 A1 A3,选择一行显示,通过串行输入RGB信号32次,显示一行, 重复16次,利用人眼视觉暂留效应,刷新频率大于60HZ,就可以全屏扫描显示,控制LED颜色,要么是电流控制需要每个灯都是独立控制,节约成本PWM控制,R255 G255 B255 8位 显示颜色,LED灯只有开关状态,我们需要在每横行显示增加PWM控制,即显示横行时,将RGB值分为8Bit,循环显示8次,每次延时时长2^N递减,依次类推 就可以显示灰度图
接线定义MTX_PR0———->PA0
MTX_PB0———->PA1
MTX_PG0———->PA2

MTX_PR1———->PE8
MTX_PB1———->PE9
MTX_PG1———->PE10

MTX_PCLK ——->PB0
MTX_PLOCK——->PB1
MTX_POE——->PB2

MOVE_IOA———->PC0
MOVE_IOB———->PC1
MOVE_IOC———->PC2
MOVE_IOD———->PC3
注意: MTX_POE IO口此位置焊接一个 10K上拉电阻,避免烧录程序时乱信号输入显示,电流过大导致坏点,别问我怎么知道到https://oss-club.rt-thread.org/uploads/20220325/a279cfbc4ce19c7c563612b19f4bdfbe.png.webp软件部分
[*]使用RT-thread 不适合刷RGB 点阵屏,中断太多耗时,但是比赛要求使用,只能修改代码了
[*]一个主线程,2个定时器,空闲线程,控制台线程,系统OS Tick 50HZ 20ms中断一次
[*]

[*]空闲线程:用钩子函数调用,LED显示部分,内部直接调用寄存器控制IO输出,中断锁上,避免中断导致显示高亮闪烁,
[*]

[*]定时器1:每秒 控制台输出显示帧率,需要时开启,70HZ左右
[*]

[*]定时器2:20MS 扫描依次按键, KEY1 切换显示DEMO KEY2 切换DEMO内图片,KEY3 开关显示
[*]

[*]主线程:显示切换 显示缓存刷新计算等
[*]动画取模可以到这个网站抓包解析数据 https://pixel.divoom-gz.com/#/
[*]淘宝有对应产品卖
2.创新性
[*]好像没啥创新点,都是参考别人到设计代码,我只是综合利用罢了,
[*]本人一直想用STM32驱动32X32点整屏 ESP8266后台访问网页,爬取divoom的图片,显示到这个屏幕上,或者直接PoJie divoom APP设置显示
[*]还有一个比较好玩到开源应用,利用重力感应,屏幕小点随机碰撞显示,不过别人是用ZYNQ+FPGA做的
3.实用性
[*]divoom 点音别人已经做成产品了,
[*]P5 32X32淘宝上也有卖,放在车后
4.技术性
[*]多多参考别人到的代码,多多学习一下
显示效果下如图 照片拍出来没有实际效果好
https://oss-club.rt-thread.org/uploads/20220325/c8aed6611121b3d73f7c16f76a29e1d4.jpg.webp
https://oss-club.rt-thread.org/uploads/20220325/0e631888ec59577576dc2c4cc98836eb.jpg.webp
https://oss-club.rt-thread.org/uploads/20220325/af0fc1e6dde7b6db0ee21f124d4435b4.jpg.webp
https://oss-club.rt-thread.org/uploads/20220325/2d3cc990899f07aaf7fafa888afdeb8f.jpg.webp
https://oss-club.rt-thread.org/uploads/20220325/f53ff5cec3d1c82faef0216f8870988f.jpg.webp
演示视频地址:
【RGB点阵屏演示-哔哩哔哩】
源码地址:
https://gitee.com/miwang186/rgb_led_array

参考代码**地址:
http://www.**/d/1065868.html
http://bbs.mydigit.cn/read.php?tid=1721594
https://github.com/pulsar256/STM32RGBMatrixDriver
https://github.com/xupenghu/STM32RGBMatrixDriver
https://github.com/hzeller/rpi-rgb-led-matrix

jstgotodo 发表于 2022-7-8 09:49

可以驱动WS2812了?
页: [1]
查看完整版本: 基于RT-Thread和N32G457的RGB点阵屏