Glossary
| A | B | D | G | H | I | J | M | O | P | R | S |T
- Arduino, Arduino Mega -
- A microcontroller board based on the ATmega2560.
- The Arduino Mega has additional I/O pins and is used by the TrainThing with the Motor Shield as the TrainThing Base Station to control the layout hardware by translating DCC++ commands to DCC signals.
- BB - Bulletin Board
- A software package like phpBB used as part of TrainThing.
- A place where others can leave comments or discuss a topic.
- Bonnet -
- Like a Raspberry Pi HAT, physically smaller.
- TrainThing uses three 16-channel PWM/Servo Bonnets to drive servos that control semaphore signal arms.
- DCC - Digital Command Control...
- is a scheme for controlling locomotives and other elements on a model railroad layout.
- TrainThing uses DCC to control trains and turnouts.
- DCC++ - Digital Command Control...
- is an Open Source Arduino-based do-it-yourself DCC Base Station.
- TrainThing uses DCC++ to send commands and status between the laptop (4) and Arduino (2).
- TrainThing has added commands to DCC++ to send commands and receive status from the two Raspberry Pi processors in the system.
- docstring - Python supported documentation ...
- that is automatically attached to objects.
- In TrainThing the docstrings are formatted as reStructuredText to be processed by Sphinx for more readable software documentation.
- DRO - Digital Readout...
- In machine-shop terminology, the complete Digital Read Out system (consisting of a computer, axis-position encoders, and a numeric display) is referred to by the acronym DRO. Such a system is commonly fitted to machines in today's shops, especially for metal working — lathes, milling machines, and other machine tools — to allow the operator to work faster and with greater accuracy. It is a stretch to say mine has a "computer."
- DSI - Display Serial Interface...
- it defines a high-speed serial interface between a host processor and a display module.
- TrainThing uses the DSI connection on the Raspberry Pi (3) for a 3.5" touchscreen display to display/randomly select the path for each train.
- GPIO - General Purpose Input/Output...
- pins on Raspberry Pi 2x20 header that can be configured as inputs or outputs in additions to their default function.
- GUI - Graphical User Interface...
- is a form of user interface that allows users to interact with electronic devices (software) through graphical icons and audio indicator such as primary notation, instead of text-based user interfaces, typed command labels or text navigation.
- HAT - Hardware Attached on Top.
- Add-on hardware boards that attach directly to the Raspberry Pi 2x20 header adding additional functionality.
- TrainThing uses a 16-channel PWM/Servo HAT to:
- Drive 15 servos that control semaphore signal arms.
- Control the add-on fan for the Raspberry Pi 4 with a PWM signal.
- Bring out a GPIO pin for the fan control push button.
- Bring out 12 GPIO pins for the four 3-color signals in the parking lot.
- Bring out GPIO pin 14 for an on/off LEDs.
- Bring out a GPIO pin for a run/on button
- TrainThing uses 3 16-channel PWM/Servo bonnets (like the HAT above, but smaller).
- TrainThing uses a IOPi PLUS HAT to add 32 programmable IO pins to:
- Monitor the 24 feedback signals available from the 6 Wabbits used in TrainThing.
- Monitor traffic density with 4 LEDs
- TrainThing uses two Unicorn HD (high definition) HATs. The Unicorn HAT is a 16x16 array of tri-color LEDs used to display status of each of the 64 (60 really) signals, temperature and fan status.
- Headless - software...
- is capable of working on a device without a graphical user interface (screen, keyboard, mouse). Such software receives inputs and provides output through other interfaces like network or serial port and is common on servers and embedded devices.
- TrainThing uses headless software on the Raspberry Pi and Arduino Base Station.
- IDE - Integrated Development Environment...
- is software for building applications that combines common developer tools into a single graphical user interface (GUI).
- Examples used are listed under "Development Tools".
- IEC - International Electrotechnical Commission.
- One of their standards is a color code used to label electronic components.
- (0) Black, (1) Brown, (2) Red, (3) Orange, (4) Yellow, (5) Green, (6) Blue, (7) Violet, (8) Gray, (9) White
- Bad Beer Rots Out Your Guts But Vodka Goes Well (Much better than the sexist mnemonic I learned.)
- Order to park colored trains (Red, Orange, Yellow and Green).
- IO - Input/Output ...
- IOPi HAT. A HAT for the Raspberry Pi with 32 Input/Output (IO) pins
- IO Board, A small circuit board to consolidate/distribute input/output signals from several sources.
- I2C - {I2C} Inter-Integrated Circuit...
- is a synchronous, multi-master, multi-slave, packet switched, single-ended, serial communication bus. The I2C uses only 2 pins on the RPi 2x20 header
- SDA, Serial Data line.
- SCL, Serial Clock line.
- In the TrainThing this interface is used to control and send data to a 16-channel PWM/Servo HAT, three PWM/Servo Bonnets and the IO Pi HAT.
- that is designed to have as few implementation dependencies as possible.
- JMRI - Java Model Railroad Interface
- The JMRI project is building tools for model railroad computer control.
- Jython - Java implementation of the Python interpreter
- ms - millisecond, 10-3 seconds, 0.001 sec
- OS - Operating System..
- Now called Raspberry Pi OS previously called Raspbian is a Linux OS.
- or for the Laptop (4) Windows 11.
- PHP - (recursive acronym for PHP: Hypertext Preprocessor )...
- is a widely-used open source general-purpose scripting language used for web development.
- PHP was used to develop the TrainThing Simulator and underlies the phpBB bulletin board.
- PWM - Pulse Width Modulation...
- is a method of reducing the average power delivered by an electrical signal, by effectively chopping it up into discrete parts.
- Servo control is achieved by sending a servo a PWM signal, a series of repeating pulses of variable width where the width of the pulse determines the position to be achieved by the servo.
- Pydoc - Python documentation.
- Pydoc is a function built into Python that extracts document from module scripts.
- See Pydoc Output for examples.
- Python - Programming language
- Python is an interpreted, high-level and general-purpose programming language.
RPi - (shorthand)
- Raspberry Pi 3B+ - A microcontroller board based on the Quad Core Broadcom BCM2837 64-bit ARMv8 processor.
- Raspberry Pi 4 B - Bigger, better, faster.
- reStructuredText - "is an easy-to-read, ...
- what-you-see-is-what-you-get plaintext markup syntax and parser system.
- "It is useful for in-line program documentation (such as Python docstrings), for quickly creating simple web pages, and for standalone documents.
- "reStructuredText is designed for extensibility for specific application domains."
- SEO - Search Engine Optimization...
- is the process of improving the quality and quantity of traffic to a website or a web page from search engines.
- SEO targets unpaid traffic (known as "natural" or "organic" results) rather than direct traffic or paid traffic.
- "that makes it easy to create intelligent and beautiful documentation for Python projects (or other documents consisting of multiple reStructuredText source files)."
- TrainThing uses the autodoc extension.
- SPI - Serial Peripheral Interface...
- is a synchronous serial communication interface specification used for short-distance communication, primarily in embedded systems.
- The SPI uses 5 pins on the Raspberry Pi 2x20 pin header.
- In the TrainThing this interface is used to control and send data to the two Unicorn 16x16 LED displays. The 5 pins used are
- MOSI, Master out/Slave in,
- MISO, Master in/Slave out,
- SCLK, SPI clock.
- 2 CE (CE0, CE1) Chip enable. Each Unicorn is enabled by one of the CE signals.
- TOC - Table of Content...
- This has nothing to do with the TrainThing.
- See the panel to the left.
- TTS - Text To Speech...
- is an online or offline software application that converts text to voice.
- TrainThing uses pyttsx3 which is a text-to-speech conversion library in Python. Unlike alternative libraries, it works offline and is compatible with both Python 2 and 3.
- See the entry in Design Consideration for how TTS is used in TrainThing.