Show Control Simulator - using the HCS12 microcontroller
As the capstone project for my digital electronics curriculum, I have programmed the HCS12 microcontroller to simulate a show control computer.
This experiment includes a small model representing the elements of a theatrical style, scripted Theme Park show.
The model includes servo powered entrance and exit doors, infra-red guest counter, LED lighting zones and signs, and an Operator Control Console (OCC) to display all information - all in the space of about 2 sq. ft.
The show control system is responsible for initiating a scripted sequence of events for a repeatable, automated theatrical style production. The system takes statistical (guest counter) and safety related inputs from a variety of sensors and controls and uses them to initiate certain steps in the show.
This simplified system combines input-based and time-based events to simulate the basic idea of a full show control system.(Hey, I only had two weeks!)
The HCS12 micro is used to control the various outputs including the Arduino Uno micro. The Arduino was chosen for it’s library’s ability to output PWM to servo motors based on angle (0-180). The precision that this allows makes it ideal for an application such as opening the model doors a precise amount. The HCS12 sends a high pulse to the input pin of the Arduino, triggering the open/delay/close doors sequence.
These photo were taken before the linkage between servos and doors was finished.
A major component of this project was the interconnection of the various components. A simplified scale model was necessary to visually relate the potentially abstract actions of LEDs and switches to the role they each play in such a system. Because of the interconnection between hardware and software, the physical parts of this experiment had to be developed alongside the program code to be able to test each section as it was written.
The code for this program relies heavily on the use of branches. Branches are used as part of the “if, then” statements needed to take inputs and uses them to perform a piece of code. Branches and delay subroutines form the bulk of the HCS12 code for this project.