VL53L0X no Banana Pi em Python

Este documento dá indicações em como usar o sensor de distancia laser VL53L0X (com o endereço x29) usando o python no Banana Pi M1.

Ligações ao VL53L0X

Ligue o VL53L0X ao Banana Pi conforme os pinos exibidos na imagem abaixo e de acordo com esquema que se lhe segue:

Banana PI M1 pinout
Banana PI M1 pinout
  • bpi 3.3V > vl53 VCC
  • bpi GND > vl53 GND
  • bpi SCL > vl53 SCL
  • bpi SDA > vl53 SDA

Instalação dos pacotes necessários e eventuais configurações

Se o i2c não estiver configurado nem o pacote de ferramentas i2c estiver instalado então deve proceder à sua instalação e eventual configuração.

Verifique que existem bus i2c com o seguinte comando:

ls -lisa /dev/i2c*

Instale o pacote de ferramentas i2c

 apt install i2c-tools

Verifique os bus i2c disponíveis com o comando:

i2cdetect -l

Seguidamente experimentar cada um dos bus disponíveis (indicados no ecran conforme imagem abaixo) e verificar se o endereço do VL53L0X é exibido com o seguinte comando (trocar o 2, pelo numero do bus a testar):

i2cdetect -y 2

Se o VL53L0X for detectado será exibido o endereço 29 na tabela gerada pelo comando (conforme imagem abaixo).

Na imagem acima também está exibido o endereço do giroscópio e acelerometro MPU6050, que também se encontra ligado no mesmo bus i2c.

Se existir algum problema e para maiores informações sobre esta parte da configuração do Banana Pi consultar o artigo I2C no Banana PI.

Instalação dos pacotes para exploração i2c em python e python3

A instalação dos pacotes necessários para a exploração do i2c em python no debian 9 é efectuada com os seguintes comandos:

apt install build-essential libssl-dev libffi-dev python3-dev python3-smbus

apt install python-dev python-smbus

A instalação do Python3 Virtual Environment  é opcional, e é efectuada com o seguinte comando:

apt install -y python3-venv

O ambiente virtual permite experimentar vários projectos usando diversas configurações do python.

Não consegui colocar a funcionar o exemplo de comunicação com o MPU6050 dentro de um ambiente virtual.

Programas de exploração do VL53L0X em Python

Os programas de exploração do VL53L0X em Python que encontrei na net e consegui por a funcionar com o banana pi estão disponíveis no github (primeiro endereço das fontes no rodapé).

Para colocar a funcionar é necessário modificar a linha que especifica o bus i2c a usar. No caso da minha configuração o 2.

Para o efeito é necessário modificar a linha 35 do ficheiro python/VL53L0X.py, de:

i2cbus = smbus.SMBus(1)

para:

 i2cbus = smbus.SMBus(2)

Nota importante: os programas em python são exigentes com a indentação.

Conforme indicado no readme, a pasta python contem vários programas com exemplos de exploração do VL53L0X.

VL53L0X.py – é a biblioteca usada

VL53L0X_example.py – Exemplo da exploração de um único sensor, no seu endereço pré-definido.

VL53L0X_example_livegraph.py – Exemplo da exploração visual (plot das distancias) de um único sensor, no seu endereço pré-definido . Este exemplo requer a matplotlib. Caso necessário instalar com: pip install matplotlib.

VL53L0X_multi_example.py – Exemplo da exploração de dois sensores. Definindo para o primeiro o endereço 0x2B e para o segundo o 0x2D. Para o efeito é necessário usar os GPIO(rpi) 20 e 16, ligados aos pinos de shutdown para controlar a activação do sensor.

Existe ainda outro exemplo com a utilização de Multiplexer I2C: TCA9548A.

Apenas experimentei o exemplo para um unico vl53L0x, pois o gpio do Banana Pi não é exactamente igual ao do Raspberry Pi e de momento decidi não investigar mais o assunto.

VL53L0X Banana Pi Python – Programa 1

Exemplo de exploração de um unico VL53L0X em Python no Banana Pi

VL53L0X_example.py

 

Fontes:

https://github.com/johnbryanmoore/VL53L0X_rasp_python