- وحدة عرض مكونة من 7 أجزاء و 4 أرقام و 7 أجزاء:
- توصيل وحدة مكونة من 4 أرقام مكونة من 7 أجزاء بـ Raspberry Pi:
- برمجة Raspberry Pi الخاص بك:
- عرض الوقت على مقطع مكون من 4 أرقام مكون من 7 أرقام باستخدام Raspberry Pi:
نعلم جميعًا أن Raspberry Pi هي منصة تطوير رائعة تعتمد على المعالجات الدقيقة ARM. بفضل قوتها الحاسوبية العالية ، يمكن أن تصنع العجائب في أيدي هواة الإلكترونيات أو الطلاب. يمكن أن يكون كل هذا ممكنًا فقط إذا عرفنا كيفية جعله يتفاعل مع العالم الحقيقي وتحليل البيانات من خلال بعض أجهزة الإخراج. هناك العديد من المستشعرات التي يمكنها اكتشاف معلمات معينة من عالم الوقت الفعلي ونقلها إلى عالم رقمي ونقوم بتحليلها عند عرضها إما على شاشة LCD أو أي شاشة عرض أخرى. ولكن ، لن يكون من المفيد دائمًا استخدام شاشة LCD مع PI لعرض كمية صغيرة من البيانات. هذا هو المكان الذي نفضل فيه استخدام شاشة LCD الأبجدية الرقمية مقاس 16 × 2 أو شاشة العرض المكونة من 7 أجزاء. لقد تعلمنا بالفعل كيفية استخدام شاشة LCD الأبجدية الرقمية وشاشة أحادية المقطع من 7 مقاطع مع Raspberry pi. اليوم سنفعلواجهة وحدة العرض المكونة من 4 أرقام مع جهاز Raspberry Pi وعرض الوقت فوقها.
على الرغم من أن شاشة LCD الأبجدية الرقمية مقاس 16 × 2 أكثر راحة من شاشة العرض المكونة من 7 مقاطع ، إلا أن هناك عددًا قليلاً من السيناريوهات التي تكون فيها شاشة العرض المكونة من 7 مقاطع أسهل من شاشة LCD. تعاني شاشة LCD من عيب انخفاض حجم الأحرف وستكون مبالغة في مشروعك إذا كنت تخطط فقط لعرض بعض القيم الرقمية. تتميز المقاطع السبعة أيضًا بميزة الإضاءة السيئة ويمكن رؤيتها من زوايا الجعة أكثر من شاشة LCD العادية. لذا ، دعونا نبدأ في معرفة ذلك.
وحدة عرض مكونة من 7 أجزاء و 4 أرقام و 7 أجزاء:
تحتوي شاشة العرض المكونة من 7 قطاعات على سبعة أجزاء فيها ويحتوي كل جزء على مؤشر LED واحد بداخله لعرض الأرقام عن طريق إضاءة الأجزاء المقابلة. كما لو كنت تريد أن يعرض الجزء ذي السبعة الرقم "5" ، فأنت بحاجة إلى توهج المقطع a و f و g و c و d بجعل دبابيسها المقابلة عالية. هناك نوعان من شاشات العرض المكونة من 7 مقاطع: الكاثود المشترك والأنود المشترك ، هنا نستخدم عرض مقاطع الكاثود المشترك السبعة. تعرف على المزيد حول عرض 7 أجزاء هنا.
الآن نحن نعرف كيفية عرض الحرف الرقمي المطلوب على شاشة عرض واحدة من 7 أجزاء. ولكن ، من الواضح أننا سنحتاج إلى أكثر من شاشة عرض من 7 أجزاء لنقل أي معلومات تزيد عن رقم واحد. لذلك ، في هذا البرنامج التعليمي ، سنستخدم وحدة عرض مكونة من 4 أرقام مكونة من 7 أجزاء كما هو موضح أدناه.
كما نرى ، هناك أربع شاشات عرض ذات سبعة أجزاء متصلة ببعضها البعض. نحن نعلم أن كل وحدة مكونة من 7 أجزاء ستحتوي على 10 دبابيس ولأربعة شاشات من سبع مقاطع سيكون هناك 40 سنًا في المجموع وسيكون من الصعب على أي شخص لحامها على لوحة نقطية ، لذلك أوصي بشدة أي شخص بشراء وحدة أو قم بعمل PCB الخاص بك لاستخدام شاشة عرض مكونة من 4 أرقام مكونة من 7 أجزاء. يظهر مخطط الاتصال لنفسه أدناه:
لفهم كيفية عمل الوحدة النمطية المكونة من 4 أرقام المكونة من سبعة أجزاء ، يتعين علينا النظر في المخططات المذكورة أعلاه ، كما هو موضح ، يتم توصيل المسامير A لجميع شاشات العرض الأربعة للتجمع مثل A ونفس الشيء لـ B و C…. حتى DP. إذن ، إذا كان الزناد A يعمل بشكل أساسي ، فحينئذٍ يجب أن ترتفع كل أربعة A إلى اليمين؟
لكن هذا لا يحدث. لدينا أربعة دبابيس إضافية من D0 إلى D3 (D0 و D1 و D2 و D3) والتي يمكن استخدامها للتحكم في العرض الذي يجب أن يرتفع من بين الأربعة. على سبيل المثال: إذا كنت بحاجة إلى أن يكون الإخراج الخاص بي موجودًا فقط على الشاشة الثانية ، فيجب أن يكون D1 فقط مرتفعًا مع إبقاء المسامير الأخرى (D0 و D2 و D3) منخفضة. ببساطة يمكننا تحديد الشاشة التي يجب أن تنشط باستخدام المسامير من D0 إلى D3 وما هي الشخصية التي سيتم عرضها باستخدام المسامير من A إلى DP.
توصيل وحدة مكونة من 4 أرقام مكونة من 7 أجزاء بـ Raspberry Pi:
دعونا نرى كيف ، كيف يمكننا توصيل هذه الوحدة المكونة من 4 أرقام المكونة من 7 أجزاء مع Raspberry Pi الخاص بنا. تحتوي الوحدة ذات 7 مقاطع على 16 دبوسًا كما هو موضح أدناه. قد تحتوي الوحدة النمطية الخاصة بك على عدد أقل ، ولكن لا تقلق ، فسيظل لديك ما يلي بالتأكيد
- 7 أو 8 دبابيس مقطوعة (هنا دبابيس تبدأ من 1 إلى 8)
- دبوس الأرض (هنا دبوس 11)
- 4 دبابيس أرقام (هنا دبابيس 13 إلى 16)
يوجد أدناه المخطط البياني للساعة الرقمية Raspberry Pi عن طريق توصيل وحدة عرض مكونة من 4 أرقام بسبعة مقاطع مع Raspberry Pi:
سيساعدك الجدول التالي أيضًا في إجراء الاتصالات والتحقق من أنها وفقًا للمخططات الموضحة أعلاه.
لا |
رقم Rsp Pi GPIO |
رقم Rsp Pi PIN |
7-اسم القطعة |
رقم دبوس 7-سيج (هنا في هذه الوحدة) |
1 |
GPIO 26 |
رقم التعريف الشخصي 37 |
الجزء أ |
1 |
2 |
GPIO 19 |
رقم التعريف الشخصي 35 |
الجزء ب |
2 |
3 |
GPIO 13 |
رقم التعريف الشخصي 33 |
الجزء ج |
3 |
4 |
GPIO 6 |
رقم التعريف الشخصي 31 |
الجزء د |
4 |
5 |
GPIO 5 |
رقم التعريف الشخصي 29 |
الجزء هـ |
5 |
6 |
GPIO 11 |
رقم التعريف الشخصي 23 |
الجزء و |
6 |
7 |
GPIO 9 |
رقم التعريف الشخصي 21 |
الجزء ز |
7 |
8 |
GPIO 10 |
رقم التعريف الشخصي 19 |
الجزء DP |
8 |
9 |
GPIO 7 |
رقم التعريف الشخصي 26 |
الرقم 1 |
13 |
10 |
GPIO 8 |
رقم التعريف الشخصي 24 |
الرقم 2 |
14 |
11 |
GPIO 25 |
رقم التعريف الشخصي 22 |
الرقم 3 |
15 |
12 |
GPIO 24 |
رقم التعريف الشخصي 18 |
رقم 4 |
16 |
13 |
أرض |
أرض |
أرض |
11 |
حدد المسامير في الوحدة الخاصة بك وأنت على ما يرام جميعًا لمتابعة التوصيلات. قد يكون اكتشاف دبابيس GPIO في Raspberry pi مهمة صعبة بعض الشيء ، لذا فقد قدمت لك هذه الصورة لدبابيس GPIO.
برمجة Raspberry Pi الخاص بك:
نحن هنا نستخدم لغة برمجة Python لبرمجة RPi. هناك عدة طرق لبرمجة Raspberry Pi الخاص بك. في هذا البرنامج التعليمي ، نستخدم Python 3 IDE ، لأنه الأكثر استخدامًا. يتم تقديم برنامج Python الكامل في نهاية هذا البرنامج التعليمي. تعرف على المزيد حول البرنامج وتشغيل الكود في Raspberry Pi هنا.
سنتحدث عن بعض الأوامر التي سنستخدمها في برنامج PYHTON لهذا المشروع ،
أولاً ، سنقوم باستيراد ملف GPIO من المكتبة ، وتمكننا الوظيفة أدناه من برمجة دبابيس GPIO في PI. نقوم أيضًا بإعادة تسمية "GPIO" إلى "IO" ، لذلك في البرنامج عندما نريد الإشارة إلى دبابيس GPIO ، سنستخدم كلمة "IO". لقد قمنا باستيراد أيضا الوقت و التاريخ والوقت لقراءة قيمة الوقت من RSP بي.
استيراد RPi.GPIO كوقت استيراد GPIO ، التاريخ والوقت
في بعض الأحيان ، عندما تقوم دبابيس GPIO ، التي نحاول استخدامها ، ببعض الوظائف الأخرى. في هذه الحالة ، سوف نتلقى تحذيرات أثناء تنفيذ البرنامج. يخبر الأمر أدناه الباحث الرئيسي بتجاهل التحذيرات ومتابعة البرنامج.
تحذيرات IO.set (خطأ)
يمكننا إحالة دبابيس GPIO الخاصة بـ PI ، إما عن طريق رقم التعريف الشخصي على اللوحة أو عن طريق رقم وظيفتها. مثل "PIN 29" على السبورة هو "GPIO5". لذلك نقول هنا إما أننا سنمثل الدبوس هنا بـ "29" أو "5". يعني GPIO.BCM أننا سنمثل استخدام 5 لـ GPIO5 pin 29.
IO.setmode (GPIO.BCM)
كما هو الحال دائمًا يجب أن نبدأ بتهيئة المسامير ، هنا كل من دبابيس القطعة ودبابيس الأرقام هي دبابيس إخراج. لأغراض البرمجة ، نقوم بتشكيل مصفوفات لدبابيس المقطع وتهيئتها على "0" بعد إعلانها كـ GPIO.OUT
الجزء 8 = (26،19،13،6،5،11،9،10) للقطاع في المقطع 8: إعداد GPIO (مقطع ، GPIO.OUT) إخراج GPIO (مقطع ، 0)
وبالمثل بالنسبة لدبابيس الأرقام ، نعلن أنها دبابيس إخراج ونجعلها "0" افتراضيًا
#Digit 1 GPIO. 3 GPIO.setup (25، GPIO.OUT) GPIO.output (25، 0) # Off في البداية #Digit 4 GPIO.setup (24، GPIO.OUT) GPIO.output (24، 0) # Off في البداية
علينا تكوين مصفوفات لعرض كل رقم على شاشة من سبعة أجزاء. لعرض رقم واحد ، يتعين علينا التحكم في جميع دبابيس الأجزاء السبعة (باستثناء دبوس النقطة) ، أي يجب إيقاف تشغيلها أو تشغيلها. على سبيل المثال لعرض الرقم 5 قمنا بالترتيب التالي
لا |
رقم Rsp Pi GPIO |
7-اسم القطعة |
الحالة المراد عرضها "5". (0-> إيقاف ، 1-> تشغيل) |
1 |
GPIO 26 |
الجزء أ |
1 |
2 |
GPIO 19 |
الجزء ب |
1 |
3 |
GPIO 13 |
الجزء ج |
0 |
4 |
GPIO 6 |
الجزء د |
1 |
5 |
GPIO 5 |
الجزء هـ |
1 |
6 |
GPIO 11 |
الجزء و |
0 |
7 |
GPIO 9 |
الجزء ز |
1 |
وبالمثل لدينا رقم تسلسلي لجميع الأرقام والحروف الهجائية. يمكنك الكتابة بنفسك أو استخدام الرسم البياني أدناه.
باستخدام هذه البيانات يمكننا تكوين المصفوفات لكل رقم في برنامج بايثون الخاص بنا كما هو موضح أدناه
خالية = صفر = واحد = اثنان = ثلاثة = أربعة = خمسة = ستة = سبعة = ثمانية = تسعة =
إذا كنت تتبع هذا البرنامج سوف يكون هناك وظيفة لعرض كل حرف لدينا 7-الجزء العرض، ولكن يتيح تخطي هذا الآن وندخل في حين حلقة لا نهائية. حيث يقرأ الوقت الحاضر من Raspberry Pi ويقسم قيمة الوقت بين أربعة متغيرات. على سبيل المثال ، إذا كان الوقت هو 10.45 ، فإن المتغير h1 سيكون له 1 ، و h2 سيكون له 0 ، و m1 سيكون له 4v و m2 سيكون له 5.
now = datetime.datetime.now () hour = now.hour minutes = now.minute h1 = hour / 10 h2 = hour٪ 10 m1 = minutes / 10 m2 = minutes٪ 10 print (h1، h2، m1، m2)
علينا عرض هذه القيم المتغيرة الأربعة على أربعة أرقام على التوالي. لكتابة قيمة متغير إلى رقم يمكننا استخدام الأسطر التالية. نحن هنا نعرض على الرقم 1 بجعله مرتفعًا ثم سيتم استدعاء الوظيفة print_segment (متغير) لعرض القيمة في المتغير على عرض المقطع. قد تتساءل عن سبب التأخير بعد ذلك ولماذا نقوم بإيقاف تشغيل هذا الرقم بعد ذلك.
GPIO.output (7، 1) #Turn on Digit One print_segment (h1) #Print h1 on Sector time.sleep (delay_time) GPIO.output (7، 0) # Turn off Digit One
والسبب ، كما نعلم ، أنه يمكننا عرض رقم واحد فقط في كل مرة ، ولكن لدينا أربعة أرقام لعرضها وفقط إذا تم عرض جميع الأرقام الأربعة ، فسيكون العدد الكامل المكون من أربعة أرقام مرئيًا للمستخدم.
إذن ، كيف يتم عرض جميع الأرقام الأربعة في نفس الوقت ؟
من حسن حظنا أن MPU الخاص بنا أسرع بكثير من العين البشرية ، لذلك ما نقوم به في الواقع: نعرض رقمًا واحدًا في كل مرة ولكننا نفعل ذلك بسرعة كبيرة كما هو موضح أعلاه.
نختار عرضًا مكونًا من رقم واحد ينتظر 2 مللي ثانية (وقت تأخير متغير) بحيث يمكن لوحدة MPU والجزء السابع معالجته ثم إيقاف تشغيل هذا الرقم والانتقال إلى الرقم التالي ونفعل الشيء نفسه حتى نصل إلى الرقم الأخير. لا يمكن ملاحظة هذا التأخير البالغ 2 مللي ثانية بالعين البشرية ويبدو أن جميع الأرقام الأربعة تعمل في نفس الوقت.
آخر شيء يجب تعلمه هو معرفة كيفية عمل وظيفة print_segment (متغير) . داخل هذه الوظيفة ، نستخدم المصفوفات التي أعلنا عنها حتى الآن. لذلك مهما كان المتغير الذي نرسله لهذه الوظيفة يجب أن يكون له قيمة بين (0-9) ، فإن الحرف المتغير سيتلقى هذه القيمة ويقارنها بالقيمة الحقيقية. هنا تتم مقارنة المتغير بـ "1". وبالمثل نقارن مع كل الأرقام من 0 إلى 9. إذا كانت مطابقة ، فإننا نستخدم المصفوفات ونخصص كل قيمة لمنافذ المقطع الخاصة بها كما هو موضح أدناه.
def print_segment (charector): إذا كان charector == 1: لأني في النطاق (7): GPIO.output (مقطع 8 ، واحد)
عرض الوقت على مقطع مكون من 4 أرقام مكون من 7 أرقام باستخدام Raspberry Pi:
استخدم التخطيطي والرمز المقدم هنا لإجراء الاتصالات وبرمجة raspberry pi وفقًا لذلك. بعد الانتهاء من كل شيء ، ما عليك سوى تشغيل البرنامج وستجد الوقت الحالي المعروض في شاشة العرض السبعة. لكن هناك القليل من الأشياء التي عليك التحقق منها قبل ذلك
- تأكد من ضبط Raspberry Pi على الوقت الحالي فقط في حالة تشغيله في وقت غير متصل بالإنترنت.
- قم بتشغيل جهاز Raspberry pi باستخدام محول وليس باستخدام الكمبيوتر المحمول / الكمبيوتر لأن مقدار التيار المسحوب بواسطة شاشة العرض المكونة من 7 أجزاء مرتفع ولا يمكن لمنفذ USB أن يكون مصدره.
إذا كان كل شيء يعمل كما هو متوقع ، فيجب أن تجد شيئًا كهذا أدناه.
يمكن أيضًا التحقق من العمل الكامل لساعة التوت باي في الفيديو الموضح أدناه. آمل أن تكون قد أحببت المشروع واستمتعت ببناء واحد. اسمحوا لي أن أعرف ما هو رأيك أو إذا كنت بحاجة إلى مساعدة.