Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Key Functions

  • Automatic launch when startup lamp is blinking
  • Acquire 20 million point launch bonus
  • Retrieve position predictions and actuate main flippers accordingly
  • Catch ball on the left flipper and aim for some targets
  • Actuate the top flipper if ball is visible around it

Overview

The behaviour and information processing is distributed across multiple regions in the controller.

  • Yellow: These regions are in control of setting the output signals. These output signals are what is used to set the GPIO pins outside of the controller. The 

    delayed  regions are just a simple extension on top of the actuate regions.

  • Red: These two regions control launching. manual launching  just holds both flippers up for a long enough period for the machine to launch the ball into the game. The other region is in charge of detecting when the launch lamp is blinking and then waiting the appropriate amount of time to acquire the 20 million launch bonus.
  • Blue: These are the main brain of the controller. These regions retrieve ball positions, ask for predictions on future ball positions, process a little game information to determine possible targets and decide when and how to actuate the flippers.

Actuating

The actuation of flippers is implemented via a common automaton to which the appropriate signals are connected. The connected output signals are what is used to set the values of the GPIO pins by the outside system. With the trigger  signal a standard actuation of the flipper can be initiated. The automaton waits after enabling and disabling for the real world to catch up, as the flipper arms take some time to move from their resting position and back. Additionally there is a hold signal which can be used from the outside to basically override the behaviour regarding the cooldown.

TriggerDelayed

As previously mentioned these regions are simply an extension on top of the Actuating  regions. They receive a trigger signal and then wait for a certain amount of time until passing that information onwards (ie. setting the trigger signal connected to one of the Actuating regions seen above.

Prediction

TODO

Launching

This first region determines when the launch lamp is blinking (ie. a ball is ready to launch) and when to launch. When the lamp turns on and the automaton has not received a new ball position from the outside system we assume it is starting to blink. We keep track of the state of the lamp and if for example it only turned on once a cooldown timer will run out and we determine it is not continuously blinking like it does when we are able to launch a ball into the game. If the automaton determines the lamp to be blinking for a long enough time (the 20 million points bonus timing), then a signal is set which is consumed by the following region.

Here we simply set signals that actuate both flippers for a time period so that the pinball machine launches the ball. If this time is too short both flippers will still actuate, but the pinball machine won't launch the ball.









  • No labels