Curso Raspberry Pi – #13 – PWM, Entradas, Scripts com uma Câmara

Anteriormente falamos dos fundamentos do GPIO e dos primeiros scripts. Desta vez, vamos testar a geração de sinal PWM na prática. Também usaremos pinos como entradas do nosso sistema. No final, escreva um script que conecte o GPIO e uma câmara. Graças a isso, vamos substituir o Raspberry Pi por uma câmara.

 

Simulação de semáforos no Raspberry Pi

É hora de um breve replay da última parte do curso. Quem é que tentou escrever um script que simulará o funcionamento dos semáforos?

Aqui está a nossa versão desta tarefa. Os díodos foram conectados por resistências de 1,2k Ω aos seguintes pinos: 16 (vermelho), 20 (amarelo) e 21 (verde). O diagrama de fiação foi muito simples:

Na prática, o layout era o seguinte:

No início, configure 3 pinos como saídas e, em seguida, no loop, acendemos ou apagamos díodos individuais:

#!/bin/bash
 
gpio -g mode 16 out
gpio -g mode 20 out
gpio -g mode 21 out
 
while true
do
   gpio -g write 16 1
   gpio -g write 20 0
   gpio -g write 21 0
   sleep 1
   gpio -g write 20 1
   sleep 1
   gpio -g write 16 0
   gpio -g write 20 0
   gpio -g write 21 1
   sleep 1
   gpio -g write 20 1
   gpio -g write 21 0
   sleep 1
   gpio -g write 16 1
   gpio -g write 20 0
   sleep 1
done

Como resultado, recebemos um dispositivo de sinalização simples que exibe alternadamente as combinações individuais:

É hora de mudar para algo novo!

Geração de sinal PWM em Raspberry Pi

O Raspberry pode gerar o sinal PWM , que é usado com mais frequência para alterar o brilho dos LEDs (incluindo faixas de LED). Também é útil quando quer controlar a velocidade dos motores.

No nosso caso, será mais fácil começar com um díodo emissor de luz. Vamos conectá-lo através de uma resistência de 1,2kΩ para fixar o número 12, de acordo com o seguinte diagrama:

De seguida, emitimos o seguinte comando, que irá configurar o pino. O comando pode ser inserido diretamente no terminal ou num script (como fizemos na  parte anterior do curso).

gpio -g mode 12 pwm

Anteriormente, usamos a palavra-chave write para alterar o estado do pin, desta vez seria pwm. Além do número de pinos, também devemos especificar um parâmetro que especificará o preenchimento do sinal PWM. Este parâmetro assume valores no intervalo 0-1024, em que 1024 significa 100% de preenchimento.

Por exemplo, para que o díodo brilhe com brilho total, emitiremos o comando:

gpio -g pwm 12 1024

Para desativá-lo, digite:

gpio -g pwm 12 0

Se o argumento for um número diferente (por exemplo, 800), o LED acenderá com menos brilho. É melhor experimentar aqui testando alguns valores diferentes, por exemplo, 300, 400, 800.

 

 

 

 

 

Num momento nós usaremos o mecanismo de interrupção na prática – então tudo será explicado.

Raspberry Pi como uma câmera

Nós já sabemos como escrever scripts e controlar portas GPIO. É hora de usá-lo para construir algo prático. Vamos tornar um Raspberry numa câmara.

Ele será adicionalmente equipado com um botão, um díodo e uma campainha. A foto será tirada após pressionar o botão, e os elementos restantes sinalizarão (com luz e som) o estado da câmara. Graças a isso todos poderão tirar uma foto com um Raspberry.

Adicionamos um módulo de campainha ao sistema previamente montado e conectamos uma câmara ao Raspberry Pi. Os pinos atualmente usados ​​são:

  • pino número 21 – o módulo de campainha,
  • pino número 12 – diodo conectado através de um resistor de 1,2kΩ,
  • pino número 26 – botão.

