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

وحدة التغذية التلقائية للكلاب: 6 خطوات
وحدة التغذية التلقائية للكلاب: 6 خطوات

فيديو: وحدة التغذية التلقائية للكلاب: 6 خطوات

فيديو: وحدة التغذية التلقائية للكلاب: 6 خطوات
فيديو: تغذية | كلب الروت وايلر | وسر التضخيم لأول مرة..عملاق سلالة كلاب | الروت وايلر 2024, يوليو
Anonim
التغذية التلقائية للكلاب
التغذية التلقائية للكلاب

هذا هو مشروعي الخاص بـ Auto Pet Feeder. اسمي باركر أنا في الصف 11 وقد أنشأت هذا المشروع في 11 نوفمبر 2020 باعتباره CCA (نشاط تتويج الدورة التدريبية) في هذا المشروع سأوضح لك كيفية إنشاء وحدة تغذية تلقائية للحيوانات الأليفة باستخدام Arduino UNO. يمكنك اختيار الوقت الذي يمكنك تغييره. سيتم الاستغناء عن الطعام من خلال البريمة وإطعام حيواناتك الأليفة!

اللوازم

الإلكترونيات:

  • اردوينو UNO
  • L298N - 10 دولار - يتحكم في نيما 17
  • NEMA 17 - 10 $ - يدير البريمة حتى يوزع الطعام
  • RTC (DS1307) - 10 دولار - يعطي الوقت
  • 12 فولت امدادات الطاقة - 5 دولار - كل شيء
  • لوحة توصيل صغيرة - للحصول على مساحة أسلاك إضافية
  • أسلاك توصيل - تربط كل شيء
  • أسلاك أنثى إلى ذكر - تربط كل شيء

المعدات:

  • خيوط طباعة ثلاثية الأبعاد - للطابعة ثلاثية الأبعاد
  • مسامير 2 M4 - ثبت لوحة القاعدة في مكانها
  • 4 نيما 17 براغي - ثبت نيما لأسفل
  • PVC T 48 مم داخل البعد الخارجي 66 مم - 3 دولار

أدوات:

  • طابعة 3D
  • تدريبات
  • بندقية لحام

الخطوة 1: نظرة عامة على التصميم

نظرة عامة على التصميم
نظرة عامة على التصميم
نظرة عامة على التصميم
نظرة عامة على التصميم
نظرة عامة على التصميم
نظرة عامة على التصميم
نظرة عامة على التصميم
نظرة عامة على التصميم

تصميم وحدة تغذية الحيوانات الأليفة بسيط للغاية. يتم وضع القادوس في الجزء العلوي من PVC T. ثم يتم وضع غطاء على الجزء الخلفي من PVC T (كما هو موضح في الصورة) مع تثبيت Nema 17 به. ثم يتم دفع Nema 17 إلى الجزء الخلفي من المثقاب الذي يمكن رؤيته أعلاه وسيتجه البرغي إلى الجانب ليثبته في مكانه حتى لا يشوه الفتحة التي يمكن رؤيتها أعلاه!

ثم يقوم البريمة ببساطة بدفع الطعام من الأنبوب إلى الوعاء!

الخطوة 2: نظرة عامة على التعليمات البرمجية

نظرة عامة على التعليمات البرمجية
نظرة عامة على التعليمات البرمجية
نظرة عامة على التعليمات البرمجية
نظرة عامة على التعليمات البرمجية
نظرة عامة على التعليمات البرمجية
نظرة عامة على التعليمات البرمجية

يحتوي RTC & The stepper على مكتبة تسمى RTClib.h و Stepper.h والتي تضيف رمزًا مبسطًا لـ RTC & Stepper. عبارات if بسيطة للغاية ، فهي تقول إذا كانت الساعة والدقائق تساوي الوقت المذكور ، فستقوم بتدوير النيما التي ستوزع الطعام. من السهل جدًا فهم بقية الكود حتى بالنسبة لشخص لديه يوم من الخبرة.

الخطوة 3: إرفاق نيما 17 باللوحة الأساسية والمثقب

إرفاق نيما 17 بلوح القاعدة والمثقاب
إرفاق نيما 17 بلوح القاعدة والمثقاب
إرفاق نيما 17 بلوح القاعدة والمثقاب
إرفاق نيما 17 بلوح القاعدة والمثقاب
إرفاق نيما 17 بلوح القاعدة والمثقاب
إرفاق نيما 17 بلوح القاعدة والمثقاب

أولاً ، تريد أن تأخذ لوحة القاعدة الخاصة بك وتعلقها بـ Nema 17 باستخدام الفتحات المعدة مسبقًا على لوحة القاعدة. بمجرد القيام بذلك ، تريد إرفاق المثقب بالنيما باستخدام الفتحة الخلفية الموجودة عليه. ثم قم بتوصيل لوحة القاعدة بالمثقب والنيما المرفقين ثم قم بربط مسامير M2 في كل جانب.

الخطوة 4: توصيل الأسلاك L298N & RTC

الأسلاك L298N & RTC
الأسلاك L298N & RTC
الأسلاك L298N & RTC
الأسلاك L298N & RTC

ستخبرك هذه الخطوة بكيفية توصيل L298N & RTC

سنبدأ مع المسامير 8 ، 9 ، 10 ، 11 إلى L298N

  • دبوس 8 (أبيض) إلى IN1
  • دبوس 9 (أرجواني) إلى IN2
  • دبوس 10 (وردي) إلى IN3
  • رقم التعريف الشخصي 11 (أصفر) إلى IN4

بعد ذلك ، سنقوم بتوصيل Nema 17 بـ L298N

  • OUT1 إلى 1 على NEMA
  • OUT2 إلى 2 على NEMA
  • OUT3 إلى 3 على NEMA
  • OUT4 إلى 4 على NEMA

توصيل 12 فولت واردوينو بـ L298N (لا يمكن العثور على 12 فولت لذا تخيل بطارية 9 فولت كطاقة)

  • فولت إلى 12 فولت
  • الأرض إلى GND
  • 5V إلى 5V على اللوح

توصيل RTC بـ Arduino

  • GND إلى GND
  • 5V إلى 5V على اللوح
  • SDA إلى A5
  • SCL إلى A4

دبابيس العبور

من المفترض أن تكون جميع دبابيس العبور على L298N

الخطوة 5: الترميز مع التعليقات

الترميز مع التعليقات
الترميز مع التعليقات
الترميز مع التعليقات
الترميز مع التعليقات
الترميز مع التعليقات
الترميز مع التعليقات

الكود أكثر وضوحا في الصور أعلاه

// الاسم: باركر فريدريك

// اسم المشروع: Auto Pet Feeder // التاريخ: الثلاثاء 10 نوفمبر 2020 // المعلم: M. Bonisteel // الوصف: أطعم حيواناتك الأليفة في الوقت المحدد!

// Libaries للأشياء التي استخدمتها #include #include # include "RTClib.h"

RTC_DS1307 rtc ؛ // يقول ما تستخدمه الدردشة الفورية RTC

// هذا هو المكان الذي تحدد فيه وقت الطعام

// Hours int mornFeedTime = 12 ؛ int nightFeedTime = 7 ؛ // Minutes int mornFeedTimeM = 29 ؛ int nightFeedTimeM = 00 ؛ // ثانية int mornFeedTimeS = 20 ؛ int nightFeedTimeS = 00 ؛

char daysOfTheWeek [7] [12] = {"الأحد" ، "الإثنين" ، "الثلاثاء" ، "الأربعاء" ، "الخميس" ، "الجمعة" ، "السبت"} ؛ // يجعل الأيام العادية تتحول إلى أيام الأسبوع

تغذية كثافة العمليات = 200 ؛ // هذه هي خطواتك ، لذا كم مرة تريد أن تدور

Stepper myStepper (تغذية ، 8 ، 9 ، 10 ، 11) ؛ // دبابيس لـ Nema 17 ومعظم السائر الأخرى

