يوفر هذا المشروع واجهة بايثون مبسطة على Raspberry Pi إلى ST VL53L0X API (ST Microelectronics).
منقوشة على غرار مستودع cassou/VL53L0X_rasp (https://github.com/cassou/VL53L0X_rasp.git)
لكي تتمكن من مشاركة ناقل i2c مع أكواد python الأخرى التي تستخدم ناقل i2c، تنفذ هذه المكتبة وظائف i2c الخاصة بمنصة VL53L0X من خلال عمليات الاسترجاعات إلى واجهة python smbus.
الإصدار 1.0.2:
إضافة دعم لمضاعف TCA9548A I2C. تم اختباره باستخدام https://www.adafruit.com/products/2717 Breakout. (جونبريانمور)
أضف مثال python باستخدام دعم TCA9548A Multiplexer (johnbryanmoore)
إضافة دعم تثبيت النقطة (Grantramsay)
إضافة دعم smbus2 ( Grantramsay )
تحديث دعم تثبيت النقطة python2/3 (صاخب)
تحديث دعم smbus/smbus2 (مزعج)
أضف gcc -fPIC CFLAGS للبناء على Ubuntu (صاخب)
إضافة دعم تغيير عنوان I2C (صاخب)
الإصدار 1.0.1:
تبسيط عملية البناء (svanimisetti)
أضف مثال بايثون الذي يرسم مخرجات المستشعر (svanimisetti)
تحديث تعليمات البناء (svanimisetti، johnbryanmoore)
الإصدار 1.0.0:
أضف دعمًا لأجهزة استشعار متعددة على نفس الناقل باستخدام استدعاء ST API لتغيير عنوان الجهاز.
أضف دعمًا لتحسين التحقق من الأخطاء مثل اكتشاف أخطاء الإدخال/الإخراج عند الوصول إلى I2C.
الإصدار 0.0.9:
الإصدار الأولي ويدعم مستشعرًا واحدًا فقط مع فحص محدود للأخطاء.
ملاحظات حول دعم أجهزة الاستشعار المتعددة:
لكي يكون لديك أجهزة استشعار متعددة على نفس الناقل، يجب أن يكون لديك دبوس إيقاف التشغيل لكل مستشعر مرتبط بوحدات GPIO الفردية بحيث يمكن تمكينها بشكل فردي وتعيين العناوين.
تحتوي كل من لوحات Adafruit وPololu لـ VL53L0X على أدوات سحب I2C على اللوحة. ولهذا السبب، سيتم تحديد عدد الألواح التي يمكن إضافتها بحوالي 5 أو 6 فقط قبل أن يصبح السحب قويًا جدًا.
تسمح التغييرات التي تم إجراؤها على النظام الأساسي ورمز python_lib c بما يصل إلى 16 مستشعرًا.
تكون تغييرات العنوان متقلبة، لذا فإن ضبط دبوس إيقاف التشغيل على مستوى منخفض أو إزالة الطاقة سيؤدي إلى تغيير العنوان مرة أخرى إلى الوضع الافتراضي 0x29.
ملاحظات حول استخدام معدد الإرسال TCA9548A I2C:
إذا كان يقتصر على GPIO التي ستكون ضرورية لتعيين عناوين جديدة لكل مستشعر، فإن استخدام TCA9548A I2C Multiplexer يعد خيارًا جيدًا لأنه يسمح باستخدام ما يصل إلى 8 مستشعرات دون استخدام GPIO.
يعد TCA9548A أيضًا خيارًا جيدًا إذا كان استخدام لوحات متعددة على نفس ناقل I2C وإجمالي جميع عمليات سحب I2C المدمجة سيؤدي إلى عدم عمل الناقل.
من الناحية النظرية، يمكنك توصيل عدة أجهزة إرسال TCA9548A متعددة، تحتوي كل منها على ما يصل إلى 8 أجهزة استشعار طالما أن كل TCA9548A له عنوان مختلف. لم يتم اختبار هذا ولكن يجب أن يعمل من الناحية النظرية.
(يرجى ملاحظة أنه على الرغم من أن المؤلف هو مهندس برمجيات مضمن، إلا أن هذه هي المحاولة الأولى لتوسيع لغة بايثون وأن المؤلف ليس خبيرًا في بايثون بأي حال من الأحوال لذا فإن أي اقتراحات للتحسين موضع تقدير).
# تثبيت 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
ثم استخدم الأوامر التالية لاستنساخ المستودع وتجميعه:
القرص المضغوط your_git_directory استنساخ البوابة 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. ويستخدم GPIOs 20 و16 المتصلين بدبابيس إيقاف التشغيل الموجودة على المستشعرين للتحكم في تنشيط المستشعر.
VL53L0X_TCA9548A_example.py - يصل هذا المثال إلى جهازي استشعار من خلال مُضاعِف الإرسال TCA9548A I2C مع توصيل الأول بالناقل 1 والثاني بالناقل 2 على TCA9548A.