For the second demo, I wanted to create a small pinball machine with two switches to control two servos that act as “flaps”
Brainstorming
For brainstorming, I drew what I visualized for the project, and estimated the dimensions.

After visualizing the “pinball machine”, I CADed the files on Solidworks. Below are the files for the parts and assembly files.
Implementation
After lasercutting the individual pieces, I spent an hour filing the holes in the top, as I underestimated the size of the servos. I then glued all the parts together and screwed the servos into the top.

I then built the circuit for the servos and the switches for each servo.

The circuit board, servos, and the structure together created this result:
Obviously, the ball did not travel as well up as I wanted it to go. This was partially due to the steep angle of the structure and also due to the lack of speed of the servos. In the future, I would want to make the structure have a less steep incline.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include <Servo.h> const int buttonPin1 = 11; // the number of the pushbutton pin const int buttonPin2 = 12; // the number of the pushbutton pin // variables will change: int buttonState1 = 0; // variable for reading the pushbutton status int buttonState2 = 0; // variable for reading the pushbutton status Servo servo1; Servo servo2; void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin1, INPUT); pinMode(buttonPin2,INPUT); servo1.attach(9); servo2.attach(10); } void loop() { // read the state of the pushbutton value: buttonState1 = digitalRead(buttonPin1); buttonState2 = digitalRead(buttonPin2); if (buttonState1 == HIGH) { servo1.write(150); } else { // turn LED off: servo1.write(80); } if (buttonState2 == HIGH){ servo2.write(110); } else { servo2.write(180); } } |
Leave a Reply
You must be logged in to post a comment.