0°

(五)树莓派进阶:诺基亚5110显示屏与Raspberry Pi连接

介绍

(五)

诺基亚5110显示模块

Nokia5110是一款可以显示文字,图像和各种图案的图形显示屏。

它的分辨率为48×84,并配有背光。

它使用SPI通信与微控制器/微处理器通信。

数据和命令可以通过处理器发送到显示器以控制显示输出。

它有8个引脚。

由于Nokia5110使用SPI通信,我们需要确保启用Raspberry Pi的SPI接口。如果未启用,则使用我们必须启用它。

使SPI?

要在Raspberry Pi上启用SPI,请输入以下命令

sudo raspi-config

然后,会弹出一个窗口,其中选择 Interface Options

选择Interface选项后,启用SPI接口。然后重启Raspberry Pi。

现在,我们可以建立SPI通信。

电路连接图

(五)

诺基亚LCD显示界面与Raspberry Pi 3

在这里,我们将使用Raspberry Pi 3连接Nokia5110显示器

我们将使用来自GitHub的Adafruit的Nokia5110 Python库。

下载诺基亚LCD Python库:

限制以下用户组阅读此隐藏内容

请先登录

您的用户组:

通过执行以下命令解压缩上面的库并将其安装在上面的库目录中,

sudo python setup.py install

另外,我们需要安装python镜像库,如下所示,

sudo apt-get install python-imaging

一旦添加了库,我们就可以通过执行保存在examples库文件夹中的现有示例来测试诺基亚LCD与Raspberry Pi的连接。

在这里,我们将创建一个小型python程序,我们将在其中显示文本,图像和飞鸟动画。此python程序文件以及示例图像保存在附件中提供的库的“example”文件夹中。

注意:在Nokia5110显示屏上显示图像时,我们必须为程序提供图像。此图像应为显示尺寸(此处为84×48)。如果我们提供其他分辨率的图像,它将给出错误。

Python程序

'''
	Nokia5110 LCD Display Interface with Raspberry Pi
	https://www.qutaojiao.com
'''
import time
import Adafruit_Nokia_LCD as LCD
import Adafruit_GPIO.SPI as SPI

from PIL import ImageDraw
from PIL import Image
from PIL import ImageFont


# Raspberry Pi hardware SPI config:
DC = 23
RST = 24
SPI_PORT = 0
SPI_DEVICE = 0


# Hardware SPI usage:
disp = LCD.PCD8544(DC, RST, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=4000000))

# Initialize library.
disp.begin(contrast=40)

# Clear display.
disp.clear()
disp.display()

font = ImageFont.load_default()

# Load image and convert to 1 bit color.
image = Image.new('1', (LCD.LCDWIDTH, LCD.LCDHEIGHT))
draw = ImageDraw.Draw(image)
draw.rectangle((0,0,LCD.LCDWIDTH,LCD.LCDHEIGHT), outline=255, fill=255)
draw.text((3,24), 'Welcome to EW', font=font)

#Display Image
disp.image(image)
disp.display()
time.sleep(1.0)

image = Image.open('pi_logo.png').convert('1')

# Display image.
disp.image(image)
disp.display()
time.sleep(0.5)

print('Press Ctrl-C to quit.')
while True:
#Create animation of Flying Bird
    image2 = Image.open('bird_1.png').convert('1')
    # Display image.
    disp.image(image2)
    disp.display()
    time.sleep(0.1)
    image2 = Image.open('bird_2.png').convert('1')
    # Display image.
    disp.image(image2)
    disp.display()
    time.sleep(0.1)

    image2 = Image.open('bird_3.png').convert('1')
    # Display image.
    disp.image(image2)
    disp.display()
    time.sleep(0.1)

    image2 = Image.open('bird_4.png').convert('1')
    # Display image.
    disp.image(image2)
    disp.display()
    time.sleep(0.1)

    image2 = Image.open('bird_5.png').convert('1')
    # Display image.
    disp.image(image2)
    disp.display()

    image2 = Image.open('bird_4.png').convert('1')
    # Display image.
    disp.image(image2)
    disp.display()
    time.sleep(0.1)

    image2 = Image.open('bird_3.png').convert('1')
    # Display image.
    disp.image(image2)
    disp.display()
    time.sleep(0.1)

    image2 = Image.open('bird_2.png').convert('1')
    # Display image.
    disp.image(image2)
    disp.display()    
    time.sleep(0.1)

本教程完整程序下载:

限制以下用户组阅读此隐藏内容

请先登录

您的用户组:
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论