O Display Nokia 5110 é um display LCD com excelente relação custo/benefício, pois é um display gráfico com resolução de 84 x 48 pixels onde você pode mostrar imagens e textos, além de ser muito fácil de utilizar com Arduino. Neste post, vamos mostrar como você pode usar o display Nokia 5110 com Raspberry Pi.
O display LCD Nokia 5110
O display que vamos usar é este mostrado na imagem abaixo, na cor vermelha, e que funciona com tensão de 3.3V. Os pinos de sinal podem ser usados tanto em dispositivos como Arduino (nível de sinal de 5V) como com Raspberry Pi, onde o nível de sinal é de 3.3V.
Veremos logo a seguir que a conexão do display Nokia 5110 com Raspberry Pi é feita por meio da interface SPI, que vamos habilitar no passo abaixo.
Habilitando a interface SPI no Raspberry Pi
Para habilitar a interface SPI no Raspberry Pi, vamos usar o raspi-config:
sudo raspi-config
Será apresentada a tela abaixo, onde você deve navegar até a opção 5 – Interface Options:
Na tela de configuração de interface, selecione a opção P4 – SPI, habilitando a interface.
Reinicie a Raspberry Pi.
Conectando o display Nokia 5110 com Raspberry Pi
Conecte o display na placa Raspberry Pi (estou usando uma placa Raspberry Pi 3, mas você pode usar outras placas da linha Raspberry) seguindo o esquema abaixo, que mostra a relação entre os pinos do display e a interface SPI do Raspberry:
Pinos Display Nokia 5110 | Pinos RPi | ||
---|---|---|---|
# | Função | # | GPIO |
1 | RST | 18 | GPIO24 |
2 | CE | 24 | GPIO8 – SPI_CE0 |
3 | DC | 16 | GPIO23 |
4 | DIN | 19 | GPIO10 – SPI_MOSI |
5 | CLK | 23 | GPIO11 – SPI_SCLK |
6 | VCC | 1 | 3.3V |
7 | LIGHT | 6 | GND |
8 | GND | 6 | GND |
Nosso circuito fica assim:
Repare no pino LIGHT do display Nokia 5110, que deve ser conectado ao negativo para funcionar, ok?
Biblioteca Adafruit display Nokia 5110
Para utilizar a biblioteca da Adafruit, vamos primeiro instalar alguns pacotes para o seu correto funcionamento. Abra uma janela de terminal e digite os comandos abaixo:
sudo apt-get install python-pip python-dev build-essential sudo pip install RPi.GPIO
Instale também a Python Imaging Library usando o comando a seguir:
sudo apt-get install python-imaging
Finalmente, instale a biblioteca:
sudo apt-get install git git clone https://github.com/adafruit/Adafruit_Nokia_LCD.git cd Adafruit_Nokia_LCD sudo python setup.py install
Pronto. Para testar o display Nokia 5110 com Raspberry Pi, entre na pasta EXAMPLES e você encontrará arquivos de exemplo como o animate.py, image.py e shapes.py. Para rodar esses programas, utilize o comando de exemplo abaixo:
sudo python shapes.py
Utilize o mesmo comando para os outros programas existentes na pasta.
Dica extra
A imagem de capa deste post foi feita utilizando a fonte baby blocks.ttf, que eu baixei deste site aqui.
Coloque o arquivo em formato ttf na mesma pasta do programa abaixo:
#Programa: Teste Display Nokia 5110 com Raspberry Pi #Autor: Arduino e Cia # #Baseado no exemplo da biblioteca Adafruit Nokia LCD import time import Adafruit_Nokia_LCD as LCD import Adafruit_GPIO.SPI as SPI from PIL import Image from PIL import ImageDraw from PIL import ImageFont #Configuracao SPI Raspberry Pi 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)) #Inicializa a biblioteca e define o contraste disp.begin(contrast=40) #Apaga o display disp.clear() disp.display() image = Image.new('1', (LCD.LCDWIDTH, LCD.LCDHEIGHT)) draw = ImageDraw.Draw(image) #Desenha um quadrado branco para apagar a tela draw.rectangle((0,0,LCD.LCDWIDTH,LCD.LCDHEIGHT), outline=255, fill=255) #Linhas superior e inferior draw.line((0,0,83,0), fill=0) draw.line((0,47,83,47), fill=0) #Define a fonte do texto font = ImageFont.truetype('baby blocks.ttf', 11) #Mostra o texto na tela na coordenada especificada draw.text((0,2), 'ARDUINO', font=font) draw.text((36,17), 'E', font=font) draw.text((24,32), 'CIA', font=font) #Display image. disp.image(image) disp.display() print('Press Ctrl-C to quit.') while True: time.sleep(1.0)
Defina a fonte do texto na linha 43, colocando o nome do arquivo (no caso, baby blocks.ttf), e em seguida o tamanho desejado (no programa, utilizamos o tamanho 11).