Skip to main content

Caninos SDK

Estamos criando uma SDK para fazer com que o uso da Labrador fique muito acessível. O objetivo é permitir códigos assim:

# as linhas abaixo já funcionam:
import caninos_sdk as k9
labrador = k9.Labrador()
labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias="led_status")
labrador.pin19.enable_gpio(k9.Pin.Direction.INPUT, alias="button1")
labrador.i2c.add_device("arduino_i2c", 4)
labrador.camera.enable()

# as próximas ainda não (precisa ser desenvolvido)
labrador.pin.enable_gpio(k9.cpu_pin(0x33), k9.INPUT, alias="button1")
labrador.pin.enable_gpio(9, k9.SPI, address=0x4, alias="temp_sensor2")
labrador.wifi.enable("CITI", "1cbe991a14")

print(labrador.enabled_features())

# uso
labrador.led_status.high() # já funciona
res = labrador.button1.read() # já funciona
res = labrador.arduino_i2c.read(2) # já funciona
value = labrador.temp_sensor1.read() # ainda não

ip = labrador.wifi.get_ip() # ainda não
ok, frame = labrador.camera.read() # já funciona

Caso queira ajudar com a implementação, dê uma olhadinha nos issues.

Instalação

Instale a Caninos SDK com o seguinte comando:

  • pip3 install caninos-sdk

⚠️ Caso apareça o erro "pip not installed", isso quer dizer que sua Labrador ainda não tem o comando pip3. Instale-o com o comando a seguir, e depois tente de novo.

  • sudo apt install python3-dev python3-pip python3-setuptools

Por fim, configure as permissões do GPIO, I2C e Serial, para que não precise usar sudo:

sudo chmod +x ./setup-periph-permissions.sh
sudo ./setup-periph-permissions.sh

Exemplo

Para testar a SDK vamos piscar um LED -- o hello world do hardware :)

Abra um terminal, digite python3, e vá inserindo os comandos abaixo, um de cada vez:

# importa a SDK e dá a ela um apelido bonitinho
import caninos_sdk as k9

# instancia o objeto labrador
labrador = k9.Labrador()

# habilita o pino 15 como saída, e dá a ele o apelido "led_status"
labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias="led_status")

# liga o "led_status"
labrador.led_status.high()
# desliga o "led_status"
labrador.led_status.low()

Outros exemplos

Confira a pasta examples do repositório no GitHub.

Câmera

Para usar a câmera, é necessário instalar o OpenCV. Instale-o com o comando abaixo:

sudo apt install python3-opencv

I2C

Para usar o I2C, é necessário instalar a pylibi2c. Instale-a com os comandos abaixo:

git clone https://github.com/amaork/libi2c.git
cd libi2c && pip3 install .

Contributing

First, see the issues page.

Then, install some dependencies:

sudo apt install python3-dev python3-pip python3-setuptools libffi-dev libssl-dev curl
pip3 install --upgrade pip

Finally, install the package locally in editable form:

pip3 install -e .

Publish a new version

Install build deps: pip3 install build twine.

Update the version number at __init__.py.

# build the new version
python3 -m build

# deploy
VERSION=$(grep -r "__version__" caninos_sdk/__init__.py | sed -E 's/.* = "(.*)"/\1/g')
twine upload dist/caninos_sdk-$VERSION-py3-none-any.whl  --config-file ${HOME}/.pypirc

TO-DO:

  • initial sketch to prove the concept
  • make the gpios actually work (read/write) - [ ] create default constructors/subclasses for specific boards - [ ] create a "VirtualLabrador" class, for tests and remote labs
  • refactor to a proper python package using modern python conventions
  • [-] write unit tests -> works with pytest -s
  • gpio read/write work across Labradors 32/64
  • support pwm
  • support i2c
  • support serial
  • support camera
  • support spi
  • support wifi
  • support bluetooth

Other notes:

  • should this library support other SBCs?
  • should the docs be in English or Portuguese?
  • get funding or community help

Metadata

Release files for caninos-sdk 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for caninos-sdk 0.5.0
File Interpreter ABI Platform
caninos_sdk-0.5.0-py3-none-any.whl Python 3 none any Details

Release files / caninos_sdk-0.5.0-py3-none-any.whl

Download URL caninos_sdk-0.5.0-py3-none-any.whl
Size 10.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5da85cf94300b54c91326467e1039a56d2ef2cd8a52fdf549d0992b8f5701e81
BLAKE2b-256 checksum
How to use checksums
86e853c5bbeecd40948c831428abf10fdd61a3ddf945e70e41aedb91a88e3ae1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.6

Security for caninos-sdk 0.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page