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

مؤشر تحميل وحدة المعالجة المركزية Raspberry Pi: 13 خطوة
مؤشر تحميل وحدة المعالجة المركزية Raspberry Pi: 13 خطوة

فيديو: مؤشر تحميل وحدة المعالجة المركزية Raspberry Pi: 13 خطوة

فيديو: مؤشر تحميل وحدة المعالجة المركزية Raspberry Pi: 13 خطوة
فيديو: أعلى مستوى وصلتوا في البرمجة 2024, شهر نوفمبر
Anonim
مؤشر تحميل وحدة المعالجة المركزية Raspberry Pi
مؤشر تحميل وحدة المعالجة المركزية Raspberry Pi

عند تشغيل Raspberry Pi (RPI) بدون رأس بدون شاشة وحدة التحكم ، لا تتوفر مؤشرات مرئية محددة للتعرف على RPI يقوم بشيء ما بالفعل.

على الرغم من استخدام المحطة الطرفية البعيدة مع SSH ، يلزم تنفيذ أمر Linux من وقت لآخر للتحقق من مقدار تحميل النظام الذي يثقل كاهل وحدة المعالجة المركزية الآن

لذلك تم تصميم هذه الدائرة للمساعدة على الفور في التعرف على النشاط الحقيقي لوحدة المعالجة المركزية (ربما بطريقة شبه حقيقية أو شبه حقيقية) لتنفيذ أحمال النظام المطبقة حاليًا.

على الرغم من أن برمجة Python فقط والدائرة الأبسط بكثير يمكن أن تدعم نفس الوظيفة ، إلا أنه ستكون هناك حاجة إلى القليل من رموز Python المعقدة لمحاكاة منطق التحكم LED المتطور الذي تتطلبه هذه الدائرة.

ومن المفارقات أيضًا أن التعقيد المتزايد لرمز Python سوف يثقل كاهل وحدة المعالجة المركزية بشكل أكبر مع زيادة حمل النظام.

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

وستضيف هذه الدائرة ميزة مضحكة قليلاً إلى RPI الذي يعمل بدون رأس.

الخطوة 1: فحص تحميل وحدة المعالجة المركزية (CPU) التحقق من أمر Linux

فحص تحميل وحدة المعالجة المركزية لأمر Linux
فحص تحميل وحدة المعالجة المركزية لأمر Linux

هناك العديد من أوامر تشغيل وحدة المعالجة المركزية للتحقق من توفر أوامر Linux مثل top و iostat و sysstat و uptime.

كل أمر له ميزات مفيدة محددة من حيث تنوع المعلومات وعرض بساطة البيانات.

الأمر العلوي هو أكثر المعلومات ثراءً وتتوفر البيانات التفصيلية للتعرف على حمل النظام على الفور.

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

يوفر الأمر iostat معلومات متعمقة عن تحميل النظام عن طريق فصل مهام قائمة الانتظار التي تشغل النظام والمستخدم والتي تثقل كاهل وحدة المعالجة المركزية حاليًا.

ولكنه أيضًا معقد بشكل غير ضروري للحصول على حمل وحدة المعالجة المركزية الحالي بطريقة سريعة وبديهية.

في حالة الجهوزية ، تتوفر بيانات تحميل النظام البسيطة جدًا في متوسط دقيقة واحدة ومتوسط 5 دقائق ومتوسط ملخّص 15 دقيقة.

كما ذكرنا سابقًا ، يعد تبسيط كود بيثون ضروريًا لأنه يجب تنفيذه كثيرًا مثل كل 5 ثوانٍ أو 10 ثوانٍ.

عندما تصبح شفرة بيثون معقدة ، فإنها ستثقل كاهل وحدة المعالجة المركزية كثيرًا.

إنها نوع من التناقض أنك تثقل كاهل RPI لمراقبة حمل النظام.

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

ولكن نظرًا لأن الجهوزية تظهر متوسط 1 دقيقة من حمل النظام ، فإن دائرة المؤشر يجب أن لا تعمل بطريقة الوقت الحقيقي بدقة.

