• 安装树莓派环境下的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 视频相关推荐

  1. Android开发使用SurfaceView和Mediaplayer播放网络视频(功能齐全)

    本篇播客主要说明如何使用SurfaceView和Mediaplayer来播放网络视频. 支持视频格式:实测支持的有mp3.mp4.rmvb.avi.3gp.flv--. 带有功能:播放.暂停.视频拖动 ...

  2. 野火STM32F1开发板 IIC 0.96OLED 波形显示

    硬件连接 软件代码 MAIN.C #include "sys.h" #include "delay.h" #include "usart.h" ...

  3. WebEx3.0工具播放wrf视频文件

    工作中遇到培训视频为wrf格式无法播放,网上找的播放器都是老版本无画面只有杂音,该文件为WebEx3.0版本,包括WebEx Recorder录屏和WebEx Player播放器,测试时间202008 ...

  4. 无限互联iOS开发视频教程V2.0

    原文地址:无限互联iOS开发视频教程V2.0作者:天涯 视频网址: http://www.soku.com/t/nisearch/无限互联/_cid__time__sort_score_display ...

  5. 炸裂!上手三天,就在开发板上播放BadApple, 还是Python香

    在二次元圈子里有这样一句话 有屏幕的地方,就有Bad Apple 比如笔者最近入手了一个物联网开发板HaaS EDU K1,就萌发了在这些小的开发板上实现播放BadApple的想法. 说干就干!!! ...

  6. Android音视频学习系列(七) — 从0~1开发一款Android端播放器(支持多协议网络拉流本地文件)

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

  7. OpenHarmony学习笔记——I2C驱动0.96OLED屏幕

    文章目录 前言 I2C简介 硬件连接 编程实现 创建代码框架 初始化并复用GPIO 初始化I2C0 初始化OLED 从机地址 OLED初始化配置 功能代码 总结 目录 前言 前面介绍了一些关于在Hi3 ...

  8. 《树莓派开发笔记 - 第1部分 基础篇》第6章 树莓派摄像头操作

    6.1树莓派基本操作 目前提供了三个应用程序,分别为:raspistill.raspivid.raspistillyuv.其中 raspistill 和 raspistillyuv 非常相似,并且都是 ...

  9. UT-Exynos4412 三星ARM四核旗舰开发平台android4.0体验-10HDMI功能调试支持

    经过2012年的等待,四核的开发平台终于跟广大嵌入从业人员见面了,下面让我们来看下UT-Exynos 4412 开发板的详细参数吧,共广大嵌入式开发人员参考. 一.UT-Exynos 4412开发板高 ...

最新文章

  1. Altium Desgner软件,PCB设计中铺铜的作用
  2. JFace中的表格型树TableTreeViewer
  3. 华为云龙api自动化工具_2020年十大最佳自动化测试工具
  4. QML 信号和处理程序事件系统
  5. static_cast, dynamic_cast, const_cast探讨【转】
  6. html编辑器设置为publisher,将PDF转换为Publisher的简单方法
  7. Highcharts使用指南
  8. ajax对象的属性和方法
  9. Django Model View Template 之间的简单交互 (二)
  10. mysql视图子查询_MySQL:FROM子句限制中的带有子查询的视图
  11. 数论和有限域的基本概念
  12. springmvc/ssm框架详细图文解说流程图及运行原理_附源码
  13. 论站长赚钱之七剑下天山
  14. Spring笔记(基于狂神视频+自己理解)
  15. hashmap用stream流操作_基础篇:JAVA.Stream函数,优雅的数据流操作
  16. 遥感监测草原产草量的方法
  17. [转]PHP大型Web应用入门(一)
  18. 【Elasticsearch】15 ES文档的基本操作 aggregations 【执行聚合操作】
  19. python 小写金额转化为大写金额
  20. 八、正则表达式与JSON

热门文章

  1. 打印小册子(一张A4纸4页内容)步骤分享
  2. 计算机基础知识教程打印a4纸,一张A4纸如何打印多个准考证?_计算机办公软件基础...
  3. 【靶机详解】DC-1
  4. 古月居ROS机器视觉开发——摄像头参数标定(二)
  5. 信安Note_day16
  6. 改进的smooth L1损失
  7. SmoothL1 loss
  8. Android 酷炫 倒计时的实现
  9. Elasticsearch——分布式搜索引擎01(索引库、文档、RestAPI、RestClient、拼音分词器、IK分词器)
  10. linux 薄膜键盘驱动,全志T3核心板 (512M/1G DDR3,8G EMMC)