No project description provided
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file caninos_sdk-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: caninos_sdk-0.5.0-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5da85cf94300b54c91326467e1039a56d2ef2cd8a52fdf549d0992b8f5701e81 |
|
MD5 | 0422c32b534d5a8f0f4719f53ada1a8a |
|
BLAKE2b-256 | 86e853c5bbeecd40948c831428abf10fdd61a3ddf945e70e41aedb91a88e3ae1 |