Máquina tragaperras – SUERTEMASTER4000

Diseño de Sistemas Empotrados: Grupo 8

Máquina tragaperras – SUERTEMASTER4000

Hecho por:

Eduardo Blasco Almarza, Andrés García Arquero, Raúl Jiménez Expósito

Índice

Información sobre el proyecto: 3

Planificación e Implementación: 4

Materiales Usados y Costes: 4

HERRAMIENTAS Y MATERIALES DE MONTAJE 4

Reparto de Tareas: 5

Pasos Dados: 6

Fase Inicial: 6

Fase de Desarrollo: 7

Fase de Implementación y Montaje: 9

Código 16

Codificación de la música: 16

Clase Led: 17

Control de la pantalla LCD: 17

Código principal en la placa Arduino Mega 2560: 17

Comunicación entre Arduinos: 17

Problemas y Soluciones Encontradas 18

FUNCIONAMIENTO:

Información sobre el proyecto:

El dispositivo empotrado que se dispuso a crear para esta asignatura se basa en una máquina tragaperras funcional y portátil que, tras conectarse vía usb a corriente para obtener alimentación, pudiera recibir si se tira de una palanca mediante un sensor de distancia “echo” que le envía a uno de los dos arduinos utilizados de forma interconectada que empiece la secuencia de tiro representada en el “liquid crystal display” (que está conectado a un potenciómetro para ajustarse). Esta secuencia de tiro está programada para permitir con una probabilidad aleatoria del 25% el uso de entre 3 a 5 avances mediante botones que se encuentran en la parte delantera de la máquina si el resultado de la tirada no da ningún premio y que permiten avanzar cada barril de la pantalla. Además, si se da el caso en el que una tirada resulta en parejas, según una probabilidad se dará la oportunidad de girar otra vez el barril que no es parte de esta pareja. 

Si cualquiera de estas tiradas dan lugar a una victoria, se devolverá esa información mediante el uso de la pantalla donde se ven los barriles y uno de los dos altavoces, que toca diferentes melodías a lo largo de cada uno de los estados de la máquina (en este caso tocando una melodía de victoria) mientras que el otro “buzzer” hace ruidos específicos cuando los barriles paran de forma simultánea a la música.

Por último, el uso de leds de diferentes colores se planteó para dar una mejor experiencia mediante el uso de colores llamativos que cambian entre estados de parpadeo, apagarse o encenderse dependiendo del estado del cilindro al que acompañan. 

Para poder mantener la máquina cerrada se añadió un cierre mediante candado en el lateral del dispositivo y además, para poder unir los dos arduinos en un solo usb se utilizó un hub de usb. De esta manera tras la ejecución de una tirada, ya haya dado lugar a una derrota, al tiro de avances, a poder volver a tirar o a una victoria, se puede volver a tirar a la máquina, creando la experiencia que se busca de máquina tragaperras.

Planificación e Implementación:

Materiales Usados y Costes:

COMPONENTES ELECTRÓNICOS Y DE ARDUINO

MaterialPrecio
Cables Extra Macho-Hembra3€
Kit extra arduino MEGA0€
Total:3€

HERRAMIENTAS Y MATERIALES DE MONTAJE

MaterialPrecio
Alicates3€
Alambre x1m1€
Pistola de pegamento y silicona6€
Tubo de plástico1€
Caja de cartón x20€
Elementos decorativos1.5€
Sierra2.99€
Cutter2.99€
Bridas x501.20€
Total:19.68€
Total:22.68€

Reparto de Tareas:

Debido a la falta de disponibilidad de los miembros del grupo para juntarse e ir desarrollando la práctica, cada uno ha ido participando en todos los aspectos del diseño de la máquina tragaperras; aunque para no solapar el trabajo de unos con el de otros se ha concluido en la siguiente división:

Eduardo Almarza BlascoTarea principal: Cableado del sistema
Tareas secundarias:Montaje de la máquina y Código
Andrés García ArqueroTarea principal: Diseño y Montaje del sistema
Tareas secundarias:Cableado de la máquina y Código
Raúl Jiménez ExpósitoTarea principal: Código
Tareas secundarias:Montaje de la máquina

Pasos Dados:

Fase Inicial:

En un primer momento, se consideró el diseño de la máquina tragaperras el cual tenía más funcionalidades que el resultado final; pero tuvieron que ser descartadas debido a la falta de tiempo y a que algunas de ellas podían ser emuladas por otros mecanismos.

En el concepto inicial la máquina tragaperras contaba con:

  • marcadaAvances si no sale nada y volver a tirar si hay pareja
  • desmarcada3 motores para controlar 3 tambores físicos de la tragaperras
  • marcadaPalanca para tirar de la tragaperras
  • marcadaLeds y Buzzer para dar ambientación
  • desmarcadaSistema de monedas y créditos
  • marcadaPantalla LCD para mostrar mensajes

[Los recuadros con un tick significa qué propiedades se han logrado mantener en el diseño final]

Además, para organizar mejor el código se hizo un esquema con el comportamiento que debía tener la máquina:

Una vez hecho esto se fueron haciendo pruebas para entender mejor cómo controlar e implementar los distintos componentes que se van a utilizar tales como Leds, Buzzers, y Motores:

Para los Leds y Buzzers las pruebas fueron sencillas en las que solo se utilizó una

Arduino y se desarrolló un código muy sencillo para cada uno de ellos; y especialmente, parte del código realizado para las pruebas de los Buzzer sería reutilizado en el código final debido a su genericidad y facilidad en el momento de tocar melodías.

La prueba de los motores en cambio fueron algo más complejas tanto su cableado

como la creación de un código para controlarlos. Afortunadamente, durante estas pruebas nos dimos cuenta de algunas limitaciones en la funcionalidad de los motores, de forma que finalmente se decidió por no usarlos y usar la mitad inferior de la pantallas LCD 16×2 que disponíamos para mostrar las figuras de los tambores de la tragaperras en vez de utilizar unas ruedas físicas.

Para el sistema de monedas y créditos se pensó en el uso de detectores de

distancia con ultrasonidos o infrarrojos, aunque nunca se llegó a desarrollar del todo ya que requeriría un desarrollo extenso para una propiedad que se consideró como secundaria por lo que se decidió descartarla sumado a la falta de tiempo y material para implementarla.

Entonces con los componentes electrónicos para el sistema ya decididos, se comenzó a desarrollar el código inicial de la máquina tragaperras.

Fase de Desarrollo:

Durante esta fase, el objetivo fue emular el comportamiento de la máquina tragaperras descrito por el diagrama de flujo anterior.

En un comienzo se escribió lo principal en un mismo archivo de código de Arduino pero sin embargo pronto se llegaron a dos problemas como la falta de pines o la implementación de cuánto tiempo se tocan las notas en un buzzer (problemas que explicaremos cómo se abordaron en el apartado ‘Problemas y Soluciones Encontradas’ con más detalle; lo que llevó al uso de una Arduino Mega 2560 junto con otra Arduino UNO de forma que se desarrollarían dos archivos de código.

En la Arduino Mega 2560: Se escribió un código el cuál se encargaría de detectar los inputs que un jugador pueda hacer, la aleatorización de los resultados y su comprobación para cambiar a un estado determinado, hacer algunos sonidos cortos que no afectan demasiado a la duración de ejecución de una iteración del loop, controlar y actualizar el display LCD, y mandar instrucciones a la Arduino UNO

En la Arduino UNO: El código escrito se encarga de leer y procesar las instrucciones que le manda la Arduino Mega 2560 y gestionar procesos más avanzados de luces Led y la música (esto último introduce delays que eran imposible de utilizar a la vez que se estaban girando los tambores de la tragaperras)

Veremos además una explicación más en profundidad del código final en el apartado ‘Código’.

A la vez que se iba desarrollando el código para ambas Arduinos, se empezó con el cableado la máquina aunque de momento no se dio importancia al montaje ni al aspecto visual; lo fundamental era comprobar de que el código funcionaba bien y si las conexiones utilizadas eran las correctas.

Como se puede ver en este prototipo inicial, el sistema parecía una maraña de cables y botones sin sentido alguno a la vez de que su disposición en las protoboards no eran las más óptimas en usabilidad ni reducción de espacio utilizado, pero esto nos fue suficiente para ir probando diferentes ideas y encontrar bugs en el código.

Fase de Implementación y Montaje:

En este punto, ya solo faltaba ensamblar todas las piezas dentro de una caja para que todo el sistema quedase contenido, manejable y vistoso. Esto suponía dos grandes retos principales:

  • Recablear todo el sistema, encontrando espacio para cada componente dentro de la caja y haciendo que los leds, botones de avance y LCD no estuviesen en una board.
  • Sustituir el botón de “jugar” por una palanca en el lateral de la caja, teniendo esta además que incluir un sistema de retorno automático para que fuese funcional.

Empezamos precisamente por este segundo punto al considerar que tras montar la palanca cierto espacio de la caja se vería ocupado y tendríamos que tenerlo en cuenta a la hora de volver a cablear.

Empezamos por utilizar un resorte bastante grueso para asegurar que la palanca volvía a su posición original tras accionarla. A continuación procedimos a colocarle al extremo de la palanca una solapa de cartón que, al bajarla, tapaba un sensor de ultrasonidos que accionaba el juego. 

El siguiente paso fue tomar nota de cómo estaban conectados todos los componentes del prototipo y desmontarlo por completo para volver a montarlo dentro de la caja, ya con las ubicaciones definitivas de cada componente. Es en este punto es donde hubo que comprar cables extra, para poder conectar a una distancia mayor los componentes que hasta ahora iban clavados en la breadboard, como la pantalla LCD, los leds o los botones. También hubo que sustituir los tres leds por nueve, diseñando un nuevo cableado que permitiese conectar cada grupo de tres con un solo pin de arduino.

Todos los componentes que antes se dividían en dos breadboards y una half-breadboard pasaron a estar conectados en solo una breadboard, con una half-breadboard en la parte exterior de la máquina donde están los tres botones de avance.

El cableado definitivo de la máquina puede verse en este esquema:

Como se puede ver el sistema está prácticamente en su totalidad construido sobre una breadboard. La mitad superior de esta corresponde a los componentes manejados por arduino MEGA, mientras que la inferior corresponde a los conectados a UNO. Además de ello hay algunos componentes aislados como la pantalla LCD, el detector de ultrasonido, los leds y el altavoz (representado en el esquema como un buzzer). 

Para poder entenderlo mejor, se irán desglosando sus diferentes partes:

  1. Como ya se ha mencionado, la máquina utiliza dos arduinos que se comunican entre sí mediante 4 pines de comunicación digitales. Estos son 3-4-5-6 de UNO y 24-26-28-30 de MEGA.
  1. La pantalla LCD cuenta con varios puertos de conexión:

-Tierra (VGG) y corriente (VCC)

-V0, conectado al pin central de un potenciómetro, que se usa para regular el voltaje y por tanto el contraste de la pantalla

-RW (read-write), conectado a tierra, pues nunca se lee de la pantalla en nuestro caso

-RS, conectado al pin 52 de MEGA, de donde recibe instrucciones

-E (enable) conectado al pin 51 de MEGA

-D4-D5-D6-D7, conectados a 42,43,44 y 15 de MEGA, para escribir en los registros

-A y K conectadas a tierra y 5V respectivamente, que alimentan el led de la retroiluminación de la pantalla.

  1. Un buzzer, conectado al pin 10 PWM de arduino MEGA y a tierra, pasando por una resistencia de 220 ohmios.
  1. El  sensor de ultrasonido, conectado en TRIGGER al pin 2 PWM de MEGA y en ECHO al pin 3, además de a 5V y tierra.
  1. Los botones de avances, instalados en su propia half-breadboard externa, conectados a los 5V de la otra breadboard y a tierra. Utilizan los pines digitales 23, 25 y 27 de MEGA respectivamente.
  1. Los nueve LED, conectados en grupos de tres. Los tres leds rojos están conectados al pin 8 de UNO, los verdes al 9 y los azules al 10. Además cada uno tiene su toma de tierra independiente pasando por una resistencia de 100 ohmios.
  1. El altavoz, conectado de la misma manera que el buzzer, al pin 11 PWM de UNO.

Todos estos componentes se situaron dentro de la caja y se aseguraron con silicona caliente teniendo mucho cuidado para no dañar la electrónica. Además se ordenaron los cables usando bridas y se limitó su movimiento lo máximo posible con el uso de cinta americana. Los LED se situaron clavados en la parte superior y conectados mediante cables macho-hembra, así como el potenciómetro de la pantalla, que sobresalía de la parte superior para poder regular el contraste en todo momento. También se hizo un agujero en la parte posterior de la caja donde se hizo un agujero para aumentar la resonancia del altavoz, y se cerró la caja con un candado para asegurarla.

Por último mencionar el uso de un adaptador multipuerto USB para conectar las dos arduino mediante un solo cable que salía de la caja. Esto facilitaba el uso de la máquina pues bastaba con conectarla a un único puerto USB para que funcionase.

Código

En este apartado se explicará con detalle el funcionamiento del código escrito tanto para la Arduino Mega 2560 y la Arduino UNO sin detenerse demasiado en la implementación exacta de alguna de las funciones o los procesos de inicialización.

Codificación de la música:

Empezaremos primero con una explicación de la Codificación de la música la cuál es la misma para ambas Arduinos:

Para poder tocar música o notas musicales en tanto la Arduino Mega 2560 como en Arduino UNO lo primero fue decidir a qué pines van cada uno de los buzzers.

En el caso del Arduino Mega 2560 es el pin 10 y en Arduino UNO es el pin 11. Aquí tenemos como se definió la variable pin del buzzer en la placa Arduino UNO:

Luego se crearon diferentes variables de tipo int con diferentes valores que representan la frecuencia de diferentes notas musicales.

Para representar el silencio, ya que el buzzer reproduce de forma infinita la última nota que se le ha pasado, hemos utilizado una frecuencia muy alta fuera del espectro auditivo humano, en este caso, 20000.

En el código no se han llegado a utilizar todas las notas introducidas por lo que se puede considerar como un malgasto de memoria pero este conjunto de variables se hizo con la intención de poder representar diferentes canciones si fuera necesario aunque en este proyecto perfectamente se pueden eliminar las que se consideren innecesarias.

Después se creó la función  void note(int bz, int freq, float dur)

que sirve para tocar en el buzzer especificado una nota durante un cierto tiempo.

tone: se encarga de que el buzzer toque la nota especificada.

Se utiliza un  delay para mantener al buzzer tocando esa misma nota.

Todas las canciones que se utilizaron en la tragaperras se tratan de funciones que contienen llamadas a esta función  note . 

Por ejemplo:

Clase Led:

Esta sección del código se encuentra en el archivo de código para la Arduino UNO ya que es la encargada de encender, apagar y parpadear las luces Led.

Para tener un mejor control de lo que puede hacer un led y debido a que se van a tener varios, se decidió emplear en el código una clase led:

Esta clase cuenta con las variables públicas:

  • pin: El pin asignado al led
  • state: Determina en qué estado se encuentra en led:
    • 0: Apagado
    • 1: Encendido
    • 2: Parpadeando

Sus variables privadas son previousMillis e interval de tipo long que se encargan de que el led si se encuentra en el estado de parpadeo lo haga cada 125 milisegundos.

Como métodos públicos tiene:

  • void SetState(int s): Se encarga de cambiar el estado del led
  • void Update(): En función del estado del led realiza las operaciones necesarias

Y sus métodos privados son:

  • void SetLight(int voltage): Que escribe en el pin asociado al led el HIGH o LOW
  • void BlinkLight(): Se encarga de controlar el parpadeo del led. Como peculiaridad, para evitar retrasos del parpadeo junto con la música o el parpadeo de otros leds, se ha empleado el uso de  milis() para temporizar los parpadeos evitando el uso de delay .

Después en el código se crean las siguientes variables de la clase Led:

Las variables ledR, ledG y ledB son los pines asociados a los pines los cuales deven ser inicializados como pines de salida en setup .

Como último de esta clase, por cada iteración en  loop se tiene que llamar la función de  void Update() de cada variable led.

Control de la pantalla LCD:

Esta sección del código se encuentra en el código de la Arduino Mega 2560.

Para la implementación de la pantalla LCD en el código fue preciso utilizar la librería LiquidCrystal.h que nos facilitaba el control de lo que mostraba la pantalla LCD; y se definieron constantes del tamaño de nuestra pantalla.

Esta librería proporcionaba la inicialización del lcd al que solo había que pasarle los pines que iban a ser utilizados para controlar algunas de sus características como la escritura de caracteres, la posición del cursor para escribir, el desactivar o activar la pantalla, …

Luego se definieron 3 funciones globales:

  • void PrintTopText(String s): Escribe directamente desde el principio toda la línea string que se le pase únicamente en la parte superior.
  • void ClearTopText(): Borra todos los caracteres de la parte superior empezando desde el primero.
  • void ChangeTopText(String s): Emplea  ClearTopText() y PrintTopText(String s) para reemplazar una línea de texto de la parte superior por otra.

Estas funciones serán siendo llamadas a lo largo de la ejecución del código completo de la placa Arduino Mega 2560

Para la creación de caracteres customizados se ha empleado la ayuda de la página externa LCD Custom Character Generator – C Code / Arduino – DeepBlue


Esta página nos permitía dibujar el carácter a mostrar y lo traducía a un array de enteros de 8 bits.

Entonces obtuvimos las siguientes variables que representan diferentes caracteres:

Y estos son inicializados en el setup junto con el tamaño de la pantalla LCD:

Comunicación entre Arduinos:

La comunicación entre las dos placas Arduino se realiza mediante el paso de instrucciones desde Arduino Mega 2560 a Arduino UNO de 4 bits cada una.

Estos bits son transmitidos desde 4 pines de salida de la Arduino Mega 2560 escribiendo en ellos la instrucción pedida que a su vez se encuentran conectados a 4 pines definidos como entrada en la Arduino UNO mediante cables macho-macho.

En Arduino Mega 2560: En Arduino UNO

Inicialización en   void setup():

Para el paso de mensajes, se traduce de decimal a binario o viceversa mediante el uso de las funciones:

En Arduino Mega 2560: En Arduino UNO

void SendCommand(int command): Es llamado en diferentes momentos del código de la Arduino Mega 2560. Traduce de decimal a binario.

void DecodeCommand(int b3, int b2, int b1, int b0): Es llamado en cada iteración de  loop . Traduce de binario a decimal y decodifica la instrucción.

Debido a que las señales que se escriben en un pin se mantienen, es necesario que la Arduino Mega 2560 envíe al poco tiempo de enviar la instrucción deseada la instrucción No Operation (Instrucción 0).

Tabla de Instrucciones en Decimal:

0Nada
1Apagar todos los leds
2Encender todos los leds
3Parpadear todos los leds
4Led1: EncendidoLed2 y Led3: Parpadeo
5Led1 y Led2: EncendidoLed3: Parpadeo
6Led1 y Led3: EncendidoLed2: Parpadeo
7Led1: ParpadeoLed2 y Led3: Encendido
8Tocar Música de Inicio
9Tocar Pitidos al Girar
11Tocar Música de Ganar

Código principal en la placa Arduino Mega 2560:

Ya hemos visto algunas de las funciones más importantes en el código de la Arduino Mega 2560 pero aún nos queda por explicar cómo ha sido implementado el funcionamiento de la tragaperras al completo.

Este funcionamiento se ha logrado gracias al uso de inputs como un Módulo Echo que detecta si la distancia que hay entre una pieza de la palanca que activa la máquina y el propio Módulo Echo es menor que 3.05 cm.

Si es así y la máquina se encuentra en el estado Idle, se dará comienzo con la generación aleatoria de resultados mediante la llamada a la función  StartSpinning(-1)y, para controlar que el jugador no cometa un error si vuelve  a tirar de la palanca se activa un bool a true para evitar que se tire otra vez.

Una vez que se terminen de generar los resultados, se pone a false el bool de control y se pasa a la comprobación de los resultados con la función CheckResults(true).

  • void StartSpinning(int slot): Esta función recibe un int como parámetro el cual si es -1 significa que generará resultados para cada uno de los 3 tambores de la máquina tragaperras, mientras que si es 1, 2 o 3, tan solo generará un nuevo resultado para el respectivo tambor.

Para randomizar un resultado se hace un proceso similar tanto si se van a gritar todos los tambores o solo uno:

Se calcula un número de vueltas en total que se van a hacer y se divide entre 3. También se obtienen 2 offsets para darle un poco más de aleatoriedad.

Entonces en un for se itera desde 0 hasta la última vuelta y a medida de que se van completando un tercio más un offset se van parando los tambores. Si aún no se ha alcanzado el respectivo tercio de un tambor, se genera un número entre 0 y 7 el cual a su vez corresponde con alguno de los caracteres personalizados.

A lo largo de toda esta función se irán mandando diversas instrucciones a la Arduino UNO para ir cambiando el estado de las luces o se tocarán sonidos cortos en el buzzer asignado a la Arduino Mega 2560.

  • void CheckResults(bool allowHelp): Es la función más importante de toda la máquina tragaperras ya que se encarga de estimar el resultado final u otorgar ayuda al jugador en función de los resultados.

Utiliza un argumento de tipo bool para saber si es la primera vez que se llama a la función CheckResults, en cuyo caso se permiten las ayudas de tirar un tambor otra vez o avances, o si no lo ha sido y por tanto si el jugador no ha conseguido ganar pierde automáticamente.

Para conocer los resultados que ha conseguido el jugador se sigue una lógica de bools por pareja de tambores, es decir, se comprueban los pares de los tambores 1 y 2; 1 y 3; y 2 y 3.

A partir de estos pares se consiguen los valores para las variables de control win, onePair y nothing que determinan el resultado del jugador.

Entonces, si win es true se pasa a un estado de victoria, se manda una instrucción a la Arduino UNO para que ponga a parpadear todas las luces y otro después para que toque la música de victoria.

Sin embargo, si el jugador no ha ganado se pasa a comprobar si tiene una pareja o nada:

  • desmarcadaTiene una pareja: Se genera un número aleatorio del 0 al 99. Si es menor o igual que 60 y se permiten ayudas, entonces se obtiene qué tambor no es igual a los otros dos y se entra en un bucle while del que el código no sale hasta que el jugador tire de la palanca y la máquina no haya parado de calcular resultados; y si el número resulta ser mayor que 60, se pasa al estado de derrota.
  • desmarcadaNo tiene nada: Se genera un número aleatorio del 0 al 99. Si es menor o igual que 25 y se permiten ayudas entonces se pasa al estado de avances, otorgando al jugador 3 o 4 avances; y hasta que estos avances no los agote el jugador presionando alguno de los 3 botones de abajo (que mueven cada uno la posición de un tambor en 1 asegurándose el código de volver al valor 0 mediante módulo de 8) no se sale de un bucle while.
    Entonces, si el jugador consigue ganar usando estos avances se pasa al estado de victoria, pero si no lo consigue o bien el número generado es mayor que 25 se pasa al estado de derrota.

Código principal en la placa Arduino UNO:

De forma similar al apartado anterior, ya se han mencionado algunas de las funciones o, en este caso, clases, que se utilizan en el código de esta Arduino UNO; siendo estas funciones de apoyo.

No obstante, esta Arduino al ser utilizada como apoyo y para que la Arduino Mega 2560 que es la principal no se quede atrasada por el uso de funciones delays seguidas por la música, su funcionalidad esencial se encuentra en el loop:

Como se puede ver, al principio de cada iteración del loop se leen los pines de entrada de las instrucciones para posteriormente codificar de binario a decimal y ejecutar la instrucción indicada.

Y finalmente, se actualiza el estado las luces Led, fundamental si se encuentran parpadeando

Problemas y Soluciones Encontradas

Las primeras complicaciones vinieron con el código. El software no es extremadamente complejo pero sí requirió varias librerías externas y mecanismos con los que no estábamos familiarizados. A pesar de ello, conseguimos el funcionamiento de la tragaperras en su forma más básica rápidamente.

La complicación más grande fue en cuanto a añadir los leds y buzzers con música y sonido complementarios. Nos dimos cuenta de que esas dos tareas incluían delays en el código que impedían que funcionase correctamente de manera paralela. Fue aquí donde diseñamos el sistema con dos arduinos, lo que permitió hacer que se pudiese jugar a la tragaperras mientras suena música y parpadean las luces.

Las siguientes complicaciones vinieron con el diseño físico del proyecto final. Como se había desarrollado todo como prototipo usando breadboards y cables sueltos, no se pensó en el cómo meterlo en la caja hasta el final. Esto provocó numerosos problemas logísticos y de cableado que requirieron de mucha precisión y paciencia para resolverse. Además, nuestra idea principal era hacer que el lado no visible de la palanca (el que está por dentro de la caja) presionase un botón ubicado en la breadboard, comenzando así el juego. No tardamos en darnos cuenta de que eso iba a ser imposible porque los botones de arduino, además de ser pequeños, necesitan ser presionados con bastante fuerza. Finalmente nos decantamos por colocarle al extremo de la palanca una solapa de cartón que, al bajarla, tapaba un sensor de ultrasonidos que accionaba el juego. Esto también causó problemas, pues el detector era muy sensible y hubo que reajustar la posición de reposo de la palanca.

Finalmente el último problema encontrado fue el de ubicar la breadboard externa y decorarla para conseguir unos botones estéticos pero funcionales y con un buen feedback. Al final se consiguió, tapando la totalidad de la board con cartón y añadiendo unos tubos de cartón que presionaban el botón desde fuera.

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *