جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
لدي قطتان ، وأصبح الاضطرار إلى إعطائهما حوالي 3 مرات في اليوم مصدر إزعاج كبير. كانوا ينظرون إلي بوجوههم اللطيفة والنظرات الشديدة ، ثم يركضون إلى صندوق مليء بالخضراء ، يموءون ويتوسلون لهم. لقد قررت أن هذا يكفي. لا مزيد من الاستيقاظ لمجرد إعطاء قطة بعض المكافآت. حان الوقت الآن للحصول على آلة توزيع العلاج ، لأنه كما يقول المثل: "المبرمجون موجودون لجعل الأشياء المعقدة للقيام بالأشياء البسيطة أقل."
قامت DFRobot برعاية هذا المشروع.
قائمة الاجزاء:
- DFRobot Raspberry Pi 3
- وحدة الكاميرا DFRobot Raspberry Pi
- DFRobot محرك متدرج مع ترس كوكبي
- I2C LCD 16x2.8 بوصة
- جاك برميل إلى المحطة
- DRV8825 محرك متدرج
- مكثف 100 درجة فهرنهايت
- Arduino UNO و Genuino UNO
- أسلاك العبور (عامة)
الخطوة 1: إنشاء تصميم
كان الأول هو اختيار كيفية التحكم في آلة التفكير الجديدة الخاصة بي. كان البلوتوث لديه نطاق قصير جدًا ، على بعد 30 قدمًا فقط بدون عوائق. باستخدام هذه المعلومات ، اخترت استخدام WiFi. ولكن الآن ، كيف يمكنني استخدام WiFi للتحكم في الجهاز؟ يحتوي Raspberry Pi 3 على إمكانات WiFi مدمجة ، مما يسمح لي باستخدام Flask لاستضافة صفحة ويب. بعد ذلك كان موضوع العلبة وكيفية صرف الحلوى. قررت تصميم العجلة الدوارة ، حيث ستنخفض المكافآت إلى أقسام صغيرة ، وتدور حولها ، ثم تنزل المكافآت على منحدر وتنتقل إلى مقدمة الماكينة.
الخطوة الثانية: عمل نموذج Fusion 360
لقد بدأت بإنشاء نموذج أساسي لوعاء العلاج. تقع الحلوى في وعاء صغير حيث يتم نقلها بعد ذلك إلى عجلة دوارة.
بعد ذلك ، أضفت Raspberry Pi 3 إلى تصميم Fusion ، إلى جانب الأجهزة الإلكترونية الأخرى ، بما في ذلك وحدة الكاميرا LCD و Raspberry Pi. لقد صنعت أيضًا قادوسًا يمكنه تخزين مكافآت إضافية.
من المفترض أن يتم قطع جدران موزع المعالجة من الخشب الرقائقي 1/4 بوصة على جهاز التوجيه CNC. هناك 7 قطع لها ، و 4 جدران ، وأرضية ، وقطعة علوية وغطاء يمكن فتحها وإغلاقها لفضح المكافآت.
أخيرًا ، قمت بإنشاء مقبض "فاخر" لفتح الغطاء.
الخطوة 3: إعداد ملف Pi
تواصلت شركة DFRobot معي وأرسلت وحدة كاميرا Raspberry Pi 3 و Raspberry Pi. لذلك بعد أن فتحت الصناديق ، حصلت على حق العمل من خلال إعداد بطاقة SD. أولاً ، ذهبت إلى صفحة تنزيلات Raspberry Pi وقمت بتنزيل أحدث إصدار من Raspbian. ثم قمت باستخراج الملف ووضعه في دليل مناسب. لا يمكنك فقط نسخ / لصق ملف.img على بطاقة SD ، عليك "نسخه" على البطاقة. يمكنك تنزيل أداة حرق مثل Etcher.io لنقل صورة نظام التشغيل بسهولة. بعد أن كان ملف.img على بطاقة SD الخاصة بي ، قمت بإدخاله في Raspberry Pi ومنحته الطاقة. بعد حوالي 50 ثانية ، قمت بفصل السلك وإزالة بطاقة SD. بعد ذلك ، أعدت بطاقة SD إلى جهاز الكمبيوتر الخاص بي وذهبت إلى دليل "التمهيد". فتحت برنامج "المفكرة" وحفظه كملف فارغ باسم "ssh" بدون امتداد. كان هناك أيضًا ملف أضفته يسمى "wpa_supplicant.conf" ووضعت هذا النص فيه: network = {ssid = psk =} ثم قمت بحفظ البطاقة وإخراجها وأعدتها في Raspberry Pi 3. وهذا يجب أن يسمح الآن لـ استخدام SSH والاتصال بشبكة WiFi.
الخطوة 4: تثبيت البرنامج
هناك العديد من البرامج المختلفة التي يمكنها دفق الفيديو ، مثل VLC والحركة ، لكنني قررت استخدام mjpeg-streamer نظرًا لانخفاض زمن الوصول وسهولة التثبيت. وفقًا للإرشادات الموجودة على الموقع ، قم بما يلي: git clone https://github.com/jacksonliam/mjpg-streamer.git في مجلد ، ثم اكتب: sudo apt-get install cmake libjpeg8-dev لتثبيت المكتبات المطلوبة. قم بتغيير الدليل الخاص بك إلى المجلد الذي قمت بتنزيله ثم اكتب: make Followed by: sudo make install لترجمة البرنامج. أخيرًا أدخل: تصدير LD_LIBRARY_PATH =. ولتشغيله اكتب:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" يمكنك الوصول إلى الدفق من خلال التوجه إلى: https:// The pi local ip: 8080 / stream. أتش تي أم أل لعرض الدفق.
الخطوة الخامسة: إعداد خادم الويب
من أجل التحكم في الجهاز خارجيًا بواسطة WiFi ، كنت بحاجة إلى خادم ويب. يخدم خادم الويب بشكل أساسي صفحات الويب عند الطلب ، عادةً بواسطة المستعرض. أردت شيئًا سريعًا وسهل الإعداد والاستخدام ، مع إزالة Apache من على الطاولة. أردت أيضًا واجهة خادم الويب مع Python حتى أتمكن من التحكم في Arduino Uno باستخدام PySerial. قادني هذا البحث في النهاية إلى Flask ، وهي مكتبة Python لطيفة تتيح للمستخدمين إنشاء خادم ويب بسرعة. الكود الكامل مرفق بصفحة المشروع هذه. يُنشئ نص Python بشكل أساسي صفحتين ويب ، إحداهما مستضافة في الدليل الجذر ، "/" ، والأخرى مستضافة في "/ dispense". تحتوي صفحة الفهرس على نموذج HTML يرسل عند إرساله طلب نشر إلى صفحة التوزيع. ثم تتحقق صفحة التوزيع من صحة قيمة المنشور ، وإذا كانت هذه هي الرسالة "D / n" يتم إرسالها عبر المسلسل إلى Arduino Uno.
الخطوة 6: التحكم في IO
قررت استخدام DRV8825 لقيادة محرك السائر الخاص بي ، ويرجع ذلك أساسًا إلى أنه يحتاج فقط إلى دبابيس إدخال / إخراج مع وجود حد تيار قابل للتعديل. حاولت استخدام L293D لكنه لم يستطع تحمل حمل محرك السائر. يتم التحكم في DRV8825 عن طريق نبض دبوس STEP عبر PWM ، ويتم التحكم في الاتجاه عن طريق سحب دبوس DIR عاليًا أو منخفضًا. يحتوي محرك السائر الذي أستخدمه على سحب 1.2 أمبير ، لذلك قمت بتعديل جهد VREF إلى 0.6 فولت. التالي كان شاشة LCD. كنت أرغب في استخدام I2C لتقليل كمية الإدخال / الإخراج المطلوبة وتبسيط الكود. لتثبيت المكتبة ، ما عليك سوى البحث عن "LiquidCrystal_I2C" وقم بتثبيتها. أخيرًا ، يتحقق Arduino Uno من المعلومات الجديدة في المخزن المؤقت التسلسلي وما إذا كانت تتطابق مع 'D'. إذا حدث ذلك ، فإن Uno يتسبب في تحرك محرك السائر 180 درجة ثم -72 درجة لمنع العلاجات من الوقوع.