回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【PinPong Board】有屏的地方就有BadApple 简单

头像 天明zzb 2021.04.27 1048 2

有显示器的地方就有BadApple。
从MicroSD卡读取数据,然后在OLED上呈现视频。

材料清单

  • PinPong开发版 X1
  • MicroSD卡模块 X1

步骤1 图片捕捉

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

步骤2 位图转换

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

步骤3 数据处理

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

步骤4 格式化内存卡,把bad.bin文件放入卡中

步骤5 灵魂走线

连接你的硬件,MicroSD Card 采用 SPI 方式和 PinPong 通信,嗯。。。我这里没有sd卡模块了所以直接用了自带的卡套,如果你同样没有,可以参考一下截图

GND GND

5V +5

CS Pin 4

MOSI Pin 11

SCK Pin 13

MISO Pin 12

卡的SPI通信需要四根线:两条数据线(SPI_MISO、SPI_MOSI),一条时钟线(SPI_SCK)和一条片选(Chip Select)信号线。在SPI模式下,SD卡的8号、9号针脚没有用到,针脚定义见下表(最右侧一栏为单片机引脚):

project-image
project-image
project-image

步骤6 上传代码,附件中的直接上传即可,这里我已经把bin和ino打包完毕

代码
#include "SD.h"
#include "U8glib.h"

#define LCD_WIDTH 128
#define LCD_HEIGHT 64
#define WIDTH_COUNT 9
#define HEIGHT 54
#define SIZE (WIDTH_COUNT*HEIGHT)
#define top (LCD_HEIGHT - HEIGHT) / 2
#define left (LCD_WIDTH - WIDTH_COUNT * 8) / 2

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // I2C 接口

char buf[SIZE];

File root;
File myFile;

void draw() {
  u8g.drawBitmap(left, top, WIDTH_COUNT, HEIGHT, (const uint8_t*)buf);
}

void setup(){
  Serial.begin(38400);//串口波特率
  pinMode(10, OUTPUT);
  if (!SD.begin(4)) {
    Serial.println("Initialization Failed");
    return;
  }//sd初始化,如果失败打印:Initialization Failed
  Serial.println("Initialization OK");
  myFile = SD.open("bad.bin");
}     

void loop(){
  u8g.firstPage();
  do {
    draw();
  } while(u8g.nextPage());

  if  (myFile && myFile.available()) {
    myFile.read(buf, SIZE);
  } else {
    myFile.close();
    myFile = SD.open("bad.bin");
    Serial.println("Replay.");
    delay(5000);
  }
}

问题:

I2C OLED ssd1306显示屏来播放视频,结果就是 FPS 有点低

步骤7 最后来个视频看看效果吧!!!

评论

user-avatar
  • 虾虾^0^

    虾虾^0^2021.08.11

    厉害

    0
    • luqGQ_mS

      luqGQ_mS2021.04.28

      赞!有屏幕的地方就有坏苹果

      0