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

كاشف حالة الكلب (Raspberry Pi): 5 خطوات
كاشف حالة الكلب (Raspberry Pi): 5 خطوات

فيديو: كاشف حالة الكلب (Raspberry Pi): 5 خطوات

فيديو: كاشف حالة الكلب (Raspberry Pi): 5 خطوات
فيديو: Как Убежать от Полицейской Собаки-Ищейки 2024, شهر نوفمبر
Anonim
جهاز كشف الحالة المزاجية للكلاب (Raspberry Pi)
جهاز كشف الحالة المزاجية للكلاب (Raspberry Pi)

تم تصميم Instructable هذا لأخذ الأصوات التي يصدرها الكلب وتحديد ما إذا كان ينبغي الاقتراب منها أم لا باستخدام مؤشرات LED. يعرف معظم مالكي الكلاب حيواناتهم الأليفة ويمكنهم قراءة الإشارات التي يطلقونها ، لذا فإن هذا Instructable موجه في الغالب نحو الغرباء الذين قد يتلامسون مع كلبك.

الخطوة 1: الأجزاء

القطع
القطع
القطع
القطع
القطع
القطع

سوف تحتاج:

  • فطيرة التوت
  • المصابيح الحمراء / الخضراء (X2)
  • مراقب
  • لوحة المفاتيح / الماوس مع USB
  • واي فاي دونجل
  • ميكروفون USB خارجي
  • 330 أوم المقاوم (X2)

أجزاء اختيارية

  • مصدر طاقة خارجي Raspberry Pi
  • طوق لعنق الكلب

الخطوة 2: الإجراء

إجراء
إجراء

تتمثل الخطوة الأولى لبدء هذا المشروع في ملاحظة السلوكيات والأنماط المرتبطة بكلبك. يمكنك النقر هنا للحصول على دليل بسيط حول ما يجب أن تبحث عنه. في حالتي ، تعوي كلبي كلما كانت متحمسة أو سعيدة لرؤية شخص ما وتنبح بشكل متقطع عندما تتوتر أو تتفاقم. في الخطوات القليلة التالية سوف أشرح كيفية تعديل البرنامج الخاص بي من أجل استيعاب سلوكيات كلبك.

الخطوة الثالثة: البرمجة

برمجة
برمجة

يوجد أدناه برنامج Python الذي استخدمته لكلبي. في الخطوة التالية سوف أشرح كيفية تعديل البرنامج لسلوك كلبك. لا تقم بتشغيل البرنامج الآن لأنه لن يعمل حتى تقوم بالخطوة التالية.

#! / usr / bin / pythonimport pyaudio استيراد خيط استيراد sys من وقت استيراد السكون من استيراد مجموعة مصفوفة استيراد RPi. GPIO كـ GPIO

النباح = 0

howl = تعليق خاطئ = 0 barkLength = 5 تأخير = 0 انتظر = 2 علم = 0 أحمر = 7 أخضر = 5 exitFlag = خطأ

