1. Home
  2. Docs
  3. SIPO Says
  4. How does SIPO Says work?

How does SIPO Says work?

SIPO Says Source Code

SIPO Says Programming Instructions

Buy a SIPO Says

What Makes SIPO Says Work?

Before we discuss what makes the SIPO Says game work, let’s go over a few definitions.

System: a set of things working together to achieve a common goal. In computers and electronics, a system is a group of related hardware units or programs dedicated to a single application.

The boat pictured below is a complete system.

Subsystem: a self-contained system within a larger system. Subsystems are able to function independently of the larger system which they are a part of, but the system would not function properly without any one of its subsystems. In the example pictured below, the motor, radio, and hull are subsystems of the boat. If we were to remove the motor, radio or hull from the boat, they would still be able to perform their individual function; however, the boat would cease to function properly.

Logic Levels: a special signal that digital electronics use to communicate. A 0 or 1 is communicated based on whether the signal line is “off” or “on.” Normally represented as: 0 or 1; LOW or HIGH.

Integrated Circuit (IC): also known as “chips” or “microchips,” these amazing little black boxes contain millions of microscopic components that create complete systems which accomplish all sorts of amazing tasks, mostly (but not always) using digital logic.

Each individual IC usually performs only one simple task. For example, a Counter IC can count to ten, a Timer IC will keep track of time, an Adder IC adds two numbers together, and so on and so forth.

Microcontroller: a programmable IC. It can perform more than one job, and serves as the brain of our digital systems. A microcontroller has many pins that are used for monitoring inputs and outputs. For example, a microcontroller with three input and output pins can monitor a temperature sensor on one pin, a light sensor on another pin, and control a motor with its third pin. This would allow the microcontroller to perform such functions as watering plants based on temperature and sunlight, as well as many other applications.

Inputs and Outputs – Inputs are any form of information or action that is created by the environment and entered into an electronic system, such as a human pushing a button, or the sun shining on a solar sensor. Outputs are information or signals being sent out from a system after processing those inputs, like sound through a speaker, or light from an LED.

The way that inputs and outputs work together is through design; outputs react a certain way based on user inputs. For example, if you input a coin into a vending machine and push a button, the output is a soda.

Clock: keeps system time and keeps operations synchronized. This is accomplished when the clock sends out high and low signals at set intervals. A single full duration of alternating high and low signals (from the peak of one signal to the other) is called a clock pulse. The amount of times a clock switches between a high and low signal per second is called the clock speed, and is measured in Hertz (Hz).

So, how does the SIPO Says Game Work?

For the SIPO Says board, the microcontroller controls everything.

Below is part of the actual schematic of the microcontroller connections. The square block is the microcontroller, and the lines leading out of it labeled 1 – 14 are its connection pins. The two pins on the left, labeled VCC and GND, are power pins. The twelve pins on the right are IO(Input/Output) pins, and each IO pin is connected to some subsystem (buttons, lights, speaker etc).

As you can see, everything is controlled by the microcontroller. The specific microcontroller we are using is an Attiny 84. This chip has an impressive 500 bytes of RAM and 8KB of memory! The microcontroller listens for button pushes, and when a button is pushed, the microcontroller decides how to operate its outputs based on its programming.

Sipo Says has five inputs, and six outputs.

The five inputs are the five buttons: New Game, Up, Right, Down, and Left.

So, what is happening when a button is pressed?

Pressing a button completes a circuit and causes something to happen. A light may come on or sounds may play, depending on what the button was meant to do.

Our four directional buttons are connected to four of the microcontroller IO pins, and, when pressed, the button grounds its respective pin. This makes the electrical signal on the pin change from HIGH to LOW, which causes the program to execute a set of instructions laid out by the game’s designer (me!).

The outputs are the four directional lights, the scoreboard, and the buzzer.

Each output is connected to its own microcontroller pin. The programming of the microcontroller dictates when these pins are ON or OFF. For example, when we push one of the directional buttons, lights come on and sound is made. The microcontroller is switching those output lines ON, and allowing electricity to flow through the circuit.

Here is a quick rundown of the outputs:

LED’s– The LED’s are a resistor and LED connected in series. The microcontroller turns the lights on or off by allowing or blocking the flow of electricity.

Buzzer – A resistor in series with a buzzer. Noise is made when the microcontroller turns the buzzer on and off very fast. The speed at which it turns on and off controls the note that the buzzer plays!

Scoreboard – This one is a little more complicated. This subsystem uses an IC called a 4026B. This IC has eight IO pins that are directly connected to our 7-segment display (scoreboard light). Inside the 4026B lies a single set of instructions: “change lights on clock pulse”. The microcontroller sends a clock pulse to the 4026B, and the 4026B changes which IO pins are on and off, resulting in the 7-segment display to only have the segments on that form the correct number! This simple combo of 4026B & 7-segment display count to ten together.

The SIPO Says board is nothing more than 5 inputs, connected to a microcontroller that controls 6 outputs. You can program the inputs to control outputs in any way imaginable. The programming dictates 100% of what happens when a button is pushed. If you wanted to, you could change the programming to turn this board into a music player, or piano or something else entirely! Good luck and have fun!

Got any questions, comments, or suggestions about this project? Click the “Support” tab above to contact us and let us know!