Este projeto fornece uma interface python simplificada no Raspberry Pi para a API ST VL53L0X (ST Microelectronics).
Padronizado após o repositório cassou/VL53L0X_rasp (https://github.com/cassou/VL53L0X_rasp.git)
Para poder compartilhar o barramento i2c com outro código python que usa o barramento i2c, esta biblioteca implementa as funções i2c específicas da plataforma VL53L0X por meio de retornos de chamada para a interface python smbus.
Versão 1.0.2:
Adicionado suporte para multiplexador I2C TCA9548A. Testado com https://www.adafruit.com/products/2717 breakout. (Johnbryanmoore)
Adicionar exemplo de python usando suporte para multiplexador TCA9548A (johnbryanmoore)
Adicionar suporte para instalação de pip (grantramsay)
Adicionar suporte smbus2 (grantramsay)
Atualize o suporte de instalação do pip python2/3 (naisy)
Atualizar suporte smbus/smbus2 (naisy)
Adicione gcc -fPIC CFLAGS para compilação no Ubuntu (naisy)
Adicionar suporte para alteração de endereço I2C (naisy)
Versão 1.0.1:
Simplifique o processo de construção (svanimisetti)
Adicione um exemplo de python que representa graficamente a saída do sensor (svanimisetti)
Atualize as instruções de construção (svanimisetti, johnbryanmoore)
Versão 1.0.0:
Adicione suporte para vários sensores no mesmo barramento utilizando a chamada ST API para alterar o endereço do dispositivo.
Adicione suporte para verificação aprimorada de erros, como detecção de erros de E/S no acesso I2C.
Versão 0.0.9:
versão inicial e suporta apenas 1 sensor com verificação de erros limitada.
Notas sobre suporte a vários sensores:
Para ter vários sensores no mesmo barramento, você deve ter o pino de desligamento de cada sensor vinculado a GPIOs individuais para que eles possam ser habilitados individualmente e os endereços definidos.
Ambas as placas Adafruit e Pololu para VL53L0X possuem pull ups I2C na placa. Por causa disso, o número de pranchas que podem ser adicionadas será limitado a apenas 5 ou 6 antes que o pull-up se torne muito forte.
Mudanças na plataforma e no código python_lib c permitem até 16 sensores.
As alterações de endereço são voláteis, portanto, definir o pino de desligamento como baixo ou remover a energia alterará o endereço de volta para o padrão 0x29.
Notas sobre o uso do multiplexador I2C TCA9548A:
Se limitado a GPIO's que seriam necessários para definir novos endereços para cada sensor, usar um Multiplexador I2C TCA9548A é uma boa opção, pois permite usar até 8 sensores sem usar GPIO's.
O TCA9548A também é uma boa opção se o uso de múltiplas placas no mesmo barramento I2C e o total de todos os pullups I2C combinados fizerem com que o barramento não funcione.
Teoricamente você pode conectar vários multiplexadores TCA9548A, cada um com até 8 sensores, desde que cada TCA9548A tenha um endereço diferente. Isso não foi testado, mas deveria funcionar em teoria.
(Observe que, embora o autor seja um engenheiro de software incorporado, esta é uma primeira tentativa de estender o python e o autor não é de forma alguma um especialista em python, portanto, qualquer sugestão de melhoria será apreciada).
# Python2pip2 instala git+https://github.com/pimoroni/VL53L0X-python.git# Python3pip3 instala git+https://github.com/pimoroni/VL53L0X-python.git
Para desenvolver no Raspberry Pi, primeiro certifique-se de ter as ferramentas e bibliotecas de desenvolvimento corretas:
sudo apt-get install build-essential python-dev
Em seguida, use os seguintes comandos para clonar o repositório e compilar:
cd seu_git_diretório clone git https://github.com/pimoroni/VL53L0X_rasp_python.gitcd VL53L0X-python fazer
No diretório Python estão os seguintes arquivos python:
VL53L0X.py - Contém a interface python ctypes para a biblioteca ST
VL53L0X_example.py – Este exemplo acessa um único sensor com o endereço padrão.
VL53L0X_example_livegraph.py – Este exemplo plota os dados de distância de um único sensor em um gráfico ao vivo. Este exemplo requer matplotlib. Use sudo pip install matplotlib
para instalar o matplotlib.
VL53L0X_multi_example.py - Este exemplo acessa 2 sensores, configurando o primeiro para o endereço 0x2B e o segundo para o endereço 0x2D. Ele usa GPIOs 20 e 16 conectados aos pinos de desligamento dos 2 sensores para controlar a ativação do sensor.
VL53L0X_TCA9548A_example.py - Este exemplo acessa 2 sensores através de um multiplexador I2C TCA9548A com o primeiro conectado ao barramento 1 e o segundo no barramento 2 no TCA9548A.