(4)ESP32 Python 用OLED播放Bad Apple
之前已经实现过了,把OLED当作一个状态显示器。但是,仅仅显示文字肯定是不够炫酷的,因为有屏幕的地方就应该有Bad Apple。
这次我们尝试一下把OLED播放一下 Bad Apple.
Bad Apple看似是一段视频,但是我们这么来想这个问题。视频打散成很多张图片,按照每秒12贞的播放,那不就是一个视频了么。
首先,我们来体验一次把图片展示在OLED上面,需要展示的图片要是pbm格式(PBM格式由Jef Poskanzer在20世纪80年代发明,为了便于通过电子邮件,用ASCII码表示单色位图,能够承受一般的文本格式的变动。)
from ssd1306 import SSD1306_I2C ,framebuf
from machine import Pin, SoftI2C
oled = None
class BadAppleOled:def init_oled(self):global oledi2c = SoftI2C(sda=Pin(21), scl=Pin(22),freq=600000)i2c.scan() print(i2c)oled = SSD1306_I2C(128, 64, i2c)def show_pic(self):global oledshow_pbm = '/data/pyamp/example/pbm/rangcha.pbm'with open(show_pbm, 'rb') as f:f.readline()f.readline()data = bytearray(f.read()) fbuf= framebuf.FrameBuffer(data,128,64, framebuf.MONO_HLSB)oled.fill(0)oled.blit(fbuf, 0,0)oled.show()del fbuf
调用代码
bad_apple_oled = BadAppleOled()
bad_apple_oled.init_oled()
bad_apple_oled.show_pic()
最终结果如下
代码解释:
- 首先将文件读取成二进制 with open(show_pbm, 'rb')
- 将文件转换成字节数组 data = bytearray(f.read())
- 将图片的字节数组送入 framebuf ,并指定大小。 fbuf= framebuf.FrameBuffer(data,128,64, framebuf.MONO_HLSB)
- OLED 清屏, 并展示framebuf内容,展示完成后,删除 framebuf
oled.fill(0)
oled.blit(fbuf, 0,0)
oled.show()
del fbuf
完成了基础的图片展示后,我们尝试一下把一个视频文件的连续PNG转换成pbm并进行展示。
from ssd1306 import SSD1306_I2C ,framebuf
from machine import Pin, SoftI2C
import uos
oled = None
class BadAppleOled:def init_oled(self):global oledi2c = SoftI2C(sda=Pin(21), scl=Pin(22),freq=400000)i2c.scan() print(i2c)oled = SSD1306_I2C(128, 64, i2c)def show_pic(self):global oledshow_pbm = '/data/pyamp/example/pbm/rangcha.pbm'with open(show_pbm, 'rb') as f:f.readline()f.readline()data = bytearray(f.read()) fbuf= framebuf.FrameBuffer(data,128,64, framebuf.MONO_HLSB)oled.fill(0)oled.blit(fbuf, 0,0)oled.show()del fbufdef bad_apple_v1(self):global oledbpm_files_list = uos.listdir('data/pyamp/example/bpm_files')for bpm_entity in bpm_files_list: show_bpm = '/data/pyamp/example/bpm_files/'+bpm_entity# print(show_bpm)with open(show_bpm, 'rb') as f:f.readline()f.readline()data = bytearray(f.read()) fbuf= framebuf.FrameBuffer(data,128,64, framebuf.MONO_HLSB)oled.fill(0)oled.blit(fbuf, 0,0)oled.show()del fbuf
但是,一般视屏都会很长的,不可能无限制的全部装在在ESP32当中。所以,有TF接口的开发板可以将图片存在SD卡当中进行播放哦。
(4)ESP32 Python 用OLED播放Bad Apple相关推荐
- 基于STM32的OLED播放Bad apple
基于stm32的oled显示badapple 有屏幕的地方就有bad apple 原理 将视频用opencv转换成图片,之后进行图片取模,转化为16进制,使用oled图片显示函数显示. 硬件所需 st ...
- esp32 spi 驱动 oled 屏显示来自 PC 的画面
esp32 spi 驱动 oled 屏显示来自 PC 的画面 实验代码 gayhub 实验源码 设备及运行环境 装有python的电脑 Python 3.8.2 (tags/v3.8.2:7b3ab5 ...
- 用ESP8266播放播放bad apple(一):点亮LED——IO口的简单输出应用
一.前言: 这是我的第一篇CSDN博客,从这学期开学开始接触单片机,期间从C51,到Arduino,再到ESP8266以及现在刚刚开始学期的32,已经整整一个学期.虽然不敢说多么精通,但还是希望通过一 ...
- stm32 播放高帧率高分辨率视频和照片详细制作过程(播放Bad Apple为例)
stm32 播放高帧率高分辨率视频和照片详细制作过程 下文以播放Bad Apple视频为例. 文章是我边调试边写的,质量不好请见谅. 文章目录 stm32 播放高帧率高分辨率视频和照片详细制作过程 硬 ...
- 基于python的音频播放器_基于python实现音乐播放器代码实例
基于python实现音乐播放器代码实例,一首,函数,按钮,布局,音乐 基于python实现音乐播放器代码实例 易采站长站,站长之家为您整理了基于python实现音乐播放器代码实例的相关内容. 核心播放 ...
- python制作音乐播放器_python实现音乐播放器 python实现花框音乐盒子
本文实例为大家分享了python实现音乐播放器的具体代码,供大家参考,具体内容如下 """这是一个用海龟画图模块和pygame的混音模块制作的简易播放器. 作者:李兴球, ...
- 用Python实现序列帧播放器
用Python实现序列帧播放器 注意 以下所有代码不可直接使用,若要使用请到百度网盘上下载源码! 链接:https://pan.baidu.com/s/1P0x8ddbnn5veFnFQJLQ0tw ...
- 示波器播放Bad apple坏苹果教程XY模式
偏娱乐方向了,感兴趣的朋友可以玩下,顺便可以了解下示波器的XY模式 麦科信示波器XY模式播放Bad apple坏苹果教程
- python生成USB播放器歌单
用python生成USB播放器歌单 个人比较喜欢听歌,前段时间还买了个可以插U盘和储存卡的播放器,它支持直接按数字跳转歌曲,但自己却不知道歌曲对应的号码. 测试发现歌曲顺序并不是按文件名排序,也不是按 ...
最新文章
- nginx的优先匹配规则
- python的优缺点有哪些-Python语言的优缺点有哪些
- 2014 华为机考 中国海洋大学上午第三题(java实现)
- 动态数据源切换--AbstractRoutingDataSource
- 苹果平板买哪款最好?
- 誉赐 PC阳光板www.ycpc.icoc.cn/详尽概述
- 测试小阿姨的mac装机列表❤️(不定时更新~)
- 15款替代微软产品的开源软件
- 数字图像处理_07.2_(顶帽变换,击中击不中原理)
- Netty in Action (十九) 第九章节 单元测试
- P1397 [NOI2013] 矩阵游戏(矩阵乘法欧拉定理)
- 51单片机控制二相四线步进电机
- android胎心监测设计,胎心监测
- error C2059: 语法错误:“::”
- 数据分析-常用的数据分析框架-06
- 手机里面的AP与BP
- 工业企业数字化转型--设备管理运维系统
- 第十六周 项目1 验证算法 堆排序
- 基于PIC16F876A的摇摇棒
- 缩略图Thumbnails
热门文章
- 知识工程重点知识介绍-3
- C/C++语言中 指针复制与指针赋值的作用
- 我是如何将2千万StackOverflow问答翻译成中文的?
- Android 9.0模拟器root权限获取
- MYSQL递归查询,根据子类ID查询所有父类(宇宙第一详细教程)
- 解决Xshell/Xftp强制升级无法进入问题
- vue2.0.js基础开发使用心得(结合实际项目对数据的增删改查)
- windows10 CMD 命令大全
- 回收站删除的文件怎么恢复?恢复的方法超简单!
- 发泄解压必备神器html5游戏在线玩,解压模拟器压力释放神器