لا تزال هذه الدائرة يمكن أن توفر تلميحًا مرئيًا مفيدًا يوضح كيف يعمل RPI الآن.

الخطوة 2: المخططات

المخططات
المخططات

ستتلقى هذه الدائرة 4 مستويات مختلفة (على سبيل المثال 00-> LOW ، 01-> LIGHT ، 10-> MEDIUM ، 11-> HIGH) من حمل وحدة المعالجة المركزية الحالي من RPI عبر مدخلين للمقرنة البصرية.

74LS139 (من 2 إلى 4 مفكك تشفير ومضاعف) يقوم بفك تشفير مدخلات بتتين في أحد المخرجات الفردية من بين 4 طرق ممكنة مثل 00 (LOW) -> B0 ، 01 (LIGHT) -> B1 ، 10 (MEDIUM) -> B2 ، 11 (مرتفع) -> B3.

نظرًا لأن الإخراج 74LS139 هو مستوى عكسي (إدخال 00 -> B0 يصبح منخفضًا و 3 مخرجات أخرى عالية) ، يتم استخدام العاكس 74HC04 لجعل الإخراج عكس مرة أخرى.

عندما يكون خرج 74LS139 مرتفعًا بشكل طبيعي ، لن يكون 74HC04 ضروريًا.

ولكن بطريقة ما يتم تصنيع 74LS139 بهذه الطريقة. (يرجى مراجعة جدول الحقيقة 74LS139)

عندما يتم تحديد أي من المخرجات 74LS139 ، فإنه سيتم تنشيط مفتاح تناظري معين بين 4 مفاتيح مضمنة في CD4066 IC.

يمكن لـ CD4066 دعم 4 مفاتيح تناظرية ويتكون كل مفتاح من مدخل تحكم واحد ومخرجين تناظريين.

عندما يصبح إدخال التحكم عاليًا ، يصبح اتصال المخرجين منخفضًا (المقاومة تصبح 0) والبعض الآخر يصبح مستوى مقاومة عالية (المقاومة بين مسارين إخراج تصبح عدة مئات ميغا أوم).

ما عليك سوى التحكم في 1 (دبوس 13) من CD4066 ليصبح مرتفعًا ، والمسار بين المخرج 1 (دبوس 1) والمخرج 2 (دبوس 2) متصل في حين أن المخرجات الأخرى غير متصلة (في حالة مقاومة عالية).

وبالمثل ، فإن الإدخال العالي للتحكم 2 (دبوس 5) يجعل الإخراج 1 (دبوس 4) والمخرج 2 (دبوس 3) متصلين بينما يتم فصل النواتج الأخرى.

ثم LM555 يومض اثنين من مؤشرات LED بمعدل وميض مختلف.

كما ترى في المخطط أعلاه ، سيعمل NE555 بواحد من قيمة المقاومة بين 4 (12k ، 24k ، 51k ، 100k) مستويات المقاومة الممكنة.

الخطوة 3: NE555 إنشاء ساعة مختلفة

NE555 جيل مختلف للساعة
NE555 جيل مختلف للساعة

كما هو موضح في التخطيطي ، سيعمل NE555 على قيمة مقاومة محتملة مثل 12 كيلو ، 24 لتر ، 51 كيلو و 100 كيلو.

في الواقع ، يعد جزء دارة التوقيت NE555 مؤشرًا مرئيًا رئيسيًا يدعم جزءًا من الدائرة.

مخطط تشغيل الدائرة يشبه ما يلي.

- عندما لا يكون هناك حمل كبير لوحدة المعالجة المركزية ، سيرسل برنامج python المثبت في RPI مخرجات 00 إلى دائرة المؤشر. ثم يتم تنشيط مسارين للإخراج CD4066 ويعمل NE555 بقيمة مقاومة 12 كيلو. لذلك ، تومض مصابيح LED 1.5 مرة في الثانية (تومض بسرعة كبيرة)

- يتم تحميل وحدة المعالجة المركزية بشكل خفيف (ثم يصبح طول وقت الانتظار 0.1 ~ 0.9 مستوى) ، سيرسل بيثون 01 إلى الدائرة. ثم يتم تنشيط CD4066 بمخرجات متصلة بمقاوم 24 كيلو. نتيجة لذلك ، انخفض وميض LED 1.2 مرة في الثانية (انخفض وميض LED قليلاً ولكن لا يزال سريعًا قليلاً)

