- Componentes necessários
- Diagrama de circuito
- Fabricando PCB para Raspberry Pi RGB LCD HAT usando EasyEDA
- Cálculo e pedido de amostras de PCB online usando EasyEDA
- Configuração Raspberry Pi para LCD Hat
- Código Python para Raspberry Pi LCD HAT
- Testando o HAT LCD Raspberry Pi RGB
Os chapéus Raspberry Pi são iguais aos escudos do Arduino, eles podem caber diretamente na parte superior do Raspberry Pi e não requerem nenhuma conexão adicional. Aqui vamos construir um chapéu RGB LCD para Raspberry Pi no PCB. Este chapéu LCD consiste em um módulo LCD 16x2, cinco interruptores e três LEDs NeoPixel. Aqui, os interruptores são usados para alterar o texto na tela e os LEDs NeoPixel são usados como indicadores. Esses interruptores e Neo Pixels podem ser programados de acordo com os requisitos, como interruptores podem ser usados para exibir valores do sensor como temperatura, umidade, etc. e Neo pixels podem ser usados para exibir status como Vermelho para indicar algum erro e verde ao receber alguns dados.
Aqui, usaremos o software online EasyEDA para projetar o circuito e PCB para este Pi HAT, e JLCPCB para solicitar os PCBs.
Componentes necessários
- Raspberry Pi 4
- Módulo de exibição 16 * 2 LCD
- LEDs neo-pixel (3)
- Capacitores
- Chaves (5)
Diagrama de circuito
O diagrama de circuito completo para Raspberry Pi RGB LCD HAT é mostrado abaixo. O esquema foi desenhado usando EasyEDA. Como você pode ver, estamos conectando um módulo LCD 16x2, 3 LEDs NeoPixel e 5 switches com Raspberry Pi. Um conector também é usado para habilitar ou desabilitar os LEDs NeoPixel.
Fabricando PCB para Raspberry Pi RGB LCD HAT usando EasyEDA
Ao projetar a placa de circuito impresso para Raspberry Pi RGB LCD HAT, a parte mais desafiadora foi acertar a pegada. Se as dimensões estiverem erradas, os componentes não caberão no PCB. Mas, por sorte, EasyEDA fornece pegadas para quase todos os componentes do mercado. Isso ocorre por causa de sua vasta comunidade de usuários, onde os usuários criam pegadas e as disponibilizam para o público usá-las em seus projetos.
EasyEDA é uma ferramenta online de EDA que já usei várias vezes e achei muito conveniente de usar, pois tem uma boa coleção de pegadas e é de código aberto. Após projetar o PCB, podemos solicitar as amostras de PCB por seus serviços de fabricação de PCB de baixo custo - JLCPCB. Eles também oferecem serviços de fornecimento de componentes onde têm um grande estoque de componentes eletrônicos e os usuários podem solicitar seus componentes necessários junto com o pedido de PCB.
Ao projetar os circuitos e PCBs, você também pode tornar seus circuitos e projetos de PCB públicos para que outros usuários possam copiá-los ou editá-los e possam tirar proveito de seu trabalho. Também tornamos público o design deste Chapéu RGB LCD Pi, verifique o seguinte ligação:
- https://easyeda.com/CircuitDigest/Pi-RGB-LCD-HAT
Você pode visualizar qualquer camada (superior, inferior, superior, seda inferior, etc.) do PCB selecionando a camada da janela 'Camadas'. Além disso, eles também fornecem uma visão do modelo 3D do PCB sobre como ele ficaria após a fabricação. O instantâneo da camada superior e da camada inferior do HAT LCD seria mais ou menos assim:
Cálculo e pedido de amostras de PCB online usando EasyEDA
Depois de concluir o design deste PI RGB LCD HAT, você pode solicitar o PCB em JLCPCB.com. Para solicitar o PCB do JLCPCB, você precisa do Arquivo Gerber. Você pode baixar o arquivo Gerber no link abaixo:
- Arquivo Gerber para Raspberry Pi RGB LCD Hat
Para gerar os arquivos Gerber do PCB, basta clicar no botão Gerar Arquivo de Fabricação na página do editor EasyEDA, fazer o download do arquivo Gerber de lá, ou clicar em Pedido no JLCPCB como mostrado na imagem abaixo. Isso o redirecionará para JLCPCB.com, onde você pode selecionar o número de PCBs a serem solicitados, quantas camadas de cobre você precisa, espessura do PCB, peso do cobre, cor do PCB e outros parâmetros do PCB, como o instantâneo mostrado abaixo:
Depois de clicar no botão ' Pedido no JLCPCB' , você será levado ao site do JLCPCB, onde poderá solicitar o PCB por uma taxa muito baixa, que é $ 2. Seu tempo de construção também é muito menor, que é de 48 horas com entrega DHL de 3-5 dias. Você receberá seus PCBs em uma semana após o pedido.
Depois de fazer o pedido do PCB, você pode verificar o andamento da produção do seu PCB com data e hora. Você pode verificar indo na página da conta e clicando no link "Progresso da produção" sob o PCB como mostrado na imagem abaixo.
Após alguns dias encomendando PCBs, recebi as amostras de PCB em uma embalagem excelente, conforme mostrado nas fotos abaixo.
Depois de se certificar de que as pegadas e pegadas estavam corretas. Prossegui com a montagem do PCB. A placa completamente soldada se parece com o seguinte:
Configuração Raspberry Pi para LCD Hat
Antes de iniciar a programação do Raspberry Pi, primeiro atualize o Raspberry Pi e instale algumas bibliotecas necessárias. Execute os comandos abaixo para atualizar e atualizar o Raspberry Pi:
sudo apt-get update sudo apt-get upgrade
Agora instale a biblioteca Adafruit_Blinka para LEDs NeoPixel. A biblioteca Adafruit_Blinka fornece suporte a CircuitPython em Python.
sudo pip3 install adafruit-circuitpython-neopixel
Depois disso, instale a biblioteca Adafruit_CharLCD para o módulo LCD. Esta biblioteca é para placas LCD Adafruit, mas também funciona com placas LCD de outras marcas.
sudo pip3 install Adafruit-CharLCD
Código Python para Raspberry Pi LCD HAT
Aqui, estamos demonstrando o chapéu RGB LCD para Raspberry Pi usando alguns interruptores para mostrar alguns valores específicos no módulo LCD e LEDs RGB como indicadores. Portanto, temos que programar o Raspberry Pi de forma que quando pressionamos um botão, ele deve mostrar alguns valores de sensor ou outros valores.
O código Python completo é fornecido no final da página. Aqui estamos explicando o código passo a passo.
Inicie o código importando todas as bibliotecas necessárias.
import RPi.GPIO as GPIO import neopixel import time import board import Adafruit_CharLCD as LCD
Depois disso, defina todos os pinos GPIO onde o LCD e outras chaves estão conectadas.
lcd_rs = 7 lcd_en = 8 lcd_d4 = 25 lcd_d5 = 24 lcd_d6 = 23 lcd_d7 = 18 lcd_backlight = 2 sw0 = 5 sw2 = 13 sw3 = 19 sw4 = 26
Agora, defina o modo GPIO usando o modo BCM. Você também pode alterá-lo para BOARD. Em seguida, defina todos os pinos do switch como entradas.
GPIO.setmode (GPIO.BCM) # Use números GPIO BCM GPIO.setup (sw0, GPIO.IN) GPIO.setup (sw2, GPIO.IN) GPIO.setup (sw3, GPIO.IN) GPIO.setup (sw4, GPIO.DENTRO)
Depois disso, defina o pino GPIO onde os LEDs Neo Pixel estão conectados. Em seguida, defina o número de LEDs Neo Pixel. Aqui são usados três LEDs, você pode alterá-los de acordo com suas necessidades.
pixel_pin = board.D21 num_pixels = 3
Agora, dentro da função lcddisplay () , atribua uma tarefa específica a cada switch. Por exemplo, aqui quando o primeiro botão é pressionado, o Raspberry Pi deve exibir 'PARA CIMA' no LCD, e quando o segundo botão é pressionado, ele deve exibir 'BAIXO' no LCD e assim por diante para os outros dois botões.
Em vez de imprimir algo em um LCD, você pode usar esses interruptores para realizar uma tarefa diferente. Por exemplo, você pode usar a chave 1 para exibir o valor de Temperatura, a chave 2 para exibir os valores de Umidade e a chave 3 para exibir os valores de Pressão, etc.
def lcddisplay (): if (GPIO.input (sw0) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('UP') if (GPIO.input (sw2) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('DOWN') if (GPIO.input (sw3) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('LEFT') if (GPIO.input (sw4) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('RIGHT')
Agora dentro do loop while true , a função pixels.fill é usada para iluminar os Neo Pixels em cores diferentes. Portanto, o Pi está programado para iluminar os Neo Pixels com as cores Vermelho, Verde e Azul por um segundo cada.
Você também pode usar esses Neo Pixels como indicadores. Por exemplo, você pode acender um Neo Pixel com a cor vermelha para indicar que o Pi está conectado à fonte de alimentação ou pode usar outros LEDs para indicar que o Pi está recebendo ou enviando os dados, etc.
pixels.fill ((255, 0, 0)) pixels.show () time.sleep (1) pixels.fill ((0, 255, 0)) pixels.show () time.sleep (1) pixels.fill ((0, 0, 255)) pixels.show () time.sleep (1) rainbow_cycle (0,001)
Testando o HAT LCD Raspberry Pi RGB
Depois de montar o LCD e fazer a interface com Raspberry Pi, estamos prontos para usar este PI RGB HAT LCD. Para isso, execute o código python usando o comando abaixo.
python code_filename.py
Agora pressione os interruptores. Quando você pressiona o interruptor SW0, ele deve imprimir 'UP' no LCD. Para o switch SW2, deve imprimir 'Down' e o mesmo para o resto dos switches.
Um vídeo completo de trabalho junto com o código Python é fornecido abaixo.