جدول المحتويات:

جهاز استشعار بالموجات فوق الصوتية لالتقاط التغييرات الموضعية للكائنات: 3 خطوات
جهاز استشعار بالموجات فوق الصوتية لالتقاط التغييرات الموضعية للكائنات: 3 خطوات

فيديو: جهاز استشعار بالموجات فوق الصوتية لالتقاط التغييرات الموضعية للكائنات: 3 خطوات

فيديو: جهاز استشعار بالموجات فوق الصوتية لالتقاط التغييرات الموضعية للكائنات: 3 خطوات
فيديو: N° 04- آردوینو Arduino استشعار العقبات وحساب المسافة بالموجات فوق الصوتية 2024, شهر نوفمبر
Anonim
جهاز استشعار بالموجات فوق الصوتية لالتقاط التغييرات الموضعية للكائنات
جهاز استشعار بالموجات فوق الصوتية لالتقاط التغييرات الموضعية للكائنات

من المهم أن تحافظ على أغراضك الثمينة في مأمن ، وسيكون الأمر ضعيفًا إذا واصلت حراسة قلعتك طوال اليوم. باستخدام كاميرا raspberry pi ، يمكنك التقاط اللقطات في اللحظة المناسبة. سيساعدك هذا الدليل في تصوير مقطع فيديو أو التقاط الصورة عندما يتم استشعار التغييرات داخل منطقة الحدود.

المعدات:

  1. رازبيري باي 2/3/4
  2. أجهزة الاستشعار بالموجات فوق الصوتية
  3. كاميرا بي
  4. صداري

الخطوة 1: التوصيلات

روابط
روابط
  • TRIG إلى RPI4B 17
  • VCC إلى RPI4B 5V
  • GND إلى RPI4B GND
  • صدى لمقاوم 470 أوم للاتصال -1
  • GND إلى 1K أوم المقاوم للاتصال -1
  • اتصال 1 إلى RPI4B 4

مخطط الدائرة مصنوع باستخدام circo.io ، ويحتوي على جميع المتحكمات الدقيقة وأجهزة الاستشعار الأكثر شيوعًا وما إلى ذلك ، كما أن النظام الأساسي سهل الاستخدام للمبتدئين

الخطوة الثانية: قم بتحميل الكود

قم بتحميل الكود
قم بتحميل الكود
قم بتحميل الكود
قم بتحميل الكود

قبل تشغيل البرنامج النصي ، قم بإنشاء مجلد من خلال الأوامر التالية بفتح المحطة ثم قم بتحرير ملف البرنامج النصي.

pi @ raaspberrypi: mkdir media

pi @ raaspberrypi: مقياس النانو

يستخدم الرمز مكتبات الكاميرا و GPIO. تحقق من توصيل دبابيس GPIO_TRIGGER & GPIO_ECHO بشكل صحيح بالدبابيس 17 و 4 من Raspberry Pi خارجيًا.

انسخ الكود أدناه والصقه أو اكتبه في ملف بيثون وقم بتسميته باسم "Meas.py"

#Librariesimport RPi. GPIO كـ GPIO استيراد وقت استيراد نظام التشغيل من picamera استيراد PiCamera # Camera Mode camera = PiCamera () camera.rotation = 180 # قم بالتعليق على هذا السطر إذا كانت الصورة مائلة تمامًا #GPIO Mode GPIO.setmode (GPIO. BCM) GPIO.set warnings (False) #set GPIO Pins GPIO_TRIGGER = 17 GPIO_ECHO = 4 #set GPIO direction (IN / OUT) GPIO.setup (GPIO_TRIGGER، GPIO. OUT) GPIO.setup (GPIO_ECHO، GPIO. IN) المسافة def (): # اضبط المشغل على HIGH GPIO.output (GPIO_TRIGGER، True) # اضبط المشغل بعد 0.01 مللي ثانية على LOW time.sleep (0.00001) GPIO.output (GPIO_TRIGGER ، False) StartTime = time.time () StopTime = time.time () # save StartTime أثناء GPIO.input (GPIO_ECHO) == 0: StartTime = time.time () # حفظ وقت الوصول بينما GPIO.input (GPIO_ECHO) == 1: StopTime = time.time () # فرق الوقت بين وقت البدء والوصول = StopTime - StartTime # اضرب بالسرعة الصوتية (34300 سم / ثانية) # وقسمها على 2 ، لأن هناك والمسافة الخلفية = (TimeElapsed * 34300) / 2 مسافة العودة إذا _name_ == '_main_': camera.start_preview (alpha = 200) حاول: while True: dist = مسافة () print ("Measured Distance =٪.1f cm"٪ dist) إذا كان dist <= 20: # غيّر هذه القيمة وفقًا لإعدادك الآن = الوقت.ctime (). استبدل (""، "-") camera.capture ("الوسائط / الصورة٪ s.jpg"٪ الآن) طباعة ("الصورة المحفوظة في الوسائط / الصورة-٪ s.jpg"٪ الآن) # كاميرا.start_recording ("media / video-٪ s.h264"٪ الآن) # قم بإلغاء التعليق على هذا لأخذ فيديو # print ("الفيديو المحفوظ في media / image-٪ s.jpg"٪ الآن) # sleep (5) # Uncomment this لأخذ مقطع فيديو لمدة 5 ثوانٍ. النوم (3) camera.stop_preview () # camera.stop_recording () # Uncomment هذا لالتقاط فيديو # إعادة التعيين بالضغط على CTRL + C باستثناء KeyboardInterrupt: print ("تم إيقاف القياس بواسطة المستخدم") GPIO.cleanup ()

الخطوة 3: قم بتشغيل الكود

قم بتشغيل الكود
قم بتشغيل الكود
قم بتشغيل الكود
قم بتشغيل الكود
قم بتشغيل الكود
قم بتشغيل الكود
قم بتشغيل الكود
قم بتشغيل الكود

الآن قم بتشغيل البرنامج النصي باسم

pi @ raspberrypi: قياس بيثون

يتم قياس المسافة لكل 3 ثوانٍ (يمكنك تغيير القيمة في البرنامج النصي) ويتم طباعتها على الشاشة إذا تم تحديد كائن ضمن 20 سم ، تلتقط كاميرا pi صورة وتحفظها في مجلد الوسائط.

بدلاً من ذلك ، يمكنك تصوير مقطع فيديو عن طريق إلغاء التعليق أو إزالة علامات التصنيف (#) من سطور البرنامج النصي المذكورة كتعليقات. يمكنك أيضًا تمديد طول الفيديو ببساطة عن طريق زيادة / إنقاص القيمة في "time.sleep (5)".

دارة سعيدة!

موصى به: