Этот проект предоставляет упрощенный интерфейс Python на Raspberry Pi для ST VL53L0X API (ST Microelectronics).
Создан по образцу репозитория cassou/VL53L0X_rasp (https://github.com/cassou/VL53L0X_rasp.git).
Чтобы иметь возможность совместно использовать шину i2c с другим кодом Python, использующим шину i2c, эта библиотека реализует функции i2c, специфичные для платформы VL53L0X, посредством обратных вызовов к интерфейсу smbus Python.
Версия 1.0.2:
Добавлена поддержка мультиплексора I2C TCA9548A. Протестировано с помощью https://www.adafruit.com/products/2717. (Джон Брайанмур)
Добавление примера Python с использованием поддержки мультиплексора TCA9548A (johnbryanmoore)
Добавлена поддержка установки pip (grantramsay)
Добавить поддержку smbus2 (grantramsay)
Обновление поддержки установки pip python2/3 (naisy)
Обновление поддержки smbus/smbus2 (naisy)
Добавить gcc -fPIC CFLAGS для сборки на Ubuntu (naisy)
Добавить поддержку изменения адреса I2C (naisy)
Версия 1.0.1:
Упрощение процесса сборки (сванимисетти)
Добавьте пример Python, который отображает выходные данные датчика (svanimisetti).
Обновите инструкции по сборке (svanimisetti, johnbryanmoore)
Версия 1.0.0:
Добавьте поддержку нескольких датчиков на одной шине, используя вызов ST API для изменения адреса устройства.
Добавьте поддержку улучшенной проверки ошибок, например обнаружения ошибок ввода-вывода при доступе I2C.
Версия 0.0.9:
начальная версия и поддерживает только 1 датчик с ограниченной проверкой ошибок.
Примечания по поддержке нескольких датчиков:
Чтобы иметь несколько датчиков на одной шине, вам необходимо, чтобы контакт выключения каждого датчика был привязан к отдельным GPIO, чтобы их можно было включать индивидуально и устанавливать адреса.
Платы Adafruit и Pololu для VL53L0X имеют на плате подтяжки I2C. По этой причине количество досок, которые можно добавить, будет ограничено примерно 5 или 6, прежде чем подтягивание станет слишком сильным.
Изменения в платформе и коде Python_lib c позволяют использовать до 16 датчиков.
Изменения адреса являются энергозависимыми, поэтому установка низкого уровня на выводе выключения или отключение питания приведет к изменению адреса обратно на значение по умолчанию 0x29.
Примечания по использованию мультиплексора I2C TCA9548A:
Если ограничения на GPIO необходимы для установки новых адресов для каждого датчика, использование мультиплексора I2C TCA9548A является хорошим вариантом, поскольку он позволяет использовать до 8 датчиков без использования GPIO.
TCA9548A также является хорошим вариантом, если использование нескольких плат на одной шине I2C и сумма всех объединенных подтягиваний I2C приведет к тому, что шина не будет работать.
Теоретически вы можете подключить несколько мультиплексоров TCA9548A, каждый из которых имеет до 8 датчиков, при условии, что каждый TCA9548A имеет свой адрес. Это не проверялось, но теоретически должно работать.
(Обратите внимание, что, хотя автор является разработчиком встроенного программного обеспечения, это первая попытка расширения Python, и автор ни в коем случае не является экспертом по Python, поэтому любые предложения по улучшению приветствуются).
# Python2pip2 установить git+https://github.com/pimoroni/VL53L0X-python.git# Python3pip3 установить git+https://github.com/pimoroni/VL53L0X-python.git
Чтобы использовать Raspberry Pi, сначала убедитесь, что у вас есть подходящие инструменты и библиотеки разработки:
sudo apt-get install build-essential python-dev
Затем используйте следующие команды для клонирования репозитория и компиляции:
cd your_git_directory git-клон https://github.com/pimoroni/VL53L0X_rasp_python.gitcd VL53L0X-python делать
В каталоге Python находятся следующие файлы Python:
VL53L0X.py — содержит интерфейс python ctypes для библиотеки ST.
VL53L0X_example.py — в этом примере осуществляется доступ к одному датчику с адресом по умолчанию.
VL53L0X_example_livegraph.py — в этом примере данные о расстоянии от одного датчика отображаются в виде живого графика. Для этого примера требуется matplotlib. Используйте sudo pip install matplotlib
для установки matplotlib.
VL53L0X_multi_example.py — в этом примере осуществляется доступ к двум датчикам, первому присваивается адрес 0x2B, а второму — адрес 0x2D. Он использует GPIO 20 и 16, подключенные к контактам выключения на двух датчиках, для управления активацией датчиков.
VL53L0X_TCA9548A_example.py — в этом примере осуществляется доступ к двум датчикам через мультиплексор I2C TCA9548A, причем первый подключен к шине 1, а второй — к шине 2 на TCA9548A.