Introdução
Este artigo irá demonstrar como fazer um LED piscar, utilizando o microcomputador BananaPi e um script em Python, via SSH.
Sumário
- Etapas do Desenvolvimento
- Requisitos
- Sobre a BananaPi - BPI-M2 Zero
- Identificação de Pinos Disponíveis - GPIO
- Ligação de Circuito Elétrico
- Código em Python - Blink.py
- Conexão via SSH
- Vídeo Demonstrativo
- Referências
01. Etapas do Desenvolvimento
01. Identificar o pino de GPIO disponível para uso na BananaPi
02. Realizar a ligação do circuito elétrico
03. Desenvolver o código
04. Enviar o arquivo de código para a BananaPi
05. Executar o arquivo de código
02. Requisitos
- Configuração de conexão via SSH realizada na BananaPi
- Versão do Python 3.10 instalado na BananaPi
03. Sobre a BananaPi - BPI-M2 Zero
A BananaPi M2 Zero é um computador de placa única ultracompacto que mede apenas 60 mm x 30 mm. Ela usa um processador quad-core Cortex A7 allwinner H2+, com 512 MB de memória RAM. É ideal para sistemas leves com alguns aplicativos com espaço limitado. Como outros dispositivos da BananaPi, ele suporta os sistemas operacionais Linux e Android. [1]
Principais características
- CPU Quad Core ARM Cortex A7 H2+
- 512 MB de SDRAM.
- WiFi (AP6212) e Bluetooth integrados.
- Mini-HDMI.
A BananaPi que estou utilizando possui a distribuição Debian GNU/Linux.
04. Identificação de Pinos Disponíveis - GPIO
BananaPi - Documentação Técnica - Esquema Elétrico - GPIOs [3]
Os pinos disponíveis para entrada ou saída são identificados como "IO-xx".
Conforme recorte da documentação técnica mostrada acima, serão utilizados o pino físico 29 (GPIO 7) e o pino físico 6 (GND 3).
Utilizei o GPIO 7 porque os pinos GPIO 0 a GPIO 6 estão reservados para a UART.
GPIO = General Purpose Input/Output
05. Ligação de Circuito Elétrico
Foto em bancada - Circuito elétrico na protoboard
Software Fritzing - Circuito elétrico na protoboard [5]
O circuito elétrico mostrado na imagem acima, é composto dos seguintes itens:
- Fio Jumper Vermelho Macho-Fêmea
- Fio Jumper Marrom Macho-Fêmea
- Resistor 330 Ohms
- LED difuso 5mm Verde
Observação: A BananaPi foi inspirada no RaspberryPi Zero, por isso ambos tem formatos semelhantes. No software Fritzing, só existia o modelo do Raspberry.
06. Código em Python - Blink.py
import os | |
import time | |
# Henrique Otogami - 25/01/2025 | |
os.system('echo "bananapi - start blink"') | |
os.system('sudo echo 7 > /sys/class/gpio/export') | |
os.system('sudo echo out > /sys/class/gpio/gpio7/direction') | |
os.system('sudo cat /sys/class/gpio/gpio7/value') | |
os.system('sudo cat /sys/class/gpio/gpio7/direction') | |
for index in range(10): | |
os.system('sudo echo "bananapi - pisca 1"') | |
os.system('sudo echo 1 > /sys/class/gpio/gpio7/value') | |
time.sleep(3) | |
os.system('sudo echo "bananapi - pisca 2"') | |
os.system('sudo echo 0 > /sys/class/gpio/gpio7/value') | |
time.sleep(3) |
Gist - Código em Python para fazer o led piscar a cada 3 segundos [4]
O código mostrado acima foi desenvolvido em Python para executar os comandos de Shell Script na BananaPi. Esses comandos vão gerenciar o pino de GPIO que alimenta o LED, conforme essas etapas:
- Exportação do pino físico: 29 (GPIO 7)
$ sudo echo 7 > /sys/class/gpio/export
- Definição de direção do pino: saída (out)
$ sudo echo out > /sys/class/gpio/gpio7/direction
- Definição do valor de nível lógico: alto (1)
$ sudo echo 1 > /sys/class/gpio/gpio7/value
- Definição do valor de nível lógico: baixo (0)
$ sudo echo 0 > /sys/class/gpio/gpio7/value
- Consultar a direção do pino:
$ sudo cat /sys/class/gpio/gpio7/direction
- Consultar o valor do pino:
$ sudo cat /sys/class/gpio/gpio7/value
Observação: Considerei utilizar o comando sudo em todas as etapas para garantir que teria permissões de nível de administrador para gerenciar o pino do GPIO.
07. Conexão via SSH
Envio do arquivo Blink.py para a BananaPi
Para enviar o arquivo com o código em Python, basta utilizar o comando abaixo:
$ scp /Users/henriqueotogami/bananapi/blink.py pi@bananapi-zero.local:
A senha será requerida e, após ser inserida, o arquivo será enviado.
Envio com sucesso do arquivo Blink.py
Observação: o envio do arquivo deve ser feito antes do acesso a BananaPi via SSH. Se o login já tiver sido feito, será necessário realizar o logout para enviar o arquivo e o login logo em seguida.
Acesso a BananaPi
Para realizar o acesso remotamente da BananaPi, envie o seguinte comando:
$ ssh pi@bananapi-zero.local
A senha de login da BananaPi será requerida e, após ser inserida, o login será iniciado.
Login e senha na BananaPi via SSH
Para confirmar que o arquivo Blink.py está na BananaPi, após o login, envie o comando:
$ ls
Consulta da existência do arquivo Blink.py na BananaPi após o login via SSH
Execução do código via terminal
Para que o arquivo com o script em Python seja executado, utilize o seguinte comando:
$ python3 blink.py
Executando o arquivo com o script em Python no terminal
08. Vídeo demonstrativo
Apenas para demonstrar a execução do código e dos logs no terminal que foram descritos acima, segue vídeo abaixo apenas demonstrando o led piscando.
09. Referências
- [1] - BananaPi - Introdução
- [2] - BananaPi - Documentação
- [3] - BananaPi - Esquema Elétrico
- [4] - Gist - Blink.py - Script em Python
- [5] - Fritzing - Circuito Elétrico
Ficou alguma dúvida ou tem sugestões?
Comente aqui embaixo ou me chame em alguma das minhas redes.
Valeu! ✌🏻
Top comments (0)