Arduino - bad apple display on oled 12864 - sd card module

Where there is a display, there is bad apple.
轮子的构成
  • Arduino nano
  • I2C OLED 12864
  • MicroSD Card Adapter
  • MicroSD Card
图片捕捉

下载Bad Apple 影绘版MP4,使用 PotPlayer 的截图功能,将视频中的每一帧截图成 72 x 54 的 bmp 图片。12864 的最大分辨率是 128 x 64,不改变源视频长宽比的情况下,选用 96 * 64 的分辨率会导致运存不足,因为每一帧的图片数据会保存在一个 char[] 数组中

位图转换

使用 Image2Lcd 将刚才生成的 bmp 图片批量转换成 bin 文件,输出数据类型 二进制(*.bin) , 扫描模式 水平扫描 ,输出灰度 单色 ,最大宽度和高度 7254 ,其他选项如图所示

数据处理

打开 windows 命令行工具,在生成的 bmp 文件目录下,输入 copy /b *.bin bad.bin 生成所需的 bin 文件

存储卡格式化

为了少走弯路,使用 SDFormatter 来格式化你的 MicroSD 卡,详见Arduino Forum,格式化完毕后将刚才生成的 bad.bin 文件通过你的 PC 保存到存储卡中

灵魂走线

连接你的硬件,MicroSD Card 采用 SPI 方式和 Arduino 通信,OLED 12864 采用 I2C 方式。

代码

代码地址 Github

ENJOY

tada ~

问题
  • MicroSD Card 已经占用了 SPI 总线,虽然可以在 SPI 设备之间做切换,但是我只是业余的,感觉好麻烦,所以采用 I2C OLED 12864,结果就是 FPS 有点低
  • SOFTI2CMASTER 应该会解决帧数低的问题