-
-
Notifications
You must be signed in to change notification settings - Fork 0
Desafio 01 ‐ Piscar um LED na BananaPi utilizando Python via SSH
Este desafio irá demonstrar como fazer um LED piscar, utilizando o microcomputador BananaPi e um script em Python, via SSH.
Como piscar um LED utilizando BananaPi e Python via SSH
Arquivos utilizados nesse repositó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
- Identificar o pino de GPIO disponível para uso na BananaPi
- Realizar a ligação do circuito elétrico
- Desenvolver o código
- Enviar o arquivo de código para a BananaPi
- Executar o arquivo de código
- Configuração de conexão via SSH realizada na BananaPi
- Versão do Python 3.10 instalado na BananaPi
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.
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
O circuito elétrico mostrado 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.
- Exportar o pino do GPIO 7
- Escrever a direção do pino
- Ler o valor do pino
- Ler a direção do pino
- Entra no loop de intervalo 1 a 10
- Escreve o valor 1 (nível lógico alto) no pino
- Aguarda 3 segundos
- Escreve o valor 0 (nível lógico baixo) no pino
- Aguarda 3 segundos
- Encerra o loop quanto chegar no décimo ciclo
import os
import time
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)
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:
Explicação dos comandos shell utilizados no código em python mostrado acima.
- 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.
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.
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.
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.
Para que o arquivo com o script em Python seja executado, utilize o seguinte comando:
$ python3 blink.py
— 01 - BananaPi — Introdução
— 02 - BananaPi — Documentação
— 03 - BananaPi — Esquema Elétrico
— 04 - Gist — Blink.py — Script em Python
— 05 - Fritzing — Circuito Elétrico