Proyek ini menyediakan antarmuka python yang disederhanakan pada Raspberry Pi ke API ST VL53L0X (ST Microelectronics).
Berpola setelah repositori cassou/VL53L0X_rasp (https://github.com/cassou/VL53L0X_rasp.git)
Agar dapat berbagi bus i2c dengan kode python lain yang menggunakan bus i2c, perpustakaan ini mengimplementasikan fungsi i2c khusus platform VL53L0X melalui panggilan balik ke antarmuka python smbus.
Versi 1.0.2:
Tambahkan dukungan untuk Multiplexer TCA9548A I2C. Diuji dengan https://www.adafruit.com/products/2717 terobosan. (johnbryanmoore)
Tambahkan contoh python menggunakan dukungan TCA9548A Multiplexer (johnbryanmoore)
Tambahkan dukungan pemasangan pip (grantramsay)
Tambahkan dukungan smbus2 (grantramsay)
Perbarui dukungan instalasi pip python2/3 (naisy)
Perbarui dukungan smbus/smbus2 (naik)
Tambahkan gcc -fPIC CFLAGS untuk dibangun di Ubuntu (naisy)
Tambahkan dukungan perubahan alamat I2C (naisy)
Versi 1.0.1:
Sederhanakan proses pembangunan (svanimisetti)
Tambahkan contoh python yang membuat grafik keluaran sensor (svanimisetti)
Perbarui instruksi pembuatan (svanimisetti, johnbryanmoore)
Versi 1.0.0:
Tambahkan dukungan untuk beberapa sensor pada bus yang sama dengan memanfaatkan panggilan ST API untuk mengubah alamat perangkat.
Tambahkan dukungan untuk pemeriksaan kesalahan yang lebih baik seperti deteksi kesalahan I/O pada akses I2C.
Versi 0.0.9:
versi awal dan hanya mendukung 1 sensor dengan pengecekan error terbatas.
Catatan tentang dukungan beberapa sensor:
Untuk memiliki beberapa sensor pada bus yang sama, Anda harus mengikat pin pematian setiap sensor ke masing-masing GPIO sehingga dapat diaktifkan satu per satu dan alamatnya ditetapkan.
Baik papan Adafruit dan Pololu untuk VL53L0X memiliki pull up I2C di papannya. Oleh karena itu, jumlah papan yang dapat ditambahkan akan dibatasi hanya sekitar 5 atau 6 sebelum pull-up menjadi terlalu kuat.
Perubahan pada platform dan kode python_lib c memungkinkan hingga 16 sensor.
Perubahan alamat bersifat fluktuatif sehingga mengatur pin shutdown rendah atau melepas daya akan mengubah alamat kembali ke default 0x29.
Catatan tentang penggunaan Multiplexer I2C TCA9548A:
Jika terbatas pada GPIO yang diperlukan untuk menetapkan alamat baru untuk setiap sensor, menggunakan TCA9548A I2C Multiplexer adalah pilihan yang baik karena memungkinkan penggunaan hingga 8 sensor tanpa menggunakan GPIO.
TCA9548A juga merupakan pilihan yang baik jika menggunakan beberapa papan pada bus I2C yang sama dan total semua pullup I2C gabungan akan menyebabkan bus tidak berfungsi.
Secara teoritis Anda dapat menghubungkan beberapa Multiplexer TCA9548A, masing-masing dengan hingga 8 sensor selama setiap TCA9548A memiliki alamat yang berbeda. Ini belum diuji tetapi seharusnya berhasil secara teori.
(Harap dicatat bahwa meskipun penulis adalah seorang insinyur perangkat lunak tertanam, ini adalah upaya pertama untuk memperluas python dan penulis sama sekali bukan ahli python sehingga saran perbaikan apa pun sangat kami hargai).
# Python2pip2 instal git+https://github.com/pimoroni/VL53L0X-python.git# Python3pip3 instal git+https://github.com/pimoroni/VL53L0X-python.git
Untuk membangun raspberry pi, pertama-tama pastikan Anda memiliki alat dan pustaka pengembangan yang tepat:
sudo apt-get install build-essential python-dev
Kemudian gunakan perintah berikut untuk mengkloning repositori dan mengkompilasi:
cd direktori_git_Anda git klon https://github.com/pimoroni/VL53L0X_rasp_python.gitcd VL53L0X-python membuat
Di direktori Python terdapat file python berikut:
VL53L0X.py - Ini berisi antarmuka python ctypes ke Perpustakaan ST
VL53L0X_example.py - Contoh ini mengakses satu sensor dengan alamat default.
VL53L0X_example_livegraph.py - Contoh ini memplot data jarak dari satu sensor dalam grafik langsung. Contoh ini memerlukan matplotlib. Gunakan sudo pip install matplotlib
untuk menginstal matplotlib.
VL53L0X_multi_example.py - Contoh ini mengakses 2 sensor, menyetel sensor pertama ke alamat 0x2B dan yang kedua ke alamat 0x2D. Ia menggunakan GPIO 20 dan 16 yang terhubung ke pin shutdown pada 2 sensor untuk mengontrol aktivasi sensor.
VL53L0X_TCA9548A_example.py - Contoh ini mengakses 2 sensor melalui Multiplexer I2C TCA9548A dengan yang pertama terhubung ke bus 1 dan yang kedua di bus 2 di TCA9548A.