विषयसूची:

Arduino पर स्टेट मशीन - एक पैदल यात्री ट्रैफिक लाइट: 6 कदम (चित्रों के साथ)
Arduino पर स्टेट मशीन - एक पैदल यात्री ट्रैफिक लाइट: 6 कदम (चित्रों के साथ)

वीडियो: Arduino पर स्टेट मशीन - एक पैदल यात्री ट्रैफिक लाइट: 6 कदम (चित्रों के साथ)

वीडियो: Arduino पर स्टेट मशीन - एक पैदल यात्री ट्रैफिक लाइट: 6 कदम (चित्रों के साथ)
वीडियो: #Viral #Pune #Mumbai #Chandigarh दोस्त से मिलने गई लड़की से 12 लोगों ने 48 घन्टे तक किया 2024, जुलाई
Anonim
Arduino पर स्टेट मशीन - एक पैदल यात्री ट्रैफिक लाइट
Arduino पर स्टेट मशीन - एक पैदल यात्री ट्रैफिक लाइट

अरे वहाँ!मैं आपको दिखाने जा रहा हूँ कि कैसे YAKINDU Statechart Tools का उपयोग करके एक परिमित राज्य मशीन के साथ Arduino के लिए C++ में एक पैदल यात्री ट्रैफिक लाइट प्रोग्राम करना है। यह राज्य मशीनों की शक्ति का प्रदर्शन करेगा और आगे की परियोजनाओं के लिए एक खाका के रूप में इस्तेमाल किया जा सकता है।

आपूर्ति

आपको केवल एक Arduino, कुछ पुशबटन, LED, जम्पर और रेसिस्टर्स की आवश्यकता है।

हार्डवेयर

  • 2x पुशबटन
  • 2x ट्रैफिक लाइट या आप 220 ओम प्रतिरोधों के साथ एलईडी का उपयोग कर सकते हैं
  • 2x 10k ओम प्रतिरोधक
  • ब्रेड बोर्ड
  • उछलनेवाला
  • Arduino Uno/Mega (या कोई अन्य, जिसे कम से कम 8 GPIO मिले)

सॉफ्टवेयर

  • YAKINDU स्टेटचार्ट टूल्स
  • Arduino के लिए ग्रहण C++ IDE

चरण 1: परिभाषित करें कि यह कैसे काम करता है: पैदल यात्री ट्रैफिक लाइट

सबसे पहले, हमें यह निर्दिष्ट करने की आवश्यकता है कि पैदल यात्री ट्रैफिक लाइट को कैसे काम करना चाहिए। मैंने बुलेट बिंदुओं को संक्षेप में प्रस्तुत करने का प्रयास किया है:

  • दो ट्रैफिक लाइट का उपयोग किया जाता है - एक कारों के लिए, दूसरी पैदल चलने वालों के लिए
  • एक बटन का उपयोग करके ट्रैफिक लाइट को चालू किया जा सकता है
  • पैदल यात्री एक बटन दबाकर सड़क पार करने का अनुरोध कर सकते हैं
  • बंद ट्रैफिक लाइट दोनों पीली एल ई डी को झपकाकर इंगित किया गया है
  • चालू करने के बाद, ट्रैफिक लाइट सुरक्षित मोड में 10 सेकंड तक प्रतीक्षा करती है
  • सुरक्षित मोड के बाद, कारों में हमेशा हरे रंग का चरण होता है जब तक कि पैदल यात्री अनुरोध शुरू नहीं करता
  • क्रॉसिंग के लिए पैदल चलने वालों के अनुरोध को पीली एलईडी को टॉगल करके दर्शाया गया है

इसके अतिरिक्त, ट्रैफिक लाइट के काम करने के तरीके के आधार पर कुछ समय की घटनाएं होती हैं।

चरण 2: सर्किट बनाएँ

सर्किट का निर्माण करें
सर्किट का निर्माण करें

चलो सर्किट स्थापित करना शुरू करते हैं। मेरे उदाहरण में, जैसा कि आप पूर्वावलोकन छवि पर देख सकते हैं, मैंने एक Arduino Mega 2560 का उपयोग किया है, लेकिन कम से कम आठ GPIO वाले हर दूसरे Arduino को ठीक होना चाहिए। इसके अतिरिक्त, मैंने Amazon पर कुछ 5V ट्रैफिक लाइटें खरीदी हैं। बस ट्रैफिक लाइट Arduino की खोज करें। अन्यथा, आप बस छह अलग-अलग एल ई डी का उपयोग कर सकते हैं। इसके अलावा, आपको दो पुश बटन और दो 10k ओम रेसिस्टर्स चाहिए।

तीन बाएं एलईडी का उपयोग कार यातायात के लिए किया जाता है और तीन दाएं एलईडी का उपयोग पैदल चलने वालों के लिए किया जाता है, जहां पीला एक अनुरोध का संकेत दे सकता है।

चरण 3: राज्य मशीन बनाना

राज्य मशीन बनाना
राज्य मशीन बनाना

इसलिए, जैसा कि आप देख सकते हैं कि संयुक्त सदस्यों वाले दो मुख्य राज्य हैं - स्टेट ऑन और स्टेट ऑफ। आप ऑनऑफ़ ईवेंट का उपयोग करके दोनों राज्यों के बीच स्विच कर सकते हैं, जिसे ऑन/ऑफ़ बटन से वायर किया जाता है। प्रारंभिक अवस्था में, ऑफ स्टेट में, दोनों पीली एलईडी हर सेकंड झपकने लगती हैं। ट्रैफिक लाइट चालू होने के बाद, यह सेफस्टेट में शुरू होता है। 10 सेकंड के बाद ट्रैफिक लाइट के सामान्य व्यवहार को नियंत्रित किया जाएगा। स्ट्रीटप्रेपेयर अवस्था में लाल और पीले रंग की एलईडी चालू हो जाएगी और 2 सेकंड के बाद ट्रैफिक लाइट हरी हो जाएगी। अब से, स्टेट मशीन पेडेस्ट्रियन रिक्वेस्ट इवेंट की प्रतीक्षा कर रही है, जिसे दूसरे बटन पर वायर्ड किया गया है। ईवेंट भेजने के बाद अनुरोध को PedWating अवस्था में हर सेकंड पीली एलईडी को टॉगल करके इंगित किया जाएगा। 7 सेकंड बाद ट्रैफिक लाइट को पहले पीले और फिर लाल रंग में तब तक स्विच किया जाएगा जब तक कि पैदल चलने वालों को पैदल चलने वालों को ग्रीन स्टेट में जाने का संकेत नहीं मिल जाता। इसके बाद, पेडेस्ट्रियनरेड सक्रिय हो जाता है और चक्र दोहराता है। ट्रैफिक लाइट को फिर से बंद करके ही इसे बाधित किया जा सकता है।

चरण 4: उदाहरण चलाना

चरण 5: जनरेट किया गया C++ कोड

उत्पन्न C++ कोड राज्य मशीन के तर्क को संभालने के लिए एक क्लासिक स्विच-केस है। यह कैसा दिखता है इसका सिर्फ एक कोड स्निपेट है:

शून्य ट्रैफिकलाइट कंट्रोल:: रनसाइकिल () {clearOutEvents (); के लिए (stateConfVectorPosition = 0; StateConfVectorPosition <maxOrthogonalStates; StateConfVectorPosition++) {स्विच (StateConfVector[stateConfVectorPosition]) {केस main_region_on_r1_StreetGreen: { main_region_on_r1_StreetGreen_react(true); टूटना; } मामला main_region_on_r1_PedWaiting_r1_waitOn: { main_region_on_r1_PedWaiting_r1_waitOn_react(true); टूटना; } डिफ़ॉल्ट: विराम; } clearInEvents (); }

चरण 6: उदाहरण प्राप्त करें

पूरा उदाहरण संकलित करने और चलाने के लिए तैयार है। यह YAKINDU Statechart Tools के साथ आता है, जो गैर-व्यावसायिक उपयोग के लिए निःशुल्क है। डाउनलोड करने के बाद, आप सीधे टूल में उदाहरण आयात कर सकते हैं:

फ़ाइल -> नया -> उदाहरण -> YAKINDU Statechart उदाहरण -> अगला -> Arduino के लिए ट्रैफ़िक लाइट (C++)

> यहाँ आप YAKINDU Statechart Tools <<. डाउनलोड कर सकते हैं

आप 30 दिनों के परीक्षण के साथ शुरुआत कर सकते हैं। बाद में, आपको एक लाइसेंस प्राप्त करना होगा, जो गैर-व्यावसायिक उपयोग के लिए निःशुल्क है!

सिफारिश की: