电子胸牌应用 电子胸牌的另类玩法!关于LED点阵胸牌综合改造集合,全开源

小编 2024-10-10 电子应用 23 0

电子胸牌的另类玩法!关于LED点阵胸牌综合改造集合,全开源

最近好多某宝的商家在做免费LED点阵胸牌的活动,撸了好几个。看着只能显示文字,没啥意思,堆灰不划算,就寻思着改造改造。

整理了下手上的胸牌的款式,发现大概有三款。

本贴就一一整理这三款胸牌的重新编程并点亮改造的过程

先上成果图

涉及这三款led胸牌

从上到下,定义

最上面款为:双按键,黑色PCB,单片机为GD32F150C6

中间款为:侧按键,绿色PCB,单片机为未知打磨芯片

最下面款为:单按键,黑色PCB,单片机为GD32F150C6

三款同时点亮的效果

改造成简易时钟

先折腾第一款。

单按键,黑色PCB,单片机为GD32F150C6 usb接口是mini口

就是这款

这个板子比较蛋疼,因为是黑色油墨

先拆下芯片跑走线

先找出哪些脚是LED驱动脚,那些脚是其他的功能引脚

这个比较简单

图中蓝色点标记的就是LED驱动引脚,其他脚都是功能脚或者空脚

同时可以标出设计者引出的测试点。

其中PA13/PA14用于下载程序,还引出了一个串口

接着找LED的顺序

找LED顺序的方法是通过看PCB背面的走线,可以看出有一排灯间距过孔的走线就一定是LED驱动走线。然后按照着顺序一路用万用表测量下来就能找出驱动序列的顺序(这个步骤比较浪费时间)

因为设计者使用列阵法来驱动LED,所以通过这个顺序就能恢复出LED点亮序列

后来看了坛友的一个帖子,说是github上也有一个类似工程,引脚和这款胸牌一样,我吧整理好的引脚也贴下

引脚的驱动方式是,每两列用同一个列选拉高,每一行用两个行选拉低

吧芯片焊回去,开始测试点亮

连接SWD口调试口如下,使用JLINK联机(PS:这种细硅胶线用来飞线简直不要太爽)

打开JLINK 命令行软件,可以看到找到了CORTEX M3内核的设备,说明连接线没错

经检测这个GD32被设计者上锁了读取保护。

所以需要进行解锁

注意:这款胸牌一旦解锁,就不能回到原装出厂的程序,以后只能使用DIY的程序

解锁方法:

找到jlink安装目录 打开jlinkstm32.exe 选择按照stm32f1系列方式解锁

解锁后会提示以下成功消息。此时芯片已经被擦除干净,已经没有回头路了

使用jlink进行下载的时候,因为jlink支持列表里面没有GD32,所以,选择的芯片型号应该是

STM32F103C6

如图

程序因为太复杂,就只贴一小部分核心了

具体的看附件

复制代码

uint32_t Led_GPIO_Port_Arrange[22] = {GPIOF, GPIOB, GPIOB, GPIOB, GPIOB,

GPIOB, GPIOB, GPIOA, GPIOA, GPIOF,

GPIOB, GPIOB, GPIOA, GPIOF, GPIOB,

GPIOB, GPIOB, GPIOB, GPIOA, GPIOB,

GPIOB, GPIOB

};

const uint16_t Led_GPIO_Pin_Arrange[22] = {GPIO_Pin_7, GPIO_Pin_15, GPIO_Pin_14, GPIO_Pin_11, GPIO_Pin_12,

GPIO_Pin_2, GPIO_Pin_1, GPIO_Pin_6, GPIO_Pin_7, GPIO_Pin_0,

GPIO_Pin_9, GPIO_Pin_8, GPIO_Pin_5, GPIO_Pin_1, GPIO_Pin_4,

GPIO_Pin_13, GPIO_Pin_10, GPIO_Pin_0, GPIO_Pin_4, GPIO_Pin_6,

GPIO_Pin_5, GPIO_Pin_7

};

/**********************************************/

/* 函数功能;清除所有led对应io为复位 */

/* 入口参数:无 */

/**********************************************/

void Clear_All_LED(void)

{

GPIO_CTL(GPIOA) &=0xffcc00ff;//清空A GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_10

GPIO_CTL(GPIOB) &=0x000000c0;//清空除了b3

GPIO_CTL(GPIOF) &=0xffff3ff0;//清空 f0,1,7

GPIO_OCTL(GPIOA) &=~(GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_10);//清空A GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_10

GPIO_OCTL(GPIOB) &=~(GPIO_Pin_ALL-GPIO_Pin_3);//清空除了b3

GPIO_OCTL(GPIOF) &=~(GPIO_Pin_1|GPIO_Pin_0|GPIO_Pin_7);//清空 f0,1,7

}

void Write_One_LED_Pin(uint32_t GPIOx, uint16_t GPIO_Pin,uint8_t pin_satae)

{

uint32_t i,pins;

for(i=0;i<16;i++)

{

if((GPIO_Pin>>i)&0x01)pins=i;

}

GPIO_CTL(GPIOx) |=(uint32_t)0x00000001<<pins*2;

if(pin_satae)GPIO_BOP(GPIOx)|=GPIO_Pin;

else GPIO_BC(GPIOx)|=GPIO_Pin;

}

/**********************************************/

/* 函数功能;点亮对应位置的led */

/* 入口参数:xy */

/**********************************************/

void LED_Open(uint8_t x, uint8_t y)

{

if(x > 43 || y > 10)return;

Clear_All_LED();

Write_One_LED_Pin(Led_GPIO_Port_Arrange[x / 2], Led_GPIO_Pin_Arrange[x / 2], 1);

if(y == 0)

{

if(x % 2 == 0)

{

Write_One_LED_Pin(GPIOA, GPIO_Pin_10, 0);

}

else

{

if(x > 1)Write_One_LED_Pin(GPIOF, GPIO_Pin_7, 0);

else Write_One_LED_Pin(GPIOB, GPIO_Pin_15, 0);

}

}

else

{

if(y==10&&x==42)

{

Write_One_LED_Pin(GPIOB,GPIO_Pin_5,0);

return;

}

if(y==10&&x==43)

{

Write_One_LED_Pin(GPIOB,GPIO_Pin_6,0);

return;

}

if(x % 2 == 0)

{

if(x <= 4 * y - 2) Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 2], Led_GPIO_Pin_Arrange[y * 2], 0);

else Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 2 - 1], Led_GPIO_Pin_Arrange[y * 2 - 1], 0);

}

else

{

if(x <= 4 * y + 2) Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 2 + 1], Led_GPIO_Pin_Arrange[y * 2 + 1], 0);

else Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 2], Led_GPIO_Pin_Arrange[y * 2], 0);

}

}

}

最后全屏点亮的效果

第二款:双按键,黑色PCB,单片机为GD32F150C6 usb口为mini口

就是他

注意 这款胸牌焊接质量不怎么样,建议加固usb口和开关,不然很容易坏

同样的,国际惯例,先拆芯片跑走线

跑走线的过程,发现一个真心蛋疼的问题。

这个胸牌的开发设计者应该被祖宗8辈子全部骂一遍过来。居然胆大包天敢吧SWD调试接口给使用掉了,吧调试接口给使用掉了,给使用掉了,用掉了。

你这不就是给大家找麻烦吗?

没办法,只能一边骂一边跑走线了呗~

芯片下的走线细节

图中绿色点表示的是LED驱动引脚。我只想问你用PF6和PF7去驱动LED,检测按键会死啊。居然敢丧心病狂的吧PA13和PA14都占用

还很奇葩的吧PF6和PF7接了vcc和gnd,这是几个意思啊????简直是醉了醉了

绘出板载的测试点位置

其中串口的位置在正面,又是一个奇葩。在正面,只要接了线就没法转进壳子了啊。。。。

这里注意到这个设计者,在左边的按键设计了上拉结构。这个按键接了PA15作为按键检测,同时又用一个电阻上拉到boot0.

也就是说,只要在给芯片上电前按住按键,就会加入程序下载的ISP模式,然后使用串口下载程序

下载程序的软件使用GD32官方提供的ISP工具,就是这货。

这款胸牌不能使用JLINK进行调试

不过唯一值得欣慰的是,这款胸牌的程序没有上锁,所以可以读取出原装的固件。也就是说,玩累了还能吧原装固件恢复回去

楼下附件会给出拷贝读取出来的固件。

跑出LED的线序

这款胸牌的驱动列阵比楼上那款要稍微简单一些 但同样是使用23个引脚来扫描点亮11*44的LED列阵

下图中

蓝色为行编号(此处的0,1,2为物理行LED号)

橙色为列编号(此处的0,1,2为物理列LED号)

绿色为驱动对应的列需要拉高的引脚(此处的0,1,2为驱动管脚顺序号,也是就上图)

黄色为驱动对应的行需要拉低的引脚(此处的0,1,2为驱动管脚顺序号,也是就上图)

规律性更强

复制代码

void LED_Open(uint8_t x, uint8_t y)

{

if(x > 43 || y > 10)return;

Clear_All_LED();

Write_One_LED_Pin(Led_GPIO_Port_Arrange[x / 2], Led_GPIO_Pin_Arrange[x / 2], 1);

if(y == 0)

{

if(x % 2 == 0)

{

if(x > 0)Write_One_LED_Pin(Led_GPIO_Port_Arrange[0], Led_GPIO_Pin_Arrange[0], 0);

else Write_One_LED_Pin(Led_GPIO_Port_Arrange[2], Led_GPIO_Pin_Arrange[2], 0);

}

else

{

if(x == 3)Write_One_LED_Pin(Led_GPIO_Port_Arrange[2], Led_GPIO_Pin_Arrange[2], 0);

else Write_One_LED_Pin(Led_GPIO_Port_Arrange[1], Led_GPIO_Pin_Arrange[1], 0);

}

}

else

{

if(x % 2 == 0)

{

if(x <= 4 * y) Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 2 + 1], Led_GPIO_Pin_Arrange[y * 2 + 1], 0);

else Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 2], Led_GPIO_Pin_Arrange[y * 2], 0);

}

else

{

if(x <= 4 * y + 4) Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 2 + 2], Led_GPIO_Pin_Arrange[y * 2 + 2], 0);

else Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 2 + 1], Led_GPIO_Pin_Arrange[y * 2 + 1], 0);

}

}

}

完整点亮的效果

肉眼看是均匀的,只是因为相机的问题,才会有个斜的亮条,实际是不影响的

第三款 比较复杂地一款

侧按键,绿色PCB,单片机为未知打磨芯片

就是这款 侧按键 没有磁铁,只有别针

那么要想先玩起来,就得先分析这款打磨芯片是啥

我们注意到有一下三个个特征

1、引脚兼容stm32f0xxc系列芯片

2、芯片的供电直接是用4.2V锂电池供电

先分析这两个特征。锂电池4.2V直接供电。可以直接排除stm32全系列和gd32全系列。因为这两款芯片的供电电压极限都是3.6V,那么锂电池4.2V直接接上去肯定是不行的

3、我手上有一个牌上面的芯片没怎么打磨干净,那么就可以看到一些蛛丝马迹

首先用铅笔给芯片表面涂一下

可以看到两个图标 一个应该是芯片厂商的商标,另外一个是ARM

那么,想象+联想,再天马行空一下,再来点灵感

duang!!!

像不像?就问你们像不像?哈哈~

本来绿油是不想要拆芯片跑走线的。但是因为测试条件不方便施展开来,为了方便分析芯片,还是拆下来了

上stm32系列48脚通用转接板测试

使用jlink的命令行工具联机

可以看到CORTEX M0内核

你们上芯片厂商官网找一圈 发现只有mm32l0xx系列符合条件(cm0内核,带usb)

范围缩小到mm32l062/072/073其中的一款

想办法确定下芯片具体型号。结果发现个蛋疼的问题。官方提供的手册居然有错(果然是国内小厂尿性)

翻开mm32l0系列的参考手册,DBG部分

可以看到swd id和dev id

结果发现,根本对于不上

手册上写swd id是0x2BA01477

实际读取值是0x0bb11477

再对照下读取dev id

发现也是根本对不上

手册上写dev id是0xCC88xxx3

实际读取值是0xcc568091

一开始我还以为是我打开方式有问题

换了好几种方法读取都是这样的。

无奈之下去下载了mm32f103系列的手册,哈哈,真相大白

手册之间互抄也不记得改改内容啊。

cm3内核和cm0内核id居然一样,贻笑大方啊

这次翻开正宗大厂 意法家的stm32f0系列的手册看看

写的明明白白,CORTEX M0 内核的swd id规定就是0x0BB01477

根本不是0x2BA01477

本来通过dev id是能确定具体的芯片型号的

比如stm32f0系列就可以这样区别出来

但是奈何国内小厂,手册瞎写,所以芯片型号根本没法确定。

anyway,反正都是mm32l0xx系列,都是兼容的,只是容量大小有点区别,不影响使用啦。

继续分析是否锁定读保护。

查看参考手册

用jlink直接读这几个位置

很遗憾,符合读保护特征,芯片被锁读保护了

测试读取 0x800000位置的数据,不能读取

那就只能擦除了呗~

注意:这款胸牌一旦解锁,就不能回到原装出厂的程序,以后只能使用DIY的程序

擦除教程:(此处就偷懒借用官方图片了)

(该文件附件提供下载)

2、打开unlock工程(附件提供下载)

添加Flash选项:

擦除完成,没回头路啦

开始跑走线。这里也比较蛋疼。虽然这个板子是绿油,走线很容易看清楚。但是这个板子过孔盖油盖的太严实了,只能刮开走线才能方便测量了

测试出引脚占用图

图中绿色为LED驱动脚

板子上设计者所留的测试点,蛮多的,良心

测绘出LED列阵顺序

这款胸牌除了引脚不同外,驱动方法和上面的双按键款一模一样(讲道理这三款胸牌居然LED引脚完全不一样)

焊接回去芯片

焊接swd调试下载接口

成功点亮

显示测试

改造时钟

大家比较喜闻乐见的项目哈

因为时间精力有限,不可能三款胸牌都改时钟。那选其中一款来弄。另外两款需要各位简单移植,很简单的。

选择单按键款 就是这货

时钟芯片用ds3231。

因为是实验,就先用模块测试了,实际上是可以直接芯片飞线的。只需要飞iic的sda和scl,电源线和备用电压就行(电源线和单片机接一起,备用电源直接接在锂电池上)

这款胸牌上,设定

IIC_SDA_PIN 是 PA2

IIC_SCL_PIN 是 PA3

如图接线

效果如图

(程序见附件)

讲一下程序构架

整个程序

LED驱动部分分为三个部分

led_drv是led的底层驱动,负责驱动io(这部分每个胸牌各不相同)

led_scan负责led的扫描 (led_scan和led_drv部分一般写好了就不需要动了)

led_display负责显示内容的呈现

这里有个重要的东西 显示缓存

也就是说,所有要显示的内容,都是写到显示缓存内的。然后刷屏程序会自动读取并刷屏,具体刷屏部分不用操心。

这个显示缓存,每个uint16_t数负责一列,只取前11位

开源代码需至原帖获取,地址:http://bbs.mydigit.cn/read.php?tid=2324306

谢谢观看!

浏览更多精彩内容请登录数码之家网站

技术交流请联系原作者

作者:2545889167

本文来源:数码之家

让你大开眼界的电子纸应用

近年来,电子纸(又称“电子墨水”“墨水屏”)的应用变得越来越广泛,各种有趣的创新产品层出不穷,比如墨水屏显示器、墨水屏平板、电子纸货架标签、墨水屏公交站牌等……我们可以在零售、交通、教育、物流、医疗等多个领域看到电子纸的身影。那么,还有哪些产品应用了电子纸呢?一起来看看吧~

电子墨水屏互动投影墙

电子墨水屏投影墙集趣味游戏、益智、科普为一体,可以根据不同应用场合、不同墙面尺寸等需求,量身定制出不同的互动内容,呈现出丰富多彩的动态创意展示效果。

粗看上去,这只是一面经过涂鸦的普通墙板,当你将手放上去,瞬间川剧变脸。它支持多人同时触摸,参观者通过手指触摸特定区域,即能得到预定的动态效果回馈,让原本静止的画面立即“活”了过来。

电子墨水屏投影墙将现代化的声光电技术、隔空互动感应、创意展示内容有机融合,呈现出满满的科技感,让人叹为观止!

远洋船赛使用的高速数据显示屏

Papercast电子纸显示屏

电子纸现身国际游艇赛事。Papercast已将E Ink电子纸显示屏安装在INEOS Team UK’s AC75竞赛船中,提供实时风速与航向信息,参加2021年在新西兰奥克兰举行的美洲杯比赛。

电子纸显示屏于阳光下的高度可视性和低功耗的特性,是让INEOS使用作为竞赛船显示屏的原因。

Plastic Logic和RoadAds将开发

32英寸电子纸外部车载显示屏

Plastic Logic与RoadAds Interactive达成合作伙伴关系,利用Plastic Logic柔性OTFT基板技术开发移动式的电子纸车外显示屏。

RoadAds将在货车、卡车和公共汽车上使用32英寸电子纸显示屏作为“数字化广告牌”,进行广告和信息宣传。

RoadAds客户可以在线管理广告活动、规划广告版面和条件设定,例如天气或时间,并获取详细的统计信息。这些活动可透过4G自动传输并实时交付。这些显示屏使用32英寸电子纸,并且可以通过将多个显示器组合在一起来实现更大的显示器尺寸。

科技感满满的电子纸数字胸牌

2022年北京冬奥会志愿者们使用的数字胸牌采用了3.7英寸电子墨水显示屏,能够显示黑、白、红三色。

志愿者们还能通过专属的APP将照片转化成矢量图片,不仅能随意设置图像颗粒度、清晰度,还能上传人像照片,利用人像抠图算法自动识别抠图。

这款电子胸牌没有内置电池,也无需接线充电。志愿者们只需通过手机NFC功能就能实现胸牌的画面刷新。具体来说,只需要在专属的手机APP中编辑好画面和内容,然后将胸牌与手机轻触一下,胸牌的画面就能刷新成功。

这得归功于FMSC单芯片无源NFC方案。FMSC芯片内置于胸牌中,用于接收用电和数据信息,并将数据信息呈现在墨水屏上。NFC方案即近距离无线通讯技术,通过手机NFC功能,就能为芯片供电和传输信息。

因此,用户手机在靠近胸牌时会通过NFC给芯片供电,并传输画面信息到胸牌。然后,胸牌中的芯片会完成屏幕刷新,实现画面的转换。

改变艺术摄影欣赏方式

Visionect无线传输电子纸数字画框

大家习惯借由欣赏艺术作品来体验多彩的世界,但如果欣赏艺术的方式被改变了呢?艺术摄影平台IONNYK透过Visionect低功耗电子纸画屏,可展现更多艺术的创造力和想象力。

IONNYK首席技术官Antoine Baudoux表示:“IONNYK(无线传输电子纸数字画框)结合电子纸显示技术来体现艺术创作,创造出独特的黑白观看体验。”

IONNY安装在墙壁上,可使您随时能欣赏艺术摄影作品,或是结合Visionect其他解决方案,用来作为会议室预约告示牌、博物馆说明牌、报纸艺术品等。

IONNYK首席执行官Mathieu Demeuse补充说:“借由IONNYK,我们开启了一种新型的文化艺术体验,艺术与科技的颠覆性创新结合,提供了视觉艺术真正的数字化发展空间。通过我们完整的生态系统,艺术家、艺术迷和艺术爱好者随时可以在他们的起居室相互交流。”

电子纸本身不发光不伤眼,可在自然光下欣赏传统艺术摄影作品,确保高视觉质量,非常适合这种应用。搭配电子纸显示屏的IONNYK画框,可以呈现出如传统纸质照片一样柔和自然的效果。

除此之外,Visionect的解决方案无需电缆即可运作,可帮助消除难以隐藏的电源线,IONNYK可以悬挂在任何空间,并且比传统的屏幕能耗降低99%。

更值得一提的是,IONNYK艺术框架可以无线连接系统,并使用IOS / Android应用过程控制。Visionect既有的软件套件内含许多电子纸告示牌使用的内容管理系统、应用程序等,可用来支持IONNYK应用程序。

借由IONNYK应用程序,使用者可以轻松地浏览电子纸数字画框中的黑白照片数据库,并遵循喜欢的主题、环境设置与心情,更改电子纸数字画框中的照片,享受不断变化的视觉感官之旅。

看了这么多电子纸的创新应用,你觉得哪个更吸引你呢?

相关问答

什么是 电子 版照片,怎么做公司用的 胸牌 ?

应该是去照相馆拍张底色是蓝色的数码照片,尺寸应该告诉你了吧1寸或者2寸.然后把照片刻到盘里交给公司,照相那里就能给你刻.他们会用机器给你打印到工作证上的...

led 电子胸牌 如何改字?

电子胸牌只能通过电脑连线修改字,由于体积太小没有无线和优盘功能。把胸牌通过厂家提供的连线接到电脑上,打开软件就可以修改了。电子胸牌只能通过电脑连线...

蓝牙 电子胸牌 如何改字?

蓝牙电子胸牌这样改字:1.在电脑上下载安装LED胸牌编辑软件。2.打开运行编辑软件。3.将胸牌连接到电脑的USB口上。4.点击软件的“编辑”项,输入要更改的文...

led 胸牌 不允许接入是怎么回事?

LED胸牌不允许接入是因为其电路设计中使用了特定的电压和电流,如果接入错误的电源或电压,可能会导致电路损坏或者短路,从而影响LED胸牌的正常使用。此外,LED...

海底捞发光牌怎么改字?

IED胸牌改字的大致方法和步骤如下:1、在电脑上下载安装LED胸牌编辑软件2、打开运行编辑软件3、将胸牌连接到电脑的USB口上4、点击软件的“编辑”项,输入要...

哪位知道 胸牌 点胶机有什么用?哪位大神能告诉我?

胸牌点胶机是从人工到自动化的一个重大转变。它包含了机械、电气、PLC程序的编写等。很好地诠释了机电一体化技术的非凡应用。是机电一体化朝着智能...

上海 电子 学生证有什么用?小学的?

电子学生证具有学生出入校的门禁管理、家校互联、图书借阅、校园消费等诸多教育功能,和乘坐公交、景点旅游、就医安全、社区服务等等诸多城市功能。电子学生...

e代驾能不戴 胸牌 吗?

不能。上线无需佩戴挂绳胸牌,拍照抽查时也不会检查是否佩戴挂绳胸牌,接单后,请出示电子胸牌向用户表明身份。(订单内页面开车前页面左上角“胸牌”入口)不...

成都春糖音乐节可以凭 电子 身份证入场吗?

成都春糖音乐节不可以凭电子身份证入场。入场时,观众需要携带中华人民共和国居民身份证、港澳台居住证或护照等证件原件到达会场。完成预登记注册的观众,须在...

校园卡被开水烫了还能用吗? - 懂得

对于您的问题,校园卡是能用的,校园卡外能有隔断保护塑料,里面才是卡鈊,而现在校园卡的外壳防水性很好,一般新卡是不会进水的。如果是用了很长时间的...