Introdução
A biblioteca pinpong é uma biblioteca python de código aberto baseada no protocolo firmata e utiliza sintaxe micropython. Seu objetivo principal é fornecer aos desenvolvedores uma ferramenta que lhes permita controlar diretamente várias placas de controle de hardware de código aberto por meio de código Python.
Ela permite que você comece a usar Python para controlar hardware de código aberto em apenas 5 minutos.
Com a biblioteca PinPong, você pode programar diretamente vários hardwares comuns de código aberto com código Python. O princípio é gravar um firmware específico no hardware de código aberto, permitindo que ele se comunique com o computador através da porta serial e execute vários comandos.
O nome da biblioteca PinPong é composto por "Pin" e "Pong". "Pin" refere-se ao pino, e "PinPong" é um homófono de "ping-pong", indicando a reciprocidade de sinais.
O design da biblioteca PinPong destina-se a libertar os desenvolvedores das restrições de modelos de hardware complexos durante o processo de desenvolvimento e mudar o foco para a implementação de software. Mesmo que o Arduino seja usado para escrever programas no estágio inicial de desenvolvimento, e a placa de controle seja alterada durante o deployment.
Método 1
Nestes testes, foi criada uma imagem para o MILK-V Duo 256 e adicionado o pacote PinPong no arquivo milkv-duo256m_musl_riscv64_defconfig que se encontra na pasta
/home/ubuntu/duo-buildroot-sdk/buildroot-2021.05/configs
BR2_PACKAGE_PYTHON_PINPONG=y
git status
para confirmar. Você pode ver que o arquivo de configuração original foi modificado:Neste ponto, volte para o diretório raiz do SDK e recompile.
Uso
Número dos pinos (GPx)
pinpong | NOME DO PIN | PINO# | PINO # | NOME DO PIN | pinpong |
---|---|---|---|---|---|
0 | GP0 | 1 | 40 | VBUS | |
1 | GP1 | 2 | 39 | VSYS | |
GND | 3 | 38 | GND | ||
2 | GP2 | 4 | 37 | 3V3_EN | |
3 | GP3 | 5 | 36 | 3V3(SAÍDA) | |
4 | GP4 | 6 | 35 | ||
5 | GP5 | 7 | 34 | ||
GND | 8 | 33 | GND | ||
6 | GP6 | 9 | 32 | GP27 | 27 |
7 | GP7 | 10 | 31 | GP26 | 26 |
8 | GP8 | 11 | 30 | RUN | |
9 | GP9 | 12 | 29 | GP22 | 22 |
GND | 13 | 28 | GND | ||
10 | GP10 | 14 | 27 | GP21 | 21 |
11 | GP11 | 15 | 26 | GP20 | 20 |
12 | GP12 | 16 | 25 | GP19 | 19 |
13 | GP13 | 17 | 24 | GP18 | 18 |
GND | 18 | 23 | GND | ||
14 | GP14 | 19 | 22 | GP17 | 17 |
15 | GP15 | 20 | 21 | GP16 | 16 |
25 | GP25 | LED |
Muitos dos pinos do Duo possuem funcionalidade multifuncional. Ao usar a biblioteca pinpong para controlar as funções de cada pino, é importante confirmar o estado atual do pino para garantir que ele corresponda à funcionalidade desejada. Caso contrário, você pode usar o comando duo-pinmux
para mudar para a função desejada
Consulte as instruções: pinmuxIO
LEDpiscando
Este é um exemplo de como fazer o LED conectado no Duo piscar. Você pode criar um novo arquivo blink.py
diretamente no Duo ou criá-lo em seu computador e depois carregá-lo no Duo via ssh.
DICA
O número do pino do LED é 15. Se você usar outros pinos para conectar LEDs externos, consulte a tabela acima para obter o número do pino.
Conteúdo do arquivo blink.py:
# -*- coding: utf-8 -*-
import time
from pinpong.board import Board,Pin
Board("MILKV-DUO").begin()
led = Pin(Pin.D15, Pin.OUT)
while True:
led.value(1)
print("1")
time.sleep(1)
led.value(0)
print("0")
time.sleep(1)
Execute o comando python blink.py
no terminal do Duo:
Nota : Para testar o exemplo blink.py
, que envolve LED piscando, é necessário desabilitar o script responsável pelo LED piscando automaticamente no firmware padrão do Duo. No terminal Duo, execute o seguinte comando:
mv /mnt/system/blink.sh /mnt/system/blink.sh_backup && sync
Este comando renomeia o script de LED piscando. Após reiniciar o Duo, o LED não piscará mais.
Outros exemplos
Consulte: github
Nenhum comentário:
Postar um comentário