กลับไปหน้ารวมไฟล์
dcc-andor-analogic-railway-controller-ac0c57.md

ระบบควบคุมรถไฟจำลองแบบไฮบริด: ผสานระบบ DCC และอนาล็อก

โครงการนี้ได้ต่อยอดและพัฒนาจากผลงานอันมีค่าของ Gregg E. Berman และ Steve Massikker โดยมีเป้าหมายหลักเพื่อแก้ไขปัญหาคลาสสิกสำหรับผู้ชื่นชอบรถไฟจำลอง นั่นคือการทำให้รถไฟรุ่นเก่าแบบ อนาล็อก ซึ่งไม่มีวงจร DCC (Digital Command Control) สามารถวิ่งร่วมกับระบบควบคุมสมัยใหม่ได้อย่างราบรื่น

การพัฒนานี้เริ่มต้นขึ้นระหว่างปี 2021 ถึง 2022 โดย EMA (mbmngt@gmail.com) เพื่อขยายขีดความสามารถของระบบเดิมให้รองรับฟังก์ชันการทำงานที่ซับซ้อนมากขึ้น โดยเฉพาะการควบคุมรถไฟบนรางที่แบ่งเป็นส่วนๆ (บล็อกหรือแคนตัน) และการตรวจจับตำแหน่งรถไฟอัตโนมัติ

สถาปัตยกรรมระบบ

เพื่อรองรับการติดตั้งเครือข่ายรางรถไฟขนาดใหญ่ ซึ่งประกอบด้วยวงจรหลัก 3 วงจรและวงจรรอง 2 วงจร ระบบนี้จึงถูกออกแบบด้วยสถาปัตยกรรมการควบคุมแบบกระจาย (Distributed Control) โดยแบ่งการทำงานออกเป็น 3 ส่วนหลัก:

  1. ส่วนประมวลผล (บน PC): ทำหน้าที่เป็นส่วนติดต่อผู้ใช้ (GUI) และสมองกลางสำหรับการคำนวณเชิงตรรกะ
  2. Arduino Mega (ตัวควบคุมหลัก): ทำหน้าที่เป็นตัวกลางสื่อสารและจัดการตรรกะการจราจร
  3. Arduino Nano (ตัวควบคุมส่วนปลาย): ควบคุมแรงดันไฟฟ้าและตรวจจับกระแสในแต่ละส่วนของรางโดยตรง

ดูไฟล์ Railway Controller Elect Synoptic


การผสานฮาร์ดแวร์

กุญแจสำคัญในการควบคุมรถไฟอนาล็อกที่แม่นยำของระบบนี้คือการเลือกใช้อุปกรณ์อิเล็กทรอนิกส์ที่เหมาะสม:

  • เซนเซอร์วัดกระแส ACS712: เราใช้เซนเซอร์วัดกระแสแบบฮอลล์เอฟเฟกต์เพื่อตรวจจับการมีอยู่ของรถไฟในแต่ละ "แคนตัน" (ส่วนของราง) เมื่อหัวรถจักรเคลื่อนที่เข้าสู่ส่วนรางที่กำหนดไว้ มอเตอร์ของมันจะดึงกระแสไฟฟ้า ทำให้ ACS712 ส่งสัญญาณแรงดันไฟฟ้าอนาล็อกกลับไปยัง Arduino Nano ข้อมูลนี้จะถูกประมวลผลเพื่อยืนยันตำแหน่งของรถไฟบนซอฟต์แวร์ Processing แบบเรียลไทม์ โดยไม่จำเป็นต้องติดตั้งเซนเซอร์แสงหรือแม่เหล็กเพิ่มเติมบนตัวรถไฟเอง
  • ไดรเวอร์แบบ H-Bridge คู่ L298N: สำหรับรถไฟอนาล็อก การควบคุมความเร็วทำได้โดยการปรับแรงดันไฟฟ้า (PWM - Pulse Width Modulation) โมดูล L298N ช่วยให้เราสามารถควบคุมทั้งความเร็วและทิศทางของรถไฟในแต่ละบล็อกได้อย่างอิสระ ผ่านสัญญาณจาก Arduino Nano

การจัดการซอฟต์แวร์และตรรกะการควบคุม

ระบบซอฟต์แวร์ได้รับการออกแบบให้ทำงานประสานกันผ่านโปรโตคอลการสื่อสารต่างๆ:

1. ส่วน Processing (อินเทอร์เฟซและระบบขับอัตโนมัติ)

ซอฟต์แวร์บน PC ไม่เพียงแต่แสดงตำแหน่งภาพของรถไฟบนหน้าจอเท่านั้น แต่ยังรวมตรรกะ ระบบขับอัตโนมัติ (Autopilot) ที่อัปเดตแล้ว ซึ่งจะตรวจสอบสถานะจากเซนเซอร์กระแสอย่างต่อเนื่องและสั่งการให้รถไฟหยุดหรือเคลื่อนที่โดยอัตโนมัติเพื่อป้องกันการชนกัน นอกจากนี้ยังได้เพิ่มหน้าต่างควบคุมสำหรับอุปกรณ์เสริมต่างๆ เช่น สัญญาณไฟจราจรทางรถไฟและรางแยก

2. ส่วน Arduino Mega (สะพานเชื่อม)

Arduino Mega ทำหน้าที่เป็น "เกตเวย์" โดยสื่อสารกับ Processing ผ่าน การสื่อสารแบบอนุกรม (Serial Communication - USB) และกระจายคำสั่งไปยัง Arduino Nano ทั้ง 5 ตัวผ่าน บัส I2C ตรรกะในส่วนนี้มีความสำคัญอย่างยิ่งสำหรับการจัดการคิวข้อมูล เพื่อให้แน่ใจว่าคำสั่งควบคุมความเร็วจากผู้ใช้จะไปถึงรถไฟที่ถูกต้องในเวลาที่เสถียรที่สุด

3. ส่วน Arduino Nano (ควบคุมแบบท้องถิ่น)

Arduino Nano แต่ละตัวมีหน้าที่รับผิดชอบบล็อกรางรถไฟเฉพาะส่วน โดยรับคำสั่งแอดเดรส (Address) เฉพาะผ่านโปรโตคอล I2C และแปลงเป็นสัญญาณ PWM เพื่อขับเคลื่อนไดรเวอร์ L298N การแยกหน้าที่นี้ช่วยลดภาระการประมวลผลบนเมนบอร์ดและทำให้ระบบสามารถขยายขนาดได้ง่าย


รายละเอียดการพัฒนาและฟีเจอร์ใหม่

ในโปรเจกต์นี้ ได้มีการปรับปรุงหลายจุดจากระบบต้นแบบดั้งเดิม:

  • ControllerConfig ที่ปรับแต่งได้: ผู้ใช้สามารถกำหนดโครงสร้างเครือข่ายรางรถไฟ (Network Topology) ด้วยตนเองผ่านชีตการกำหนดค่าใน Processing ทำให้ระบบมีความยืดหยุ่นสูง
  • การปฏิบัติตามมาตรฐาน DCC: แม้จะมุ่งเน้นที่รถไฟอนาล็อก แต่ความสามารถในการส่งสัญญาณตามมาตรฐาน NMRA DCC ยังคงอยู่ครบถ้วน ดังนั้นคุณจึงสามารถควบคุมรถไฟทั้งสองระบบพร้อมกันบนรางเดียวกันได้
  • ส่วนติดต่อผู้ใช้: ปุ่มลัด (Keyboard Shortcuts) ถูกปรับปรุงเพื่อการควบคุมที่รวดเร็วยิ่งขึ้น และฟังก์ชัน "อ่านกระแสบนรางปฏิบัติการ (Read Operation Track Current)" ถูกปิดใช้งานบนหน้าหลักเพื่อเพิ่มความตอบสนอง (Latency) ของระบบควบคุม

