جدول المحتويات:
- الخطوة 1: قبل أن نبدأ
- الخطوة 2: إنشاء نموذج ML مخصص في Lobe
- الخطوة 3: قم ببنائه: الأجهزة
- الخطوة 4: كودها: برنامج
- الخطوة 5: اختبرها: قم بتشغيل البرنامج
- الخطوة 6: (اختياري) قم ببنائه: أنهِ دائرتك
- الخطوة 7: (اختياري) قم ببنائه: Case
- الخطوة 8: التثبيت والنشر
فيديو: اصنع مصنف Pi Trash مع ML: 8 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
تم تصميم مشروع Trash Classifier ، المعروف باسم "أين تذهب ؟!" ، لجعل التخلص من الأشياء أسرع وأكثر موثوقية.
يستخدم هذا المشروع نموذج التعلم الآلي (ML) الذي تم تدريبه في Lobe ، وهو منشئ نموذج ML صديق للمبتدئين (بدون رمز!) لتحديد ما إذا كان كائن ما يذهب في القمامة أو إعادة التدوير أو السماد أو النفايات الخطرة. ثم يتم تحميل النموذج على كمبيوتر Raspberry Pi 4 لجعله قابلاً للاستخدام في أي مكان قد تجد فيه صناديق قمامة!
يرشدك هذا البرنامج التعليمي إلى كيفية إنشاء مشروع Trash Classifier الخاص بك على Raspberry Pi من نموذج Lobe TensorFlow في Python3.
الصعوبة: مبتدئ ++ (بعض المعرفة مع الدوائر والتشفير مفيد)
وقت القراءة: 5 دقائق
وقت البناء: 60-90 دقيقة
التكلفة: 70 دولارًا تقريبًا (بما في ذلك Pi 4)
اللوازم:
البرمجيات (من جانب الكمبيوتر)
- فص
- WinSCP (أو أي طريقة أخرى لنقل ملفات SSH ، يمكنها استخدام CyberDuck لنظام التشغيل Mac)
- صالة
- اتصال سطح المكتب البعيد أو RealVNC
المعدات
- Raspberry Pi ، وبطاقة SD ، ومزود طاقة USB-C (5 فولت ، 2.5 أمبير)
- كاميرا باي
- اضغط الزر
-
5 مصابيح LED (4 مؤشرات LED و 1 حالة LED)
- الصمام الأصفر: قمامة
- الصمام الأزرق: إعادة التدوير
- الصمام الأخضر: سماد
- الصمام الأحمر: نفايات خطرة
- الصمام الأبيض: الحالة
- 6220 مقاومات أوم
- 10 أسلاك توصيل M-to-M
- اللوح ، نصف الحجم
إذا اخترت اللحام:
- 1 موصل JST ، طرف أنثى فقط
- 2 أسلاك توصيل M-to-F
- 10 أسلاك توصيل F-to-F
- ثنائي الفينيل متعدد الكلور
نسيج
- حالة المشروع (على سبيل المثال صندوق من الورق المقوى أو الخشب أو البلاستيك ، حوالي 6 "× 5" × 4 ")
-
مربع بلاستيك شفاف 0.5 بوصة × 0.5 بوصة (2 سم × 2 سم)
على سبيل المثال من غطاء حاوية طعام بلاستيكية
- الفيلكرو
أدوات
- قواطع للاسلاك
- سكين دقيق (مثل سكين دقيق) وحصيرة تقطيع
- لحام الحديد (اختياري)
- أداة الذوبان الساخن (أو غيرها من الغراء غير الموصّل - يعمل الإيبوكسي بشكل رائع ولكنه دائم)
الخطوة 1: قبل أن نبدأ
يفترض هذا المشروع أنك تبدأ بإعداد Raspberry Pi بالكامل في تكوين مقطوع الرأس. إليك دليل سهل للمبتدئين حول كيفية القيام بذلك.
كما أنه يساعد في الحصول على بعض المعرفة بما يلي:
-
الإلمام بـ Raspberry Pi
- هذا دليل سهل للبدء!
- مفيد أيضًا: الشروع في استخدام كاميرا Pi
-
قراءة وتحرير كود Python (لن تحتاج إلى كتابة برنامج ، فقط قم بالتحرير)
مقدمة إلى Python مع Raspberry Pi
- قراءة مخططات الأسلاك فريتزينج
-
باستخدام اللوح
كيفية استخدام برنامج تعليمي للوح التجارب
اكتشف أين تذهب سلة المهملات
كل مدينة في جميع أنحاء الولايات المتحدة (وسأفترض العالم) لديها قمامة / إعادة تدوير / سماد / إلخ. نظام الجمع. هذا يعني أنه لإنشاء مصنف دقيق للمهملات ، سنحتاج إلى 1) إنشاء نموذج ML مخصص (سنغطي هذا في الخطوة التالية - لا يوجد رمز!) و 2) معرفة مكان كل قطعة من المهملات.
نظرًا لأنني لم أكن أعرف دائمًا الحاوية المناسبة لكل عنصر استخدمته لتدريب نموذجي ، فقد استخدمت نشرة Seattle Utilities (الصورة 1) ، وأيضًا هذا مفيد "أين تذهب؟" أداة البحث عن مدينة سياتل! تحقق من الموارد المتاحة في مدينتك من خلال البحث عن أداة جمع القمامة في مدينتك والاطلاع على موقع الويب الخاص بها.
الخطوة 2: إنشاء نموذج ML مخصص في Lobe
Lobe هي أداة سهلة الاستخدام تحتوي على كل ما تحتاجه لإحياء أفكار التعلم الآلي الخاصة بك. اعرض عليه أمثلة لما تريده أن يفعله ، ويقوم تلقائيًا بتدريب نموذج مخصص للتعلم الآلي يمكن تصديره للأجهزة والتطبيقات المتطورة. لا يتطلب الأمر أي خبرة للبدء. يمكنك التدريب على جهاز الكمبيوتر الخاص بك مجانًا!
فيما يلي نظرة عامة سريعة على كيفية استخدام Lobe:
1. افتح برنامج Lobe وأنشئ مشروعًا جديدًا.
2. التقاط أو استيراد الصور وتصنيفها في الفئات المناسبة. (الصورة 1) سنحتاج إلى هذه الملصقات لاحقًا في جزء البرنامج من المشروع.
هناك طريقتان لاستيراد الصور:
- التقط صورًا للعناصر مباشرةً من كاميرا الويب بالكمبيوتر ، أو
-
استيراد الصور من المجلدات الموجودة على جهاز الكمبيوتر الخاص بك.
ضع في اعتبارك أنه سيتم استخدام اسم مجلد الصور كاسم تسمية الفئة ، لذا تأكد من أنه يتطابق مع التصنيفات الموجودة
جانبا: انتهى بي الأمر باستخدام كلتا الطريقتين ، نظرًا لأنه كلما زاد عدد الصور لديك ، كان نموذجك أكثر دقة.
3. استخدم ميزة "تشغيل" لاختبار دقة النموذج. قم بتغيير المسافات والإضاءة ومواضع اليد وما إلى ذلك لتحديد مكان النموذج وغير دقيق. أضف المزيد من الصور حسب الضرورة. (الصور 3-4)
4. عندما تكون جاهزًا ، قم بتصدير نموذج Lobe ML الخاص بك بتنسيق TensorFlow (TF) Lite.
نصائح:
-
قبل استيراد الصور ، قم بعمل قائمة بجميع الفئات التي ستحتاج إليها وكيف تريد تصنيفها (على سبيل المثال ، "قمامة" ، "إعادة تدوير" ، "سماد" ، إلخ.)
ملاحظة: استخدم نفس الملصقات كما هو موضح في صورة "Lobe Model Labels" أعلاه لتقليل مقدار الشفرة التي تحتاج إلى تغييرها
- قم بتضمين فئة "ليست مهملات" تحتوي على صور لأي شيء آخر قد يكون في الصورة (على سبيل المثال ، يديك وذراعيك ، والخلفية ، وما إلى ذلك)
- إذا أمكن ، التقط صورًا من Pi Camera واستوردها إلى Lobe. سيؤدي ذلك إلى تحسين دقة نموذجك بشكل كبير!
- هل تحتاج إلى مزيد من الصور؟ تحقق من مجموعات البيانات مفتوحة المصدر على Kaggle ، بما في ذلك مجموعة صور تصنيف القمامة هذه!
- هل تريد المزيد من المساعدة؟ تواصل مع Lobe Coommunity على Reddit!
الخطوة 3: قم ببنائه: الأجهزة
1. قم بتوصيل كاميرا Pi بـ Pi بعناية (قم بزيارة دليل البدء لمؤسسة Pi للحصول على مزيد من المعلومات). (الصورة 1)
2. اتبع مخطط الأسلاك لتوصيل الزر الانضغاطي ومصابيح LED بدبابيس Pi GPIO.
- زر الضغط: قم بتوصيل إحدى رجلي الزر الانضغاطي بطرف GPIO 2. قم بتوصيل الطرف الآخر ، عبر المقاوم ، بدبوس GPIO GND.
- LED أصفر: قم بتوصيل الساق الموجبة (الأطول) بدبوس GPIO 17. قم بتوصيل الساق الأخرى ، عبر المقاوم ، بدبوس GPIO GND.
- الصمام الأزرق: قم بتوصيل الساق الموجبة بدبوس GPIO 27. قم بتوصيل الساق الأخرى ، عبر المقاوم ، بدبوس GPIO GND.
- LED الأخضر: قم بتوصيل الساق الموجبة بدبوس GPIO 22. قم بتوصيل الساق الأخرى ، عبر المقاوم ، بدبوس GPIO GND.
- الصمام الأحمر: قم بتوصيل الساق الموجبة بدبوس GPIO 23. قم بتوصيل الساق الأخرى ، عبر المقاوم ، بدبوس GPIO GND.
- LED أبيض: قم بتوصيل الساق الموجبة بدبوس GPIO 24. قم بتوصيل الساق الأخرى ، عبر المقاوم ، بدبوس GPIO GND.
3. يوصى باختبار دائرتك على لوحة توصيل وتشغيل البرنامج قبل اللحام أو عمل أي من التوصيلات بشكل دائم. للقيام بذلك ، سنحتاج إلى كتابة برنامجنا وتحميله ، لذلك دعنا ننتقل إلى الخطوة التالية!
الخطوة 4: كودها: برنامج
1. على جهاز الكمبيوتر الخاص بك ، افتح WinSCP واتصل بـ Pi الخاص بك. قم بإنشاء مجلد Lobe في الدليل الرئيسي لـ Pi وأنشئ مجلد نموذج في هذا الدليل.
2. اسحب محتويات مجلد Lobe TF الناتج إلى Pi. قم بتدوين مسار الملف: / home / pi / Lobe / model
3. في Pi ، افتح Terminal وقم بتنزيل مكتبة lobe-python لـ Python3 عن طريق تشغيل أوامر bash التالية:
تثبيت pip3
تثبيت الفصوص pip3
4. قم بتنزيل رمز Trash Classifier (rpi_trash_classifier.py) من هذا الريبو إلى Pi (انقر فوق الزر "Code" كما هو موضح في الصورة 1).
- هل تفضل النسخ / اللصق؟ احصل على الكود الخام هنا.
- هل تفضل التنزيل على جهاز الكمبيوتر الخاص بك؟ قم بتنزيل repo / code على جهاز الكمبيوتر الخاص بك ثم انقل كود Python إلى Pi عبر WinSCP (أو برنامج نقل الملفات عن بُعد المفضل لديك).
5. بمجرد توصيل الجهاز بدبابيس GPIO الخاصة بـ Pi ، اقرأ مثال التعليمات البرمجية وقم بتحديث أي من مسارات الملفات حسب الحاجة:
- السطر 29: مسار الملف إلى نموذج Lobe TF
- الخطان 47 و 83: مسار الملف لالتقاط الصور عبر Pi Camera
6. إذا لزم الأمر ، قم بتحديث تسميات النموذج في التعليمات البرمجية لتطابق تمامًا التسميات الموجودة في نموذج Lobe الخاص بك (بما في ذلك الكتابة بالأحرف الكبيرة ، وعلامات الترقيم ، وما إلى ذلك):
- السطر 57: "قمامة"
- السطر 60: "إعادة التدوير"
- السطر 63: "سماد"
- السطر 66: "مرفق النفايات الخطرة"
- السطر 69: "ليس قمامة!"
7. قم بتشغيل البرنامج باستخدام Python3 في النافذة الطرفية:
python3 rpi_trash_classifier.py
الخطوة 5: اختبرها: قم بتشغيل البرنامج
نظرة عامة على البرنامج
عند تشغيل البرنامج لأول مرة ، سيستغرق تحميل مكتبة TensorFlow ونموذج Lobe ML بعض الوقت. عندما يكون البرنامج جاهزًا لالتقاط صورة ، سيومض ضوء الحالة (LED الأبيض).
بمجرد التقاط صورة ، سيقوم البرنامج بمقارنة الصورة بنموذج Lobe ML وإخراج التنبؤ الناتج (السطر 83). يحدد الإخراج الضوء الذي يتم تشغيله: أصفر (قمامة) ، أو أزرق (إعادة تدوير) ، أو أخضر (سماد) ، أو أحمر (نفايات خطرة).
إذا لم يتم تشغيل أي من مؤشرات LED وعاد مؤشر LED للحالة إلى وضع النبض ، فهذا يعني أن الصورة الملتقطة كانت "ليست مهملات" ، بمعنى آخر ، أعد التقاط الصورة!
التقاط صورة
اضغط على زر الضغط لالتقاط صورة. لاحظ أنك قد تحتاج إلى الضغط على الزر الانضغاطي لمدة ثانية واحدة على الأقل حتى يقوم البرنامج بتسجيل الضغط. يوصى بأخذ بعض الصور الاختبارية ، ثم فتحها على سطح المكتب لفهم عرض الكاميرا والإطار بشكل أفضل.
لإتاحة الوقت للمستخدم لتحديد موضع الكائن ولتعديل مستويات إضاءة الكاميرا ، يستغرق الأمر حوالي 5 ثوانٍ لالتقاط صورة كاملة. يمكنك تغيير هذه الإعدادات في الكود (السطران 35 و 41) ، لكن ضع في اعتبارك أن مؤسسة Pi توصي بحد أدنى 2 ثانية لتعديل مستوى الضوء.
استكشاف الأخطاء وإصلاحها
التحدي الأكبر هو التأكد من أن الصورة الملتقطة هي ما نتوقعه ، لذا خذ بعض الوقت لمراجعة الصور ومقارنة النتائج المتوقعة بإخراج LED المؤشر. إذا لزم الأمر ، يمكنك تمرير الصور إلى نموذج Lobe ML للاستدلال المباشر والمقارنة الأسرع.
هناك عدد قليل من الأشياء ملاحظة:
- من المحتمل أن تلقي مكتبة TensorFlow بعض رسائل التحذير - وهذا أمر نموذجي بالنسبة للإصدار المستخدم في نموذج التعليمات البرمجية هذا.
- يجب أن تكون تسميات التوقع كما هي مكتوبة تمامًا في وظيفة led_select () ، بما في ذلك الكتابة بالأحرف الكبيرة وعلامات الترقيم والتباعد. تأكد من تغييرها إذا كان لديك طراز Lobe مختلف.
- يتطلب Pi مصدر طاقة ثابتًا. يجب أن يكون مصباح الطاقة Pi أحمر ساطعًا.
- إذا لم يتم تشغيل واحد أو أكثر من مصابيح LED في الوقت المتوقع ، فتحقق من خلال إجبارها على تشغيل الأمر:
red_led.on ()
الخطوة 6: (اختياري) قم ببنائه: أنهِ دائرتك
الآن بعد أن اختبرنا مشروعنا ، وإذا لزم الأمر ، قمنا بتصحيحه حتى يعمل كما هو متوقع ، نحن على استعداد لتلحيم دائرتنا!
ملحوظة: إذا لم يكن لديك مكواة لحام ، فيمكنك تخطي هذه الخطوة. أحد البدائل هو طلاء وصلات الأسلاك بالغراء الساخن (سيسمح لك هذا الخيار بإصلاح / إضافة / استخدام الأشياء لاحقًا ، ولكن من المرجح أن تنكسر) ، أو استخدام إبوكسي أو غراء دائم مماثل (سيكون هذا الخيار أكثر متانة لكنك لن تكون قادرًا على استخدام الدائرة أو ربما Pi بعد القيام بذلك)
تعليق سريع على خيارات التصميم الخاصة بي (الصورة 1):
- لقد اخترت أسلاك التوصيل الأنثوية لمصابيح LED و Pi GPIO لأنها تسمح لي بإزالة مصابيح LED ومبادلة الألوان أو تحريكها إذا لزم الأمر. يمكنك تخطي هذه إذا كنت تريد إجراء اتصالات دائمة.
- وبالمثل ، اخترت موصل JST لزر الضغط.
إلى الأمام إلى المبنى
1. قطع كل من الأسلاك الطائر الإناث إلى النصف (نعم ، كل منهم!). باستخدام قواطع الأسلاك ، قم بإزالة حوالي 1/4 بوصة (1/2 سم) من عازل السلك.
2. لكل من مصابيح LED ، قم بلحام مقاوم 220 بالساق السالبة (الأقصر). (الصورة 2)
3. قطع قطعة صغيرة ، حوالي 1 بوصة (2 سم) من أنبوب الانكماش الحراري واضغط على وصلة الصمام والمقاوم. تأكد من إمكانية الوصول إلى ساق المقاوم الأخرى ، ثم قم بتسخين أنبوب الانكماش حتى يثبت المفصل. (الصورة 3)
4. أدخل كل LED في زوج من الأسلاك الطائر الأنثوي. (الصورة 4)
5. قم بتسمية أسلاك العبور (على سبيل المثال بشريط) ، ثم قم بتوصيل أسلاك التوصيل على لوحة الدوائر المطبوعة (PCB). (الصورة 5)
6. بعد ذلك ، استخدم سلك توصيل أنثى (مقطوع) لتوصيل كل مؤشر LED بدبوس Pi GPIO الخاص به. قم بلحام سلك توصيل وقم بتسميته بحيث يتصل المعدن العاري بساق LED الموجبة عبر PCB. (الصورة 5)
ملاحظة: سيعتمد مكان لحام هذا السلك على تخطيط ثنائي الفينيل متعدد الكلور الخاص بك. يمكنك أيضًا لحام هذا السلك مباشرة بسلك توصيل LED الموجب.
7. قم بلحام المقاوم 220Ω بالطرف السالب (الأسود) لموصل JST. (الصورة 6)
8. قم بتوصيل موصل JST والمقاوم بالزر الانضغاطي. (الصورة 6)
9. قم بتوصيل أسلاك العبور M-to-F بين موصل الزر الانضغاطي ودبابيس GPIO (التذكير: الأسود هو GND).
10. قم بتغطية وصلات PCB بالغراء الساخن أو الايبوكسي لاتصال أكثر أمانًا.
ملاحظة: إذا اخترت استخدام الإيبوكسي ، فقد لا تتمكن من استخدام دبابيس GPIO الخاصة بـ Pi لمشاريع أخرى في المستقبل. إذا كنت قلقًا بشأن هذا الأمر ، فأضف كبل شريط GPIO وقم بتوصيل أسلاك التوصيل به بدلاً من ذلك.
الخطوة 7: (اختياري) قم ببنائه: Case
قم بإنشاء حاوية لـ Pi الخاص بك والتي ستحمل الكاميرا وزر الضغط ومصابيح LED في مكانها مع حماية Pi أيضًا. صمم العلبة الخاصة بك أو اتبع تعليمات البناء أدناه لنمذجة حاوية من الورق المقوى بسرعة!
-
في الجزء العلوي من صندوق الكرتون الصغير ، تتبع مواقع الزر الانضغاطي ، ومصباح الحالة ، وأضواء المعرف ، ونافذة كاميرا pi (الصورة 1).
ملاحظة: يجب أن تكون نافذة الكاميرا Pi حوالي 3/4 بوصة × 1/2 بوصة
-
باستخدام سكين الدقة الخاص بك ، قم بقطع الآثار.
ملاحظة: قد ترغب في اختبار الأحجام كما تذهب (الصورة 1)
- اختياري: قم بطلاء العلبة! اخترت رذاذ الطلاء:)
- قم بقص غطاء "نافذة" مستطيل لكاميرا Pi (الصورة 4) والصمغ داخل الصندوق
-
أخيرًا ، قم بقطع الفتحة لكابل الطاقة Pi.
يوصى بتثبيت جميع الأجهزة الإلكترونية أولاً لتحديد أفضل مكان لفتحة كبل الطاقة pi
الخطوة 8: التثبيت والنشر
هذا كل شيء! أنت جاهز لتثبيت ونشر مشروعك! ضع العلبة فوق صناديق القمامة الخاصة بك ، وقم بتوصيل Pi ، وقم بتشغيل البرنامج للحصول على طريقة أسرع وأكثر موثوقية لتقليل نفاياتنا. ياي!
للمضي قدما
- شارك مشاريعك وأفكارك مع أشخاص آخرين عبر مجتمع Lobe Reddit!
- تحقق من Lobe Python GitHub repo للحصول على نظرة عامة حول كيفية استخدام Python لنشر مجموعة متنوعة من مشاريع Lobe
- أسئلة أو طلبات مشروع؟ اترك تعليقًا على هذا المشروع أو تواصل معنا مباشرةً: [email protected]
موصى به:
اصنع صندوق TARDIS Infinity: 9 خطوات (بالصور)
اصنع TARDIS Infinity Box: لقد قمت سابقًا ببناء نموذج TARDIS. من السمات المميزة لـ TARDIS أنها أكبر من الداخل مما هي في الخارج. من الواضح أنني لا أستطيع فعل ذلك ، لكن في Instructable ، أقوم بتكييف النموذج لمحاولة جعله يبدو كبيرًا
اصنع بنفسك - اصنع نظام سماعات USB صغير مع PAM8403 و Cardboard - برغي ذهبي: 5 خطوات
اصنع بنفسك - اصنع نظام سماعات USB صغير مع PAM8403 و Cardboard | Gold Screw: اليوم ، سأوضح لك كيفية صنع نظام مكبر صوت صغير USB مع وحدة مضخم PAM8403 و Cardboard. إنه سهل للغاية باستخدام مواد رخيصة
GoBabyGo: اصنع سيارة ركوب يتم التحكم فيها بواسطة عصا التحكم: 10 خطوات (بالصور)
GoBabyGo: اصنع سيارة ركوب يتم التحكم فيها بواسطة عصا التحكم: تأسست GoBabyGo من قبل أستاذ بجامعة ديلاوير ، وهي مبادرة عالمية توضح للأشخاص العاديين كيفية تعديل سيارات الركوب بحيث يمكن للأطفال الصغار ذوي القدرة المحدودة على الحركة استخدامها. المشروع الذي يتضمن تبديل دواسة القدم f
اصنع مكبر صوت: 9 خطوات (بالصور)
اصنع مكبر صوت: في Instructables هذه ، سأوجهك إلى كيفية بناء مكبر صوت لهذه الفكرة ، لقد استلهمت من مقطع فيديو على YouTube لرجل يصنع مكبر صوت من الورق أحببت الفكرة حقًا لكنها لم تكن مرضية بما فيه الكفاية بالنسبة لي يحتاج إلى إلكترون
اصنع باور بانك للطوارئ يدويًا: 4 خطوات (بالصور)
اصنع Powerbank للطوارئ يدويًا: في هذا المشروع سأوضح لك كيفية إنشاء مولد يدوي مع بنك طاقة معدل. بهذه الطريقة يمكنك شحن powerbank الخاص بك في حالة الطوارئ دون الحاجة إلى مقبس. على طول الطريق سأخبرك أيضًا لماذا BLDC mot