使用STM32驱动TFT LCD播放Bad Apple动画
用stm32驱动TFTLCD播放BadApple
你是否听说过一句这样的话,有屏幕的地方就会有badapple。这次我们就通过用stm32来驱动TFTLCD来播放badapple。
什么是Bad Apple
《Bad Apple 》是系列作品《东方Project》 第4作 《东方幻想乡》(旧作)中使用的曲目,因为同人作品的制作而爆火。又因其MV画面完全由黑白两个颜色组成,因此只要能组成一明一暗的画面就
能实现Bad Apple的播放,所以就会有了〝有屏幕的地方就会用Bad Apple”这句话。
实现原理
视频播放的原理就是将一个一个的画面在短时间内快速播出。因此我们想要实现在TFTLCD上播放Bad Apple 就需要先将视频的每一帧转化为图片,再将这些图片转化为二进制数据保存起来,因此我们就需要Image2Lcd来转换,SD卡来进行储存,最后利用stm32读取SD数据,将图片显示在TFTLCD上
bin文件制作
1.准备视频源
2.使用KMPlayer软件播放视频并使用高级捕获功能多个帧
KMPlayer官方网站:www.kmplayer.com
右键打开高级捕获
高级捕获的设置如图
这就是捕获好的图片
3.使用Image2Lcd软件把帧数据批量转换成bin文件
首先按图将红框内的数据设置好。
点击右上角的打开,找到保存图片的路径,点击第一张图片,再点击上面工具栏里的批量转换,等待转换完成即可。
这就是转换好的文件
4.使用命令行操作把众多bin文件合并成一个bin文件
利用win+R,输入cmd调出控制台
代码部分
这里我们用正点原子的“FATFS实验代码”为基础,在此修改。
首先我们编写一个可以将黑白两色图片显示的代码(转化后的数据格式请自行从Image2Lcd的说明文件中查看)
一些初始化内容
SD卡检测
读取SD卡并进行显示
这里涉及FATFS模块提供给用户的一系列应用接口函数,f_open,f_lseek,f_read。这些函数用法比较简单,大家可以通过正点原子教程查阅一下使用方式,这里就不做展开。
编译上传后便能播放了
注意事项
1.本人使用的型号为STM32F103ZET6
2.画面大小为128*64,否则MCU算力不足,会导致画面卡顿
3.bin文件要放在SD卡的根目录下,方便读取
4.视频,bin文件,原码链接:
http://pan.baidu.com/s/15rS0trEssXLVuFEe_sMGIQ?pwd=g8cj 提取码:g8cj
Bad Apple原视频:
https://www.bilibili.com/video/BV1x54 11o7Kn/