Ce projet fournit une interface python simplifiée sur Raspberry Pi à l'API ST VL53L0X (ST Microelectronics).
Inspiré du référentiel cassou/VL53L0X_rasp (https://github.com/cassou/VL53L0X_rasp.git)
Afin de pouvoir partager le bus i2c avec d'autres codes python utilisant le bus i2c, cette bibliothèque implémente les fonctions i2c spécifiques à la plateforme VL53L0X via des rappels vers l'interface python smbus.
Version 1.0.2 :
Ajoutez la prise en charge du multiplexeur I2C TCA9548A. Testé avec https://www.adafruit.com/products/2717 breakout. (johnbryanmoore)
Ajouter un exemple Python en utilisant la prise en charge du multiplexeur TCA9548A (johnbryanmoore)
Ajouter le support d'installation de pip (grantramsay)
Ajouter le support smbus2 (grantramsay)
Mise à jour du support d'installation de pip python2/3 (naisy)
Mettre à jour le support smbus/smbus2 (naisy)
Ajouter gcc -fPIC CFLAGS pour construire sur Ubuntu (naisy)
Ajouter la prise en charge du changement d'adresse I2C (naisy)
Version 1.0.1 :
Simplifier le processus de construction (svanimisetti)
Ajouter un exemple Python qui représente graphiquement la sortie du capteur (svanimisetti)
Mettre à jour les instructions de construction (svanimisetti, johnbryanmoore)
Version 1.0.0 :
Ajoutez la prise en charge de plusieurs capteurs sur le même bus en utilisant l'appel API ST pour modifier l'adresse de l'appareil.
Ajoutez la prise en charge d'une vérification améliorée des erreurs, telle que la détection des erreurs d'E/S sur l'accès I2C.
Version 0.0.9 :
version initiale et ne prend en charge qu'un seul capteur avec une vérification des erreurs limitée.
Remarques sur la prise en charge de plusieurs capteurs :
Afin d'avoir plusieurs capteurs sur le même bus, vous devez avoir la broche d'arrêt de chaque capteur liée à des GPIO individuels afin qu'ils puissent être activés individuellement et que les adresses soient définies.
Les cartes Adafruit et Pololu pour VL53L0X ont toutes deux des tractions I2C sur la carte. Pour cette raison, le nombre de planches pouvant être ajoutées sera limité à environ 5 ou 6 avant que le pull-up ne devienne trop fort.
Les modifications apportées à la plate-forme et au code python_lib c autorisent jusqu'à 16 capteurs.
Les changements d'adresse sont volatiles, donc le fait de régler la broche d'arrêt à un niveau bas ou de couper l'alimentation ramènera l'adresse à la valeur par défaut 0x29.
Notes sur l'utilisation du multiplexeur I2C TCA9548A :
S'il est limité sur les GPIO qui seraient nécessaires pour définir de nouvelles adresses pour chaque capteur, l'utilisation d'un multiplexeur I2C TCA9548A est une bonne option car il permet d'utiliser jusqu'à 8 capteurs sans utiliser de GPIO.
Le TCA9548A est également une bonne option si l'utilisation de plusieurs cartes sur le même bus I2C et que le total de tous les pullups I2C combinés empêcherait le bus de fonctionner.
Théoriquement, vous pouvez connecter plusieurs multiplexeurs TCA9548A, chacun avec jusqu'à 8 capteurs à condition que chaque TCA9548A ait une adresse différente. Cela n'a pas été testé mais devrait fonctionner en théorie.
(Veuillez noter que même si l'auteur est un ingénieur en logiciels embarqués, il s'agit d'une première tentative d'extension de Python et l'auteur n'est en aucun cas un expert en Python, donc toute suggestion d'amélioration est appréciée).
# Python2pip2 installe git+https://github.com/pimoroni/VL53L0X-python.git# Python3pip3 installe git+https://github.com/pimoroni/VL53L0X-python.git
Pour construire sur Raspberry Pi, assurez-vous d'abord de disposer des bons outils et bibliothèques de développement :
sudo apt-get install build-essential python-dev
Utilisez ensuite les commandes suivantes pour cloner le référentiel et compiler :
cd votre_répertoire_git clone git https://github.com/pimoroni/VL53L0X_rasp_python.gitcd VL53L0X-python faire
Dans le répertoire Python se trouvent les fichiers Python suivants :
VL53L0X.py - Ceci contient l'interface python ctypes vers la bibliothèque ST
VL53L0X_example.py - Cet exemple accède à un seul capteur avec l'adresse par défaut.
VL53L0X_example_livegraph.py - Cet exemple trace les données de distance d'un seul capteur dans un graphique en direct. Cet exemple nécessite matplotlib. Utilisez sudo pip install matplotlib
pour installer matplotlib.
VL53L0X_multi_example.py - Cet exemple accède à 2 capteurs, en définissant le premier sur l'adresse 0x2B et le second sur l'adresse 0x2D. Il utilise les GPIO 20 et 16 connectés aux broches d'arrêt des 2 capteurs pour contrôler l'activation des capteurs.
VL53L0X_TCA9548A_example.py - Cet exemple accède à 2 capteurs via un multiplexeur I2C TCA9548A, le premier étant connecté au bus 1 et le second au bus 2 du TCA9548A.