def toggleLightRed (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (أحمر ، GPIO. OUT) GPIO.output (c، True) sleep (10) GPIO.output (c، False) print ("Red toggled")

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (أخضر ، GPIO. OUT) GPIO.output (c، True) sleep (10) GPIO.output (c، False) print ("Green toggled")

def main ():

النباح العالمي العالمي العواء العالمي عقد العالمي barkLength التأخير العالمي العلم العالمي العالمي الأحمر العالمي الأخضر

القطعة = 8192

FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 العتبة = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (التنسيق = FORMAT ، القنوات = القنوات ، المعدل = المعدل ، الإدخال = صحيح ، الإخراج = صحيح ، Frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (أحمر ، GPIO. OUT) GPIO.setup (أخضر ، GPIO. OUT) جرب: طباعة "الكشف مهيأ" بينما صحيح: حاول: البيانات = دفق.قراءة (chunk) باستثناء IOError مثل: إذا كان ex [1]! = pyaudio.paInputOverflowed: رفع البيانات = 'x00' * chunk as_ints = array ('h'، data) max_value = max (as_ints) بينما max_value> threshold: delay = 0 عقد = عقد + 1 جرب: data = stream.read (chunk) باستثناء IOError مثل: إذا كان ex [1]! = pyaudio.paInputOverflowed: رفع البيانات = '\ x00' * قطعة as_ints = مجموعة ('h' ، بيانات) max_value = max (as_ints) إذا اضغط باستمرار> = barkLength: howl = True print "HOWL DETECTED" toggleLightGreen (green) GPIO.cleanup () elif اضغط باستمرار> 0 مع الاستمرار

إذا _name_ == "_الرئيسية_":

الأساسية()

الخطوة 4: استكشاف الأخطاء وإصلاحها والتعديل

استكشاف الأخطاء وإصلاحها والتعديل
استكشاف الأخطاء وإصلاحها والتعديل
استكشاف الأخطاء وإصلاحها والتعديل
استكشاف الأخطاء وإصلاحها والتعديل
استكشاف الأخطاء وإصلاحها والتعديل
استكشاف الأخطاء وإصلاحها والتعديل

اقامة

قبل تشغيل البرنامج ، ستحتاج إلى كتابة ما يلي في Terminal لتثبيت PyAudio:

sudo apt-get intall python-pyaudio

بعد ذلك يمكنك اختبار تشغيل البرنامج للتأكد من أنه يعمل بشكل صحيح.

استكشاف الأخطاء وإصلاحها

قد تواجه الخطأ التالي:

IOError: [Errno Input فاضت] -9981

لإصلاح ذلك ، قم ببساطة بزيادة الرقم المخصص لقطعة المتغير حتى يختفي الخطأ.

التعديل

يحدد المتغير barkLength عدد مرات تكرار البرنامج قبل أن لا يُنظر إلى الضوضاء على أنها لحاء ، بل كعواء. إذا كانت كلابك تعوي ولكنها تفعل ذلك فقط لفترة قصيرة ، فيجب عليك تقليل هذا الرقم.

يشير المتغيران الأحمر والأخضر إلى منافذ الإخراج التي سيتم استخدامها لمؤشرات LED. يمكن تغييرها لتناسب احتياجاتك.

على الرغم من أنني لا أستخدم التأخير المتغير بنشاط في برنامجي ، إلا أنه يمكن ملاحظته للإشارة إلى تكرار النباح أو العواء.

يشير تعليق المتغير إلى عدد مرات تكرار البرنامج حيث يكون مستوى الضوضاء أعلى من الحد ويستخدم لتحديد ما إذا كان هناك عواء. لا ينبغي تعديل هذا المتغير بأي شكل من الأشكال حيث يتم اكتشاف العواء من خلال معالجة متغير barkLength.

يمكن خفض متغير العتبة إذا لم يكن اللحاء مرتفعًا جدًا أو مرتفعًا إذا كان هناك ضوضاء في الخلفية يمكن تفسيرها بشكل خاطئ على أنها ضوضاء صادرة من الكلب.

الخطوة 5: الأجهزة

المعدات
المعدات
المعدات
المعدات
المعدات
المعدات

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

ثابت

أسهل شيء يمكنك القيام به هو ترك كل شيء على لوح التجارب حيث لن تكون هناك حركة يمكنها فصل الأسلاك. قم بتوصيل كاثودات المصابيح الحمراء بالدبوس الأرضي على Raspberry Pi والأنودات إما من خلال المقاوم 330 أوم أو مباشرة في السن 7 من Raspberry Pi. افعل نفس الشيء مع مصابيح LED الخضراء ولكن قم بتوصيل Anodes بالرقم 5. قم بتشغيل البرنامج ويجب أن يكون لديك مشروع مكتمل بمجرد تعديل الرمز وفقًا لاحتياجاتك.

غير ثابتة

أوصي بإكمال الإصدار الثابت أولاً فقط للتأكد من أن كل شيء يعمل ثم الانتقال من هناك عن طريق لحام كل شيء معًا حتى لا تنفصل الأسلاك عن حركة الكلب.

قم بتوصيل مصابيح LED بالياقة بحيث تكون في وضع مريح ويمكن لأي شخص رؤيتها عند اقترابه.

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

بمجرد أن يتم تأمين كل شيء في مكانه ، قم بتشغيل البرنامج ، وربط الطوق بالكلب ، وتكون قد انتهيت!

موصى به: