搜索
bottom↓
回复: 31

12864动画,不只有BAD APPLE! 【随后分享资料】

[复制链接]

出0入0汤圆

发表于 2012-9-5 17:06:53 | 显示全部楼层 |阅读模式
本帖最后由 sco518 于 2012-9-5 20:55 编辑

http://v.youku.com/v_show/id_XNDQ3MDYxMzgw.html

用atmega32 16M晶振,LCD12864扫的动画,网上比较多的是BAD APPLE 的版本,自己又做了个 东方影绘的版本。

不好调延时,用定时器调会好点。。

前面基本同步了,,到后面差了好几帧。。


之前在网上看到别人用12864去扫这个动画,感觉很有意思,就想要自己也做一个,然后就动手了。。。

但是出师不利,由于没有注意到SD卡管脚 的第9脚在第1脚前面, 直接烧掉了我金士顿的SD卡(刚买的啊!!!)。。 无奈又得网购再买两块SD卡,,把封装改了再做一遍。。   这个提醒大家一定要注意一些特殊器件的管脚问题啊。。。

硬件上还有一个问题:一开始看 欣世纪电子 那个讲解 SD卡 的视频时,里面说如果SPI口有复用的话,SD卡的管脚上要串上2K电阻,但是我做的过程中发现,SD卡的 DO 脚如果串上2K电阻,那单片机就会读不到信号! 因为DO 低电平时也有20MV左右的电平,也就是有输出电流的,经过2K电阻后,,,你们懂的,,很可能单片机就始终读到高电平了。。我是把2K的电阻都换成510R,然后每次烧录程序后就拔掉ISP, 再复位一下,SD卡就能正常工作了,,一开始这个问题纠结了我整整两天啊啊啊啊啊!!

然后就是软件上的问题了,,,刚上手的时候是看了一个人分享的资料,把3000多张图片统一成一个bin文件放在SD卡里,然后就在扇区里不停的扫。我也按他的这个方法去做,但是把他的bin 文件扫出来时才发现,,,他用的12864跟我用的不同,取模的方式也不同,,,也就是这个不能用了!。。。蛋疼的发现啊。。。

又纠结了一天去想办法解决这个问题,,自己写个程序?没接触过啊。。那就只能找别人求了。。于是各种百度,各种求。。。最后在百度一个贴吧里求到了一个解码的小软件,,下过来一看,有毒。。。。。= =。。。 果断直接关掉杀毒软件,先用了再说!= =。。。。。  

最终还是做出了这个动画。。很是欣慰。。。


好了,,废话不多说,,资料整理后分享。



////////////////////////////////////////////////////////

哎呀。。等级不够,工具包只能明天再发了,今天先上程序,有两个版本,一个是我自己的版本(sd卡 文件夹),另一个是一个网友提供的版本(bad apple 文件夹),bad apple.bin 和 df.bin 是两个要放在sd卡内的文件,然后要用winhex看它们在sd卡内的物理卷区。记住,是物理卷区。。

里面还有个badappleproject(1) 的压缩包,里面是bmp图片转码的小软件(提醒:可能会报毒的。。。至于有没有害,,我目前还没有看出来。。。要用的网友请慎重。。)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-9-5 18:00:25 | 显示全部楼层
3:39秒是我头像人物哈,另外求原视频地址。取模自己编个小程序也许更方便,现成的取模软件都把灰度阈值固定死了没法调整,导致好多细节比如人物发梢、星空、树叶等都搞丢了

出0入0汤圆

发表于 2012-9-5 20:44:05 | 显示全部楼层
求前辈 这个动画图片的数据怎么取得? 难道视频截止后再取得吗? 感觉不像啊

出0入0汤圆

 楼主| 发表于 2012-9-5 20:57:49 | 显示全部楼层
red_pig 发表于 2012-9-5 18:00
3:39秒是我头像人物哈,另外求原视频地址。取模自己编个小程序也许更方便,现成的取模软件都把灰度阈值固定 ...


原视频
http://v.youku.com/v_show/id_XMzE2MTIyNTgw.html


我也想自己写一个软件啊。。。可是完全没有接触过这方面的,不知道如何上手啊,,,跪求大神出手相助啊。。

出0入0汤圆

发表于 2012-9-5 20:58:10 | 显示全部楼层
每一帧都需要重新刷屏吗?

出0入0汤圆

 楼主| 发表于 2012-9-5 21:00:38 | 显示全部楼层
yklstudent 发表于 2012-9-5 20:44
求前辈 这个动画图片的数据怎么取得? 难道视频截止后再取得吗? 感觉不像啊 ...

用一个软件名叫 FreeVidetoJPGConverter    23M 传不上来,,你百度一下吧   它可以直接把你的视频转换成jpg格式的图片包。。然后我们用图片转换器把这些jpg图片转换成 bmp格式的。

然后就可以用网友提供的那个  textbin  软件,把所有的bmp图片转成一个 bin 文件了。

这是我纠结了好几天最终找到的好路子啊。。。。

出0入0汤圆

 楼主| 发表于 2012-9-5 21:03:26 | 显示全部楼层
SNOOKER 发表于 2012-9-5 20:58
每一帧都需要重新刷屏吗?

是的,,,3000多张,每一帧都刷。所以对单片机的速度要求很高。

我试了MSP430F149 和 ATmega16  发现   430虽然说低功耗而且运算速度快,可是刷12864的时候要比16慢不少。5438可以很快,但我手上没有=、=   于是就只能用atmega32了。。

出0入0汤圆

发表于 2012-9-5 21:13:11 | 显示全部楼层
这是我以前捣鼓的时候写的一段代码,用的matlab语言,不是很完善,也不适用于所有的12864,楼主有兴趣可以看一看
s3=strcat('E:\ARM\STM32\截图\ba00',s2,'.bmp') %      这一段读取了一帧保存在自己指定目录里的图片,我截图时取的名字都叫“ba00001.bmp"、“ba00123.bmp"之类的,
I=imread(s3)                                                  %   所以这里用'ba00‘和 s2 和'.bmp'三个字符串连接起来构成文件名,其中s2再循环中不断加一,遍历全部图片文件.

t=graythresh(I)                                           % 这一段获取图片全局灰度阈值,来作为之后二值化时的判决阈值,即每一像素相对灰度高于这个值就判为1,反之为0,
                                                                % 很多现有取模软件无法自由设置取模时的灰度阈值,所以取模结果会丢失很多细节,比如一些较浅的阴影和残影,这也是我决定自己写程序取模的原因

I1=im2bw(I,t/4)  % 这一段就是二值化喽,把RGB图像转成0,1图,t/4是我自己试出来的经验值,感觉看着比较舒服,另外其实完全可以把这个值定死,直接设成0.1左右,
                         %这样就可以省掉上一句(效果没啥区别)

for i=1:1:8
  for j=1:1:128
       date=~I1(i*8,j)*128+~I1(i*8-1,j)*64+~I1(i*8-2,j)*32+~I1(i*8-3,j)*16+~I1(i*8-4,j)*8+~I1(i*8-5,j)*4+~I1(i*8-6,j)*2+~I1(i*8-7,j);   % 这里把二值图矩阵的元素每8个组成一个十进制数
                                                                                                                                                                                                 %按什么原则玩过12864的朋友应该都很清楚了,
                                                                                                                                                                                                 %至于为什么每个位都要取反是因为灰度值越小
                                                                                                                                                                                                 %像素点越白,所以按上一句中取的二值图如果
                                                                                                                                                                                                 %直接显示在12864上会成为反色图,所以取反就好了
      fwrite(f,date,'uint8')      %写进文件,一次写8位

出0入0汤圆

 楼主| 发表于 2012-9-5 21:19:56 | 显示全部楼层
red_pig 发表于 2012-9-5 21:13
这是我以前捣鼓的时候写的一段代码,用的matlab语言,不是很完善,也不适用于所有的12864,楼主有兴趣可以 ...

matlab ,好的好的=、=   刚好这个学期的通信原理要用,要学啦。哈哈哈   ~      谢谢啦~~

出0入12汤圆

发表于 2012-9-5 21:37:15 | 显示全部楼层
上STM32F103,可以刷到飞天  72M
再上F407,飞翔全宇宙

出0入0汤圆

发表于 2012-9-5 21:52:25 | 显示全部楼层
skynet 发表于 2012-9-5 21:37
上STM32F103,可以刷到飞天  72M
再上F407,飞翔全宇宙

能否直接彩屏?

出0入0汤圆

发表于 2012-9-5 21:57:48 | 显示全部楼层
sco518 发表于 2012-9-5 21:19
matlab ,好的好的=、=   刚好这个学期的通信原理要用,要学啦。哈哈哈   ~      谢谢啦~~ ...

不谢~我也曾经很投入地捣鼓过这个东西,能看到一位同好还是很高兴的,这是我以前发的帖http://www.amobbs.com/thread-5478895-1-1.html

出0入85汤圆

发表于 2012-9-5 22:01:12 | 显示全部楼层
不懂这个灰度怎么实现?能做到几级灰度?

出0入0汤圆

发表于 2012-9-5 22:03:37 | 显示全部楼层
http://v.youku.com/v_show/id_XMjI0ODAyNzI0.html

出0入0汤圆

发表于 2012-9-5 22:12:44 | 显示全部楼层
hyz_avr 发表于 2012-9-5 22:03

以前看着别人做12864播动画的,刚开始感觉很震撼。但是时间长了,做的人多了,也就没感觉了。还是感觉用tft播放动画爽。

出0入0汤圆

 楼主| 发表于 2012-9-6 17:06:29 | 显示全部楼层
marshallemon 发表于 2012-9-5 22:01
不懂这个灰度怎么实现?能做到几级灰度?

理论上只有两级,但是由于一秒钟内有20-30帧,所以看上去就产生了很多级的灰度。。。

出0入0汤圆

 楼主| 发表于 2012-9-6 17:07:29 | 显示全部楼层
hyz_avr 发表于 2012-9-5 22:03

哇哦。。。厉害。。用的是stm32?

出0入0汤圆

 楼主| 发表于 2012-9-6 17:08:42 | 显示全部楼层
hunningtu 发表于 2012-9-5 22:12
以前看着别人做12864播动画的,刚开始感觉很震撼。但是时间长了,做的人多了,也就没感觉了。还是感觉用t ...

我是最近才看到这样的呢,,接下来也要开始做彩屏的了~   吼吼吼~~~

出0入85汤圆

发表于 2012-9-6 19:09:24 | 显示全部楼层
sco518 发表于 2012-9-6 17:06
理论上只有两级,但是由于一秒钟内有20-30帧,所以看上去就产生了很多级的灰度。。。 ...

哦,原来是这样

出0入42汤圆

发表于 2012-9-6 20:11:45 | 显示全部楼层
hyz_avr 发表于 2012-9-5 22:03

古剑的宣传动画。
屏幕分辨率多少?

出0入0汤圆

发表于 2012-9-6 20:13:46 | 显示全部楼层
480*272 只是上位机截取电脑画面通过USB(cy7c68013)发下来,DSP(BF531)读取并在LCD上显示出来而已.

出0入0汤圆

发表于 2012-9-6 20:17:42 | 显示全部楼层
本帖最后由 lkl10800139 于 2012-9-6 20:18 编辑
hyz_avr 发表于 2012-9-5 22:03


这个很流畅啊,用上位机截取,牛啊

出0入0汤圆

发表于 2012-9-6 20:20:43 | 显示全部楼层
谢谢楼主了

出0入0汤圆

发表于 2012-9-6 20:24:56 | 显示全部楼层
本帖最后由 niba 于 2012-9-6 20:30 编辑

看来最关键的就是速度。。。速度,还是速度。

出0入0汤圆

发表于 2012-9-6 21:36:02 | 显示全部楼层
有机会做一个玩玩....

出0入0汤圆

发表于 2012-12-3 10:46:01 | 显示全部楼层
hyz_avr 发表于 2012-9-5 22:03

彩屏的动画如何实现,真心求教~~

出0入0汤圆

发表于 2012-12-3 11:04:26 | 显示全部楼层
祭葬月 发表于 2012-12-3 10:46
彩屏的动画如何实现,真心求教~~

看21楼.

出0入0汤圆

发表于 2012-12-5 12:26:54 | 显示全部楼层
真牛叉!

出0入0汤圆

发表于 2012-12-5 22:44:30 | 显示全部楼层
好好学习,天天向上,谢谢

出0入0汤圆

发表于 2012-12-5 22:57:09 来自手机 | 显示全部楼层
不错,我正想用contex-m4实现液晶的图片显示

出0入0汤圆

发表于 2013-4-3 22:35:47 | 显示全部楼层
给力啊!!!

出0入0汤圆

发表于 2014-10-27 17:27:14 | 显示全部楼层
MARK一下 回来看
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 17:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表