树莓派使用 OLED 屏显示图片及文字
树莓派默认是不带显示屏的,如果想要查看系统的一些信息,需要使用电脑登录到树莓派,或者通过 HDMI 连接外接显示器查看。这样做总是有点麻烦,我们可以通过外接一个 OLED 屏来显示一些关键参数或者图片。本文将详细介绍操作方法。
OLED 模组介绍
OLED 屏主要有两种:128×32 和 128×64 ,主要颜色是白、黄、蓝。OLED 屏的特点是功耗低,价格便宜,使用 I2C 接口与主机连接。本文所使用的是 128×64 尺寸的屏幕,外形如下:
它的接口很简单,只有 4 个 Pin 脚:VCC,GND,SDA,SCL,所以它与树莓派的连接也很简单,如下图所示(本文使用树莓派 3B):
开启 I2C 接口
树莓派默认是不开启 I2C 接口的,所以我们需要手动打开它。执行以下命令:
$ sudo apt-get install -y python-smbus $ sudo apt-get install -y i2c-tools $ sudo raspi-config
然后按以下动图方式开启 I2C 功能。
安装 OLED 屏的 Python 库
为了在 OLED 屏上显示文字或图像,我们需要使用到 Adafruit 的 Python 库,这个库支持所有的 SSD1306 相关的显示屏,包括 128×32 和 128×64 屏幕。
首先我们需要下载这个库:
$ git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
然后进入到目录,再进行安装:
$ cd Adafruit_Python_SSD1306 $ sudo python3 setup.py install # 如果使用 Python2 ,则使用对应命令
找到 OLED 模组地址
安装好 Python 库之后,我们可以使用
i2cdetect命令来找到 OLED 屏的物理地址:
$ i2cdetect -y 1
我们会得到类似这样的输出:
不同的模组可能得到不同的输出。这里我们的 I2C 地址就是 0x3C。如果你使用的是初代树莓派(256MB的树莓派1代B),那么需要使用下面的命令:
$ i2cdetect -y 0
使用 OLED 屏显示图像及文字
在刚刚下载的那个库文件里,有一个 examples 目录,在那个目录里,我们可以看到以下内容:
- animate.py
- buttons.py
- image.py
- shapes.py
- stats.py
这几个文件我们可以直接运行,比如:
$ python3 shapes.py
这几个文件运行的结果如下图示:
屏幕尺寸适配
以上的几个示例文件里,它们都默认你的屏幕尺寸是 128×32 ,但它们依然可以跑在 128×64 的屏幕上。如果我们想要看得更舒服一点,我们可以将尺寸进行适配。
在每个 Python 文件里,都有下面这么一段代码:
这里也写得很清楚了,上下两行代码分别代表 128×32 和 128×64 的屏幕,使用何种尺寸的屏幕,只需将对应的代码前面的
#去掉即可。
- 树莓派使用 OLED 屏显示图片及文字
- 使用ListView和AsyncTask、fastjson解析Json以及适配器BaseAdapter来实现下载网络的图片以及文字并显示出来
- python中,使用matplotlib绘图时,图片上文字无法显示问题。
- listview使用BaseAdapter显示图片和文字
- 使用canvas在一张图片上动态显示文字信息,并支持图片下载。
- tooltip使用,可以显示图片,文字
- 定制ListView的界面(使用自定义的列表项布局,一边显示水果图片,一边显示水果文字)以及ListView的点击事件
- 使用setImageEdgeInSet和setTitleEdgeInSet让按钮的图片和文字垂直居中上下显示
- swing中JList控件使用:每一项以 图片+文字(文字在图片的下面) 的形式显示并且在水平方向排列
- listview使用BaseAdapter显示图片和文字
- iOS开发小技巧--即时通讯项目:使用富文本在UILabel中显示图片和文字;使用富文本占位显示图片
- Android TextView使用HTML处理图片文字混合显示
- listview使用SimpleAdapter显示图片和文字
- 使用系统UITabbarItem自定义图片显示原本颜色和自定义文字颜色
- 【JAVA】使用jacob生成的html,关于文字乱码处理,图片无法显示等问题。
- 新ALT使用方法,可显示图片、文字有渐隐效果
- 使用mmit进行移动开发,如何在一行同时显示图片和文字.
- 使用IPicture接口显示图片
- 使用ashx显示小图片
- [导入]使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图