جدول المحتويات:
- اللوازم
- الخطوة 1: تحديد كيفية عملها: إشارة مرور المشاة
- الخطوة الثانية: بناء الدائرة
- الخطوة 3: إنشاء آلة الدولة
- الخطوة 4: تشغيل المثال
- الخطوة 5: إنشاء كود C ++
- الخطوة 6: احصل على المثال
فيديو: آلة الدولة على Arduino - إشارة مرور المشاة: 6 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
مرحبًا! سأوضح لك كيفية برمجة إشارة مرور المشاة لـ Arduino في C ++ باستخدام آلة حالة محدودة باستخدام أدوات YAKINDU Statechart. سيوضح هذا قوة آلات الحالة ويمكن استخدامه كمخطط لمزيد من المشاريع.
اللوازم
ما عليك سوى Arduino وبعض الأزرار الانضغاطية ومصابيح LED وطائر ومقاومات.
المعدات
- 2x زر انضغاطي
- 2x إشارات المرور أو يمكنك استخدام مصابيح LED مع مقاومات 220 أوم
- 2x 10 كيلو أوم مقاومات
- اللوح
- سترة او قفاز او لاعب قفز
- Arduino Uno / Mega (أو أي جهاز آخر يحتوي على 8 GPIOs على الأقل)
برمجة
- YAKINDU Statechart Tools
- Eclipse C ++ IDE لـ Arduino
الخطوة 1: تحديد كيفية عملها: إشارة مرور المشاة
في البداية ، نحتاج إلى تحديد كيفية عمل إشارة مرور المشاة. حاولت تلخيص النقاط التالية:
- يتم استخدام إشارتي مرور - أحدهما للسيارات والآخر للمشاة
- يمكن تشغيل إشارة المرور باستخدام زر
- يمكن للمشاة طلب عبور الشارع بالضغط على زر
- يشار إلى إيقاف تشغيل إشارة المرور من خلال وميض كل من مصابيح LED الصفراء
- بعد التشغيل ، تنتظر إشارة المرور لمدة 10 ثوانٍ في الوضع الآمن
- بعد الوضع الآمن ، تتمتع السيارات دائمًا بمرحلة خضراء حتى يبدأ أحد المشاة في الطلب
- تتم الإشارة إلى طلب عبور المشاة من خلال تبديل مؤشر LED أصفر
بالإضافة إلى ذلك ، هناك بعض الأحداث الزمنية اعتمادًا على طريقة عمل إشارة المرور.
الخطوة الثانية: بناء الدائرة
لنبدأ في إعداد الدائرة. في المثال الخاص بي ، كما ترون في صورة المعاينة ، لقد استخدمت Arduino Mega 2560 ، لكن كل Arduino آخر به ثمانية GPIOs على الأقل يجب أن يكون جيدًا. بالإضافة إلى ذلك ، لقد اشتريت بعض إشارات المرور بجهد 5 فولت من أمازون. فقط ابحث عن Traffic Light Arduino. خلاف ذلك ، يمكنك ببساطة استخدام ستة مصابيح LED مختلفة. علاوة على ذلك ، أنت بحاجة إلى زرين ضغط ومقاومين 10 كيلو أوم.
تُستخدم المصابيح الثلاثة اليسرى لحركة مرور السيارات وثلاثة مصابيح LED اليمنى للمشاة ، حيث يمكن أن يشير المصباح الأصفر إلى وجود طلب.
الخطوة 3: إنشاء آلة الدولة
لذلك ، كما ترون ، هناك حالتان رئيسيتان بهما أعضاء مركبان - الحالة قيد التشغيل والحالة غير مفعّلة. يمكنك التبديل بين كلتا الحالتين باستخدام حدث onOff ، وهو سلكي إلى زر التشغيل / الإيقاف. في الحالة الأولية ، حالة إيقاف التشغيل ، يبدأ كل من مصابيح LED الصفراء في الوميض كل ثانية. بمجرد تشغيل إشارة المرور ، تبدأ في Safestate. بعد 10 ثوانٍ ، سيتم التعامل مع السلوك المعتاد لإشارات المرور. سيتم تشغيل مؤشر LED باللونين الأحمر والأصفر في حالة StreetPrepare ويتحول ضوء المرور إلى اللون الأخضر بعد ثانيتين أخريين. من الآن فصاعدًا ، تنتظر آلة الحالة حدث طلب المشاة ، الذي تم توصيله بالزر الثاني. بعد إرسال الحدث ، سيتم الإشارة إلى الطلب عن طريق تبديل مؤشر LED الأصفر كل ثانية في حالة PedWating. بعد 7 ثوانٍ ، ستتحول إشارة المرور إلى اللون الأصفر أولاً ثم إلى الأحمر حتى يحصل المشاة على الإشارة للانتقال إلى حالة PedestrianGreen. بعد ذلك ، يتم تنشيط PedestrianRed وتتكرر الدورة. لا يمكن مقاطعة هذا إلا بإطفاء إشارة المرور مرة أخرى.
الخطوة 4: تشغيل المثال
الخطوة 5: إنشاء كود C ++
رمز C ++ الذي تم إنشاؤه هو حالة تبديل كلاسيكية للتعامل مع منطق جهاز الحالة. هذا مجرد مقتطف رمز لكيفية ظهوره:
void TrafficLightCtrl:: runCycle () {clearOutEvents () ؛ لـ (stateConfVectorPosition = 0؛ stateConfVectorPosition <maxOrthogonalStates؛ stateConfVectorPosition ++) {switch (stateConfVector [stateConfVectorPosition]) {case main_region_on_r1_StreetGreen: {main_region_on_r1_StreetGreen ؛react (true_region_on_r1_StreetGreen) استراحة؛ } case main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (true) ؛ استراحة؛ } الافتراضي: كسر؛ } clearInEvents () ، }
الخطوة 6: احصل على المثال
المثال الكامل جاهز للتجميع والتشغيل. يأتي مع أدوات YAKINDU Statechart ، وهي مجانية للاستخدام غير التجاري. بعد التنزيل ، يمكنك استيراد المثال مباشرة في الأداة:
ملف -> جديد -> مثال -> أمثلة YAKINDU Statechart -> التالي -> إشارة المرور (C ++) لـ Arduino
> هنا يمكنك تنزيل YAKINDU Statechart Tools <<
يمكنك البدء بتجربة مدتها 30 يومًا. بعد ذلك ، يجب أن تحصل على ترخيص مجاني للاستخدام غير التجاري!
موصى به:
قفل باب محمي بكلمة مرور على Tnikercad: 4 خطوات
قفل الباب المحمي بكلمة مرور على Tnikercad: بالنسبة لهذا المشروع ، سوف نأخذ المدخلات من لوحة المفاتيح ، ونقوم بمعالجة ذلك الإدخال كموضع زاوية ، ونقوم بتحريك محرك مؤازر بناءً على الزاوية المكونة من 3 أرقام المكتسبة ، لقد استخدمت لوحة مفاتيح 4 × 4 ، ولكن إذا كان لديك لوحة مفاتيح 3 × 4 ، فلديها وصلة متشابهة جدًا ، لذا يمكن أن تكون
كيفية وضع كلمة مرور على أي محرك أقراص فلاش USB: 5 خطوات
كيفية وضع كلمة مرور على أي محرك أقراص فلاش USB: الخطوات التالية هي طريقة رائعة لوضع كلمة مرور على أي محرك أقراص فلاش USB. ما يلي هو ملف a.bat وهو بسيط إلى حد ما. [يعمل فقط على windows] يعمل هذا أيضًا على ملفات windows العادية. ما عليك سوى تكييف الخطوات مع المجلد الذي تريده
ESP8266 مراقبة درجة حرارة Nodemcu باستخدام DHT11 على خادم ويب محلي - احصل على درجة حرارة الغرفة ورطوبتها على متصفحك: 6 خطوات
ESP8266 مراقبة درجة حرارة Nodemcu باستخدام DHT11 على خادم ويب محلي | احصل على درجة حرارة الغرفة ورطوبتها على متصفحك: مرحبًا يا شباب اليوم سنصنع الرطوبة & amp؛ نظام مراقبة درجة الحرارة باستخدام ESP 8266 NODEMCU & amp؛ جهاز استشعار درجة الحرارة DHT11. سيتم الحصول على درجة الحرارة والرطوبة من مستشعر DHT11 & amp؛ يمكن رؤيته على متصفح أي صفحة ويب ستتم إدارتها
اردوينو أوتو روبوت مع آلة الدولة: 4 خطوات
Arduino Otto Robot With State Machine: نظرة عامة على المشروع في هذا المشروع ، أريد أن أوضح لك طريقة لبرمجة Otto Robot ، وهو روبوت DIY قائم على Arduino. باستخدام أدوات YAKINDU Statechart (المجانية لغير التجارية) ، يمكننا بسهولة استخدام آلات الحالة لنمذجة السلوك بيانيًا
كيفية تشغيل موجه الأوامر على جهاز كمبيوتر تم قفله والوصول إلى كلمة مرور المسؤولين: 3 خطوات
كيفية تشغيل موجه الأوامر على جهاز كمبيوتر تم قفله والوصول إلى كلمة مرور المسؤولين: الاسم يقول كل شيء. سيخبرك هذا التوجيه بكيفية تشغيل CMD (موجه الأوامر) وتغيير كلمة المرور