جدول المحتويات:
- الخطوة 1: تصميم نموذج ثلاثي الأبعاد
- الخطوة 2: طباعة النموذج ثلاثي الأبعاد والتشطيبات
- الخطوة 3: المكونات
- الخطوة 4: الترميز (اردوينو والمعالجة)
- الخطوة 5: الدائرة
- الخطوة 6: اختبار النموذج الأولي
- الخطوة 7: نموذج بالحجم الطبيعي
- الخطوة 8: استمتع
فيديو: نظام معلومات توفر مقاعد القطار - FGC: 8 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
يعتمد هذا المشروع على التنفيذ ، على نطاق واسع ، لقطار يسمح للأشخاص الموجودين في المحطة بمعرفة المقاعد المجانية. من أجل تنفيذ النموذج الأولي ، يتم استخدام برنامج 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 (نموذج أولي) يسمح للمستخدم في منصة القطار بمعرفة المقعد المتاح في الوقت الفعلي.
مرحبا بكم في المستقبل!
مشروع من إعداد مارك جوداايول وفيديريكو دومينيك
موصى به:
توفر القوى الداخلية Mod في Mikrotik CSS326-24G-2S + RM Switch: 11 خطوة
وزارة الدفاع الداخلية تزود في Mikrotik CSS326-24G-2S + RM Switch .: تحذير: هذا المشروع يتعامل مع الفولت العالية ، إذا لم تكن مريحًا أو تعرف ما تفعله ، فاستشر كهربائيًا. نحن لسنا مسؤولين عن أي أضرار ناتجة عن أي من معداتك من خلال اتباع هذا الدليل
نظام القطار الذكي: 4 خطوات
نظام القطار الذكي: مصمم لزيادة السلامة ومنع الحوادث وزيادة الاستجابة الإيجابية والمثمرة للمساعدة في حالة وقوع حوادث
نظام مراقبة عبور القطار: 5 خطوات (بالصور)
نظام مراقبة عبور القطار: سيعلمك هذا التوجيه كيفية استخدام MatLab لترميز Arduino للتحكم في جزء من نظام السكك الحديدية
نظام مقعد القطار: 4 خطوات (بالصور)
نظام مقاعد القطار: صنعنا اليوم نظامًا يمكن تنفيذه في مقاعد القطار. كان علينا إيجاد مصدر إزعاج وإيجاد حل له. لقد قررنا أن نصنع نظامًا يخبرك إذا كان هناك مقعد متاح في عربة القطار التي تتواجد فيها حاليًا. لا يوجد شيء
مضخم اختبار مقاعد البدلاء: 6 خطوات
مضخم اختبار مقاعد البدلاء: هذا Instructable يفصل بناء مكبر للصوت مقاعد البدلاء ، مناسب لاختبار الدوائر الصوتية. يتضمن مقاطع اختبار لتوصيل الأمبير بدائرة الاختبار ، والبطاريات ، والتحكم في مستوى الصوت ، ومفتاح الطاقة ، ومكبر الصوت. هذا يسرع التجارب