جدول المحتويات:
فيديو: Garden Train - Arduino Wireless NMRA DCC: 4 خطوات (مع صور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
بالإضافة إلى التعليمات السابقة مع 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
لتجنب انقطاع البيانات من تشغيل عدة قطارات على نفس المسار ، يجب عليك فصل جهات الاتصال بين العجلات والمسار لكل موقع وشاحنة مستخدمة.
استمتع بقطارات الركض المجانية بغض النظر عن ظروف المسار - يا له من فرق! لا متاعب ، لا بدء توقف ولا حاجة للتنظيف.
البطاريات التي استخدمتها قابلة لإعادة الشحن LLoytron AA x 12. لقد صنعت شاحنًا خاصًا لهم يشحن 6 في كل مرة. (انظر التعليمات)
موصى به:
حامل صور مع مكبر صوت مدمج: 7 خطوات (مع صور)
حامل صورة مع مكبر صوت مدمج: هذا مشروع رائع يجب القيام به خلال عطلة نهاية الأسبوع ، إذا كنت تريد أن تجعلك مكبر صوت خاص به يمكنه حمل الصور / البطاقات البريدية أو حتى قائمة المهام. كجزء من التصميم ، سنستخدم Raspberry Pi Zero W باعتباره قلب المشروع ، و
إطار صور LED على شكل قلب - اصنع هدية مثالية لعيد الحب أو عيد الميلاد: 7 خطوات (مع صور)
إطار صور قلب LED - اصنع هدية مثالية لعيد الحب أو عيد ميلاد: مرحبًا! في هذا الدليل ، سأوضح لك كيف يمكنك إنشاء إطار صور قلب LED رائع. لجميع عشاق الإلكترونيات! اصنع هدية مثالية لعيد الحب أو عيد الميلاد أو الذكرى السنوية لأحبائك! يمكنك مشاهدة الفيديو التوضيحي لهذا
إطار صور Raspberry Pi في أقل من 20 دقيقة: 10 خطوات (مع صور)
إطار صور Raspberry Pi في أقل من 20 دقيقة: نعم ، هذا إطار صور رقمي آخر! لكن انتظر ، إنه أكثر أناقة ، وربما يكون الأسرع في التجميع والركض
إطار صور رقمي ، متصل بشبكة WiFi - Raspberry Pi: 4 خطوات (مع صور)
إطار صور رقمي ، مرتبط بشبكة WiFi - Raspberry Pi: هذا طريق سهل للغاية ومنخفض التكلفة لإطار صور رقمي - مع ميزة إضافة / إزالة الصور عبر WiFi عبر "النقر والسحب" باستخدام برنامج نقل ملفات (مجاني) . يمكن تشغيله بواسطة 4.50 جنيهات إسترلينية Pi Zero. يمكنك أيضًا نقل
إطار صور نيو بيكسل LED: 6 خطوات (مع صور)
إطار صورة LED بكسل جديد: مرحبًا مرة أخرى! لقد أنجزت هذا المشروع خصيصًا لـ & quot؛ ألوان قوس قزح & quot؛ منافسة. إذا كنت ترغب في ذلك ، يرجى التصويت لي في المسابقة. لذلك قررت أن أقوم بمشروع سريع وسهل حقًا للمسابقة. إنها L-neo-pixel