विषयसूची:

ट्रेन सीट उपलब्धता सूचना प्रणाली - एफजीसी: 8 कदम
ट्रेन सीट उपलब्धता सूचना प्रणाली - एफजीसी: 8 कदम

वीडियो: ट्रेन सीट उपलब्धता सूचना प्रणाली - एफजीसी: 8 कदम

वीडियो: ट्रेन सीट उपलब्धता सूचना प्रणाली - एफजीसी: 8 कदम
वीडियो: IRCTC train Ticket Regret meaning/Rail Information√ 2024, नवंबर
Anonim
ट्रेन सीट उपलब्धता सूचना प्रणाली - FGC
ट्रेन सीट उपलब्धता सूचना प्रणाली - FGC

यह परियोजना एक ट्रेन के पैमाने पर कार्यान्वयन पर आधारित है, जो स्टेशन पर मौजूद लोगों को यह जानने की अनुमति देती है कि कौन सी सीटें मुफ्त हैं। प्रोटोटाइप को पूरा करने के लिए, Arduino UNO सॉफ़्टवेयर का उपयोग ग्राफिक भाग के लिए प्रसंस्करण के साथ किया जाता है।

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

चरण 1: 3D मॉडल डिज़ाइन करें

डिजाइन 3D मॉडल
डिजाइन 3D मॉडल

सबसे पहले हमने ट्रेन मॉडल पर व्यापक शोध किया है। एकत्र की गई सभी सूचनाओं के साथ, एफजीसी (फेरोकैरिल्स डे ला जनरलिटैट डी कैटालुन्या) पर इस्तेमाल की जाने वाली जीटीडब्ल्यू ट्रेन (स्टैडलर रेल द्वारा निर्मित) को चुना गया है।

इसे बाद में 3D सॉफ्टवेयर PTC Creo के साथ डिजाइन किया गया था जो बाद के 3D प्रिंटिंग के लिए मॉडल था।

चरण 2: 3D मॉडल और फ़िनिश प्रिंट करना

3D मॉडल और फ़िनिश प्रिंट करना
3D मॉडल और फ़िनिश प्रिंट करना

एक बार ट्रेन डिजाइन हो जाने के बाद, इसे 3डी प्रिंटिंग के लिए पास कर दिया जाता है। एक बार टुकड़ा मुद्रित होने के बाद, एक चिकनी सतह प्राप्त करने के लिए इसे पॉलिश किया जाना चाहिए।

यह प्रोजेक्ट मौजूदा ट्रेन मॉडल के साथ भी किया जा सकता है।

एक बार मुद्रित होने के बाद, अंतिम फिनिश दिया जाता है।

चरण 3: अवयव

अवयव
अवयव

इस परियोजना के विकास के लिए निम्नलिखित घटकों की आवश्यकता है:

- एफएसआर 0.04-4.5 एलबीएस (प्रेशर सेंसर)।

- १.१ के ओम रेसिस्टर्स

चरण 4: कोडिंग (Arduino और प्रसंस्करण)

कोडिंग (Arduino और प्रसंस्करण)
कोडिंग (Arduino और प्रसंस्करण)
कोडिंग (Arduino और प्रसंस्करण)
कोडिंग (Arduino और प्रसंस्करण)
कोडिंग (Arduino और प्रसंस्करण)
कोडिंग (Arduino और प्रसंस्करण)

अब Arduino कोड लिखने का समय है जो सेंसर को प्रोसेसिंग सॉफ़्टवेयर को एक संकेत भेजने देगा जो सूचना को ग्राफिक रूप से प्रसारित करेगा।

सेंसर के रूप में हमारे पास arduino के लिए दबाव के 4 सेंसर हैं जो इसके प्रतिरोध को उस बल के अनुसार बदलते हैं जो उन पर लागू होता है। तो उद्देश्य प्रसंस्करण में ग्राफिक स्क्रीन को बदलने के लिए सेंसर (जब यात्री बैठते हैं) द्वारा भेजे गए सिग्नल का लाभ उठाना है।