- عندما زاد حمل وحدة المعالجة المركزية بشكل كبير (ثم يصبح طول وقت التشغيل في قائمة انتظار التشغيل 1.0 ~ 1.9 مستوى) ، ستخرج بيثون 10 إلى الدائرة. ثم يتم فتح مسار اتصال المقاوم 51k ويعمل NE555 0.8 مرة في الثانية. الآن يصبح معدل الوميض منخفضًا بشكل كبير.

- الأحمال الثقيلة التي تثقل كاهل وحدة المعالجة المركزية وطول قائمة انتظار تشغيل وقت التشغيل تصبح أطول (أكثر من وظيفتين تنتظر تنفيذها بواسطة وحدة المعالجة المركزية وسيبلغ وقت التشغيل عن أكثر من 2.0). عند تحديد اتصال مقاوم 100 ألف ، سيومض مصباح LED NE555 0.5 مرة في الثانية (تصبح سرعة الوميض بطيئة جدًا)

***

إلى جانب زيادة أحمال النظام ، سيتم تقليل سرعة وميض LED وفقًا لذلك.

عندما يومض LED ببطء شديد ، فمن المؤكد أن RPI مثقل بشكل كبير.

وبهذه الطريقة ، تقوم دائرة مؤشر الحمل بالإبلاغ عن مستوى التحميل الحالي لـ RPI.

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

لعمل هذه الدائرة ، يتم استخدام شرائح IC المختلفة.

على الرغم من أنني أذكر 74LSxx ونوع CD40xx لشرائح IC القديمة ، إلا أنه يمكنك استخدام الأنواع الحديثة من رقائق TTL و CMOS مثل 74HC4066 و 74ASxx عندما تكون شريحة IC المحددة من النوع DIP.

يمكن أيضًا استخدام نوع التثبيت السطحي لحزمة IC الصغيرة عندما يمكنك لحام الصغار بشكل صحيح على PCB العالمي.

البعض الآخر أجزاء شائعة يمكنك شراؤها بسهولة من المتاجر الإلكترونية عبر الإنترنت.

- 74LS139 (من 2 إلى 4 مفكك تشفير ، مزيل إرسال) × 1

- 74HC04 (6 العاكس) × 1

- CD4066 (4 مفاتيح تناظرية IC) × 1

- NE555 المؤقت IC x 1

- المكثفات: 10 فائق التوهج × 1 ، 0.1 فائق التوهج × 1

- مقرنة بصرية PC817 × 2 (يمكن استخدام أي مقرنة بصرية 4 سنون مشتركة)

- المقاومات: 220 أوم × 4 (تحديد تيار LED) ، 4.7 كيلو (واجهة مقرنة بصرية) × 2 ، 12 كيلو ، / 24 كيلو / 51 كيلو / 100 كيلو (التحكم في توقيت الساعة) × 1

- LED × 2 (أي ألوان مختلفة مثل الأصفر أو الأخضر أو الأحمر أو الأخضر)

- لوحة عالمية بحجم 30 (W) × 20 (H) ثقوب (يمكنك قص أي حجم للوحة العامة لتناسب هذه الدائرة)

- سلك القصدير (لصنع أنماط الأسلاك على PCB العالمي)

- رأس الدبوس (3 دبابيس) × 3

- رأس دبوس IC (4 دبابيس) × 4

- كابلات توصيل باللون الأحمر / الأزرق

***

الخطوة 5: عمل رسم ثنائي الفينيل متعدد الكلور

صنع رسم ثنائي الفينيل متعدد الكلور
صنع رسم ثنائي الفينيل متعدد الكلور

على الرغم من أنني أعرض رسم ثنائي الفينيل متعدد الكلور في كل مشروع ، فإن تصميم الأسلاك هو مجرد مرجع سيرشدك إلى اللحام الصحيح لكل جزء على ثنائي الفينيل متعدد الكلور العالمي.

