Raspberry Pi هو لوحة قائمة على معالج معماري ARM مصممة لمهندسي الإلكترونية والهواة. يعد PI أحد أكثر منصات تطوير المشاريع الموثوقة الموجودة حاليًا. بفضل سرعة المعالج العالية وذاكرة الوصول العشوائي (RAM) التي تبلغ 1 جيجابايت ، يمكن استخدام PI للعديد من المشاريع البارزة مثل معالجة الصور وإنترنت الأشياء.
للقيام بأي من المشاريع البارزة ، يحتاج المرء إلى فهم الوظائف الأساسية لـ PI. سنغطي جميع الوظائف الأساسية لـ Raspberry Pi في هذه الدروس. سنناقش في كل درس تعليمي إحدى وظائف PI. بنهاية سلسلة دروس Raspberry Pi التعليمية هذه ، ستكون قادرًا على القيام بمشاريع رفيعة المستوى بنفسك. اذهب من خلال الدروس أدناه:
- الابتداء مع Raspberry Pi
- تكوين Raspberry Pi
- وميض LED
- واجهة Raspberry Pi Button
- جيل Raspberry Pi PWM
- التحكم في محرك التيار المستمر باستخدام Raspberry Pi
- تحكم في محرك متدرج مع Raspberry Pi
- Interfacing Shift سجل مع Raspberry Pi
في هذا البرنامج التعليمي ، سنقوم بتوصيل شريحة ADC (التحويل التناظري إلى الرقمي) بـ Raspberry Pi. نحن نعلم جميع المعلمات التناظرية ، وهذا يعني أن هناك اختلافًا مستمرًا بمرور الوقت. لنقل على سبيل المثال درجة حرارة الغرفة ، تختلف درجة حرارة الغرفة بمرور الوقت بشكل مستمر. يتم توفير درجة الحرارة هذه بأرقام عشرية. لكن في العالم الرقمي ، لا توجد أرقام عشرية ، لذلك نحتاج إلى تحويل القيمة التناظرية إلى قيمة رقمية. تتم عملية التحويل هذه بتقنية ADC. تعرف على المزيد حول ADC هنا: مقدمة إلى ADC0804
ADC0804 و Raspberry Pi:
تحتوي وحدات التحكم العادية على قنوات ADC ولكن بالنسبة إلى PI ، لا توجد قنوات ADC متوفرة داخليًا. لذلك إذا أردنا واجهة أي مستشعرات تناظرية ، فنحن بحاجة إلى وحدة تحويل ADC. لذلك من أجل هذه الأغراض ، سنذهب إلى واجهة ADC0804 مع Raspberry Pi.
ADC0804 عبارة عن شريحة مصممة لتحويل الإشارة التناظرية إلى بيانات رقمية 8 بت. هذه الشريحة هي واحدة من سلاسل ADC الشعبية. إنها وحدة تحويل 8 بت ، لذلك لدينا قيم أو من 0 إلى 255 قيمة. بجهد قياس يبلغ 5 فولت كحد أقصى ، سيكون لدينا تغيير لكل 19.5 مللي فولت. أدناه هو Pinout من ADC0804:
الآن شيء مهم آخر هنا هو أن ADC0804 يعمل بجهد 5 فولت وبالتالي فهو يوفر خرجًا في إشارة منطقية 5 فولت. في خرج 8 سنون (يمثل 8 بت) ، يوفر كل دبوس خرج + 5 فولت لتمثيل المنطق '1'. لذا فإن المشكلة تكمن في أن منطق PI هو + 3.3 فولت ، لذلك لا يمكنك إعطاء منطق + 5V إلى + 3.3V GPIO pin الخاص بـ PI. إذا أعطيت + 5V لأي دبوس GPIO من PI ، فإن اللوحة تتلف.
لذلك ، من أجل مستوى منطق التنحي من + 5 فولت ، سنستخدم دائرة مقسم الجهد. لقد ناقشنا دائرة مقسم الجهد التي نظرت إليها مسبقًا لمزيد من التوضيح. ما سنفعله هو أننا نستخدم مقاومين لتقسيم منطق + 5V إلى منطق 2 * 2.5V. إذن بعد القسمة سنعطي + 2.5v منطق لـ PI. لذلك ، كلما تم تقديم المنطق "1" بواسطة ADC0804 ، سنرى + 2.5V في PI GPIO Pin ، بدلاً من + 5V.
تعرف على المزيد حول GPIO Pins of Raspberry Pi هنا وانتقل إلى دروسنا السابقة.
المكونات المطلوبة:
نحن هنا نستخدم Raspberry Pi 2 Model B مع نظام التشغيل Raspbian Jessie OS. تمت مناقشة جميع متطلبات الأجهزة والبرامج الأساسية مسبقًا ، يمكنك البحث عنها في مقدمة Raspberry Pi ، بخلاف ما نحتاج إليه:
- ربط دبابيس
- 220Ω أو 1KΩ المقاوم (17 قطعة)
- 10 كيلو وعاء
- 0.1 درجة فهرنهايت مكثف (2 قطعة)
- ADC0804 إيك
- مجلس الخبز
شرح الدائرة:
يعمل على جهد إمداد + 5 فولت ويمكنه قياس نطاق جهد متغير في نطاق 0-5 فولت.
تظهر الاتصالات الخاصة بربط ADC0804 بـ Raspberry PI في مخطط الدائرة أعلاه.
دائمًا ما يكون لدى ADC الكثير من الضوضاء ، يمكن أن تؤثر هذه الضوضاء بشكل كبير على الأداء ، لذلك نستخدم مكثف 0.1 فائق التوهج لترشيح الضوضاء. بدون هذا سيكون هناك الكثير من التقلبات في الإنتاج.
تعمل الرقاقة على ساعة مذبذب RC (Resistor-Capacitor). كما هو موضح في الرسم البياني للدائرة ، تشكل C2 و R20 ساعة. الشيء المهم الذي يجب تذكره هنا هو أنه يمكن تغيير المكثف C2 إلى قيمة أقل لزيادة معدل تحويل ADC. ولكن مع السرعة العالية سيكون هناك انخفاض في الدقة. لذلك إذا كان التطبيق يتطلب دقة أعلى ، فاختر مكثفًا بقيمة أعلى وللسرعة العالية اختر المكثف بقيمة أقل.
شرح البرمجة:
بمجرد توصيل كل شيء وفقًا لمخطط الدائرة ، يمكننا تشغيل PI لكتابة البرنامج في PYHTON.
سنتحدث عن بعض الأوامر التي سنستخدمها في برنامج PYHTON ،
سنقوم باستيراد ملف GPIO من المكتبة ، وتمكننا الوظيفة أدناه من برمجة دبابيس GPIO في PI. نقوم أيضًا بإعادة تسمية "GPIO" إلى "IO" ، لذلك في البرنامج عندما نريد الإشارة إلى دبابيس GPIO ، سنستخدم كلمة "IO".
استيراد RPi.GPIO كـ IO
في بعض الأحيان ، عندما تقوم دبابيس GPIO ، التي نحاول استخدامها ، ببعض الوظائف الأخرى. في هذه الحالة ، سوف نتلقى تحذيرات أثناء تنفيذ البرنامج. يخبر الأمر أدناه PI بتجاهل التحذيرات ومتابعة البرنامج.
تحذيرات IO.set (خطأ)
يمكننا إحالة دبابيس GPIO الخاصة بـ PI ، إما عن طريق رقم التعريف الشخصي على اللوحة أو عن طريق رقم وظيفتها. مثل "PIN 29" على السبورة هو "GPIO5". لذلك نقول هنا إما أننا سنمثل الدبوس هنا بـ "29" أو "5".
IO.setmode (IO.BCM)
نحن نضع 8 دبابيس كدبابيس إدخال. سنكتشف 8 بت من بيانات ADC بواسطة هذه المسامير.
IO.setup (4، IO.IN) IO.setup (17، IO.IN) IO.setup (27، IO.IN) IO.setup (22، IO.IN) IO.setup (5، IO.IN) IO.setup (6، IO.IN) IO.setup (13، IO.IN) IO.setup (19، IO.IN)
في حالة صحة الشرط في الأقواس ، سيتم تنفيذ التعليمات داخل الحلقة مرة واحدة. لذا إذا ارتفع رقم التعريف الشخصي GPIO pin 19 ، فسيتم تنفيذ العبارات الموجودة داخل حلقة IF مرة واحدة. إذا لم يرتفع دبوس GPIO 19 ، فلن يتم تنفيذ العبارات داخل حلقة IF.
إذا (IO.input (19) == صحيح):
يتم استخدام الأمر أدناه كحلقة إلى الأبد ، باستخدام هذا الأمر ، سيتم تنفيذ التعليمات الموجودة داخل هذه الحلقة بشكل مستمر.
بينما 1:
مزيد من الشرح للبرنامج يرد في قسم التعليمات البرمجية أدناه.
العمل:
بعد كتابة البرنامج وتنفيذه سترى "0" على الشاشة. "0" تعني 0 فولت عند الإدخال.
إذا قمنا بضبط وعاء 10K المتصل بالشريحة ، فسنرى التغيير في القيم على الشاشة. تستمر القيم الموجودة على الشاشة في التمرير باستمرار ، فهذه هي القيم الرقمية التي يقرأها PI.
لنفترض أنه إذا وصلنا القدر إلى نقطة المنتصف ، فلدينا + 2.5 فولت عند الإدخال ADC0804. لذلك نرى 128 على الشاشة كما هو موضح أدناه.
بالنسبة للقيمة التناظرية + 5V ، سيكون لدينا 255.
لذلك ، من خلال تغيير الوعاء ، نقوم بتغيير الجهد من 0 إلى + 5 فولت عند إدخال ADC0804. باستخدام هذا PI ، اقرأ القيم من 0-255. تتم طباعة القيم على الشاشة.
لذلك لدينا واجهة ADC0804 إلى Raspberry Pi.