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

نظام معلومات توفر مقاعد القطار - FGC: 8 خطوات
نظام معلومات توفر مقاعد القطار - FGC: 8 خطوات

فيديو: نظام معلومات توفر مقاعد القطار - FGC: 8 خطوات

فيديو: نظام معلومات توفر مقاعد القطار - FGC: 8 خطوات
فيديو: السفر بالقطار في تركيا - دليل استخدام القطارات في تركيا و طريقة حجز التذاكر 2024, يوليو
Anonim
نظام معلومات توافر مقاعد القطار - FGC
نظام معلومات توافر مقاعد القطار - FGC

يعتمد هذا المشروع على التنفيذ ، على نطاق واسع ، لقطار يسمح للأشخاص الموجودين في المحطة بمعرفة المقاعد المجانية. من أجل تنفيذ النموذج الأولي ، يتم استخدام برنامج Arduino UNO مع معالجة الجزء الرسومي.

هذا المفهوم من شأنه أن يجعل من الممكن إحداث ثورة في عالم النقل العام ، حيث سيؤدي إلى تحسين جميع مقاعد القطار إلى أقصى حد ، وضمان استخدام جميع العربات ، إلى جانب إمكانية جمع البيانات وإجراء دراسات دقيقة ، لاحقًا تشغيل.

الخطوة 1: تصميم نموذج ثلاثي الأبعاد

تصميم نموذج ثلاثي الأبعاد
تصميم نموذج ثلاثي الأبعاد

بادئ ذي بدء ، أجرينا بحثًا شاملاً حول نماذج القطارات. مع كل المعلومات التي تم جمعها ، تم اختيار قطار GTW (الذي تنتجه شركة Stadler Rail) المستخدم في FGC (Ferrocarrils de la Generalitat de Catalunya).

تم تصميمه لاحقًا باستخدام برنامج PTC Creo ثلاثي الأبعاد وهو نموذج للطباعة ثلاثية الأبعاد اللاحقة.

الخطوة 2: طباعة النموذج ثلاثي الأبعاد والتشطيبات

طباعة نموذج ثلاثي الأبعاد والتشطيبات
طباعة نموذج ثلاثي الأبعاد والتشطيبات

بمجرد تصميم القطار ، يتم تمريره إلى الطباعة ثلاثية الأبعاد. بمجرد طباعة القطعة ، يجب صقلها للحصول على سطح أملس.

يمكن أيضًا تنفيذ هذا المشروع باستخدام نماذج القطارات الحالية.

بمجرد طباعتها ، يتم إعطاء التشطيبات النهائية.

الخطوة 3: المكونات

عناصر
عناصر

لتطوير هذا المشروع ، هناك حاجة إلى المكونات التالية:

- FSR 0.04-4.5LBS (مستشعر الضغط).

- مقاومات 1.1 كيلو أوم

الخطوة 4: الترميز (اردوينو والمعالجة)

الترميز (اردوينو والمعالجة)
الترميز (اردوينو والمعالجة)
الترميز (اردوينو والمعالجة)
الترميز (اردوينو والمعالجة)
الترميز (اردوينو والمعالجة)
الترميز (اردوينو والمعالجة)

حان الوقت الآن لكتابة كود Arduino الذي سيسمح لأجهزة الاستشعار بإرسال إشارة إلى برنامج المعالجة الذي سينقل المعلومات بيانياً.

كمستشعرات ، لدينا 4 مستشعرات ضغط لاردوينو والتي تختلف مقاومتها وفقًا للقوة التي يتم تطبيقها عليها. لذا فإن الهدف هو الاستفادة من الإشارة المرسلة من المستشعرات (عندما يجلس الركاب) لتغيير الشاشات الرسومية في المعالجة.

بعد ذلك ، نقوم بإنشاء الجزء الرسومي الذي أخذنا فيه في الاعتبار التصميم الجرافيكي لـ Ferrocarrils de la Generalitat de Catalunya ، لمحاكاة الواقع بأفضل طريقة ممكنة.

أثناء المعالجة ، تمت كتابة رمز متصل مباشرة ببرنامج اردوينو ، وبهذه الطريقة ، في كل مرة يجلس فيها شخص ما على مقعد ، يتغير لونه ، مما يسمح للمستخدم في منصة القطار بمعرفة مدى توفر المقاعد في القطار في الوقت الفعلي.

هنا يمكنك رؤية الترميز

أردوينو:

وعاء int = A0 ؛ // قم بتوصيل الدبوس الأوسط للوعاء بوعاء الصنوبر هذا 2 = A1 ؛ وعاء int3 = A2 ؛ وعاء int4 = A3 ؛ int lectura1 ؛ // متغير لتخزين قيم الوعاء ؛

int lectura2 ؛ int lectura3 ؛ المحاضرة 4

إعداد باطل () {// تهيئة الاتصالات التسلسلية بمعدل باود 9600 Serial.begin (9600) ؛ }

حلقة باطلة () {String s = ""؛ // // Llegir sensor1 lectura1 = analogRead (وعاء) ؛ // lectura القيمة التناظرية إذا (lectura1> 10) {s = "1"؛ تأخير (100) ؛ } آخر {s = "0" ؛ تأخير (100) ؛ } Serial.println (s) ؛

}

يتم المعالجة:

معالجة الاستيراد. تسلسلي. * ؛ // تعالج هذه المكتبة سلسلة المحادثات التسلسلية val = ""؛ PImage s0000 ، s0001 ، s0010 ، s0011 ، s0100 ، s0101 ، s0110 ، s0111 ، s1000 ، s1001 ، s1010 ، s1011 ، s1100 ، s1101 ، s1110 ، s1111 ؛ المسلسل myPort ؛ // إنشاء كائن من فئة المسلسل

void setup () // هذا يعمل مرة واحدة {fullScreen () ؛ background (0) ؛ // ضبط لون الخلفية على الأسود myPort = مسلسل جديد (هذا ، "COM5" ، 9600) ؛ // إعطاء معلمات لكائن من الفئة التسلسلية ، ضع com الذي يتصل به اردوينو ومعدل الباود

s0000 = loadImage ("0000.jpg") ؛ s0001 = loadImage ("0001.jpg") ؛ s0010 = loadImage ("0010.jpg") ؛ s0011 = loadImage ("0011.jpg") ؛ s0100 = loadImage ("0100.jpg") ، s0101 = loadImage ("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 (displayWidth ، displayHeight) ؛ s0001.resize (displayWidth ، displayHeight) ؛ s0010.resize (عرض العرض ، ارتفاع العرض) ؛ s0011.resize (displayWidth ، displayHeight) ؛ s0100.resize (displayWidth ، displayHeight) ؛ s0101.resize (displayWidth ، displayHeight) ؛ s0110.resize (displayWidth ، displayHeight) ؛ s0111.resize (displayWidth ، displayHeight) ؛ s1000.resize (displayWidth ، displayHeight) ؛ s1001.resize (displayWidth ، displayHeight) ؛ s1010.resize (عرض العرض ، ارتفاع العرض) ؛ s1011.resize (displayWidth ، displayHeight) ؛ s1100.resize (displayWidth ، displayHeight) ؛ s1101.resize (displayWidth ، displayHeight) ؛ s1110.resize (displayWidth ، displayHeight) ؛ s1111.resize (displayWidth ، displayHeight) ؛

val = trim (val)؛} رسم باطل () {if (val! = null) {

if (val.equals ("0001")) {image (s0001، 0، 0)؛ } else if (val.equals ("0010")) {image (s0010، 0، 0)؛ } else if (val.equals ("0011")) {image (s0011، 0، 0)؛ } else if (val.equals ("0100")) {image (s0100، 0، 0)؛ } else if (val.equals ("0101")) {image (s0101، 0، 0)؛ } else if (val.equals ("0110")) {image (s0110، 0، 0)؛ } else if (val.equals ("0111")) {image (s0111، 0، 0)؛ } else if (val.equals ("1000")) {image (s1000، 0، 0)؛ } else if (val.equals ("1001")) {image (s1001، 0، 0)؛ } else if (val.equals ("1010")) {image (s1010، 0، 0)؛ } else if (val.equals ("1011")) {image (s1011، 0، 0)؛ } else if (val.equals ("1100")) {image (s1100، 0، 0)؛ } else if (val.equals ("1101")) {image (s1101، 0، 0)؛ } else if (val.equals ("1110")) {image (s1110، 0، 0)؛ } else if (val.equals ("1111")) {image (s1111، 0، 0)؛ } else {image (s0000، 0، 0)؛ }}}

serialEvent (Serial myPort) // كلما حدث حدث تسلسلي فإنه يعمل {val = myPort.readStringUntil ('\ n')؛ // تأكد من أن بياناتنا ليست فارغة قبل المتابعة إذا (val! = null) {// تقليم المسافة البيضاء وأحرف التنسيق (مثل حرف إرجاع) val = trim (val)؛ println (فال) ؛ }}

الخطوة 5: الدائرة

دائرة كهربائية
دائرة كهربائية

بعد كل البرمجة ، حان الوقت لتوصيل جميع المستشعرات بلوحة Arduino UNO.

يتم وضع المستشعرات على 4 مقاعد (والتي سيتم تغطيتها لاحقًا بقطعة قماش) وملحومة بالكابلات التي تنتقل مباشرة إلى اللوحة الأم لـ Arduino UNO. يتم إرسال الإشارة المستلمة على اللوحة إلى جهاز كمبيوتر متصل عبر USB يرسل المعلومات إلى المعالجة في الوقت الفعلي ، مع تغيير لون المقعد.

يمكنك رؤية مخطط الاتصالات.

الخطوة 6: اختبار النموذج الأولي

بمجرد تحميل الكود على لوحة اردوينو وتشغيل برنامج المعالجة واردوينو ، يتم اختبار المستشعرات. سترى على الشاشة التغييرات في المقاعد بسبب تغيير الصور على الشاشة للإبلاغ عن المقاعد المشغولة ولا.

الخطوة 7: نموذج بالحجم الطبيعي

نموذج بالحجم الطبيعي
نموذج بالحجم الطبيعي
نموذج بالحجم الطبيعي
نموذج بالحجم الطبيعي
نموذج بالحجم الطبيعي
نموذج بالحجم الطبيعي
نموذج بالحجم الطبيعي
نموذج بالحجم الطبيعي

سيحاول التطبيق الحقيقي تثبيته على القطارات ومنصات شبكة FGC لخدمة المسافرين.

الخطوة 8: استمتع

التمتع!
التمتع!
التمتع!
التمتع!

لقد قمت أخيرًا بعمل قطار Force Sensor (نموذج أولي) يسمح للمستخدم في منصة القطار بمعرفة المقعد المتاح في الوقت الفعلي.

مرحبا بكم في المستقبل!

مشروع من إعداد مارك جوداايول وفيديريكو دومينيك

موصى به: