Tabla de contenido:
- Paso 1: construcción del caso
- Paso 2: construcción del mecanismo de flipper
- Paso 3: Colocación de las paredes
- Paso 4: Agregar los bloques de puntuación
- Paso 5: Agregar el contacto de Game Over
- Paso 6: Perforación de los orificios para cables
- Paso 7: Cableado de todo
- Paso 8: carga del código
Video: Arduino: Pinball Machine: 8 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
Como siempre me han gustado las máquinas de pinball y la electrónica, decidí construir mi propia máquina de pinball. Elegí Arduino para la programación y la electrónica, porque es una plataforma muy accesible, compacta y fácil de usar.
En esta guía explicaré mi proceso de desarrollo, por lo que quizás uno de ustedes, entusiasta, pueda crear algo similar.
Paso 1: construcción del caso
Comencemos con el caso de la máquina de pinball. Hice una construcción bastante simple. Corté una placa inferior y usé 4 pilares de madera diminutos en las esquinas para conectar las piezas de la pared. El tamaño de su estuche es su propia elección, elegí hacerlo un poco más pequeño que una máquina de pinball original, ya que no estaba planeando agregar extras súper espectaculares para llenar el espacio. Usé tornillos y pegamento para que la carcasa fuera lo más estable posible. En la parte posterior, hice dos agujeros en la pieza del piso para las dos patas que le darán a la máquina de pinball la inclinación icónica. Una vez más, la altura de las piernas depende de ti. Cuanto más altas sean las piernas, más rápido rodará la pelota (hacia abajo).
Paso 2: construcción del mecanismo de flipper
Como quería limitar el costo de este proyecto, decidí fabricar aletas totalmente mecánicas en lugar de electrónicas. Si está interesado en las aletas electrónicas, puede usar una construcción que sea algo similar, pero con un llamado 'solenoide' conectado (los solenoides con suficiente potencia para controlar las aletas eran demasiado costosos para mí).
Comencé perforando dos agujeros en la parte inferior para el punto de pivote de ambas aletas. Perforé los agujeros (en mi opinión) demasiado cerca el uno del otro, y esto hizo que el juego fuera demasiado fácil al final. Así que ten cuidado de no colocar las aletas demasiado cerca unas de otras, a menos que quieras un estilo de juego sencillo.
También perforé dos agujeros en ambas paredes laterales paralelos a los agujeros de la aleta. Estos orificios se utilizarán para los dos botones de las aletas.
Usé resortes para tirar de las aletas a la posición original e hice una construcción pivotante entre las aletas y los botones para hacerlos girar cuando se presionan los botones. Para evitar que los resortes tiren de las aletas demasiado hacia atrás, coloqué dos tornillos para mantener las aletas en su posición original.
Paso 3: Colocación de las paredes
Coloqué un par de paredes para redirigir el pinball hacia las aletas. Son muy simples de hacer. Simplemente taladre 3 agujeros en la parte inferior de la caja y presione tres pasadores de madera. Envuelva una banda elástica alrededor de los alfileres y listo.
Paso 4: Agregar los bloques de puntuación
Los bloques de puntuación son una de las partes más importantes de la máquina de pinball, así que asegúrese de hacer esta parte correctamente. Hice tres bloques de puntuación para mi máquina de pinball, pero de nuevo, todo depende de ti.
Corté un pequeño trozo de palo de escoba y lo envolví con alambre de cobre. El arduino alimentará este cable de cobre constantemente con 5V. Soldé cuatro resortes de bolígrafo a un lado para un mejor contacto con la bola.
La forma en que funcionan los bloques de puntuación es que la bola completa un circuito que conduce a un pin de entrada en el Arduino. Entonces, lo que hice fue pegar papel de aluminio en la parte inferior de la caja (SIN TOCAR EL COBRE) y conectar el papel de aluminio a un pin en el Arduino. Siempre que la bola golpea tanto el cobre como el aluminio, el circuito está completo y el Arduino recibirá una señal.
Conecté todos los bloques de puntuación con papel de aluminio, pero tenga en cuenta que el lado adhesivo NO conduce la electricidad.
Paso 5: Agregar el contacto de Game Over
En la parte inferior de la máquina de pinball, entre las aletas, agregué un juego sobre el contacto. Siempre que la pelota golpee este contacto, el jugador perderá una pelota. La construcción que hice es muy parecida a la de los bloques de puntuación. Solo aquí usé dos tornillos, y nuevamente un trozo de papel de aluminio en la parte inferior.
Paso 6: Perforación de los orificios para cables
Antes de comenzar a conectar todo al Arduino, primero debemos perforar un par de orificios para los cables. Hice un agujero a través de ambas piezas de papel de aluminio, de modo que un agujero en el papel de aluminio cerca de los bloques de puntuación y un agujero en el papel de aluminio cerca del juego sobre el contacto.
Además de esto, también perforé un agujero en la parte inferior izquierda, entre las paredes, para el cable que conduce al Servo de la puerta de bola adicional.
También debe haber un orificio para el cable conectado a la pantalla LCD en la parte inferior.
Paso 7: Cableado de todo
Hice este esquema para tener una mejor visión general de dónde deberían ir todos los cables. Las cruces son los puntos donde se conectan los cables. Intenté soldar todo lo posible para que todo fuera un poco más estable y confiable. El cableado llevará algún tiempo, pero una vez hecho esto, ¡ya casi está!
Paso 8: carga del código
¡Sube el siguiente código a tu Arduino para que tu máquina de pinball cobre vida!
// Incluir la biblioteca para el lcd
#incluir #incluir
// Inicializar los pines de datos lcd
LiquidCrystal lcd (7, 8, 9, 10, 11, 12);
// Crea un servo
Servo ballGateServo;
// Crea variables para los pines que estamos usando
int gameoverPin = 6; int scorePin = 5; int speakerPin = 4; int ballGateServoPin = 3;
// Inicializar variables de juego para la máquina de pinball
puntuación int = 0; int highscore = 500; bool highscoreReached = falso; int bolas = 3; int gameoverTimer = 0; int gameoverTimerDuration = 100; bool gameoverTriggered = falso;
// ejecuta este código una vez en el primer fotograma
void setup () {// Establece el pinMode para los pines que estamos usando pinMode (gameoverPin, INPUT); pinMode (scorePin, INPUT);
// Inicializa el lcd dando el ancho y el alto
lcd. comienzo (16, 2);
// Conecte el servo de la puerta de la bola al pin apropiado
ballGateServo.attach (ballGateServoPin);
// Restablecer el servo de la puerta a la posición inicial
ballGateServo.write (0); }
// Ejecuta este código en cada fotograma
void loop () {// Captura las entradas de los pines int gameoverState = digitalRead (gameoverPin); int scoreState = digitalRead (scorePin);
// Agregar a la puntuación si se recibe una entrada
if (scoreState) {tono (speakerPin, 1000); puntuación + = 10; } else {noTone (4); }
// Restar de las bolas si se activa el hoyo de fin de juego
if (gameoverState y! gameoverTriggered) {bolas - = 1; gameoverTriggered = verdadero; gameoverTimer = gameoverTimerDuration; }
// Iniciar el temporizador de fin de juego tan pronto como la pelota no toque el contacto de fin de juego
if (! gameoverState) {if (gameoverTimer> = 1) {gameoverTimer - = 1; } else {gameoverTriggered = false; }}
// Haga parpadear el texto del final del juego en la pantalla LCD y restablezca la puntuación y las bolas
if (bolas <= 0) {lcd.setCursor (0, 0); para (int i = 5; i> = 1; i--) {lcd.clear (); retraso (250); lcd.print ("JUEGO TERMINADO"); lcd.setCursor (0, 1); lcd.print ("¿Intentar de nuevo?"); retraso (250); } lcd.clear (); puntuación = 0; ballGateServo.write (0); highscoreReached = falso; bolas = 3; }
if (score> highscore y! highscoreReached) {
lcd.setCursor (0, 0); para (int i = 5; i> = 1; i--) {lcd.clear (); retraso (250); lcd.print ("NUEVA PUNTUACIÓN MÁXIMA"); lcd.setCursor (0, 1); lcd.print ("¡Muerte repentina!"); retraso (250); } lcd.clear (); bolas = 1; ballGateServo.write (120); highscore = puntuación; highscoreReached = true; }
// Actualiza la puntuación más alta si la puntuación actual es más alta
if (puntuación> puntuación más alta) {puntuación más alta = puntuación; }
// Coloca el cursor en la línea 0
lcd.setCursor (0, 0); // Imprime la puntuación actual (alta) en la pantalla lcd if (puntuación <= 0) {lcd.print ("Highscore:" + String (highscore) + ""); } else {lcd.print ("Puntuación:" + Cadena (puntuación) + ""); }
// Coloca el cursor en la línea 1
lcd.setCursor (0, 1);
// Imprime la cantidad actual de bolas en la pantalla lcd
lcd.print ("Bolas:" + Cuerda (bolas)); }
Recomendado:
¡Máquina de pinball Arduino que se juega sola !: 13 pasos (con imágenes)
¡Máquina de pinball Arduino que se juega sola !: " Una máquina de pinball que se juega sola, ¿eso no le quita toda la diversión? &Quot; Te escucho preguntar. Tal vez, si no te gustan los robots autónomos, podría hacerlo. A mí, sin embargo, me gusta mucho construir robots que puedan hacer cosas interesantes, y este
Controlador de teclado DIY para MAME y Virtual Pinball: 4 pasos (con imágenes)
Controlador de teclado DIY para MAME y Virtual Pinball: este conjunto de instrucciones le permite fabricar su propio controlador de teclado utilizando teclados antiguos por el costo de un poco de cable, soldadura y un trozo de madera.Estos controladores se han utilizado en mis proyectos MAME y Virtual Pinball .Ver Virtual Pinball Inst
Máquina de pinball de sobremesa que utiliza Evive: plataforma integrada basada en Arduino: 18 pasos (con imágenes)
Máquina de pinball de sobremesa que usa Evive: plataforma integrada basada en Arduino: ¡Otro fin de semana, otro juego emocionante! Y esta vez, no es otro que el juego de arcade favorito de todos: ¡Pinball! Este proyecto le mostrará cómo hacer su propia máquina de Pinball fácilmente en casa. Todo lo que necesita son componentes de evive
Cómo desmontar una computadora con sencillos pasos e imágenes: 13 pasos (con imágenes)
Cómo desmontar una computadora con sencillos pasos e imágenes: esta es una instrucción sobre cómo desmontar una PC. La mayoría de los componentes básicos son modulares y se quitan fácilmente. Sin embargo, es importante que se organice al respecto. Esto ayudará a evitar que pierda piezas y también a que el reensamblaje sea más fácil
Barrio Sésamo - Reloj de conteo de números de pinball: 8 pasos (con imágenes)
Barrio Sésamo - Reloj de conteo de números de pinball: este instructivo describirá la construcción de un reloj personalizado. Si bien esto es específicamente la construcción del reloj que aparece en Barrio Sésamo; la animación Pinball Number Counting, los procedimientos generales son los mismos y la instrucción