이 프로젝트는 Raspberry Pi의 ST VL53L0X API(ST Microelectronics)에 단순화된 Python 인터페이스를 제공합니다.
cassou/VL53L0X_rasp 저장소(https://github.com/cassou/VL53L0X_rasp.git)를 따라 패턴화됨
i2c 버스를 사용하는 다른 Python 코드와 i2c 버스를 공유할 수 있도록 이 라이브러리는 Python smbus 인터페이스에 대한 콜백을 통해 VL53L0X 플랫폼 특정 i2c 기능을 구현합니다.
버전 1.0.2:
TCA9548A I2C 멀티플렉서에 대한 지원을 추가합니다. https://www.adafruit.com/products/2717 브레이크아웃으로 테스트되었습니다. (존브라이언무어)
TCA9548A 멀티플렉서 지원을 사용하여 Python 예제 추가(johnbryanmoore)
pip 설치 지원 추가(grantramsay)
smbus2 지원 추가(grantramsay)
pip 설치 지원 python2/3 업데이트(naisy)
smbus/smbus2 지원 업데이트(naisy)
Ubuntu에서 빌드하기 위해 gcc -fPIC CFLAGS 추가(naisy)
I2C 주소 변경 지원 추가(naisy)
버전 1.0.1:
빌드 프로세스 단순화(svanimisetti)
센서 출력을 그래프로 표시하는 Python 예제 추가(svanimisetti)
빌드 지침 업데이트(svanimisetti, johnbryanmoore)
버전 1.0.0:
ST API 호출을 활용하여 동일한 버스에 여러 센서에 대한 지원을 추가하여 장치 주소를 변경합니다.
I2C 액세스에 대한 I/O 오류 감지와 같은 향상된 오류 검사에 대한 지원을 추가합니다.
버전 0.0.9:
초기 버전이며 오류 검사가 제한된 1개의 센서만 지원합니다.
다중 센서 지원에 대한 참고 사항:
동일한 버스에 여러 센서를 가지려면 각 센서의 종료 핀을 개별 GPIO에 연결하여 개별적으로 활성화하고 주소를 설정할 수 있어야 합니다.
VL53L0X용 Adafruit 및 Pololu 보드 모두 보드에 I2C 풀업이 있습니다. 이 때문에 풀업이 너무 강해지기 전까지 추가할 수 있는 보드 수는 5~6개 정도로만 제한된다.
플랫폼 및 python_lib c 코드 변경으로 인해 최대 16개의 센서가 허용됩니다.
주소 변경은 일시적이므로 종료 핀을 낮게 설정하거나 전원을 제거하면 주소가 다시 기본 0x29로 변경됩니다.
TCA9548A I2C 멀티플렉서 사용 시 참고 사항:
각 센서에 대해 새 주소를 설정해야 하는 GPIO가 제한된 경우 TCA9548A I2C 멀티플렉서를 사용하면 GPIO를 사용하지 않고도 최대 8개의 센서를 사용할 수 있으므로 좋은 옵션입니다.
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 설치 빌드 필수 python-dev
그런 다음 다음 명령을 사용하여 저장소를 복제하고 컴파일합니다.
CD your_git_directory 자식 클론 https://github.com/pimoroni/VL53L0X_rasp_python.gitcd VL53L0X-python 만들다
Python 디렉터리에는 다음 Python 파일이 있습니다.
VL53L0X.py - ST 라이브러리에 대한 Python ctypes 인터페이스가 포함되어 있습니다.
VL53L0X_example.py - 이 예에서는 기본 주소를 사용하여 단일 센서에 액세스합니다.
VL53L0X_example_livegraph.py - 이 예는 단일 센서의 거리 데이터를 실시간 그래프로 표시합니다. 이 예제에는 matplotlib가 필요합니다. matplotlib를 설치하려면 sudo pip install matplotlib
사용하십시오.
VL53L0X_multi_example.py - 이 예에서는 2개의 센서에 액세스하여 첫 번째 센서를 0x2B 주소로 설정하고 두 번째 센서를 0x2D 주소로 설정합니다. 2개 센서의 종료 핀에 연결된 GPIO 20 및 16을 사용하여 센서 활성화를 제어합니다.
VL53L0X_TCA9548A_example.py - 이 예는 TCA9548A I2C 멀티플렉서를 통해 2개의 센서에 액세스합니다. 첫 번째는 버스 1에 연결되고 두 번째는 TCA9548A의 버스 2에 연결됩니다.