View on GitHub

Mobile-Arcade

An Arcade with a Mobile Twist

Mobile Arcade

Table of Contents

Concept

“Develop a mobile arcade cabinet that can be controlled over Bluetooth to enable ultimate portability and usability, while maintaining retro charm.”

The Mobile Arcade was designed to incorporate a retro gaming experience with a quirky mobile chassis. The original idea was centered around a table top arcade experience with additional entertainment features, including vibrant and responsive lighting. In order to better suit and entertain the target audience (children aged 9 through 14), mobility was incorporated as well. With this in mind, the following design requirements were set:

  1. Fully functional, single player, arcade system (ability to play NES and Atari games)
  2. Visually pleasing enclosure with a retro feel
  3. Interactive lighting
  4. Basic Bluetooth-controlled mobility

System Design

The design of the mobile arcade was divided into distinct subsystems: the physical enclosure, the arcade emulator, the low-level drive system and lighting control. Each of these systems are outlined here.

Block Diagram

Physical Enclosure

The enclosure was designed using Dassault Systems’ Solid Works. Each portion of the seven component design was fitted together in software to ensure accurate dimensioning. The enclosure was then fabricated using 3/32” clear acrylic sheets and laser-cut at the Invention Studio.

CAD design

The overall shape of the enclosure resembles that of a standard arcade cabinet, with a few notable exceptions. The design is much simpler than standard cabinets, reducing the number of distinct components that need to be fabricated. Additionally, the cabinet incorporates mounting holes near the front specifically designed to accommodate geared drive motors. Along with the rear-mounted skid, this produces a “tank drive” configuration which allows the enclosure to maneuver deftly around its environment.

Before cabinet assembly

Trial fit Interior view

Holes to fit the arcade controls (joystick and buttons) and LCD screen were included. Details about each of these is covered in the next section.

Arcade Emulator

The emulation portion of the mobile arcade was split into two portions: the physical controls and the emulation software. The raspberry pi acts as the emulation computer for this project. A small LCD screen is used and is mounted above the joystick. This LCD uses hdmi to connect to the pi.

Arcade Controls

For controlling the arcade, a standard arcade joystick configuration with four additional buttons was chosen. The following parts were acquired from Adafruit to accomplish this:

The joystick and buttons each have a specific location they fit into within the enclosure, and were chosen before the CAD model was finalized. The control bonnet connects directly to the GPIO header on the raspberry pi and allows each of the other elements to easily interface with the emulation software.

Once each physical element is installed, this guide outlines the process of formally installing the Control Bonnet on the pi. In order for it to function correctly, specific software needs to be installed on the pi. This should be done after the emulation software is installed, as outlined below.

Emulation Software

The common emulation software RetroPie was chosen for this project. Retropie works seamlessly with the raspberry pi, the primary processor on the mobile arcade, and offers decent functionality. Installation is made fairly easy by the fact that the Retropie foundation provides a disk image for the raspberry pi. The steps that were followed for installing the software are as follows:

  1. Download the Retropie disk image from their website
  2. Burn the image to the raspberry pi’s SD card
  3. Boot the system and connect it to the ethernet using wifi or ethernet
  4. Install the Control Bonnet software (Refer to previous section)
  5. Follow the automatic key-bindings dialog
  6. Copy ROM files to the appropriate location

Further details about this process (excluding the Control Bonnet) can be found on the RetroPie website.

Low-level Control

The Mbed microcontroller was used to implement low-level lighting and drive system control. In order to neatly connect the Mbed to the Bluetooth bridge, motor driver, and the LED strips, a single-layer PCB was designed in Eagle and fabricated at the Mechanical Engineering electronics lab. 90º headers were used so that the connections occupied minimal vertical space.

The Eagle files for the PCB can be found here.

Mbed code can be found here.

Mbed PCB design

Drive System

The drive system consists of two motors in a tank-drive configuration, with a rear skid for stability. Wheels were added to both sides of the motors (2 visible outside, 2 hidden inside). Not only does this improve stability and ensure traction, it also adds a level of redundancy to the drive system.

A custom Mbed library was used to control the motor driver. The basic library (located here) was extended to add a short brake feature. The extended motor driver library can be found here.

Wheel setup

Lighting

Dotstar LED strips were used to implement the interactive lighting features of the Mobile Arcade. These were chosen over NeoPixels due to the standard SPI interface and relaxed timing requirements of the integrated APA102 chip, allowing for relatively easy interface with the Mbed. Since no official library was available for interfacing with the APA102, a simple library was created that fulfilled our needs (available here).

The Mbed controls the LED strips in a way that simulates the actions of a real-world vehicle. Simulated lighting effects include headlights, foglights, blinkers, tail/brake lights, reverse lights, and underglow. These lighting effects are controlled in an appropriate way in relation to the movement of the enclosure.

The Mbed also accepts input from the Raspberry Pi over USB serial to synchronize lighting effects to certain events in the arcade emulator. For example, on emulation startup, a startup animation is shown on the LEDs. Other effects include a similar shutdown animation, as well as lighting theme changes when games are started/stopped.

Power

The Mobile Arcade is powered using a wiring harness connected to a large lithium-ion battery pack. A 5V 3A regulator, connected the harness, is used to provide power for the Raspberry Pi, Mbed LPC1768, motors, and LED strips. The LCD is able to plug directly into the harness without further regulation. Fuses are integrated into the harness to protect sensitive components.

Instructions

Hardware setup

Mbed setup

Raspberry Pi setup

Results

Demo

Improvements