Skip to content

TREC-BU/ride-control-computer

Repository files navigation

Ride Control Computer (RCC) 2025-2026

This repo hosts all of the code and files related to Terrier Ride Engineering Club's (TREC) Ride Control Computer (RCC) project for the Ride Engineering Competition (REC) 25-26 season.

About the Project

The RCC is a Raspberry Pi-based control system for an amusement ride, built for the Ride Engineering Competition. It coordinates motor control, safety monitoring, operator controls, and theming elements to safely operate a ride from dispatch through cycle completion.

Structure

ride_control_computer/
├── RCC.py                 # Main controller, safety logic, state machine
├── main.py                # Entry point, logging setup
├── loop_timer.py          # Timing utility
├── motor_controller/      # Motor control (RoboClaw, Mock)
├── control_panel/         # Operator inputs (Mock)
├── theming_controller/    # Show control (Mock)
└── webserver/             # Status dashboard (Flask, Mock)

Each subsystem has an abstract interface (ABC) and a Mock implementation for testing w/o hardware.

Credits

Project Credits:
Jackson Justus - Electrical Lead -- jackjust@bu.edu
Liam Mertens - Electrical Member -- lmertens@bu.edu

Club Leadership:
Electrical Lead: Jackson Justus (jackjust@bu.edu)
Mechanical Lead: Daniel Ulrich (dculrich@bu.edu)
Design Lead: Jon Chuang (chuangj@bu.edu)

Requirements

  • Python 3.13.5
  • Raspberry Pi 5 (production) or macOS/Windows/Linux (development)

Installation

macOS / Linux

# Create and activate virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install the package and dependencies
pip install -e .

# Or with dev tools (pytest, ruff, black)
pip install -e ".[dev]"

Windows

# Create and activate virtual environment
python -m venv .venv
.venv\Scripts\activate

# Install the package and dependencies
pip install -e .

# Or with dev tools (pytest, ruff, black)
pip install -e ".[dev]"

Running

rcc             # Uses mock implementations (default, safe for development)
rcc --hardware  # Uses hardware implementations (Pi deployment)

Running Tests

pytest

Deployment (Raspberry Pi)

Install

# Clone to /opt/rcc
sudo mkdir -p /opt/rcc
sudo chown $USER:$USER /opt/rcc
git clone https://github.com/Terrier-Ride-Engineering-Club/ride-control-computer.git /opt/rcc

# Create venv and install
cd /opt/rcc
sudo apt install liblgpio-dev swig libgpiod-dev python3-dev # install system deps for gpio
python3 -m venv .venv
.venv/bin/pip install .

Kiosk Mode Setup

On boot, shows a 5-second prompt. Press any key for desktop, otherwise launches Chrome kiosk with the RCC webserver.

# Make scripts executable
chmod +x /opt/rcc/scripts/*.sh

Option A: Desktop Auto-Login (GUI)

mkdir -p ~/.config/autostart
cp /opt/rcc/scripts/rcc-boot.desktop ~/.config/autostart/

Option B: Console Auto-Login (headless)

sudo raspi-config
# Navigate: System Options → Boot / Auto Login → Console Autologin

# Add startup script to bashrc (only if not already present)
grep -qxF '/opt/rcc/scripts/rcc-boot.sh' ~/.bashrc || echo '/opt/rcc/scripts/rcc-boot.sh' >> ~/.bashrc

Reboot to test.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors