Interface Gráfica com Raspberry Pi 3

Aqui no blog já mostramos como obter dados de sensores no Raspberry Pi e exibir essas informações no Python Shell. Hoje vamos mostrar como criar uma interface gráfica com tela touch que vai ativar um led RGB e também receber dados de um sensor infravermelho:

Interface Gráfica Raspberry Pi

 Vamos criar a interface da imagem acima, com três botões que vão acionar as cores Vermelha (R – Red), Verde (G – Green) e Azul (B – Blue) do led RGB. Na parte inferior, temos um retângulo que exibe o aviso de ATIVADO quando alguém ou algum objeto for detectado pelo sensor infravermelho.

Circuito Raspberry Pi

Para esse teste vamos usar o display touch 3.5″ (que você aprendeu a instalar no post Como conectar o display LCD TFT 3.5″ no Raspberry Pi), mais o led e o sensor IR. Temos então a seguinte lista de material:

Antes de encaixar o display no Raspberry, conecte o led RGB e o sensor infravermelho seguindo o esquema de ligação abaixo. Utilizamos um único resistor no anodo do led, mas você tem a opção de ligar um resistor em cada um dos catodos, já que as 3 cores tem características elétricas diferentes:

Circuito Raspberry Led RGB Sensor IR

Repare que estamos utilizando os pinos Vcc do sensor (fio vermelho) e o anodo do led RGB conectados diretamente na GPIO do Raspberry para evitar o uso de uma fonte externa no circuito.

Assim, vamos ativar o pino 35 para o sensor IR e o pino 32 para o anodo do led, gerando assim o “Vcc” que precisamos. Isso na maioria das vezes não é indicado pois pode sobrecarregar as portas do Raspberry, mas nesse circuito não tivemos nenhum problema. Na dúvida, utilize alimentação externa.

Criando a interface gráfica com o Python e Tkinter

Tkinter é o nome de um módulo Python que permite que a criação de interfaces gráficas (GUI). Com ela vamos criar uma janela com os botões e mensagens de aviso. O Tkinter por padrão já vem embutido no Raspbian, não sendo necessário efetuar nenhum tipo de download.

No Raspbian, abra o IDLE3, clique em File -> New Window, e na nova janela copie/digite o seguinte programa:

O programa tem uma seção createDisplay(), onde criamos a janela, os botões dos leds (com o comando canvas.create_retangle()), texto (canvas.create_text()), botão sair (Button()), etc. Também definimos ali as rotinas que serão chamadas quando um botão for acionado (onObjectClick1 para o botão 1, onObjectclick2 para o 2 e onObjectClick3 para o 3).

Uma rotina chamada checkPort() é executada a cada 100 ms, monitorando o pino 37 , de ligação com o sensor IR. Caso o sensor seja acionado, a mensagem ATIVADO é exibida no display. Caso contrário, é mostrada a mensagem Sensor IR.

Gostou? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo) e visite nossa loja FILIPEFLOP!

Posts Relacionados

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

3 Comentários

  1. bom dia,
    ADILSON THOMSEN, primeiro quero parabenizar pelos tutoriais feitos neste maravilhoso site.
    fiz esta ihm (GUI) com o tkinter, mas agora eu gostaria de executar-la automaticamente, igual quando fazemos no windows colocar um programa na opção inicializar.
    conseguimos fazer isto no rspbian com esta IHM?
    desde já obrigado.

  2. O Tkinter não vem embutido apenas no Raspbian, ele vem embutido na instalação do Python.

  3. Olá bom dia. gostei muito do video. vou tentar fazer aqui.
    Outra coisa. Comprei o meu raspberry a pouco tempo e estou querendo saber se existe algum comando para alternar entre o display port e o HDMI sem precisar digitar todo aquele comando.

    abraços