إعداد باطل () {Serial.begin (9600) ؛

بينما (! المسلسل) ؛ // إذا كان RTC لا يعمل فسوف يعرضه في الشاشة التسلسلية إذا (! rtc.begin ()) {Serial.println ("تعذر العثور على RTC") ؛ بينما (1) ؛ }

// سيخبرك هذا ما إذا كانت ساعة الوقت الحقيقي تعمل أم لا وستعرضها على الشاشة التسلسلية إذا (! rtc.isrunning ()) {Serial.println ("RTC قيد التشغيل!") ؛

rtc.adjust (DateTime (F (_ DATE_)، F (_ TIME_))) ؛ // سيستغرق هذا وقتًا لجهاز الكمبيوتر الخاص بك ويستخدمه في RTC

// إذا كنت ترغب في الحصول على وقت محدد بدلاً من وقت الكمبيوتر ، يمكنك القيام بذلك هنا //rtc.adjust(DateTime (2020 ، 10 ، 29 ، 8 ، 28 ، 0)) ؛ // السنة / الشهر / اليوم / الساعة / الدقيقة / الثانية} myStepper.setSpeed (200) ؛ // السرعة التي تريدها أن تتحول إلى}

حلقة باطلة () {DateTime now = rtc.now () ؛

// هذا سيجعل هذه المتغيرات هي الساعة الآن وما إلى ذلك int hr = now.hour ()؛ int mi = now.minute () ؛ int se = now.second () ؛

// كود لذلك في الوقت المحدد سوف يتم توزيع الطعام وسوف يدور 5 مرات ، هذا إذا كان لوجبة الصباح

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Breakfast!")؛ myStepper.step (-feed) ، تأخير (700) ؛

myStepper.step (-feed) ، تأخير (700) ؛

myStepper.step (-feed) ، تأخير (700) ؛

myStepper.step (-feed) ، تأخير (700) ؛

myStepper.step (-feed) ، تأخير (700) ؛

myStepper.step (-feed) ، تأخير (700) ؛

myStepper.step (-feed) ، تأخير (700) ؛

}

// كود لذلك في الوقت المحدد سوف يتم توزيع الطعام وسوف يدور 5 مرات ، هذا للتغذية الليلية

if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("عشاء!")؛ myStepper.step (-feed) ، تأخير (700) ؛

myStepper.step (-feed) ، تأخير (700) ؛

myStepper.step (-feed) ، تأخير (700) ؛

myStepper.step (-feed) ، تأخير (700) ؛

myStepper.step (-feed) ، تأخير (700) ؛

myStepper.step (-feed) ، تأخير (700) ؛

myStepper.step (-feed) ، تأخير (700) ؛ }

// سيعرض هذا العام ، الشهر ، اليوم ، الساعة ، الدقيقة ، الثانية في المسلسل

Serial.print (now.year ()، DEC) ؛ Serial.print ('/') ؛ Serial.print (now.month () ، ديسمبر) ؛ Serial.print ('/') ؛ Serial.print (now.day () ، ديسمبر) ؛ Serial.print ("(") ؛ Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]) ؛ Serial.print (")") ؛ Serial.print (now.hour () ، ديسمبر) ؛ Serial.print (':') ؛ Serial.print (now.minute ()، DEC) ؛ Serial.print (':') ؛ Serial.print (now.second ()، DEC) ؛ Serial.println () ، }

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

موقع الويب الذي استخدمته لمحرك Stepper ، ساعدني ذلك في فهم كيفية برمجة السائر للتشغيل ، ولم أحتفظ بأي شيء منه. لقد ساعدني فقط في فهم كيفية ترميزها

الخطوة 6: المشاكل وكيف أصلحتها

المشاكل وكيف أصلحتها!
المشاكل وكيف أصلحتها!

كان لدي بعض المشاكل

  • كنت بحاجة إلى مصدر طاقة بجهد 12 فولت ، ولم يكن لدي سوى بطارية 9 فولت وجدت واحدة وتم حلها بسرعة.
  • عند توصيل L298N مع NEMA 17 ، كان لديّ خطأ في الأسلاك في A و A - مما جعلها تتذبذب قليلاً. أنا ببساطة أصلحته عن طريق تغيير الأسلاك في الاتجاه الآخر.
  • حاولت جعل الكود أكثر بساطة لأنه في عبارة if myStepper.step (-feed) ؛ مرارا وتكرارا بدا فوضوي. لذلك اضطررت إلى تغييرها مرة أخرى.
  • كان لدي لوحة قاعدة ذات حجم خاطئ كما هو موضح في الصورة ، لذا اضطررت إلى طباعة لوحة جديدة ثلاثية الأبعاد قليلاً وهي مناسبة تمامًا!
  • المشكلة التي أواجهها هي أنها انحشرت لأن البريمة صغيرة جدًا لذا فهي طريقة بسيطة يمكنني إصلاحها من خلال تكبير البريمة بكمية صغيرة!

موصى به: