- Hardware requerido:
- Familiarización con las pantallas OLED:
- Diagrama de circuito:
- Conexión de OLED con Raspberry Pi:
- Explicación de programación:
La mayoría de nosotros estaría familiarizada con la pantalla LCD de matriz de puntos de 16 × 2 que se utiliza en la mayoría de los proyectos para mostrar cierta información al usuario. Pero estas pantallas LCD tienen muchas limitaciones. En este tutorial, aprenderemos sobre la pantalla OLED y cómo usarla con Raspberry Pi. Hay muchos tipos de pantallas OLED disponibles en el mercado y hay muchas formas de hacer que funcionen. Ya hemos utilizado OLED de 7 pines con Arduino.
Hardware requerido:
- Módulo de pantalla OLED de 128 × 64 (SSD1306)
- Frambuesa pi
- Tablero de circuitos
- Conexión de cables
- Fuente de alimentación
Familiarización con las pantallas OLED:
El término OLED significa " diodo emisor de luz orgánica" , utiliza la misma tecnología que se utiliza en la mayoría de nuestros televisores, pero tiene menos píxeles en comparación con ellos. Es muy divertido tener estos módulos de pantalla de aspecto atractivo para conectarse con la Raspberry Pi, ya que hará que nuestros proyectos se vean bien. Hemos cubierto un artículo completo sobre pantallas OLED y sus tipos aquí. Aquí, estamos usando una pantalla OLED monocromática de 4 pines SSD1306 de 0.96 ”. Esta pantalla LCD solo puede funcionar con el modo I2C.
A continuación se muestran las conexiones de OLED con Raspberry pi:
Pin OLED | Pin de RPI |
VCC | 3,3 V |
GND | GND |
SDA | SDA (pin físico 3) |
SCL | SCL (pin físico 5) |
Diagrama de circuito:
Conexión de OLED con Raspberry Pi:
La comunidad de RPI ya nos ha proporcionado muchas bibliotecas que se pueden usar directamente para hacer esto mucho más simple. Probé algunas bibliotecas y descubrí que la biblioteca OLED Adafruit_SSD1306 era muy fácil de usar y tiene un puñado de opciones gráficas, por lo tanto, usaremos las mismas en este tutorial.
Paso 1: habilite la comunicación I2C
Antes de instalar la biblioteca Adafruit SSD1306, debemos habilitar la comunicación I2C en Raspberry Pi.
Para hacer este tipo en la consola Raspberry Pi:
sudo raspi -config
Y luego aparecerá una pantalla azul. Ahora seleccione la opción de interfaz
Después de esto, necesitamos seleccionar I2C
Después de esto, debemos seleccionar sí y presionar enter y luego aceptar
Después de esto, necesitamos reiniciar raspberry pi emitiendo el siguiente comando:
reiniciar sodo
Paso 2: busque la dirección OLED I2C y actualícela
Luego, necesitamos encontrar la dirección OLED I2C usando el comando dado y verá una dirección hexadecimal.
sudo i2cdetect –y 1
Luego actualice Raspberry Pi usando el comando dado:
sudo apt-get update
Paso 3: instale python-pip y la biblioteca GPIO
Después de esto, necesitamos instalar pip usando el comando dado:
sudo apt-get install build-essential python-dev python-pip
E instale la biblioteca GPIO de Raspberry Pi
sudo pip instala RPi.GPIO
Paso 4: Instale la biblioteca de imágenes de Python y la biblioteca smbus
Finalmente, necesitamos instalar la biblioteca de imágenes de Python y la biblioteca smbus en Raspberry Pi usando el comando dado:
sudo apt-get install imagen de python python-smbus
Paso 5: instale la biblioteca de python Adafruit SSD1306
Ahora es el momento de instalar el código y los ejemplos de la biblioteca de Python Adafruit SSD1306 usando los comandos dados:
sudo apt-get install git git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git cd Adafruit_Python_SSD1306 sudo python setup.py install
Ahora el usuario puede encontrar el código de la interfaz OLED en Raspberry Pi y puede jugar directamente o personalizarlo usted mismo. Aquí hemos personalizado un código de ejemplo para demostración. Puede encontrar el código Python completo al final del artículo.
Explicación de programación:
La parte de programación para la interfaz OLED con el proyecto RPi es fácil. primero, necesitamos importar algunas bibliotecas necesarias.
importar tiempo importar Adafruit_GPIO.SPI como SPI importar Adafruit_SSD1306 desde PIL importar Imagen desde PIL importar ImageDraw desde PIL importar Subproceso de importación de ImageFont
Después de esto, inicialice la pantalla
RST = 0 disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST) disp.begin () disp.clear () disp.display () width = disp.width height = disp.height image1 = Image.new ('1', (width, altura)) dibujar = ImageDraw.Draw (imagen1) dibujar.rectangulo ((0,0, ancho, alto), contorno = 0, relleno = 0) relleno = -2 arriba = relleno abajo = alto relleno x = 0 fuente = ImageFont.load_default () Después de esto, podemos enviar datos o imágenes a OLED usando el código dado
# Escribe dos líneas de texto. disp.clear () disp.display () draw.text ((x, top), "Interfaz OLED", font = font, fill = 255) draw.text ((x, top + 8), "Circuit Digest", font = font, fill = 255) draw.text ((x, top + 16), "Para obtener más videos", font = font, fill = 255) draw.text ((x, top + 25), "Visitar en", font = font, fill = 255) draw.text ((x, top + 34), "www.circuitdigest.com", font = font, fill = 255) # Imagen de visualización. disp.image (image1) disp.display () time.sleep (2) if disp.height == 64: image = Image.open ('img1.png'). convert ('1') else: image = Imagen. open ('img1.png'). convert ('1') disp.image (imagen) disp.display () time.sleep (2) si disp.height == 64: image = Image.open ('img3.jpg'). convert ('1') else: image = Image.open ('img3.jpg'). convert ('1')
Este OLED viene en dos variantes, una es 128 * 32 y la otra es 128 * 64 para que el usuario pueda seleccionar a cualquiera en consecuencia mientras inicializa OLED. Aquí hemos escrito este código para ambos. El usuario solo necesita inicializar OLED para 128 * 64 píxeles como:
disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST)
Todo el código y las funciones son fáciles de entender y no se necesitan más explicaciones. Simplemente comience e intente jugar con la altura, el ancho y las imágenes y pruebe otras funciones para crear algunas figuras geométricas más geniales.
El código completo de Python y el video de demostración se muestran a continuación y aquí encontrará las imágenes que hemos utilizado en este programa.
También consulte Interfaz OLED con Arduino.