This is an old revision of the document!


Train Control System

Introduction

The project represents an automatized system for trains control. It features a control position for the train using InfraRed sensors and Ultrasonic sensors. To simulate the detection of various trains, a RFID reader is used. This way, the railroad switches will move accordingly. Once at the train station, loading and unloading of the freight are carried out using Braccio. The transportation of goods is simulated using some RFID tags, automating the switching of the railroad.

Motivation

I had a few starting components for the control system as well as for the train modelling. I thought it would be a challenging and interesting project, mostly because I couldn't find many resources regarding the automatization of train models and seemed a unique idea. Most of the projects that you can find online are some digital sets containing a remote controller and a digital station, thus making them very easy to use without the necessity of a technical background.

Hardware Diagram

Hardware Design

Schematic: Schematic

The schematic for the project was created using the Schematic of MEGA2560_Rev3 and the Pinout Mega2560rev3. Also, for the Uno part, the schematic is here and the pinout is here.

The schematic contains 5 main systems. The first one represents the board used: An Arduino Mega with an ATMega2560. This is the µC used to control the tracking system.

The next system is Direction & Speed Control System. This is used for controlling the direction and speed of the train. A L298N Dual H-Bridge Motor Driver connected to a power supply represents the interface between the ATMega2560 and the railway.

Following, we have Position Control System - a set of sensors to detect the position of train on the track. This way, the train can stop, change direction and speed.

Besides these a Track Switch System that uses 4 relays controlled by 4 pins is used to change the direction of the track. To simulate more trains, a RFID reader RC522 detects various tags and commands the rail switch accordingly.

The last but not least, is the Arduino Uno with the Braccio shield. This helps to simulate the idea of “more trains” because it changes RFID tags that help the ATMega2560 with the RFID scanner to make a decision to change the direction of the rail.

A sheet with components, datasheets and link to buy can be found here:components.xlsx

Hardware Description

I'll start with the ATMega2560. Pins D2(PE4), D3(PE5), D4(PG5), D5(PE3) are outputs for the 4-channel relay module. This system helps changing the direction of the track in one of the three directions, using 2 switch machines that have 2 states. Those are powered by a 14V, 1.1A power supply.

Next pins used are D6(PH3), D7(PH4) for the ultrasonic sensor placed at one of the extremities.

The pins that are used for the direction and speed of the train are D42(PL7), D43(PL6), D44(PL5). PL5 allows PWM so it is perfect for speed modulation. Those are connected to the l298n motor driver alongside a power supply of 12V, 0.5A DC.

Pins from D49 to D53 are used for the MFRC522 scanner. It communicates with it using SPI.

For the other extremity of the railway is placed a simple Infra Red Sensor that detects when the train reaches a certain position.

Here Braccio, a robotic arm made from 6 servomotors replaces the RFID tags. This is controlled through a shield placed on Arduino Uno (ATMega328p). The communication between the 2 μC is facilitated by I2C/TWI. The pins used on the ATMega2560 are PD0 and PD1 and for the ATMega328p PC4 and PC5. Arduino Uno controls Braccio using 6 PWM signals for the 6 servos, PD3, PD5, PD6, PB1, PB2, PB3.

Decision Making

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2025/vstoica/nicusor.zaharia0308.1748580168.txt.gz · Last modified: 2025/05/30 07:42 by nicusor.zaharia0308
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0