Working with PyFirmata - كتاب إنترنت الأشياء - الصف 11 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب إنترنت الأشياء - الصف 11 - الفصل 1 | المادة: إنترنت الأشياء | المرحلة: الصف 11 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: Working with PyFirmata

📚 معلومات الصفحة

الكتاب: كتاب إنترنت الأشياء - الصف 11 - الفصل 1 | المادة: إنترنت الأشياء | المرحلة: الصف 11 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

📝 ملخص الصفحة

📚 التعامل مع PyFirmata

المفاهيم الأساسية

تضمين عرض النبضة (Pulse Width Modulation - PWM): عملية تعديل تستخدم لإخراج إشارة رقمي لإصدار إشارة تناظرية بقوة متغيرة.

خريطة المفاهيم

```markmap

تطبيقات على المتحكمات الدقيقة

إنشاء تطبيق سحابي لإنترنت الأشياء

أهداف التعلم

#### • استخدام البايثون وبروتوكول PyFirmata لبرمجة الأردوينو.

برمجة الأردوينو بالبايثون (pyfirmata)

الخطوات البرمجية الأساسية

#### 1. تثبيت حزمة pyfirmata

##### • الأمر في Terminal: pip install pyfirmata

#### 2. استدعاء المكتبة في الكود

##### • import pyfirmata

#### 3. تحديد منفذ الاتصال

##### • communication_port = "COM4" (يختلف حسب الجهاز)

#### 4. إجراء الاتصال والوصول للأطراف

##### • board = pyfirmata.Arduino(communication_port)

##### • it = pyfirmata.util.Iterator(board)

##### • it.start()

#### 5. استخدام حلقة لا نهائية

##### • while True:

##### • # كتابة الأوامر هنا

ملاحظة تقنية

#### • يشغل البرنامج على الحاسوب، وليس على الأردوينو، مما يتيح الوصول إلى وظائف قد لا تتوفر في جهاز التحكم الدقيق.

الوظيفة الأساسية: board.get_pin()

#### • وظيفتها: قراءة وكتابة القيم للأطراف التناظرية والرقمية.

#### • معاملاتها: ثلاثة أحرف تفصل بينها نقطتان رأسيتان (a:d:5)

##### • المعامل الأول: نوع الطرف

###### • 'a': طرف تناظري (analog)

###### • 'd': طرف رقمي (digital)

##### • المعامل الثاني: رقم الطرف

###### • الأطراف الرقمية: من 0 إلى 12

###### • الأطراف التناظرية: من A0 إلى A5

##### • المعامل الثالث: طريقة التعامل

###### • للأطراف الرقمية:

####### • 'i': input (مدخلات)

####### • 'o': output (مخرجات)

###### • للأطراف التناظرية:

####### • 'i': input (مدخلات)

####### • 'p': Pulse Width Modulation (تضمين عرض النبضة)

تضمين عرض النبضة (PWM)

#### • تعريف: تعديل إشارة رقمية لمحاكاة إشارة تناظرية متغيرة القوة.

#### • دورة العمل (Duty Cycle): النسبة المئوية للزمن الذي تكون فيه الإشارة عالية (5v) خلال فترة زمنية واحدة.

##### • analogWrite(0): 0% دورة عمل (إشارة منخفضة دائمًا)

##### • analogWrite(64): 25% دورة عمل

##### • analogWrite(127): 50% دورة عمل

##### • analogWrite(191): 75% دورة عمل

##### • analogWrite(255): 100% دورة عمل (إشارة عالية دائمًا)

```

نقاط مهمة

  • الوظيفة الرئيسية للتعامل مع أطراف الأردوينو في `PyFirmata` هي `board.get_pin()`.
  • معاملات الدالة `get_pin()` تحدد نوع الطرف ورقمه ووظيفته (إدخال/إخراج/PWM).
  • تضمين عرض النبضة (PWM) هو تقنية لتحويل الإشارة الرقمية إلى إشارة تناظرية ظاهرية عن طريق تغيير نسبة الوقت الذي تكون فيه الإشارة عالية (دورة العمل).

📋 المحتوى المنظم

📖 محتوى تعليمي مفصّل

Working with PyFirmata

نوع: محتوى تعليمي

الوظائف الرئيسة التي تحتاج إلى تنفيذها في البايثون بواسطة PyFirmata هي قراءة القيم وكتابتها لكافة الأطراف التناظرية والرقمية لجهاز تحكم الأردوينو الدقيق. ينفذ الإجراء أعلاه في pyfirmata بواسطة الدالة ( board.get_pin( ) ) ، والتي تستقبل معاملات (Parameters) مكونة من ثلاثة أحرف تفصل بين كل منهما نقطتان رأسيتان.

نوع: محتوى تعليمي

المعامل الأول هو "a" أو "d" ويعني طرف تناظري (analog) أو رقمي (digital).

نوع: محتوى تعليمي

المعامل الثاني هو رقم الطرف الذي تريده. • ترقم الأطراف الرقمية من 12-0. • وترقم الأطراف التناظرية من A5-A0.

نوع: محتوى تعليمي

المعامل الثالث هو طريقة التعامل مع جهاز تحكم الأردوينو الدقيق. • بالنسبة للأطراف الرقمية، يشير الحرف "i" إلى input (مدخلات)، والحرف "o" إلى output (مخرجات). • بالنسبة للأطراف التناظرية، يشير الحرف "i" إلى input (مدخلات) والحرف "p" إلى Pulse Width Modulation (تضمين عرض النبضة).

تضمين عرض النبضة

نوع: محتوى تعليمي

هو عملية تعديل تستخدم لإخراج إشارة رقمي لإصدار إشارة تناظرية بقوة متغيرة.

تضمين عرض النبضة

نوع: محتوى تعليمي

(Pulse Width Modulation-PWM)

نوع: محتوى تعليمي

نوع: محتوى تعليمي

نوع: محتوى تعليمي

نوع: محتوى تعليمي

نوع: محتوى تعليمي

نوع: محتوى تعليمي

وزارة التعليم

نوع: NON_EDUCATIONAL

Ministry of Education 2025 - 1447

🔍 عناصر مرئية

تضمين عرض النبضة

A series of five pulse width modulation (PWM) signals are displayed, each representing a different duty cycle. The y-axis represents voltage, with 0v as the low state and 5v as the high state. The x-axis represents time, divided into segments labeled 'فترة واحدة' (one period). Each pulse shows the percentage of time the signal is high.

تضمين عرض النبضة

This graph visually represents the same PWM signals as the previous one, but with a different labeling scheme and emphasis on the time segments. The y-axis shows voltage levels (0v and 5v), and the x-axis represents time, segmented into 'فترة واحدة' (one period). The duty cycle for each signal is indicated by percentages.

تضمين عرض النبضة

This graph displays the PWM signals with a focus on the percentage values within each period. The y-axis shows voltage (0v and 5v). The x-axis represents time, divided into periods. Each pulse clearly indicates the percentage of time the signal is high.

تضمين عرض النبضة

This graph illustrates the PWM signals, emphasizing the duty cycle percentages. The y-axis represents voltage (0v and 5v), and the x-axis represents time, divided into periods. Each pulse clearly shows the percentage of time the signal is high.

تضمين عرض النبضة

This graph illustrates the PWM signals, with each pulse clearly indicating the percentage of time the signal is high. The y-axis shows voltage (0v and 5v), and the x-axis represents time, divided into periods.

تضمين عرض النبضة

This graph illustrates the PWM signals, with each pulse clearly indicating the percentage of time the signal is high. The y-axis shows voltage (0v and 5v), and the x-axis represents time, divided into periods.

📄 النص الكامل للصفحة

--- SECTION: Working with PyFirmata --- الوظائف الرئيسة التي تحتاج إلى تنفيذها في البايثون بواسطة PyFirmata هي قراءة القيم وكتابتها لكافة الأطراف التناظرية والرقمية لجهاز تحكم الأردوينو الدقيق. ينفذ الإجراء أعلاه في pyfirmata بواسطة الدالة ( board.get_pin( ) ) ، والتي تستقبل معاملات (Parameters) مكونة من ثلاثة أحرف تفصل بين كل منهما نقطتان رأسيتان. المعامل الأول هو "a" أو "d" ويعني طرف تناظري (analog) أو رقمي (digital). المعامل الثاني هو رقم الطرف الذي تريده. • ترقم الأطراف الرقمية من 12-0. • وترقم الأطراف التناظرية من A5-A0. المعامل الثالث هو طريقة التعامل مع جهاز تحكم الأردوينو الدقيق. • بالنسبة للأطراف الرقمية، يشير الحرف "i" إلى input (مدخلات)، والحرف "o" إلى output (مخرجات). • بالنسبة للأطراف التناظرية، يشير الحرف "i" إلى input (مدخلات) والحرف "p" إلى Pulse Width Modulation (تضمين عرض النبضة). --- SECTION: تضمين عرض النبضة --- هو عملية تعديل تستخدم لإخراج إشارة رقمي لإصدار إشارة تناظرية بقوة متغيرة. --- SECTION: تضمين عرض النبضة --- (Pulse Width Modulation-PWM) --- SECTION: وزارة التعليم --- Ministry of Education 2025 - 1447 --- VISUAL CONTEXT --- **GRAPH**: تضمين عرض النبضة Description: A series of five pulse width modulation (PWM) signals are displayed, each representing a different duty cycle. The y-axis represents voltage, with 0v as the low state and 5v as the high state. The x-axis represents time, divided into segments labeled 'فترة واحدة' (one period). Each pulse shows the percentage of time the signal is high. X-axis: Time (divided into 'فترة واحدة') Y-axis: Voltage (0v to 5v) Data: The graphs illustrate how the 'analogWrite' function in Arduino controls the duty cycle of a PWM signal. A duty cycle of 0% means the signal is always low (0v), 100% means it's always high (5v), and intermediate values like 25%, 50%, and 75% represent the proportion of time the signal is high within a single period. Key Values: 0% duty cycle, 25% duty cycle, 50% duty cycle, 75% duty cycle, 100% duty cycle Context: Illustrates the concept of Pulse Width Modulation (PWM) and how it's used to simulate analog output from digital pins on microcontrollers like Arduino. **GRAPH**: تضمين عرض النبضة Description: This graph visually represents the same PWM signals as the previous one, but with a different labeling scheme and emphasis on the time segments. The y-axis shows voltage levels (0v and 5v), and the x-axis represents time, segmented into 'فترة واحدة' (one period). The duty cycle for each signal is indicated by percentages. X-axis: Time (divided into 'فترة واحدة') Y-axis: Voltage (0v to 5v) Data: This visualization breaks down each PWM signal into its constituent high and low periods, explicitly stating the percentage of time the signal is high (duty cycle). For example, the 25% duty cycle signal is high for one quarter of the period and low for three quarters. The 50% duty cycle signal is evenly split between high and low. Key Values: 0% (0v), 25% (5v for 1/4 period), 50% (5v for 1/2 period), 75% (5v for 3/4 period), 100% (5v) Context: Reinforces the understanding of PWM duty cycles by explicitly showing the duration of high and low states for each signal, correlating them to the analogWrite values. **GRAPH**: تضمين عرض النبضة Description: This graph displays the PWM signals with a focus on the percentage values within each period. The y-axis shows voltage (0v and 5v). The x-axis represents time, divided into periods. Each pulse clearly indicates the percentage of time the signal is high. X-axis: Time (divided into 'فترة واحدة') Y-axis: Voltage (0v to 5v) Data: This visualization emphasizes the percentage representation of the duty cycle for each PWM signal. For instance, the 25% duty cycle signal has a high phase that lasts for 25% of the total period. The 50% duty cycle signal is high for half the period and low for the other half. Key Values: 0%, 25%, 50%, 75%, 100% Context: This graph serves as a visual aid to understand the percentage-based representation of duty cycles in PWM signals, correlating the percentage to the time the signal remains high. **GRAPH**: تضمين عرض النبضة Description: This graph illustrates the PWM signals, emphasizing the duty cycle percentages. The y-axis represents voltage (0v and 5v), and the x-axis represents time, divided into periods. Each pulse clearly shows the percentage of time the signal is high. X-axis: Time (divided into 'فترة واحدة') Y-axis: Voltage (0v to 5v) Data: This visualization focuses on the percentage representation of the duty cycle for each PWM signal. For example, the 25% duty cycle signal is high for 25% of the period and low for 75%. The 50% duty cycle signal is split equally between high and low states. Key Values: 0%, 25%, 50%, 75%, 100% Context: This graph visually represents the duty cycle percentages for PWM signals, showing how the proportion of time the signal is high affects its effective output. **GRAPH**: تضمين عرض النبضة Description: This graph illustrates the PWM signals, with each pulse clearly indicating the percentage of time the signal is high. The y-axis shows voltage (0v and 5v), and the x-axis represents time, divided into periods. X-axis: Time (divided into 'فترة واحدة') Y-axis: Voltage (0v to 5v) Data: This visualization emphasizes the percentage representation of the duty cycle for each PWM signal. For example, the 25% duty cycle signal is high for 25% of the period and low for 75%. The 50% duty cycle signal is split equally between high and low states. Key Values: 0%, 25%, 50%, 75%, 100% Context: This graph visually represents the duty cycle percentages for PWM signals, showing how the proportion of time the signal is high affects its effective output. **GRAPH**: تضمين عرض النبضة Description: This graph illustrates the PWM signals, with each pulse clearly indicating the percentage of time the signal is high. The y-axis shows voltage (0v and 5v), and the x-axis represents time, divided into periods. X-axis: Time (divided into 'فترة واحدة') Y-axis: Voltage (0v to 5v) Data: This visualization emphasizes the percentage representation of the duty cycle for each PWM signal. For example, the 25% duty cycle signal is high for 25% of the period and low for 75%. The 50% duty cycle signal is split equally between high and low states. Key Values: 0%, 25%, 50%, 75%, 100% Context: This graph visually represents the duty cycle percentages for PWM signals, showing how the proportion of time the signal is high affects its effective output.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 5 بطاقة لهذه الصفحة

ما هي الدالة الرئيسية في مكتبة PyFirmata المستخدمة لتهيئة طرف (pin) في لوحة الأردوينو للقراءة أو الكتابة؟

  • أ) الدالة board.setup()
  • ب) الدالة board.get_pin()
  • ج) الدالة pin.initialize()
  • د) الدالة analogRead()

الإجابة الصحيحة: b

الإجابة: الدالة board.get_pin()

الشرح: 1. الوظيفة الرئيسية في PyFirmata هي قراءة وكتابة القيم للأطراف التناظرية والرقمية. 2. يتم تنفيذ هذه الوظيفة باستخدام الدالة `board.get_pin()`. 3. تستقبل الدالة معاملات محددة لتحديد نوع الطرف ورقمه ووظيفته.

تلميح: تأخذ هذه الدالة معاملات محددة تفصل بينها نقطتان رأسيتان.

التصنيف: تعريف | المستوى: سهل

ما هو المعنى الصحيح للمعامل الثالث 'p' عند استخدامه مع الأطراف التناظرية في دالة board.get_pin() في PyFirmata؟

  • أ) Power supply (مصدر الطاقة)
  • ب) Parallel output (إخراج متوازي)
  • ج) Pulse Width Modulation (تضمين عرض النبضة)
  • د) Pin reset (إعادة ضبط الطرف)

الإجابة الصحيحة: c

الإجابة: Pulse Width Modulation (تضمين عرض النبضة)

الشرح: 1. المعامل الثالث في `board.get_pin()` يحدد طريقة التعامل مع الطرف. 2. بالنسبة للأطراف التناظرية، يشير الحرف 'i' إلى الإدخال (input). 3. بالنسبة للأطراف التناظرية، يشير الحرف 'p' إلى تضمين عرض النبضة (PWM) للإخراج.

تلميح: يرتبط هذا المعامل بإخراج إشارة تناظرية باستخدام إشارة رقمية.

التصنيف: تعريف | المستوى: متوسط

ما هو تعريف تضمين عرض النبضة (PWM) كما ورد في النص؟

  • أ) هو بروتوكول اتصال بين الحاسوب ولوحة الأردوينو.
  • ب) هو عملية تعديل تستخدم لإخراج إشارة رقمي لإصدار إشارة تناظرية بقوة متغيرة.
  • ج) هو طريقة لقراءة البيانات من أجهزة الاستشعار التناظرية.
  • د) هو إعداد لترقيم الأطراف في لوحة الأردوينو.

الإجابة الصحيحة: b

الإجابة: هو عملية تعديل تستخدم لإخراج إشارة رقمي لإصدار إشارة تناظرية بقوة متغيرة.

الشرح: 1. تضمين عرض النبضة (PWM) هو تقنية تعديل. 2. تستخدم لإخراج إشارة رقمية. 3. الهدف هو إصدار إشارة تناظرية ذات قوة (جهد) متغيرة.

تلميح: يتعلق هذا المفهوم بتحويل الإشارات الرقمية إلى تناظرية.

التصنيف: تعريف | المستوى: سهل

أي مما يلي يصف بشكل صحيح العلاقة بين دورة العمل (Duty Cycle) في تضمين عرض النبضة (PWM) والجهد الفعال الناتج؟

  • أ) دورة العمل لا تؤثر على الجهد الفعال، فهو ثابت عند 5V.
  • ب) كلما زادت نسبة دورة العمل (الوقت الذي تكون فيه الإشارة عالية)، زاد الجهد الفعال الناتج.
  • ج) الجهد الفعال يتناسب عكسياً مع نسبة دورة العمل.
  • د) دورة العمل تحدد تردد الإشارة فقط، وليس الجهد.

الإجابة الصحيحة: b

الإجابة: كلما زادت نسبة دورة العمل (الوقت الذي تكون فيه الإشارة عالية)، زاد الجهد الفعال الناتج.

الشرح: 1. تضمين عرض النبضة (PWM) يتحكم في الجهد الفعال عن طريق تغيير نسبة الوقت الذي تكون فيه الإشارة الرقمية في حالة HIGH (5V) داخل فترة زمنية ثابتة. 2. دورة عمل 0% تعني إشارة منخفضة دائمًا (0V فعال). 3. دورة عمل 100% تعني إشارة عالية دائمًا (5V فعال). 4. دورة عمل 50% تعني إشارة عالية لنصف الفترة، مما ينتج جهدًا فعالًا متوسطًا بين 0V و5V.

تلميح: فكر في كيفية محاكاة الجهد التناظري المتغير باستخدام نبضات رقمية.

التصنيف: مفهوم جوهري | المستوى: صعب

عند استخدام الدالة `board.get_pin()` في مكتبة PyFirmata للتعامل مع الأطراف التناظرية (Analog)، ما هو الدور الوظيفي للمعامل الثالث إذا تم ضبطه على الحرف "p"؟

  • أ) تحديد الطرف كمدخل رقمي (Digital Input)
  • ب) تفعيل خاصية تضمين عرض النبضة (Pulse Width Modulation)
  • ج) تعريف الطرف كمنفذ طاقة (Power Pin)
  • د) ضبط الطرف لإرسال بيانات تسلسلية (Serial Data)

الإجابة الصحيحة: b

الإجابة: تفعيل خاصية تضمين عرض النبضة (Pulse Width Modulation)

الشرح: 1. تستخدم الدالة `board.get_pin()` لتعريف الأطراف في الأردوينو عبر بايثون. 2. تأخذ الدالة ثلاث معاملات (النوع، الرقم، والوضع). 3. المعامل الثالث يحدد كيفية عمل الطرف. 4. الحرف "p" يرمز إلى Pulse Width Modulation، وهي تقنية تستخدم مع الأطراف التناظرية للتحكم في قوة الإشارة الخارجة.

تلميح: فكر في التقنية التي تسمح للأطراف الرقمية بمحاكاة الإشارات التناظرية لضبط شدة الإضاءة أو سرعة المحركات.

التصنيف: مفهوم جوهري | المستوى: متوسط