胸牌DIY改装记录

[复制链接]
6627|29
手机看帖
扫描二维码
随时随地手机跟帖
aismin|  楼主 | 2018-4-2 16:49 | 显示全部楼层 |阅读模式
本帖最后由 aismin 于 2018-4-2 16:49 编辑

工作项目中,有一个3x8段数码管显示的需求,无意中从网上有看到有大牛改装电子胸牌的帖子。
https://baijiahao.baidu.com/s?id=1589193752551132542&wfr=spider&for=pc

因而对电子胸牌的原理做了仔细的了解。

选择的是淘宝上买的 ”乐闪优 五字电子胸牌“。
电子胸牌_1.png
厂家不提供通讯接口,但提供PC上位机改字软件,本来想通过bus hound直接抓取USB通讯数据协议。
这样主机(Android) 可以直接把电子胸牌做数码管显示。结果,协议**还相对容易,
只是每次改字软件每次更新显示内容时,胸牌上都会固定的显示 “M1-8 ”,用来提示。故不能直接使用。

看来只能重写固件代码了;
1,胸牌上电前,按下靠近胸牌的按键,胸牌会进入DFU模式,但自己写的代码烧进去后,总是无法运行,每次都提示option bytes未擦除,这条路没走通。 5.bmp

2,找到芯片上的Jtag引脚,将PA13 PA14引脚接到J-link, j-link采用SWD 模式 可以调试代码了。
     但是因驱动GPIO中有用到PA13, PA14引脚,故中途调试时,调试一次后,就没办法再调试了,SWD引脚指向GPIO功能了。

3,最后想到用厂家的ISP串口下载功能。PCB板上Pin44 BOOT0脚强行接到了GND,但进入ISP需要BOOT0接VCC,故将芯片Pin44脚翘起,通过一个按键开关,来选择是接GND,还是接VCC,
     顺便把Pin7 Reset引脚也接了出来,通过按键可以进行复位。PCB上预留了串口接BT模块的接口,故PCB上有USART1的接口焊盘,方便了不少。PA14->Usart1.TX PA15->Usart1.RX. 电子胸牌_2.jpg




aismin|  楼主 | 2018-4-2 17:28 | 显示全部楼层
(二) 胸牌点亮逻辑图

通过万用表测量,胸牌共11行,55列,GPIO点亮逻辑图如下:

电子胸牌_3.png

从辑逻图中可以看出,每二列由一个GPIO控制。
所以驱动时序如下
1,先将要点亮的列GPIO设置为Push_Pull 输出高,其它输出低。
2,对选中列的11行进行扫描,每次扫描输出一行中二个灯的状态。

主要点亮函数代码附上:
void LED_Open(uint8_t x, uint8_t y)
{
       if(x >= LED_COL || y >= LED_ROW)return;
      Clear_All_LED();
      Write_One_LED_Pin(Led_GPIO_Port_Arrange[x / 2], Led_GPIO_Pin_Arrange[x / 2], 1);                //ÁÐѡͨ
                       
     if (y <= 4){
         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 + 3)         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);
         }
    }else{
        if(x % 2 == 0)
        {
               if(x <= 6 * y - 10) Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 3 - 4], Led_GPIO_Pin_Arrange[y * 3 - 4], 0);
               else                     Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 3 - 5], Led_GPIO_Pin_Arrange[y * 3 - 5], 0);
        }else{
               if(x <= 6 * y - 7)         Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 3 - 2], Led_GPIO_Pin_Arrange[y * 3 - 2], 0);
               else                    Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 3 - 4], Led_GPIO_Pin_Arrange[y * 3 - 4], 0);
        }                       
    }
}




使用特权

评论回复
AdaA| | 2018-4-4 17:55 | 显示全部楼层
这位哥好牛叉,真的拆了。我一直在尝试联系他们家,哥有联系方式不?他们这种胸牌的销量还不错。

使用特权

评论回复
chuntian2016| | 2018-4-21 18:53 | 显示全部楼层
这个要是能设计成无线数据传输的更好

使用特权

评论回复
波越| | 2018-4-22 13:25 | 显示全部楼层
好便宜啊,看来成本很低啊

使用特权

评论回复
poijhgvfcd| | 2018-4-22 14:46 | 显示全部楼层
这个很不错,估计量不小吧

使用特权

评论回复
oiuetjg| | 2018-4-22 14:58 | 显示全部楼层
还可以这么玩儿啊,不错,学习了

使用特权

评论回复
chongdongchen| | 2018-4-24 10:27 | 显示全部楼层
本帖最后由 chongdongchen 于 2018-4-24 10:30 编辑

楼主我也玩过哦,花了好几天

不过我的是4字的,1块钱(可能是2块,忘了)买的

微信图片_20180424102333.jpg
微信图片_20180424102326.jpg

使用特权

评论回复
comeon201208| | 2018-4-25 21:08 | 显示全部楼层
楼主的动手能力非常不错

使用特权

评论回复
shenmu2012| | 2018-4-25 23:20 | 显示全部楼层
楼主的动手能力非常不错

使用特权

评论回复
engao| | 2018-4-26 16:09 | 显示全部楼层
测试单片机的方法给个赞

使用特权

评论回复
qwert13777| | 2018-4-28 17:05 | 显示全部楼层
牛X  给力  学习学习了

使用特权

评论回复
vivilzb1985| | 2018-4-28 22:52 | 显示全部楼层
不管怎么说,楼主动手的能力还是非常强悍的

使用特权

评论回复
aismin|  楼主 | 2018-5-3 15:45 | 显示全部楼层
现在胸牌屏改为了串口通讯接口,就做了一下串口的上位机软件,可以手动点亮屏。
Soft.bmp

项目中,要将游戏中的运动人物的时间,速度,个数显示到屏,在Excel中弄一些显示模板,
对协议也做了包装,上面只要发送 目标值(小数字)及即时值(大数字)就可以实现显示功能了。
这样游戏和硬件中都不需要含字库了。

excel.bmp

具体软件Android游戏的同事正在调试使用,等样机出来后,我会上图,敬请大家期待哈~~~

(显示屏外套上滤光片后,显示效果就好很多,先上个裸照)

show.jpg

使用特权

评论回复
aismin|  楼主 | 2018-5-9 09:38 | 显示全部楼层
最终的效果图出来了,实际的显示效果比拍出来的效果好。
拍出来的图片红晕太明显了,实际显示没有红晕。

Finish.jpg

使用特权

评论回复
评论
dirtwillfly 2018-5-10 09:59 回复TA
配上不锈钢外壳,就是高大上 
CharryW| | 2018-5-9 10:35 | 显示全部楼层
楼主牛X啊

使用特权

评论回复

使用特权

评论回复
通宵敲代码| | 2018-5-10 09:07 | 显示全部楼层
TIM截图20180510090549.png

隔着屏幕,我都能感觉到楼主的骚操作。

使用特权

评论回复
chongdongchen| | 2018-5-10 09:20 | 显示全部楼层
又看到这个帖子上来了,加油加油!顶一个!
这个电路板上应该没有限流电阻的,所以在那两列里如果亮的灯比较少,比如一两个的时候,会感觉特别亮。
显示效果上就是这方面有点遗憾。

使用特权

评论回复
dirtwillfly| | 2018-5-10 09:57 | 显示全部楼层
AdaA 发表于 2018-4-4 17:55
这位哥好牛叉,真的拆了。我一直在尝试联系他们家,哥有联系方式不?他们这种胸牌的销量还不错。 ...

没必要找厂家,在论坛找人设计生产就可以啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

45

帖子

0

粉丝