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

Garden Train - Arduino Wireless NMRA DCC: 4 خطوات (مع صور)
Garden Train - Arduino Wireless NMRA DCC: 4 خطوات (مع صور)

فيديو: Garden Train - Arduino Wireless NMRA DCC: 4 خطوات (مع صور)

فيديو: Garden Train - Arduino Wireless NMRA DCC: 4 خطوات (مع صور)
فيديو: Cheap and Amazing! DCC-EX 2 Years Later 2024, شهر نوفمبر
Anonim
Image
Image
تصميم النظام
تصميم النظام

بالإضافة إلى التعليمات السابقة مع DCC على نظام السكك الحديدية الميتة ، فقد طورت الفكرة بشكل أكبر باستخدام محطة قيادة DCC محمولة باليد مع لوحة مفاتيح وشاشة LCD. تحتوي محطة القيادة على جميع الترميز المطلوب لتعليمات NMRA DCC ، ولكن بدلاً من الاتصال بالقضبان ، يتم نقل البيانات بواسطة وحدة الراديو RF24L01 + إلى جهاز استقبال مركب في شاحنة أو أسفل الموقع - حيثما تسمح الغرفة بذلك.

بالطبع ، يجب أن يتم تزويد مواقعك بوحدة فك ترميز ذات قدرة تحميل مناسبة لمحركات المحرك.

الخطوة 1: تصميم النظام

تصميم النظام
تصميم النظام

يقع Arduino Pro Mini في قلب التصميم. استخدام فريتزينج لتطوير الدائرة وإنتاج ثنائي الفينيل متعدد الكلور.

تمكنت من استخدام نفس ثنائي الفينيل متعدد الكلور لكل من المرسل والمستقبل وبالتالي توفير بعض التكاليف.

يحتوي جهاز الإرسال على اتصالات للوحة المفاتيح وشاشات الكريستال السائل بينما لا يتطلب جهاز الاستقبال هذه الاتصالات ويستخدم جسر H لتزويد مخرج DCC للمنطقة الموضعية.

يتضمن التطوير الإضافي اتصالات لجسر H أكبر إذا لزم الأمر لمواقع أكثر قوة.

يمكن حذف PCF8574 إذا كنت تستخدم شاشة LCD تأتي مع حقيبة الظهر مما يسمح بتوصيلات SCA / SCL على Arduino لتغذية الشاشة باستخدام سلكين فقط. = 10.00 جنيهات إسترلينية تقريبًا لكل منهما. + بطاريات

اردوينو برو ميني. × 2 = 4.00 جنيه إسترليني

لوحة المفاتيح الغشائية 4x3 = 3.00 جنيه إسترليني

شاشة LCD مقاس 20 × 4 = 7 جنيهات إسترلينية

PCF5874 = 1.80 جنيه إسترليني

NRF24L01 +. وحدات الراديو × 2 = 5.80 جنيه إسترليني

تصنيع ثنائي الفينيل متعدد الكلور مقابل 10 خصم (أو يمكن استخدام لوحة Vero) = 24 جنيهًا إسترلينيًا أو 4.80 جنيهًا إسترلينيًا مقابل 2off

3.3 v المنظم = 0.17 جنيه إسترليني (حزمة من 25 من RS Comp)

منظم 5 فولت LM7805 = 0.30 جنيه إسترليني

جسر H SN754410ne = 3.00 جنيه إسترليني

بطاريات Lloytron سعة 2700 مللي أمبير AA قابلة لإعادة الشحن × 12 = 22.00 جنيهًا إسترلينيًا. (البطاريات الأقل تصنيفًا للـ mh أرخص)

المكثفات ، الأواني ، الدبابيس ، الموصلات ، إلخ = 2.00 جنيه إسترليني تقريبًا

العلبة 190 × 110 × 60 مم = 8.00 جنيه إسترليني

جهاز الإرسال - شاحن الهاتف / البطارية = 2.00 جنيه إسترليني

الخطوة 2: جهاز الإرسال

المرسل
المرسل

يظهر الرسم التخطيطي للدائرة حيث يتم توصيل دبابيس D2 إلى D8 على Arduino Pro Mini بلوحة المفاتيح. يتم توصيل مقياس جهد 100 كيلو أوم بالمسمار التناظري A0 لتعديل السرعة. A5 على Arduino Pro Mini عن طريق أسلاك ملحومة إلى المسامير الموجودة على الطبقة العليا من Pro Mini.

رسم Arduino مرفق للتنزيل.

لقد استخدمت شاشة LCD مقاس 20 × 4 تسمح بـ 4 أسطر من المعلومات مع 20 حرفًا لكل سطر ، وتوفر لوحة المفاتيح القائمة التالية:

من 1 إلى 9 = العنوان الموضعي * = الاتجاه 0 = الأضواء # = قائمة الوظائف للمفاتيح من 1 إلى 8

الوصف الأساسي لرسم Arduino Pro Mini: يرتب هذا السطر من الكود رسالة DCC بتنسيق HEX. رسالة منظمة [MAXMSG] = {

{{0xFF، 0، 0xFF، 0، 0، 0، 0}، 3}، // رسالة خاملة

{{locoAdr، 0، 0، 0، 0، 0، 0}، 3} عنوان 3 بايت

};

لتخزين إعدادات كل موضع ، يتم إعداد سلسلة من المصفوفات على النحو التالي:

