《树莓派》开发 之 用 0.96OLED 播放 badapple 视频
- 安装树莓派环境下的OLED库:树莓派实验室
为了更好的显示性能,例如显示动画时如对帧率有要求,可以通过修改下面的参数将 I2C 频率从默认的 100KHz 或 400KHz 提升到 1MHz。
命令:
sudo
nano
/boot/config
.txt
在文件末添加一行:
dtparam=i2c_baudrate=1000000
sudo reboot 重启 树莓派即可生效
- 将 badapple 视频转为图片:《MATLAB》应用 之 用 MATLAB 将 badapple 视频转换为128*64分辨率图片
- 使用 FileZilla 工具将生成的 badapple 文件夹复制到 badapple.py 文件夹下(或者使用电脑拷贝到树莓派系统TFT卡)
badapple.py文件:
import timeimport Adafruit_GPIO.SPI as SPI
import Adafruit_SSD1306from PIL import Image
from PIL import ImageDraw
from PIL import ImageFontimport subprocessRST = Nonedisp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)# Initialize library.
disp.begin()# Clear display.
disp.clear()
disp.display()while True:x = 0y = -2# Create blank image for drawing.# Make sure to create image with mode '1' for 1-bit color.width = disp.widthheight = disp.heightimage = Image.new('1', (width, height))# Get drawing object to draw on image.draw = ImageDraw.Draw(image)# Draw a black filled box to clear the image.draw.rectangle((0,0,width,height), outline=0, fill=0)font = ImageFont.truetype('123.ttf', 13)for Test in range(1,50):# Draw a black filled box to clear the image.draw.rectangle((0,0,width,height), outline=0, fill=0)# Shell scripts for system monitoring from here : https://unix.stackexchange.com/questions/119126/command-to-display-memory-usage-disk-usage-and-cpu-loadcmd = "hostname -I | cut -d\' \' -f1"IP = subprocess.check_output(cmd, shell = True )cmd = "top -bn1 | grep load | awk '{printf \"CPU Load: %.2f\", $(NF-2)}'"CPU = subprocess.check_output(cmd, shell = True )cmd = "free -m | awk 'NR==2{printf \"Mem: %s/%sMB %.2f%%\", $3,$2,$3*100/$2 }'"MemUsage = subprocess.check_output(cmd, shell = True )cmd = "df -h | awk '$NF==\"/\"{printf \"Disk: %d/%dGB %s\", $3,$2,$5}'"Disk = subprocess.check_output(cmd, shell = True )# Write two lines of text.draw.text((x+32, y), "Liuzewen pi", font=font, fill=255)draw.text((x, y+11), "Test: ", font=font, fill=255)draw.text((x, y+22), "IP: " + str(IP), font=font, fill=255)draw.text((x, y+32), str(CPU), font=font, fill=255)draw.text((x, y+42), str(MemUsage), font=font, fill=255)draw.text((x, y+52), str(Disk), font=font, fill=255)# Display image.disp.image(image)disp.display()time.sleep(.1)for begin in range(1,10):draw.rectangle((0,0,width,height), outline=0, fill=0)font = ImageFont.truetype('cubic.ttf', 20)draw.text((x+32, y+24), "Begin", font=font, fill=255)font = ImageFont.truetype('LED Dot-Matrix.ttf', 14)draw.text((x+115, y), str(10+1-begin) , font=font, fill=255)# Display image.disp.image(image)disp.display()time.sleep(1)for I_image in range(1,6540):#6540image = Image.open('badapple/'+str(I_image)+'.jpg').convert('1')disp.image(image)disp.display()
- 最终 OLED 屏幕 的刷新速率可以达到 30 帧
- badapple.py 中的 123.ttf 、 cubic.ttf 、 LED Dot-Matrix.ttf 均为字体名,可自行下载字体并放在 badapple.py 目录下,并将程序中字体修改为对应字体即可~
字体下载网站:https://www.dafont.com/bitmap.php?page=4
命令:sudo python badapple.py 即可看到屏幕动了起来^-^~
- 最终播放效果:稍后上传到 哔哩哔哩
《树莓派》开发 之 用 0.96OLED 播放 badapple 视频相关推荐
- Android开发使用SurfaceView和Mediaplayer播放网络视频(功能齐全)
本篇播客主要说明如何使用SurfaceView和Mediaplayer来播放网络视频. 支持视频格式:实测支持的有mp3.mp4.rmvb.avi.3gp.flv--. 带有功能:播放.暂停.视频拖动 ...
- 野火STM32F1开发板 IIC 0.96OLED 波形显示
硬件连接 软件代码 MAIN.C #include "sys.h" #include "delay.h" #include "usart.h" ...
- WebEx3.0工具播放wrf视频文件
工作中遇到培训视频为wrf格式无法播放,网上找的播放器都是老版本无画面只有杂音,该文件为WebEx3.0版本,包括WebEx Recorder录屏和WebEx Player播放器,测试时间202008 ...
- 无限互联iOS开发视频教程V2.0
原文地址:无限互联iOS开发视频教程V2.0作者:天涯 视频网址: http://www.soku.com/t/nisearch/无限互联/_cid__time__sort_score_display ...
- 炸裂!上手三天,就在开发板上播放BadApple, 还是Python香
在二次元圈子里有这样一句话 有屏幕的地方,就有Bad Apple 比如笔者最近入手了一个物联网开发板HaaS EDU K1,就萌发了在这些小的开发板上实现播放BadApple的想法. 说干就干!!! ...
- Android音视频学习系列(七) — 从0~1开发一款Android端播放器(支持多协议网络拉流本地文件)
系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...
- OpenHarmony学习笔记——I2C驱动0.96OLED屏幕
文章目录 前言 I2C简介 硬件连接 编程实现 创建代码框架 初始化并复用GPIO 初始化I2C0 初始化OLED 从机地址 OLED初始化配置 功能代码 总结 目录 前言 前面介绍了一些关于在Hi3 ...
- 《树莓派开发笔记 - 第1部分 基础篇》第6章 树莓派摄像头操作
6.1树莓派基本操作 目前提供了三个应用程序,分别为:raspistill.raspivid.raspistillyuv.其中 raspistill 和 raspistillyuv 非常相似,并且都是 ...
- UT-Exynos4412 三星ARM四核旗舰开发平台android4.0体验-10HDMI功能调试支持
经过2012年的等待,四核的开发平台终于跟广大嵌入从业人员见面了,下面让我们来看下UT-Exynos 4412 开发板的详细参数吧,共广大嵌入式开发人员参考. 一.UT-Exynos 4412开发板高 ...
最新文章
- Altium Desgner软件,PCB设计中铺铜的作用
- JFace中的表格型树TableTreeViewer
- 华为云龙api自动化工具_2020年十大最佳自动化测试工具
- QML 信号和处理程序事件系统
- static_cast, dynamic_cast, const_cast探讨【转】
- html编辑器设置为publisher,将PDF转换为Publisher的简单方法
- Highcharts使用指南
- ajax对象的属性和方法
- Django Model View Template 之间的简单交互 (二)
- mysql视图子查询_MySQL:FROM子句限制中的带有子查询的视图
- 数论和有限域的基本概念
- springmvc/ssm框架详细图文解说流程图及运行原理_附源码
- 论站长赚钱之七剑下天山
- Spring笔记(基于狂神视频+自己理解)
- hashmap用stream流操作_基础篇:JAVA.Stream函数,优雅的数据流操作
- 遥感监测草原产草量的方法
- [转]PHP大型Web应用入门(一)
- 【Elasticsearch】15 ES文档的基本操作 aggregations 【执行聚合操作】
- python 小写金额转化为大写金额
- 八、正则表达式与JSON
热门文章
- 打印小册子(一张A4纸4页内容)步骤分享
- 计算机基础知识教程打印a4纸,一张A4纸如何打印多个准考证?_计算机办公软件基础...
- 【靶机详解】DC-1
- 古月居ROS机器视觉开发——摄像头参数标定(二)
- 信安Note_day16
- 改进的smooth L1损失
- SmoothL1 loss
- Android 酷炫 倒计时的实现
- Elasticsearch——分布式搜索引擎01(索引库、文档、RestAPI、RestClient、拼音分词器、IK分词器)
- linux 薄膜键盘驱动,全志T3核心板 (512M/1G DDR3,8G EMMC)