لكنك لا تلتزم بالضرورة بمخطط الأسلاك هذا.

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

يمكنك استخدام كابل مشترك لتوصيل الأجزاء بدلاً من سلك القصدير لتقليل حجم PCB المكتمل لحام.

استخدم فقط رسم ثنائي الفينيل متعدد الكلور لفحص وتأكيد اللحام الصحيح بين الأجزاء.

عندما يتم زيادة عدد الدوائر المتكاملة من TTL أو CMOS ، يصبح رسم ثنائي الفينيل متعدد الكلور معقدًا إلى حد ما بعد التكامل المناسب على جانب واحد من ثنائي الفينيل متعدد الكلور.

لذلك ، يتم استخدام متعدد الطبقات من ثنائي الفينيل متعدد الكلور بشكل شائع للدرجة الصناعية للدوائر الرقمية والتي تشمل الكثير من TTL و CMOS والمعالج الصغير.

الخطوة 6: اللحام

اللحيم
اللحيم

أنا أستخدم سلك القصدير وكابل الأسلاك المشترك معًا لتقليل حجم ثنائي الفينيل متعدد الكلور قدر الإمكان.

عند المقارنة برسم ثنائي الفينيل متعدد الكلور ، يتم تغيير موقع كل جزء تمامًا.

ولكن لا يزال يتم استخدام رسم ثنائي الفينيل متعدد الكلور للتحقق من الاتصال الصحيح بين الأجزاء أثناء اللحام.

يمكنك أن ترى مقاومات 12k / 24k / 51k / 100k يتم إدخالها على رأس دبوس IC بدون لحام.

لذلك ، يمكنك استبدال المقاومات بقيم أخرى لتغيير مخطط تشغيل الدائرة بشكل ملائم لاحقًا.

الخطوة 7: التجميع

تجميع
تجميع

يتم تثبيت دائرة مؤشر الحمل المكتملة (المشار إليها فيما يلي باسم المؤشر) على صندوق مشغل الموسيقى RPI كما هو موضح في الصورة أعلاه.

تم تثبيت مشغل الموسيقى هذا مع DAC وأنا أستخدم هذا المشغل مؤخرًا لتشغيل الفيديو الموسيقي.

حول مربع RPI هذا ، سأشرح لاحقًا ودعنا نركز الآن على المؤشر لأن الدائرة هي الموضوع الرئيسي لهذا المشروع.

اشتريت Raspberry Pi 4 Model B 2GB (يشار إليه فيما يلي بـ RPI 4B) مؤخرًا لدعم تطبيق تشغيل الفيديو.

نظرًا لأن RPI 4B قد زاد من أداء وحدة المعالجة المركزية المكونة من 4 نوى ، فقد تم تحسين معالجة أحمال النظام بشكل كبير من RPI 3B +.

لذلك يجب التعامل مع إخراج طول وقت التشغيل بشكل مختلف عن RPI 3B +.

- بالنسبة إلى تحميل النظام التقليدي مثل تشغيل الفيديو ، عادةً ما يكون طول قائمة انتظار التشغيل أقل من 0.5 (لذا فإن تحميل النظام المنخفض سيكون 0.0 ~ 0.5 مستوى)

- عند إضافة حمل إضافي طفيف للنظام مثل تشغيل الفيديو ونسخ الملفات من وإلى الدليل المحلي ، ينتج عن ذلك عبء طفيف على وحدة المعالجة المركزية. (لذا فإن مستوى الحمل الخفيف سيكون 0.5 ~ 1.0)

- عندما يتم تطبيق أحمال كبيرة مثل تشغيل الفيديو على متصفح على موقع Youtube وتصفح الويب على متصفح آخر ، تصبح سرعة تشغيل RPI 4 بطيئة بعض الشيء (لذا يجب أن يكون مستوى التحميل المتوسط 1.0 ~ 2.0)

- أخيرًا ، يصبح تحميل نظام RPI 4 مرتفعًا عند تشغيل متصفحات ويب متعددة ونسخ حجم كبير من الملفات إلى خادم RPI آخر عبر الشبكة (ثم يصبح طول قائمة انتظار التشغيل أكثر من 2.0)

***

سيتم استخدام بيانات مستوى التحميل هذه من خلال تطوير كود بيثون في الخطوة التالية.

الخطوة 8: مراجعة الدائرة الأصلية

مراجعة الدائرة الأصلية
مراجعة الدائرة الأصلية

نظرًا لوجود عيوب عديدة في تصميم الدوائر الأصلية ، أقوم بتعديل الدائرة كما هو موضح في الصورة أعلاه.

أسباب التغيير هي كما يلي.

- يتكون نبضة الساعة NE555 من شكل موجة عالية ومنخفضة. ولكن عادةً ما تكون مدة الإشارة العالية والمنخفضة (t = 1 / f) غير متماثلة (على سبيل المثال ، HIGH هي 70٪ و LOW 30٪ في الدائرة الأصلية). لذلك ، فإن معدل الوميض لمصباحي LED (أخضر / أصفر في التصميم الأصلي) ليس متماثلًا (أحدهما يعمل لفترة أطول من الآخر). لهذا السبب ، لا يمكن التعرف بسهولة على المؤشرات المرئية عن طريق وميض LED

- لذلك ، أقوم بإضافة المزيد من مصابيح LED وإنشاء نمط تكرار دائري باستخدام CD4017 لضمان سهولة التعرف على حالة التشغيل

- أيضًا تغيير مخطط وميض LED بشكل عكسي مثل الوميض البطيء عند التحميل المنخفض والوميض بشكل أسرع مع الحمل العالي. (تم تصميم الدائرة الأصلية لتومض بشكل أسرع في الحمل المنخفض والوميض البطيء عند الحمل العالي). في حالة الحمل العالي ، تصبح أي إجراءات RPI بطيئة. وإظهار وميض LED البطيء لن يجعلك سعيدًا. (في الجانب النفسي ، أختار مخطط عرض أكثر إيجابية)

***

على الرغم من تعديل جزء شاشة LED بشكل كبير ، فإن مستوى التغيير العام مع الدائرة الأصلية ليس كثيرًا كما يمكنك رؤيته في الخطوة التالية.

الخطوة 9: التغيير التخطيطي الأصلي

التغيير التخطيطي الأصلي
التغيير التخطيطي الأصلي

تعد إضافة CD4017 و 8 LEDs تعديلًا رئيسيًا.

أيضًا لتغيير تردد تسجيل الوقت NE555 ونظام وميض LED العكسي ، يتم تغيير قيم المقاومات كما هو موضح في المخططات أعلاه.

نظرًا لأن جزء الدائرة المضافة عبارة عن دائرة مطاردة بسيطة تستند إلى CD4017 ، سأتخطى التفسيرات التفصيلية الأخرى للدائرة المعدلة.

يمكن إجراء جميع أجزاء الدائرة المتغيرة على هيئة لوحة PCB ابنة يتم لحام CD4017 و 8 مصابيح LED بها.

يمكن إرفاق اللوحة الابنة باللوحة الرئيسية (اللوحة الأم) كما هو موضح في الصورة في الخطوة 8.

الخطوة 10: الاختبار

يتم عرض فيديو اختبار لجميع مراحل التشغيل (LOW و LIGHT و MEDIUM و HIGH حالة التحميل) بواسطة الملف المخزن في محرك google أدناه.

***

drive.google.com/file/d/1CNScV2nlqtuH_CYSW…

***

وفقًا لتحميل النظام الحالي ، سيتم تغيير معدل الوميض بين إحدى الحالات الأربع الموضحة في الفيديو.

الخطوة 11: كود بايثون

كود بايثون
كود بايثون

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

- الحصول على بيانات درجة حرارة وحدة المعالجة المركزية لمقارنة النسبية بين حمل النظام ورفع درجة الحرارة

- جمع متوسط حمل النظام لمدة دقيقة واحدة من إخراج الجهوزية

- عمل طابع زمني مثل yy-mm-dd hh: mm: ss format

- درجة حرارة الكتابة وحمل النظام مع الطابع الزمني

