树莓派使用python驱动Nokia 5110 屏幕

烂漫树林
发布于 2020-11-11 17:18
浏览
1收藏

这篇文章教大家在树莓派上如何使用Python连接Nokia 5110 LCD显示信息。Nokia 5110显示屏价格比较低,同时Nokia 5110显示屏使用SPI(串行外围接口)协议控制,并使用PCD8544作为其控制器。控制方式比较简单,作为树莓派的显示屏可以显示较多的信息。以下是具体的教程。

 

一、需要的硬件
树莓派一个 Nokia 5110显示屏一个 母对母杜邦线 至少8根 Nokia 5110显示屏的信息以前介绍过,这里不再赘述,请参考这篇文章:树莓派使用Nokia5110显示屏显示系统信息。

 

二、树莓派与显示屏的连接
树莓派与诺基亚5110显示屏的连接方式如下图:

树莓派使用python驱动Nokia 5110 屏幕-鸿蒙开发者社区

树莓派与诺基亚5110显示屏的连接方式


这里图中显示的树莓派B型号,如果你手中的树莓派是2代、3代或者4代,连接方式都是一样的,其他的树莓派型号中管脚有40个,是在树莓派B的基础上增加的,前26个功能一样,即全部兼容。 这里连接中使用树莓派的SPI0口进行通信,SPI0的端口可以在这里找到:

树莓派使用python驱动Nokia 5110 屏幕-鸿蒙开发者社区

引脚映射


VCC连接到3.3V电源,因为LCD和驱动器需要3.3V电源和3.3V逻辑电平进行通信。

1. RST ————复位。https://pinout.xyz/pinout/pin16_gpio23

2. CE——芯片选择。https://pinout.xyz/pinout/pin24_gpio8

3. DC—数据/命令选择。https://pinout.xyz/pinout/pin21_gpio9

4. DIN —串行数据线。https://pinout.xyz/pinout/pin19_gpio10

5. CLK——串行时钟速度。https://pinout.xyz/pinout/pin23_gpio11

6. VCC —电源3.3V(正)。https://pinout.xyz/pinout/pin1_3v3_power

7. LIGHT ———背光控制端子。https://pinout.xyz/pinout/pin15_gpio22

8. GND — — –负电源。https://pinout.xyz/pinout/ground 按照要求将nokia 5110显示屏与树莓派连接好,之后就可以进行下一步了。

 

三、开启树莓派SPI接口


在使用SPI控制Nokia 5110显示屏前,首先要开启SPI端口,开启方式如下:

sudo raspi-config

树莓派使用python驱动Nokia 5110 屏幕-鸿蒙开发者社区

树莓派使用python驱动Nokia 5110 屏幕-鸿蒙开发者社区

树莓派使用python驱动Nokia 5110 屏幕-鸿蒙开发者社区

树莓派使用python驱动Nokia 5110 屏幕-鸿蒙开发者社区

开启SPI接口后,我们再确认下:

$ ls -l /dev/spi*
crw-rw---- 1 root spi 153, 0 Feb 23 10:22 /dev/spidev0.0
crw-rw---- 1 root spi 153, 1 Feb 23 10:22 /dev/spidev0.1

四、安装Nokia LCD python库 

 

对于LCD显示,有许多库和库的许多变体。对于带有PCD8544的LCD,我选择了这个库  https://github.com/rm-hull/luma.lcd 。 该库已经可以作为python存储库的一部分,键入以下命令以安装所有必需的软件。

$ sudo apt-get install python-dev python-pip libfreetype6-dev libjpeg-dev build-essential
$ sudo -H pip install --upgrade luma.lcd -i https://pypi.tuna.tsinghua.edu.cn/simple
$ sudo pip install aux -i https://pypi.tuna.tsinghua.edu.cn/simple

这里使用pip 安装python时速度超级慢,后来使用了清华大学的镜像后,速度由5KB/S变到了4MB/S,不得不说,有镜像源真的方便啊。

树莓派使用python驱动Nokia 5110 屏幕-鸿蒙开发者社区

五、用python驱动Nokia 5110显示屏


现在,一切就绪,只需要打开编辑器梭哈一番,Nokia 5110显示屏就能显示信息了,我这里以显示“Hello World!”为例。 编辑输入以下代码:

#! /usr/bin/python

from luma.core.interface.serial import spi
from luma.core.render import canvas
from luma.lcd.device import pcd8544, st7735, uc1701x
from RPi import GPIO
from luma.lcd.aux import backlight


serial = spi(port=0, device=0, gpio_DC=23, gpio_RST=24)
channel=18
light = backlight(gpio_LIGHT=channel, active_low=False)
light.enable(True)

device = pcd8544(serial,rotate=2)
with canvas(device) as draw:
    draw.rectangle(device.bounding_box, outline="white", fill="black")
    draw.text((10, 10), "Hello World!", fill="red")
raw_input("Here")

 

保存后执行,即可看到Nokia 5110屏幕显示了Hello World!字符,树莓派使用python驱动Nokia 5110 屏幕成功!

 

原文作者:科技爱好者

分类
标签
已于2020-11-11 17:18:19修改
收藏 1
回复
举报
回复
    相关推荐