แผนการพัฒนาต่อไป (โรดแมป)

เรากำลังอยู่ในกระบวนการพัฒนาส่วนขยายเพิ่มเติม ดังต่อไปนี้:

  1. ระบบควบคุมรางแยก (Turnout Control System): ควบคุมมอเตอร์รางแยกโดยตรงผ่านหน้าจอ Processing ผ่านบอร์ด Mega
  2. ระบบสัญญาณไฟจราจรรางรถไฟ: ตรรกะการเปลี่ยนไฟแดง-เขียวอัตโนมัติที่สัมพันธ์กับตำแหน่งของรถไฟในแต่ละ Canton
  3. ส่วนควบคุมอุปกรณ์ประกอบ: เช่น ไฟส่องสว่างสถานีหรือเอฟเฟกต์เสียงบรรยากาศ ควบคุมผ่าน Nano

หากคุณกำลังมองหาวิธีที่จะทำให้รถไฟรุ่นเก่ากลับมามีชีวิตอีกครั้งในยุคดิจิทัล ระบบ Hybrid Controller นี้คือคำตอบที่สมบูรณ์แบบ ซึ่งผสมผสานเทคโนโลยีคลาสสิกและสมัยใหม่เข้าด้วยกันอย่างลงตัว

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "Processing 3.x"
  - "Arduino IDE"
  - "DCC++ Base Station Library"
author: "mbmngt"
category: "Motors & Robotics"
components:
  - "1x Arduino Mega 2560 (Master Controller)"
  - "5x Arduino Nano (Block Slave Controllers)"
  - "8x L298N Dual H-Bridge Motor Drivers"
  - "12x ACS712 Current Sensors (Hall Effect)"
  - "1x 500W PC Power Supply (High-Current 12V Rail)"
  - "1x Processing Environment (Desktop HMI/GUI)"
description: "เป้าหมายของโปรเจคนี้คือการควบคุมรถไฟรุ่นเก่าแบบอนาล็อก (ที่ยังไม่มีระบบ DCC) และรถไฟรุ่นใหม่แบบ DCC ให้วิ่งบนรางเดียวกันได้อย่างตึงๆ ด้วยการประสานงานระหว่าง Processing, Arduino Mega และ Arduino Nano งานง่ายแต่หล่อ รับรองวัยรุ่นสายช่างต้องชอบ!"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://github.com/MBNGT/DCC-and-or-ANALOGIC-Railway-Controller/tree/Nano"
  - "https://github.com/MBNGT/DCC-and-or-ANALOGIC-Railway-Controller"
  - "https://github.com/MBNGT/DCC-and-or-ANALOGIC-Railway-Controller/tree/Mega"
encryptedPayload: "U2FsdGVkX18gkaKJYzy8RlAhe0agCMMLfO0MKuRns4gsAAQRfAvxz0NH+kv8epksKFMDqMzYuZN8ODUn1Cwq9+JAdtfJoof1BtMj4vtmpkc/EMB2ePqyV1c+PotU8ffI"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/dcc-andor-analogic-railway-controller-ac0c57_cover.jpg"
lang: "en"
likes: 1
passwordHash: "9bab4d3f48e708abb0d4bebded3bea8b806a33d1fb86716e69d08f4215c1ac27"
price: 2450
seoDescription: "Control both analog and DCC locomotives on the same tracks using Arduino Mega, Nano, and Processing."
tags:
  - "model-railway"
  - "dcc-control"
  - "analog-locomotive"
  - "distributed-processing"
  - "nmra-standard"
  - "hbridge-drivers"
title: "โปรเจควิถีราง: จัดการทั้ง DCC และ ANALOGIC ได้ในวงเดียว!"
tools: []
videoLinks: []
views: 1498