树莓派python OLED使用

Python有两个可以用的OLED库

i2c接线

树莓派引脚图

OLED引脚树莓派物理BOARD引脚
VCC1号
GND6号
SCL5号
SDA3号

接好线后就是像一个L型的。

接线方式如下图,按颜色对应:

开启i2c功能

sudo apt-get install -y python-smbus
sudo apt-get install -y i2c-tools
sudo raspi-config

打开树莓派配置选择5 Interfacing Options。

选择P5 I2C回车激活I2C。

按回车启动就得了。

 

查看i2c地址

sudo i2cdetect -y 1

然后你能看到下面的地址,3c就是oled屏的i2c地址了,说明已经成功开启i2c啦

 

– 安装Luma.oled库

终端输入下面命令。

sudo apt-get install python-dev python-pip libfreetype6-dev libjpeg-dev

pip install --upgrade luma.oled


如果安装Luma.oled库时出现红字错误,请继续执行命令重试,那是因为网络问题下载一个叫Pillow的库不成功。注:如果你需要安装Python3的Luma.oled库的则按下面对应的Python3版本修改上面的命令进行安装。
pip ⇒ pip3
python ⇒ python3
python-dev ⇒ python3-dev
python-pip ⇒ python3-pip

安装好Luma.oled库后新建文件命名为oled.py,复制粘贴下面代码。参考这里使用说明

from luma.core.interface.serial import i2c, spi

from luma.core.render import canvas

from luma.oled.device import ssd1306, ssd1325, ssd1331, sh1106



# rev.1 users set port=0

# substitute spi(device=0, port=0) below if using that interface

serial = i2c(port=1, address=0x3C)



# substitute ssd1331(...) or sh1106(...) below if using that device

device = sh1106(serial)#这里改ssd1306, ssd1325, ssd1331, sh1106



with canvas(device) as draw:

    draw.rectangle(device.bounding_box, outline="white", fill="black")

    draw.text((30, 40), "Hello World", fill="white")

如果你的oled驱动芯片是其它型号找到device = sh1106(serial),把sh1106改成库支持的其它型号。
树莓派上用Python2打开oled.py运行就能看到下图的Hello World。

能驱动成功后我们去下载Luma.oled的examples代码
然后是examples里面的例子怎么用呢?如果是非ssd1306芯片直接运行还是花屏的,因为那个examples的代码需要修改。
下面以pi_logo.py为例参考上面那个Hello World的例子修改成自己OLED芯片型号的(文件放在在examples内)。

 

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# Copyright (c) 2014-17 Richard Hull and contributors

# See LICENSE.rst for details.

# PYTHON_ARGCOMPLETE_OK



"""

Display the Raspberry Pi logo (loads image as .png).

"""



import os.path

from PIL import Image



from luma.core.interface.serial import i2c, spi

from luma.oled.device import ssd1306, ssd1325, ssd1331, sh1106



def main():

    img_path = os.path.abspath(os.path.join(os.path.dirname(__file__),

        'images', 'pi_logo.png'))

    logo = Image.open(img_path).convert("RGBA")

    fff = Image.new(logo.mode, logo.size, (255,) * 4)



    background = Image.new("RGBA", device.size, "white")

    posn = ((device.width - logo.width) // 2, 0)



    while True:

        for angle in range(0, 360, 2):

            rot = logo.rotate(angle, resample=Image.BILINEAR)

            img = Image.composite(rot, fff, rot)

            background.paste(img, posn)

            device.display(background.convert(device.mode))



if __name__ == "__main__":

    try:

        serial = i2c(port=1, address=0x3C)

        device = sh1106(serial)

        main()

    except KeyboardInterrupt:

        pass

Python运行上面的程序oled屏会出现一个能旋转的树莓派LOGO。


参考文章:

https://shumeipai.nxez.com/2017/09/13/solve-the-raspberry-pi-drive-oled-problem.html

https://www.jianshu.com/p/570978ea7cfd

  • 3
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
本系统是一种以单片机树莓派PICOW为主控制器的多功能智能衣柜,由湿度传感器、LED照明灯、温度传感器、OLED显示屏、XY摇杆等部件组成。基于智能家居服务生活的理念,可实现温湿度检测、杀菌消毒、除湿干燥等功能。另外,该系统每30s可以通过蓝牙HC-05将衣柜内的干湿度和温….zip嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会及时为你解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明,项目具体内容可查看下方的资源详情。 【附带帮助】: 若还需要嵌入式物联网单片机相关领域开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步。 【本人专注嵌入式领域】: 有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为你提供帮助,CSDN博客端可私信,为你解惑,欢迎交流。 【建议小白】: 在所有嵌入式开发中硬件部分若不会画PCB/电路,可选择根据引脚定义将其代替为面包板+杜邦线+外设模块的方式,只需轻松简单连线,下载源码烧录进去便可轻松复刻出一样的项目 【适合场景】: 相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多功能
回答: 如果你想在树莓派使用Python控制OLED显示屏,你可以按照以下步骤进行操作。首先,你需要找到你的OLED驱动芯片的型号。如果是sh1106型号的驱动芯片,你可以使用以下代码来初始化OLED显示屏: ```python from luma.oled.device import sh1106 from luma.core.interface.serial import i2c from luma.core.render import canvas serial = i2c(port=1, address=0x3C) device = sh1106(serial) with canvas(device) as draw: draw.text((0, 0), "Hello World", fill="white") ``` 如果你的驱动芯片是其他型号,你可以将代码中的sh1106改成库支持的其他型号。\[1\] 如果在安装Luma.oled库时遇到红字错误,可能是因为网络问题导致Pillow库下载失败。你可以继续执行以下命令重试安装: ```shell pip install --upgrade luma.oled ``` 如果你需要安装Python3的Luma.oled库,可以使用以下命令进行安装: ```shell pip3 install --upgrade luma.oled ``` 请注意,安装Python3版本的Luma.oled库时,需要将上述命令中的pip改为pip3,python改为python3,python-dev改为python3-dev,python-pip改为python3-pip。\[2\] 如果你遇到问题,可以在终端中输入以下命令来安装所需的依赖库: ```shell sudo apt-get install python-dev python-pip libfreetype6-dev libjpeg-dev ``` 然后再执行上述安装命令。\[3\] #### 引用[.reference_title] - *1* *2* *3* [树莓派python OLED使用](https://blog.csdn.net/Archger/article/details/104780862)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值