Raspberry Pi: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 70: Linha 70:
  gpio -g write 17 1
  gpio -g write 17 1
  gpio -g write 17 0
  gpio -g write 17 0
;Piscar led:
gpio -g blink 17


;Script para piscar led <ref name=GPIO/>: Usar '''editor de textos''' e salvar como '''blink.sh'''
;Script para piscar led <ref name=GPIO/>: Usar '''editor de textos''' e salvar como '''blink.sh'''

Edição das 15h53min de 11 de agosto de 2020

Raspberry Pi 4 Model B

Página Oficial: https://www.raspberrypi.org/

Instalação:

Acesso remoto:

Pinagem GPIO:

Comando via terminal:
pi@raspberrypi:~ $ pinout
config.txt
Este arquivo de texto é usado pelo Raspberry Pi para obter as configurações do sistema, ao invés da BIOS que é normalmente usada por PCs. Deve ficar localizado na partição principal do cartão SD, junto com os arquivos bootcode.bin e start.elf. É acessível na localização /boot/config.txt e deve ser editado como root.
Instalação do monitor
Raspberry Pi Touch Screen 7‘’ Display 1024×600

Informações sobre configurações de vídeo do arquivo config.txt:

Link consulta utilizado:

Links sobre Raspberry Pi

Curso sobre Raspberry Pi

ELECTROFUN - Curso Raspberry Pi

Acesso aos drives gpio pelo terminal

Exemplo de acionamento de led [1]
Pino físico 21

Acesso aos drives de controle dos pinos GPIO e verificar se o pino está ativo

cd  /sys/class/gpio/
ls

Se não estiver ativo, ativar com o comando

echo 21 > /sys/class/gpio/export

Configurar o pino como saída (default entrada)

echo out > /sys/class/gpio/gpio21/direction

Acionar led com 0 (LOW) ou 1 (HIGH):

echo 1 > /sys/class/gpio/gpio21/value
echo 0 > /sys/class/gpio/gpio21/value

Desativar acesso ao pino:

echo 21 > /sys/class/gpio/unexport

Programa GPIO

O biblioteca WiringPi fornece comandos para acesso direto aos pinos GPIO do Raspberry Pi.

Para verificar a versão instalada:

gpio -v

Para atualizar a versão:

cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb

Ajuda para comandos:

man gpio

Verificação do estado atual dos pinos gpio:

gpio readall

Saídas digitais

Acionamento de led
Pino GPIO 17 (físico 11)
gpio -g mode 17 out
gpio -g write 17 1
gpio -g write 17 0
Piscar led
gpio -g blink 17
Script para piscar led [1]
Usar editor de textos e salvar como blink.sh
#!/bin/sh
gpio -g mode 17 out
while true
do
   gpio -g write 17 1
   sleep 1
   gpio -g write 17 0
   sleep 1
done

Dar permissão de execução:

chmod +x blink.sh

Saídas PWM

Uma saída PWM gera uma onda quadrada, com frequência constante, em que a fração de tempo em que o sinal é HIGH (3,3 V) pode variar entre 0 e 100% (duty cycle), fornecendo uma média de tensão variável na saída. O controle do duty cycle no Raspberry Pi usa 10 bits e pode ser variado de 0 a 1024.

No Raspberry Pi os pinos GPIO12, GPIO13, GPIO18 e GPIO19 aceitam saída PWM.

Controle da luminosidade de um led
Pino GPIO 18
gpio -g mode 18 pwm

Luminosidade máxima:

gpio -g pwm 18 1024

Luminosidade média:

gpio -g pwm 18 512

Luminosidade mínima:

gpio -g pwm 18 0

Entradas digitais

Um pino GPIO configurado como entrada digital pode ser valores HIGH (3V3) ou LOW (0V).

Também podem ser utilizados os resistores internos pull-up ou pull-down. Os pinos GPIO2 e GPIO3 tem resistores pull-up fixos, os demais podem ser configurados por software.

Exemplo chave eletrônica e uso de resistor pull-up interno
pino 26: Com a chave aberta o pino recebe HIGH através do resistor pull-up. Com a chave fechada o pino recebe LOW.

Configuração:

gpio -g mode 26 up

Leitura:

gpio -g read 26

Programação Python para controle GPIO

Programa para piscar led (Blink)
[2].

Verificar se a biblioteca rpi.gpio está instalada:

apt list --installed | grep rpi.gpio

Importar biblioteca no interpretador ou no código em Python:

import RPi.GPIO as GPIO

Uso da biblioteca time para implementar temporizações (delays):

from time import *

Código Python:

import RPi.GPIO as GPIO
from time import *
 
GPIO.setmode(GPIO.BCM)    # Numeração nomes GPIO 
#GPIO.setmode(GPIO.BOARD) # Numeração pinagem da placa
GPIO.setup(17, GPIO.OUT)
 
while True:
    GPIO.output(17, GPIO.HIGH)
    print("High")
    sleep(1)
    GPIO.output(17, GPIO.LOW)
    print("Low")
    sleep(1)

Interação entre Raspberry Pi e Node-RED

Ver link: Node-RED


Evandro.cantu (discussão) 09h03min de 23 de julho de 2020 (-03)