int la [20] ؛ // مجموعة لعقد الأرقام المحلية

int sa [20] ؛ // مجموعة لعقد قيم السرعة

int fda [20] ؛ // مجموعة لعقد dir

int fla [20] ؛ // مجموعة لعقد الأضواء

int f1a [20]؛ // مجموعة لعقد متعة 1 …..

int f8a [20] ؛ // مجموعة لعقد متعة 8

لتمكين تعديل تعليمات DCC كما نذهب:

للحصول على إرشادات السرعة: void edit_speed (Struct Message & x) {

x.data [0] = locoAdr؛

x.data [1] = 0x40 ؛ // locoMsg مع 28 خطوة للسرعة}

لتعليمات الوظيفة:

void edit_group1 (هيكل الرسالة & x) {

x.data [0] = locoAdr؛

x.data [1] = 0x80 ؛ // locoMsg مع تعليمات المجموعة الأولى 0x80}

الحلقة الرئيسية للرسم:

حلقة باطلة (باطلة) {إذا (read_locoSpeed ()) {تجميع_dcc_msg_speed () ؛

send_data_1 () ، // إرسال البيانات لاسلكيًا

تأخير (10) ؛

send_data_3 () ، // عرض البيانات على شاشة LCD

send_data_4 () ، // عرض البيانات على الشاشة التسلسلية}

إذا (read_function ()) {

تجميع_dcc_msg_group1 () ،

send_data_1 () ،

تأخير (10) ؛

send_data_3 () ، }}

تحديث البيانات عندما تتغير السرعة:

boolean read_locoSpeed () يكتشف هذا عنوانًا جديدًا أو إعدادات السرعة أو الاتجاه ويعدل بيانات HEX وفقًا لذلك ، لقد حددت 28 خطوة سرعة ولتلبية معيار NMRA S 9.2 ، يجب العثور على بيانات السرعة من جدول البحث في "speed_step ()"

speed_step باطل () {switch (locoSpeed) {

الحالة 1: البيانات | = 0x02 ؛ استراحة؛

الحالة 2: البيانات | = 0x12 ؛ استراحة؛

الحالة 3: البيانات | = 0x03 ؛ استراحة؛

………

الحالة 28: البيانات | = 0x1F ؛ استراحة؛ }}

تحديث البيانات عندما تتغير الوظائف:

read_function المنطقي ()

إذا (fla [locoAdr] == 0) {data = 0x80 ؛

} // مصابيح الرأس مطفأة

إذا (fla [locoAdr] == 1) {

البيانات = 0x90 ؛

} // مصابيح الرأس مضاءة

لكل وظيفة:

إذا (f2a [locoAdr] == 0) {بيانات | = 0 ؛ }. // إيقاف الوظيفة 2

إذا (f2a [locoAdr] == 1) {

البيانات | = 0x02 ؛ // Function 2 on} يتم إنشاء "البيانات" من خلال دمج ['| =' أحادي المعامل المركب أو] أكواد HEX لكل دالة.

الخطوة 3: جهاز الاستقبال

المتلقي
المتلقي

يظهر الرسم التخطيطي للدائرة حيث يتم استخدام المسامير 5 و 6 من Arduino Pro Mini لتوفير إشارة DCC المقدمة للجسر H. ترتبط أزواج H-bridge بالتوازي لزيادة السعة الحالية. اعتمادًا على التيار المرسوم بواسطة الموقع ، قد يلزم توصيل غرفة التبريد بجهاز DIP ذي 16 سنًا ، أو قد يتم توصيل جسر H للخدمة الشاقة خارجيًا.

رسم Arduino مرفق للتنزيل. تتكون إشارة DCC من ساعة تعمل بسرعة 2 ميجا هرتز

SetupTimer2 () باطل يقوم بهذه المهمة.

تتضمن الساعة "نبضات قصيرة" (58us) لـ "1" في بيانات DCC و "نبضات طويلة" (116us) لـ "0" في بيانات DCC.

تحصل الحلقة الفارغة على البيانات من الراديو وإذا تم العثور على سلسلة صالحة ، يتم تحويل البيانات إلى بيانات DCC.

حلقة باطلة (باطلة) {if (radio.available ()) {bool done = false؛ فعل = قراءة راديو (inmsg ، 1) ؛ // قراءة البيانات الواردة

char rc = inmsg [0] ؛ // وضع الأحرف المقروءة في هذه المجموعة

إذا (rc! = 0) {. // إذا كان الحرف لا يساوي الصفر

inString.concat (rc) ؛ // بناء الرسالة}

if (rc == '\ 0') {// إذا كان الحرف هو '/ 0' نهاية الرسالة

Serial.println (inString) ؛ // طباعة الرسالة المجمعة

سلسلة()؛ // de-build the string message للحصول على تعليمات DCC

} } }

الخطوة 4: قم بتشغيل Locos

قم بتشغيل Locos
قم بتشغيل Locos

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

استمتع بقطارات الركض المجانية بغض النظر عن ظروف المسار - يا له من فرق! لا متاعب ، لا بدء توقف ولا حاجة للتنظيف.

البطاريات التي استخدمتها قابلة لإعادة الشحن LLoytron AA x 12. لقد صنعت شاحنًا خاصًا لهم يشحن 6 في كل مرة. (انظر التعليمات)

موصى به: