أزرار الضغط تلعب دورًا مهمًا في تصميم الروبوتات والأنظمة الروبوتية، حيث تُستخدم لأغراض مختلفة وتتيح التفاعل والتحكم في الروبوت. إليك بعض الأدوار الشائعة التي تقوم بها أزرار الضغط في الروبوتيك:
تشغيل وإيقاف: يمكن استخدام زر الضغط لتشغيل وإيقاف الروبوت. هذا يمكن أن يكون مفتاح تشغيل رئيسي لتشغيل النظام أو لتنشيط وإيقاف وظائف محددة.
تحكم في الحركة: يمكن استخدام أزرار الضغط للتحكم في حركة الروبوت، مثل تحريكه إلى الأمام أو الخلف أو تدويره يسارًا أو يمينًا.
تحكم في السرعة: تُستخدم أزرار الضغط لضبط سرعة الروبوت، وهذا مهم في تنفيذ مهام دقيقة.
إيقاف الطوارئ: يتم استخدام زر الضغط كوسيلة لإيقاف الروبوت في حالات الطوارئ أو لتجنب الأضرار.
تفعيل وظائف معينة: يمكن استخدام الأزرار لتنشيط وظائف محددة في الروبوت، مثل تشغيل الأضواء أو أنظمة الاستشعار أو التواصل مع المشغل.
تبديل وضعيات مختلفة: يمكن استخدام الأزرار لتبديل بين وضعيات مختلفة للروبوت، مثل وضع التحكم الذاتي ووضع التحكم البعيد.
تفعيل وإلغاء تفعيل المهام الخاصة: يمكن استخدام الأزرار لتنشيط أو إلغاء تفعيل مهام معينة، مثل جمع العينات أو القيام بعمليات قصيرة محددة.
هذه أمثلة على كيفية استخدام أزرار الضغط في الروبوتيك، وتختلف الأزرار والوظائف المرتبطة بها باختلاف تصميم الروبوت وغرض استخدامه.
1- بطاقة ESP32:
البطاقة ESP32 هي عبارة عن ميكروكونترولر تم تطويرها بواسطة شركة Espressif Systems وهي تستخدم على نطاق واسع في مجال تطوير الأنظمة المدمجة وتطبيقات الإنترنت للأشياء (IoT).
2- ثلاثة صمامات: تحتاج إلى صمام للتحكم فيه. يُفضل استخدام LED ثنائي الاتجاه (Bi-Color) أو LED RGB إذا كنت ترغب في التحكم في الألوان.
2- أزرار الضغط
أزرار الضغط هي مكونات إلكترونية بسيطة تُستخدم لإنشاء اتصال كهربائي مؤقت عند الضغط عليها
3- أسلاك الاتصال :
ستحتاج إلى أسلاك الاتصال (جمبر واير) لربط بين بطاقة الميكروبيت ووحدة الصمام ثلاثي الألوان.
4- لوحة التجارب (اختياري):
لوحة التجارب تسهل عملية الاتصال بين المكونات دون الحاجة لللحام.
لتركيب بطاقة ESP32 مع صمامين ، تحتاج إلى متابعة الخطوات التالية:
1- توصيل الصمام الأحمر الثنائي الباعث للضوء إلى ESP32:
قم بتوصيل طرف الأنود الأطول للصمام بالمقاومة.
قم بتوصيل الطرف الآخر للمقاومة بمنفذ GPIO 23 على لوحة ESP32.
قم بتوصيل الطرف الآخر للصمام بالمنفذ GND (الأرضي) على لوحة ESP32.
2- توصيل الصمام الأخضر الثنائي الباعث للضوء إلى ESP32:
قم بتوصيل طرف الأنود الأطول للصمام بالمقاومة.
قم بتوصيل الطرف الآخر للمقاومة بمنفذ GPIO 21 على لوحة ESP32.
قم بتوصيل الطرف الآخر للصمام بالمنفذ GND (الأرضي) على لوحة ESP32.
3- توصيل الصمام الأصفر الثنائي الباعث للضوء إلى ESP32:
قم بتوصيل طرف الأنود الأطول للصمام بالمقاومة.
قم بتوصيل الطرف الآخر للمقاومة بمنفذ GPIO 18 على لوحة ESP32.
قم بتوصيل الطرف الآخر للصمام بالمنفذ GND (الأرضي) على لوحة ESP32.
4- بالنسبة لأزرار الضغط
زر الضغط الخاص بالصمام الأحمر
-قم بتوصيل إحدى ساقي زر الضغط بالمنفذ GPIO 22 في ESP32.
-قم بتوصيل ساق أخرى من زر الضغط بمنفذ GND في ESP32.
زر الضغط الخاص بالصمام الأخضر
-قم بتوصيل إحدى ساقي زر الضغط بالمنفذ GPIO 19 في ESP32.
-قم بتوصيل ساق أخرى من زر الضغط بمنفذ GND في ESP32.
زر الضغط الخاص بالصمام الأصفر
-قم بتوصيل إحدى ساقي زر الضغط بالمنفذ GPIO 5 في ESP32.
-قم بتوصيل ساق أخرى من زر الضغط بمنفذ GND في ESP32.
لبرمجة لوحة ESP32 في MicroPython لتشغيل ثلاثة صمامات باستخدام زر ضغط، اتبع الخطوات أدناه. تأكد من أنك قمت بالفعل بتثبيت MicroPython على لوحة ثلاثة صمامات وأن لديك ثلاثة صمامات وزري ضغط متصلة بشكل صحيح باللوحة الخاصة بك.
1- استيراد المكتبات اللازمة للبرنامج:
1 2 3 |
import machine from machine import Pin import time |
2- اضبط الدبابيس (GPIO) لزري الضغط و الصمامين:
1 2 3 4 5 6 |
red_led=Pin(23, Pin.OUT) red_button = machine.Pin(22, machine.Pin.IN, machine.Pin.PULL_UP) green_led=Pin(21, Pin.OUT) green_button = machine.Pin(19, machine.Pin.IN, machine.Pin.PULL_UP) yellow_led=Pin(18, Pin.OUT) yellow_button = machine.Pin(5, machine.Pin.IN, machine.Pin.PULL_UP) |
3- قم بإنشاء متغيرين للحفاظ على حالة الصمام الثنائي الباعث للضوء (0 إذا كان الصمام الثنائي الباعث للضوء متوقفًا و 1 إذا كان الصمام الثنائي الباعث للضوء هو
1 2 3 |
red_state=0; green_state=0; yellow_state=0 |
قم بإنشاء حلقة لمراقبة حالة زري الضغط وتشغيل/إيقاف تشغيل الصمامين بواسطة ESP32
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
while True: red_first = red_button.value() time.sleep(0.01) red_second = red_button.value() if red_first and not red_second: # عند الضغط على الزر print('Button pressed!') if (red_state==0): red_led.value(1) # إضاءة الصمام الأحمر red_state=1 else: red_led.value(0) # إطفاء الصمام الأحمر red_state=0; time.sleep(0.5) elif not red_first and red_second: print('Button released!') #led_rouge.value(0) green_first = green_button.value() time.sleep(0.01) green_second = green_button.value() if green_first and not green_second: # عند الضغط على الزر print('Button pressed!') if (green_state==0): green_led.value(1) # إضاءة الصمام الأخضر green_state=1 else: green_led.value(0) # إطفاء الصمام الأخضر green_state=0; time.sleep(0.5) elif not green_first and green_second: print('Button released!') yellow_first = yellow_button.value() time.sleep(0.01) yellow_second = yellow_button.value() if yellow_first and not yellow_second: # عند الضغط على الزر print('Button pressed!') if (yellow_state==0): yellow_led.value(1) # إضاءة الصمام الأصفر yellow_state=1 else: yellow_led.value(0) # إطفاء الصمام الأصفر yellow_state=0; time.sleep(0.5) elif not yellow_first and yellow_second: print('Button released!') |
إليك البرنامج الكامل في Micropython:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
import machine from machine import Pin import time red_led=Pin(23, Pin.OUT) red_button = machine.Pin(22, machine.Pin.IN, machine.Pin.PULL_UP) red_state=0; green_led=Pin(21, Pin.OUT) green_button = machine.Pin(19, machine.Pin.IN, machine.Pin.PULL_UP) green_state=0; while True: red_first = red_button.value() time.sleep(0.01) red_second = red_button.value() if red_first and not red_second: print('Button pressed!') if (red_state==0): red_led.value(1) red_state=1 else: red_led.value(0) red_state=0; time.sleep(0.5) elif not red_first and red_second: print('Button released!') #led_rouge.value(0) green_first = green_button.value() time.sleep(0.01) green_second = green_button.value() if green_first and not green_second: print('Button pressed!') if (green_state==0): green_led.value(1) green_state=1 else: green_led.value(0) green_state=0; time.sleep(0.5) elif not green_first and green_second: print('Button released!') yellow_first = yellow_button.value() time.sleep(0.01) yellow_second = yellow_button.value() if yellow_first and not yellow_second: print('Button pressed!') if (yellow_state==0): yellow_led.value(1) yellow_state=1 else: yellow_led.value(0) yellow_state=0; time.sleep(0.5) elif not yellow_first and yellow_second: print('Button released!') |
عند الضغط على الزر (الحالة منخفضة)، يضيء الصمام الثنائي الباعث للضوء. إذا تم الضغط على الزر
تشير الروبوتات التعليمية إلى استخدام الروبوتات وتكنولوجيا الروبوتات لتعزيز التعلم في بيئات التعليم. إنه ينطوي على دمج التكنولوجيا والهندسة وعلوم الحاسوب في الفصل الدراسي، مما يتيح للطلاب المشاركة في تجارب تعلم عملية وعملية.
في هذا السياق ، يمثل موقعنا الإلكتروني مصدرًا ممتازًا للآباء والمعلمين والأطفال الذين يرغبون في اكتشاف الروبوتات.
زاوية قنطش ـ جمال ـ المنستير ـ تونس
+216 92 886 231
medaliprof@gmail.com
هذا موقع واب تم إنشاؤه بواسطة محمد علي أستاذ إعلامية