फिर, हम उस ग्राफिक भाग का निर्माण करते हैं जिसमें हमने सर्वोत्तम संभव तरीके से वास्तविकता का अनुकरण करने के लिए फेरोकैरिल्स डे ला जनरलिटैट डी कैटालुन्या के ग्राफिक डिजाइन को ध्यान में रखा है।

प्रसंस्करण में इसे एक कोड लिखा गया है जो सीधे arduino सॉफ़्टवेयर से जुड़ा है, इस तरह, हर बार जब कोई सीट पर बैठता है, तो यह रंग बदलता है, जिससे ट्रेन प्लेटफॉर्म पर उपयोगकर्ता को वास्तविक समय में सीटों की ट्रेन उपलब्धता का पता चलता है।.

यहां आप कोडिंग देख सकते हैं

आर्डिनो:

इंट पॉट = A0; // पॉट के बीच के पिन को इस पिनिंट पॉट2 = ए1 से कनेक्ट करें; इंट पॉट3 = ए2; इंट पॉट4 = ए3; int lectura1;// पॉट मूल्यों को संग्रहीत करने के लिए चर;

इंट लेक्टुरा2;इंट लेक्चरा3; इंट लेक्टुरा4;

शून्य सेटअप () {// 9600 बॉड दर पर सीरियल संचार शुरू करें Serial.begin (9600); }

शून्य लूप () {स्ट्रिंग एस = ""; // // लेगिर सेंसर 1 लेक्टुरा 1 = एनालॉगरेड (पॉट); // लेक्टुरा एनालॉग वैल्यू अगर (लेक्चर 1> 10) {एस = "1"; देरी (100); } और { एस = "0"; देरी (100); } Serial.println(s);

}

प्रसंस्करण:

आयात प्रसंस्करण। धारावाहिक। *; // यह पुस्तकालय सीरियल टॉक स्ट्रिंग वैल = "" को संभालता है; पीइमेज s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; सीरियल मायपोर्ट; // सीरियल क्लास से ऑब्जेक्ट बनाएं

शून्य सेटअप ()// यह सिर्फ एक बार चलता है {फुलस्क्रीन (); बैकग्राउंड (0); // बैकग्राउंड कलर को ब्लैक मायपोर्ट = न्यू सीरियल (यह, "COM5", 9600); // सीरियल क्लास के ऑब्जेक्ट को पैरामीटर देते हुए, उस कॉम को रखें जिससे आपका आर्डिनो जुड़ा हुआ है और बॉड रेट

s0000 = लोडइमेज ("0000.jpg"); s0001=loadImage("0001.jpg"); s0010 = लोड इमेज ("0010.jpg"); s0011=loadImage("0011.jpg"); s0100 = लोडइमेज ("0100.jpg"); s0101 = लोडइमेज ("0101.jpg"); s0110=loadImage("0110.jpg"); s0111=loadImage("0111.jpg"); s1000=loadImage("1000.jpg"); s1001=loadImage("1001.jpg"); s1010=loadImage("1010.jpg"); s1011=loadImage("1011.jpg"); s1100=loadImage("1100.jpg"); s1101=loadImage("1101.jpg"); s1110=loadImage("1110.jpg"); s1111=loadImage("1111.jpg");

s0000.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट); s0001.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट); s0010.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट); s0011.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट); s0100. आकार बदलें (डिस्प्लेविड्थ, डिस्प्लेहाइट); s0101.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट); s0110.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट); s0111.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट); s1000.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट); s1001.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट); s1010.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट); s1011.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट); s1100.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट); s1101.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट); s1110.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट); s1111.resize (डिस्प्लेविड्थ, डिस्प्लेहाइट);

वैल = ट्रिम (वैल);} शून्य ड्रा () { अगर (वैल! = शून्य) {

अगर (val.equals("0001")) {छवि(s0001, 0, 0); } और अगर (val.equals("0010")) {image(s0010, 0, 0); } और अगर (val.equals("0011")) {image(s0011, 0, 0); } और अगर (val.equals("0100")) {image(s0100, 0, 0); } और अगर (val.equals("0101")) {image(s0101, 0, 0); } और अगर (val.equals("0110")) {image(s0110, 0, 0); } और अगर (val.equals("0111")) {image(s0111, 0, 0); } और अगर (val.equals("1000")) {image(s1000, 0, 0); } और अगर (val.equals("1001")) {image(s1001, 0, 0); } और अगर (val.equals("1010")) {image(s1010, 0, 0); } और अगर (val.equals("1011")) {image(s1011, 0, 0); } और अगर (val.equals("1100")) {image(s1100, 0, 0); } और अगर (val.equals("1101")) {image(s1101, 0, 0); } और अगर (val.equals("1110")) {image(s1110, 0, 0); } और अगर (val.equals("1111")) {image(s1111, 0, 0); } और { छवि (s0000, 0, 0); } } }

शून्य सीरियलइवेंट (सीरियल मायपोर्ट) // जब भी सीरियल इवेंट होता है तो यह चलता है {वैल = myPort.readStringUntil ('\ n'); // सुनिश्चित करें कि जारी रखने से पहले हमारा डेटा खाली नहीं है अगर (वैल! = नल) {// ट्रिम व्हाइटस्पेस और स्वरूपण वर्ण (जैसे कैरिज रिटर्न) वैल = ट्रिम (वैल); प्रिंट्लन (वैल); } }

चरण 5: सर्किट

सर्किट
सर्किट

सभी प्रोग्रामिंग के बाद, सभी सेंसर को Arduino UNO बोर्ड से जोड़ने का समय आ गया है।

सेंसर को 4 सीटों पर रखा गया है (जिसे बाद में एक कपड़े से ढक दिया जाएगा) और उन केबलों से वेल्डेड किया जाता है जो सीधे Arduino UNO के मदरबोर्ड पर जाते हैं। बोर्ड पर प्राप्त सिग्नल यूएसबी के माध्यम से जुड़े कंप्यूटर को भेजा जाता है जो सीट के रंग को बदलते हुए वास्तविक समय में प्रोसेसिंग को सूचना भेजता है।

आप कनेक्शन की एक स्कीमा देख सकते हैं।

चरण 6: प्रोटोटाइप टेस्ट

एक बार कोड को arduino बोर्ड पर अपलोड कर दिया गया है और प्रोसेसिंग और arduino प्रोग्राम चालू हो गया है, सेंसर का परीक्षण किया जाता है। स्क्रीन पर आपको सीटों में बदलाव दिखाई देगा क्योंकि डिस्प्ले पर ली गई सीटों के बारे में सूचित करने वाली छवियों में परिवर्तन होता है और नहीं।

चरण 7: वास्तविक मॉक-अप

रियल मॉक-अप
रियल मॉक-अप
रियल मॉक-अप
रियल मॉक-अप
रियल मॉक-अप
रियल मॉक-अप
रियल मॉक-अप
रियल मॉक-अप

वास्तविक एप्लिकेशन यात्रियों की सेवा के लिए FGC नेटवर्क की ट्रेनों और प्लेटफार्मों पर इसे स्थापित करने का प्रयास करेगा।

चरण 8: आनंद लें

का आनंद लें!
का आनंद लें!
का आनंद लें!
का आनंद लें!

आपने आखिरकार एक फोर्स सेंसर ट्रेन (प्रोटोटाइप) बनाई है जो ट्रेन प्लेटफॉर्म पर उपयोगकर्ता को यह जानने की अनुमति देती है कि वास्तविक समय में कौन सी सीट उपलब्ध है।

आने वाला कल आपका स्वागत करता है!

मार्क गोडायोल और फेडेरिको डोमेनेच द्वारा बनाई गई परियोजना

सिफारिश की: