This image represents the Pinball project we will be working on in this class.
In this image it describes our end goals for our project as well as how we will incorporate topics from other classes.
This image is a list of requirements and restraints for our pinball machine prototype.
This image lists our plan for our final pinball model along with the previously mentioned constraints for our model.
Today in class I got my Scoreboard to say "Hello Friends, Dakota Jones". I was able to do this by using a circuit diagram as well as code from a source listed below.
#include <LiquidCrystal.h>
int Contrast = 60;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
analogWrite(6, Contrast);
lcd.begin(16, 2);
}
void loop()
{
lcd.setCursor(0, 0);
lcd.print("Hello Friends");
lcd.setCursor(0, 1);
lcd.print("Dakota Jones");
}
Today I was able to integrate the elements of a scoreboard into my code and have it be changeable on my LCD. I was able to code two buttons to either add 500 to the score or decrease 1 from the ball count. This was a major element in this project besides building it since this opens the gateway to it actually being a game.
#include <LiquidCrystal.h>
int Contrast = 60;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int Score = 0;
int BallCount = 5;
void setup() {
// //start serial connection
Serial.begin(9600);
analogWrite(6, Contrast);
lcd.begin(16, 2);
//configure pin 2 as an input and enable the internal pull-up resistor
pinMode(7, INPUT_PULLUP);
pinMode(8, INPUT_PULLUP);
pinMode(13, OUTPUT);
lcd.setCursor(0, 0);
lcd.print("Score ");
lcd.println(Score);
lcd.setCursor(0, 1);
lcd.print("Ball Count: ");
lcd.println(BallCount);
}
void loop() {
//read the pushbutton value into a variable
int ScoreIncreaseButton = digitalRead(7);
int BallCountButton = digitalRead(8);
//print out the value of the pushbutton
Serial.print("Score_Increase_Button: ");
Serial.println(ScoreIncreaseButton);
Serial.print("Ball_Count_Button: ");
Serial.println(BallCountButton);
// HIGH when it's open, and LOW when it's pressed. Turn on pin 13 when the
// button's pressed, and off when it's not:
if (ScoreIncreaseButton == 0) {
digitalWrite(13, LOW);
Score = Score + 500;
lcd.setCursor(0, 0); // top right
lcd.print("Score: ");
lcd.println(Score);
lcd.setCursor(10, 0); // top right
//Serial.print(Score);
delay(1000);
}
else {
digitalWrite(13, HIGH);
}
if (BallCountButton == 0) {
digitalWrite(13, LOW);
BallCount = BallCount - 1;
lcd.setCursor(0, 1); // top right
lcd.print("BallCount: ");
lcd.println(BallCount);
lcd.setCursor(10, 0); // top right
//Serial.print(BallCount);
delay(1000);
}
}
Today we took a class field trip to a pinball arcade to get an in depth understanding of what it takes to make a pinball machine
Bumpers
Flippers
Ball slides
Scoreboard
Start Button (Releases the ball into the launcher)
Ball Guides
Ball Guides with shooters
Launcher
On Off Switch
Coin Slots (We will not be implementing these)
Flashing Lights
Sound Effects
Theme
Graphics
Scoring information sheet
A variety of ways you can score points (Often times with different score values)
The Launcher used a a slanted conveyer system in order to get the ball to the Launcher. There is a system to hold the ball and to release it when the start button is pressed. There is also a Launch Button which triggers what I am assuming to be a bolt that launches the ball into the Pinball "court".
The Scoreboard was an in depth representation of what the game tried to be. While in the start it simply says Launch once you get into score areas and unlock things it will give you a cinematic of what was happening in game
The Pinball Machine had three buttons with their own collaborative function. Start allows the game to be started which then releases the ball into the launcher. The Launch ball then shoots the Pinball into the "court" where it is lead to you flippers or it may take a while because of preset obstacles. The start is the same but yet different each time. You use the small red Buttons on both sides of the machine in order to control the Pinball flippers in order to propel it into point gaining areas.
This was an creative way to earn points and stick to the theme, in the machine each time you score the pinball into this hole it counts as a cannonball hitting the wall and if you do it twice you can break the wall down for points. They also show the breaking down of the castle wall in the process and through the action. Each time you score in the hole the wall will shake to represent it being hit and when it goes full down to show it being taken down physically.
This area is the castle gate, if you score the pinball in this area three times you will knock down the bridge for some time. This will happen in two phases one is the metal gate that needs to be taken down and then you must hit the wooden gate. Once down the gate acts as a path inside the castle where you can score the pinball into it to earn points.
If you score the ball into the Merlin hole 3 times you have a chance to get him to use one of his spells which can give you points or take down the castle gate etc. It shows on the scoreboard him going through his scroll/list of spells.
The Pinball machine was visually engaging along with all the in game point scoring mechanics. Before you begin playing the medieval bright aspect of the machine attracts you to it as you walk in. It's all enclosed except for the red buttons on either side of the machine on the sides.
In our last class my partner and I 3D printed two parts of a selenoid. Today the print is done and we epoxied them together. The print was done using a joint already fully provided template and all we had to do was export it in order to transfer the files to the 3D printer. The epoxy was created using a white and black paste. We mixed them together and it causes a chemical reaction that will hold our selenoid pieces together.
We built our Pinball Machine Frame gradually through classes starting with the front and back of our machine. Then the side pieces and ending with the middle. As we constructed it we had to carefully woodglue our slanted wood blocks in order for the middle to have a downward to upward slope. We then aligned the sides and drilled screw in to keep them in place. With this completed we were then ready to add our additional Pinball elements.
Today we created our LCD mount and installed it into our Pinball machine. We did this by taking the necessary parameters and creating an online model of what our Mount would look like. We then transferred it into Glowforge where we cut it out in some plywood. We then drilled our holes into our pinball machine while keeping in mind the space we needed to make for the wiring in the future.
Today we created a digital model of our switch mount for our pinball machine. We did this by making a model for our mount on Onshape. and making it a file in order to transfer it to GlowForge which is our fabrication machine. Our mount was created with plywood and once it was screwed in we screwed in our switch cover.
Today we installed our power source into our pinball machine model. We created the wood piece that is used to hold it in place with the Band Saw. We also took a square of our plywood to further stabilize it and prevent it from moving. We did this by using wood glue. We then stripped to wires, one had the capability to be plugged into an outlet and the other was just a long wire that we stripped as well. We then twisted the two wires from the outlet wire to the power source and the switch.
I haven't integrated my design with my other pinball components components.
Today we coded a neopixel strip with a switch to flash on and off, when pressed. This was completed by stripping wires which I connected to my arduino nano, as well as sawdering stripped wires to the switch.
1) Electronic Components needed.
2) Mechanical elements needed.
3) How does the electromechanical device work? The device works by using an electromagnet to pull an iron rod attached to a lever. (The Solenoid) This is activated when the player presses the flipper button which makes it flip up and then back to its resting position.
The flipper will be moved by two selenoids on the bottom of my machine. The selenoid will also be screwed/attached to the flippers to return them to their resting position after the action is complete. On the right is a drawn example of how this will be done.