- وفقًا لبيانات خرج تحميل النظام الحالي (00 ، 01 ، 10 ، 11) إلى دائرة المؤشر

- النوم 5 ثوان قبل البدء بالخطوات المذكورة أعلاه

نظرًا لأن برنامج python يحتاج إلى مسافة بادئة صارمة داخل الكود المصدري ، يرجى تنزيل الملف المصدر من google drive باتباع الرابط أدناه.

***

drive.google.com/file/d/1BdaRVXyFmQrRHkxY8 …

***

نظرًا لأنني لا أستخدم RPI كجهاز كمبيوتر مكتبي ، فإن تشغيل تطبيقات Libre office أو متصفح الويب نادر جدًا.

عادةً ما أقوم بتشغيل فيديو موسيقي أو نسخ / نقل ملف أو برمجة Python باستخدام RPI 4B 2GB المشتراة حديثًا.

لذلك ، عادة ما يكون متوسط الحمل أقل من 1.0 في حالتي ، وبالتالي أقوم بتغيير المستويات المنخفضة / الخفيفة / المتوسطة / المرتفعة في الكود الخاص بي. (يمكنك تغيير شروط الاختبار خلاف ذلك)

ولكن عندما تشاهد مقاطع فيديو Youtube بشكل شائع باستخدام RPI ، فإن أكثر من 2.0 من عمليات تحميل النظام ستحدث بشكل شائع.

الخطوة 12: النسبية بين حمل النظام ودرجة حرارة وحدة المعالجة المركزية

النسبية بين تحميل النظام ودرجة حرارة وحدة المعالجة المركزية
النسبية بين تحميل النظام ودرجة حرارة وحدة المعالجة المركزية

عادةً ما أخمن وأتأكد من أن زيادة حمل النظام سترفع درجة حرارة وحدة المعالجة المركزية.

لكن حتى الآن ليس لدي صورة واضحة عن التفاعل المتبادل بينهما.

كما ترى في الرسم البياني أعلاه ، فهما علاقة قوية جدًا على النحو التالي.

- لسهولة المقارنة ، أضرب 10 في متوسط حمل النظام. وبخلاف ذلك ، يكون حجم حمل النظام صغيرًا جدًا (0.0 ~ 2.0) ، تصبح المقارنة المباشرة صعبة.

- نظرًا لتركيب دائرة مروحة التبريد على صندوق تشغيل الموسيقى ، فإن درجة حرارة وحدة المعالجة المركزية لا تتجاوز أبدًا 50 درجة مئوية

- عندما يكون تحميل النظام في نطاق 0.0 ~ 1.0 ، تكون درجة الحرارة في نطاق 45 ~ 48 درجة مئوية (الغطاء المعدني لوحدة المعالجة المركزية يسخن قليلاً)

- ولكن يتم تطبيق حمولة ثقيلة (عادةً متصفح الويب وتشغيل مقاطع فيديو Youtube) ، وتحميل الارتفاع ودرجة الحرارة

***

نظرًا لأنه تم تثبيت RPI 4B مع وحدة المعالجة المركزية رباعية النواة ، فلن يتدهور الأداء نظريًا كثيرًا حتى مستوى التحميل (قائمة انتظار تشغيل وقت التشغيل) 4.

ولكن لا يزال أقل من متوسط مستوى الحمل 4 ، سيكون من الضروري التحكم في درجة الحرارة المناسبة.

الخطوة 13: الإنهاء

الإنهاء
الإنهاء

لقد انتهيت من هذا المشروع عن طريق تثبيت INDICATOR على Pi box مثل الصورة أعلاه.

أثناء الاستخدام غير الرسمي لمربع Pi هذا ، نادرًا ما يظهر INDICATOR مستوى عالٍ وميض LED ديناميكي.

عادة ما تبقى في حالات LED الوامضة البطيئة (مستوى منخفض أو منخفض جدًا).

على أي حال ، فإن المؤشر المرئي المضاف يجعل الأمر مضحكًا بعض الشيء ، على الأقل يُظهر RPI يفعل شيئًا ما الآن.

شكرا لقراءة هذه القصة…..

موصى به: