使用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/

物联沃分享整理
物联沃-IOTWORD物联网 » 使用STM32驱动TFT LCD播放Bad Apple动画

发表评论