Na prática, teremos que “domar” um pequeno emaranhado de cabos:

Vamos começar a escrever. No início, a configuração do GPIO é necessária. Conecte a campainha ao pino 21, o pino 12 controlará o díodo e, para fixar o número 26, conecte o botão:

# configuração de pinos
gpio -g mode 21 out #Buzzer
gpio -g mode 12 pwm #LED
gpio -g mode 26 up #Przycisk

De seguida, informa-mos (incluindo o LED) que a câmara está pronta e a aguardar que o botão seja pressionado. A saída à qual conectamos o díodo foi configurada como PWM, para que possamos controlar o brilho de nossa sirene. Quando o usuário pressiona o botão, o programa executa:

gpio -g pwm 12 800
gpio -g wfi 26 falling

Agora desligamos o díodo e ligamos a campainha que sinalizará tirar uma foto:

gpio -g pwm 12 0
gpio -g write 21 0

O próximo passo, mais importante, é tirar a foto . Para este propósito, usamos o conhecido programa raspistill. Como lembrete, uma linha é suficiente:

raspistill -t 200 -n -o 'zdjecie-%d.jpg' -dt

No final, desligue a campainha:

gpio -g write 21 1

Por fim, o script aparat.sh tem o formato:

#!/bin/sh
 

gpio -g mode 21 out #Buzzer
gpio -g mode 12 pwm #LED
gpio -g mode 26 up #Przycisk
 

gpio -g pwm 12 800
gpio -g wfi 26 falling
 

gpio -g pwm 12 0
gpio -g write 21 0
 

raspistill -t 200 -n -o 'zdjecie-%d.jpg' -dt
 

gpio -g write 21 1

No final, damos as permissões certas (discutimos os detalhes anteriormente):

chmod +x aparat.sh

Agora nós executamos a “câmara”:

./aparat.sh

Depois de iniciar o programa, um díodo acenderá para informar o usuário quando a câmara estiver pronta. Pressionando o botão irá desligar o díodo e iniciar a campainha. O som irá parar quando a foto for tirada. A operação do programa é mostrada graficamente na seguinte animação:

Podemos ver as fotos tiradas, por exemplo, pelo WinSCP:

Sumário

Durante este artigo, nós completamos informações sobre o uso do GPIO. Também criamos um script que combinava portas de E/S universais com outros periféricos (câmara). Os princípios descritos aqui são suficientes para criar muitos scripts úteis. Na parte posterior do curso, escrevemos programas Python simples. Graças a isso, o uso do GPIO será ainda mais fácil, especialmente quando quiser conectar periféricos mais complexos.

___________

O que achou deste artigo? Deixe o seu comentário abaixo, e partilhe nas Redes Sociais que certamente será útil e interessante para os seus amigos!

 

 

 Curso Raspberry Pi – #1 – Introdução, Índice

 Curso Raspberry Pi – #2 – O que é o Raspberry Pi?

Curso Raspberry Pi – #3 – Caixa, Dissipadores de Calor

 Curso Raspberry Pi – #4 – Instalação do Sistema, Raspberry Pi como PC 

 Curso Raspberry Pi – #5 – Instalação / Comunicação Via UART

 Curso Raspberry Pi – #6 – Instalação / Comunicação Através da Rede

 Curso Raspberry Pi – #7 – Acesso Remoto VNC, Chaves SCP, RSA

 Curso Raspberry Pi – #8 – O Básico do Linux

 Curso Raspberry Pi – #9 – Processadores de Texto

 Curso Raspberry Pi – #10 – Câmara, Fotos, Transmissão de Imagem

 Curso Raspberry Pi – #11 – Filmes, Slowmotion, Timelapse

 Curso Raspberry Pi – #12 – Noções Básicas sobre GPIO, Scripts

 Curso Raspberry Pi – #13 – PWM, Entradas, Scripts com uma Câmara

 Curso Raspberry Pi – #14 – Python Básico, GPIO