- Hardware necessário:
- Conhecendo os monitores OLED:
- Diagrama de circuito:
- Conectando OLED com Raspberry Pi:
- Explicação de programação:
A maioria de nós estaria familiarizada com o display LCD de matriz de pontos de 16 × 2 que é usado na maioria dos projetos para exibir algumas informações ao usuário. Mas esses monitores LCD têm muitas limitações. Neste tutorial, aprenderemos sobre a tela OLED e como usá-la com o Raspberry Pi. Existem muitos tipos de visores OLED disponíveis no mercado e muitas maneiras de fazê-los funcionar. Já usamos 7 pinos OLED com Arduino.
Hardware necessário:
- Módulo de exibição OLED de 128 × 64 (SSD1306)
- Raspberry Pi
- Tábua de pão
- Fios de conexão
- Fonte de energia
Conhecendo os monitores OLED:
O termo OLED significa “ diodo emissor de luz orgânico”, ele usa a mesma tecnologia que é usada na maioria de nossas televisões, mas tem menos pixels em comparação a eles. É muito divertido ter esses módulos de exibição legais em interface com o Raspberry Pi, pois isso fará com que nossos projetos pareçam legais. Abordamos um artigo completo sobre monitores OLED e seus tipos aqui. Aqui, estamos usando um display OLED SSD1306 monocromático de 4 pinos de 0,96 ”. Este LCD só funciona com o modo I2C.
Abaixo estão as conexões de OLED com Raspberry pi:
Pin OLED | PIN RPI |
VCC | 3,3v |
GND | GND |
SDA | SDA (físico pino 3) |
SCL | SCL (pino físico 5) |
Diagrama de circuito:
Conectando OLED com Raspberry Pi:
A comunidade RPI já nos forneceu muitas bibliotecas que podem ser usadas diretamente para tornar isso muito mais simples. Experimentei algumas bibliotecas e descobri que a biblioteca OLED Adafruit_SSD1306 era muito fácil de usar e tem um punhado de opções gráficas, portanto, usaremos as mesmas neste tutorial.
Etapa 1: Habilite a comunicação I2C
Antes de instalar a biblioteca Adafruit SSD1306, precisamos habilitar a comunicação I2C no Raspberry Pi.
Para fazer isso, digite no console do Raspberry Pi:
sudo raspi -config
E então uma tela azul aparecerá. Agora selecione a opção de interface
Depois disso, precisamos selecionar I2C
Depois disso, precisamos selecionar sim e pressionar enter e então ok
Depois disso, precisamos reiniciar o Raspberry Pi, emitindo o comando abaixo:
reinicialização sodo
Etapa 2: Encontre o endereço I2C OLED e atualize-o
Em seguida, precisamos encontrar o endereço I2C OLED usando o comando fornecido e você verá um endereço hexadecimal.
sudo i2cdetect –y 1
Em seguida, atualize o Raspberry Pi usando o comando fornecido:
sudo apt-get update
Etapa 3: instale o python-pip e a biblioteca GPIO
Depois disso, precisamos instalar o pip usando o comando fornecido:
sudo apt-get install build-essential python-dev python-pip
E instale a biblioteca Raspberry Pi GPIO
sudo pip instala RPi.GPIO
Etapa 4: Instale a biblioteca de imagens Python e a biblioteca smbus
Finalmente, precisamos instalar a biblioteca de imagens Python e a biblioteca smbus no Raspberry Pi usando o comando fornecido:
sudo apt-get install python-imaging python-smbus
Etapa 5: instalar a biblioteca python Adafruit SSD1306
Agora é hora de instalar o código da biblioteca python Adafruit SSD1306 e exemplos usando os comandos fornecidos:
sudo apt-get install git git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git cd Adafruit_Python_SSD1306 sudo python setup.py install
Agora o usuário pode encontrar o código de interface OLED no Raspberry Pi e você pode jogar diretamente ou personalizá-lo você mesmo. Aqui, personalizamos um código de exemplo para demonstração. Você pode encontrar o código Python completo no final do artigo.
Explicação de programação:
A parte de programação para a interface do OLED com o projeto RPi é fácil. primeiro, precisamos importar algumas bibliotecas necessárias.
import time import Adafruit_GPIO.SPI as SPI import Adafruit_SSD1306 from PIL import Image from PIL import ImageDraw from PIL import ImageFont import subprocess
Depois disso, inicialize o display
RST = 0 disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST) disp.begin () disp.clear () disp.display () largura = disp.width altura = disp.height imagem1 = Image.new ('1', (largura, altura)) draw = ImageDraw.Draw (image1) draw.rectangle ((0,0, largura, altura), contorno = 0, preenchimento = 0) preenchimento = -2 superior = preenchimento inferior = preenchimento de altura x = 0 fonte = ImageFont.load_default () Depois disso, podemos enviar dados ou imagem para OLED usando o código fornecido
# Escreva duas linhas de texto. disp.clear () disp.display () draw.text ((x, top), "OLED Interfacing", font = font, fill = 255) draw.text ((x, top + 8), "Circuit Digest", font = font, fill = 255) draw.text ((x, top + 16), "Para mais vídeos", font = font, fill = 255) draw.text ((x, top + 25), "Visite em", fonte = fonte, preenchimento = 255) draw.text ((x, topo + 34), "www.circuitdigest.com", fonte = fonte, preenchimento = 255) # Exibir imagem. disp.image (image1) disp.display () time.sleep (2) if disp.height == 64: imagem = Image.open ('img1.png'). convert ('1') else: imagem = Imagem. open ('img1.png'). convert ('1') disp.image (imagem) disp.display () time.sleep (2) se disp.height == 64: image = Image.open ('img3.jpg'). convert ('1') else: image = Image.open ('img3.jpg'). convert ('1')
Este OLED vem em duas variantes, uma é 128 * 32 e outra é 128 * 64 para que o usuário possa selecionar qualquer um de acordo ao inicializar o OLED. Aqui, escrevemos este código para ambos. O usuário só precisa inicializar o OLED para 128 * 64 pixels como:
disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST)
Todo o código e funções são fáceis de entender e nenhuma explicação adicional é necessária. Basta começar e experimentar brincar com altura, largura e imagens e experimentar algumas outras funções para criar algumas figuras geométricas mais legais.
O código python completo e o vídeo de demonstração são fornecidos abaixo e aqui você encontra as imagens que usamos neste programa.
Verifique também a interface OLED com Arduino.