جدول المحتويات:

آلة الدولة على Arduino - إشارة مرور المشاة: 6 خطوات (بالصور)
آلة الدولة على Arduino - إشارة مرور المشاة: 6 خطوات (بالصور)

فيديو: آلة الدولة على Arduino - إشارة مرور المشاة: 6 خطوات (بالصور)

فيديو: آلة الدولة على Arduino - إشارة مرور المشاة: 6 خطوات (بالصور)
فيديو: طريقة برمجة الأردوينو للمبتدئين | شرح برنامج Arduino IDE 2024, شهر نوفمبر
Anonim
آلة الدولة على Arduino - إشارة مرور المشاة
آلة الدولة على Arduino - إشارة مرور المشاة

مرحبًا! سأوضح لك كيفية برمجة إشارة مرور المشاة لـ 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 يومًا. بعد ذلك ، يجب أن تحصل على ترخيص مجاني للاستخدام غير التجاري!

موصى به: