Raspberry Pi: mudanças entre as edições
Linha 14: | Linha 14: | ||
É possível descobrir o '''endereço IP''' de seu '''Raspberry Pi''' sem conectar um monitor usando diversos métodos<ref name=remote-access>Raspberry Pi Documentation: Remote Access https://www.raspberrypi.org/documentation/remote-access/</ref>: | É possível descobrir o '''endereço IP''' de seu '''Raspberry Pi''' sem conectar um monitor usando diversos métodos<ref name=remote-access>Raspberry Pi Documentation: Remote Access https://www.raspberrypi.org/documentation/remote-access/</ref>: | ||
;Lista dos dispositivos conectados ao roteador: A partir de um '''navegador''' é possível acessar a configuração do seu '''roteador''' navegando no endereço | ;Lista dos dispositivos conectados ao roteador: A partir de um '''navegador''' é possível acessar a configuração do seu '''roteador''' navegando no endereço '''192.168.1.1''', geralmente utilizado pelos roteadores caseiros. Usando as credenciais do administrador do equipamento, pode-se acessar a lista dos dispositivos conectados, geralmente apresentadas na listagem do DHCP. | ||
;Resolvendo o nome <code>raspberrypi.local</code> com mDNS: Se seu dispositivo suporta '''mDNS''', você pode descobrir o '''endereço IP''' de seu Raspberry Pi usando o comando: | ;Resolvendo o nome <code>raspberrypi.local</code> com mDNS: Se seu dispositivo suporta '''mDNS''', você pode descobrir o '''endereço IP''' de seu Raspberry Pi usando o comando: |
Edição das 16h50min de 11 de fevereiro de 2022
Raspberry Pi 4 Model B
- Página Oficial
- Instalação
- 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.
Descobrindo a Configuração de Rede
É possível descobrir o endereço IP de seu Raspberry Pi sem conectar um monitor usando diversos métodos[1]:
- Lista dos dispositivos conectados ao roteador
- A partir de um navegador é possível acessar a configuração do seu roteador navegando no endereço 192.168.1.1, geralmente utilizado pelos roteadores caseiros. Usando as credenciais do administrador do equipamento, pode-se acessar a lista dos dispositivos conectados, geralmente apresentadas na listagem do DHCP.
- Resolvendo o nome
raspberrypi.local
com mDNS - Se seu dispositivo suporta mDNS, você pode descobrir o endereço IP de seu Raspberry Pi usando o comando:
ping raspberrypi.local
- Comando nmap
- O comando nmap (Network Mapper) é uma ferramenta para descobrir redes disponível para Linux, macOS e Windows.
Para Linux pode ser instalada com:
apt install nmap
Para descobrir os dispositivos conectados em sua rede local, utilizar o identificador da rede e a máscara de rede:
nmap -sn 192.168.1.0/24
- Android e aplicativo Fing
- O aplicativo Fing, disponível para Android, permite descobrir os dispositivos conectados a mesma rede local do smartphone.
Acesso Remoto
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:
Bridge com Raspberry Pi Wifi para Ethernet
Permite ao Raspberry Pi conectado a uma rede WiFi funcionar como bridge para um dispositivo conectado a sua porta Ethernet [2].
Pinagem GPIO
- Comando via terminal:
pi@raspberrypi:~ $ pinout
Acesso aos drives GPIO pelo terminal
- Exemplo de acionamento de led [3]
- 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 [4].
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
- O parâmetro -g indica numeração dos pinos BCM_GPIO (na caso de -i indica numeração física dos pinos).
- Piscar led
gpio -g blink 17
- Script para piscar led [3]
- 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 ler 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
Entradas analógicas
O Raspberry Pi não possui pinos para entradas analógicas, para tal é necessário especificar um módulo externo e o parâmetro -x.
Exemplos:
gpio -x mcp3002:200:0 aread 200 # Módulo ADC mcp3002 gpio -x mcp4802:200:0 awrite 200 128 # Módulo DAC mcp4802
Exemplos conexão de módulos externos ADC [5] e DAC [6] ao Raspberry Pi.
Programação Python para controle GPIO
Biblioteca RPi.GPIO
A biblioteca RPi.GPIO [7] é um módulo de controle para as portas GPIO do Raspberry Pi. Entretanto, está biblioteca não é apropriada para aplicações tempo real ou com restrições temporais, pois roda sobre o kernel Linux, o qual não apropriado para aplicações tempo real. A versão atual desta biblioteca não suporta SPI, I2C, hardware PWM ou interface serial.
- Procedimentos para uso
- Verificar se a biblioteca rpi.gpio está instalada:
apt list --installed | grep rpi.gpio
- Importar biblioteca no interpretador ou código Python:
import RPi.GPIO as GPIO # Importa o módulo RPi.GPIO e usa localmente o nome GPIO para referenciá-lo.
- Programa para piscar led
Código Python [8]:
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("Led ON")
sleep(1)
GPIO.output(17, GPIO.LOW)
print("Led OFF")
sleep(1)
- Programa para ler chave pull-up e acionar led
- Chave conectada ao pino 18 (entrada pull-up) e led ao pino 17 (saída).
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(17, GPIO.OUT)
while True:
if GPIO.input(18):
print("Led ON")
GPIO.output(17, 1)
else:
print("Led OFF")
GPIO.output(17, 0)
sleep(0.1)
Biblioteca Gpio Zero
A biblioteca Gpio Zero [9] é uma interface GPIO para uso com o Raspberry Pi. Esta biblioteca é instalada por default no Raspberry Pi.
Exemplos[10]:
- Programa para piscar led
from gpiozero import LED
from time import sleep
led = LED(17)
while True:
led.on()
sleep(0.5)
led.off()
sleep(0.5)
- Programa para ler chave
from gpiozero import Button
from time import sleep
button = Button(2)
while True:
if button.is_pressed:
print("Pressed")
else:
print("Released")
sleep(1)
Biblioteca CircuitPython
A biblioteca CircuitPython, da Adafruit, é uma versão amigável e open source do Python, especialmente desenvolvida para microcontroladores e pequenos dispositivos [11].
O CircuitPython adiciona a parte de circuitos ao Python, permitindo que o Python converse com sensores, motores, Leds e outros dispositivos.
Esta biblioteca suporta I2C e SPI, os quais precisam ser habilitados.
Confira os procedimentos para instalação do CircuitPython e exemplos em [12].
- Piscar led
- Led conectado a saída GPIO 17.
import time
import board
import digitalio
print("hello blinky!")
led = digitalio.DigitalInOut(board.D17)
led.direction = digitalio.Direction.OUTPUT
while True:
led.value = True
time.sleep(0.5)
led.value = False
time.sleep(0.5)
- Chave digital
- Chave na entrada GPIO 18 e led na saída GPIO 17.
import time
import board
import digitalio
print("press the button!")
led = digitalio.DigitalInOut(board.D17)
led.direction = digitalio.Direction.OUTPUT
button = digitalio.DigitalInOut(board.D18)
button.direction = digitalio.Direction.INPUT
button.pull = digitalio.Pull.UP
while True:
led.value = not button.value # light when button is pressed!
Interação entre Raspberry Pi e Node-RED
Ver link: Node-RED
Raspberry Pico
Ver link: Raspberry Pico
Evandro.cantu (discussão) 09h03min de 23 de julho de 2020 (-03)
- ↑ Raspberry Pi Documentation: Remote Access https://www.raspberrypi.org/documentation/remote-access/
- ↑ https://willhaley.com/blog/raspberry-pi-wifi-ethernet-bridge/
- ↑ 3,0 3,1 https://www.electrofun.pt/blog/curso-raspberry-pi-12-nocoes-basicas-sobre-gpio-scripts/
- ↑ http://wiringpi.com/the-gpio-utility/
- ↑ https://www.raspberrypi.org/forums/viewtopic.php?f=37&t=123962
- ↑ https://www.raspberrypi.org/forums/viewtopic.php?t=124184
- ↑ https://pypi.org/project/RPi.GPIO/
- ↑ https://www.electrofun.pt/blog/curso-raspberry-pi-14-python-basico-gpio/
- ↑ https://gpiozero.readthedocs.io/en/stable/
- ↑ https://www.raspberrypi.org/documentation/usage/gpio/python/README.md
- ↑ https://circuitpython.readthedocs.io/en/5.3.x/README.html
- ↑ https://www.digikey.com/en/maker/projects/circuitpython-on-linux-and-raspberry-pi/2aac644c44f1418e987417b229a67c23?utm_adgroup=Adafruit&utm_source=google&utm_medium=cpc&utm_campaign=Dynamic%20Search_EN_Suppliers&utm_term=&utm_content=Adafruit&gclid=Cj0KCQjwg8n5BRCdARIsALxKb972kt1RhdKJR7h8JvQnJQtVGCfBbIZ0vAjN_GvyKyLOkDGq11ctO4kaAtNaEALw_wcB