Puzle para escape room

Hola a todos. Este mi primer post y mi primer intento de utilizar Arduino en un proyecto real. Creo que estoy posteando en el lugar correcto pero si no es el caso, pido disculpas anticipadas a los moderadores.

Al grano, me gustaría hacer un puzle para un escape room. Dicho puzle consiste en mover una pequeña pieza con un imán en su parte inferior, sobre un tablero de madera con casillas en un determinado orden. Tengo una idea mas o menos clara de como intentar conseguir lo que quiero, pero quisiera exponer mi proyecto a la comunidad porque seguro que me van a anticipar los problemas o dar posibles soluciones antes de afrontarlo.

La idea es que nada el circuito ni sensores sea visible desde el lado del jugador, por tanto necesito unos sensores que se puedan activar con un material por medio, digamos un trozo de madera de unos 5mm por ejemplo. Se trataría de sensores hall magnéticos, y desde el lado del software ya se gestionaría todo para saber si el orden de introducción es correcto.

Algunas cuestiones que me preocupan son:

  • ¿Sería mejor usar sensores capacitivos o de otro tipo?

  • Que no se activen los sensores desde arriba de la madera. (supongo que esto será probar según el tipo de madera).

  • En caso de que se activen, que quizás se activen varios a la vez. (entiendo que esto va depender de la separación que tengan, dado que soy novato me gustaría ceñirme a una protoboard, pero creo que el tamaño las mismas no me da para separar todo lo que quiero los sensores), hay algún truco para poder separarlos mas con algún tipo de extensor para sensores o algo así?

  • El arduino estaría separado varios metros del pc a partir del cual se controlaría todo. Además a este pc ya van otros dispositivos por usb. El caso es que no estoy seguro de si es buena práctica o incluso de si se puede sacar un cable usb de varios metros (mas de 5), y llevarlo hasta un usb splitter. ¿Cuales serían las alternativas para comunicar los dispositivos arduino con un pc? He visto Ethernet Shields pero no me queda claro si es lo mas conveniente o no. Tendría lag con Ethernet? La cuestión es que al resolver el puzzle este de paso a otro dispositivo arduino que abre un estante y este proceso es mucho mas satisfactorio si es instantáneo, si la apertura se produce un segundo después el efecto no es el mismo.

Espero haberme expresado correctamente y que este tema sea apropiado para esta categoría. Gracias por leerme y de antemano por los consejos.

Un saludo.

Hi jackandjazz,

me gusta tu proyecto Hago rompecabezas de escape room profesionalmente y esto me recuerda a un rompecabezas de "tablero de ajedrez" que hice.

Recomendaría usar interruptores de láminas simples. Busque sensores de sistemas de alarma, por lo general vienen en un paquete resistente y son confiables. Los interruptores Hall funcionarían pero agregarían una complejidad innecesaria a su proyecto. Los sensores capacitivos no funcionarían bien, ya que se activarían inadvertidamente si un jugador tocara la superficie de juego.

5 mm no es demasiado grueso para que penetre un campo magnético decente. Le sugiero que compre algunos sensores y una variedad de imanes para probar. ¡Experimenta, experimenta, experimenta! (Esta es la parte divertida.)

Puede hacer que la placa sea más gruesa si es necesario para evitar activar el sensor incorrecto si es demasiado sensible. Deberías estar bien allí.

Evitaría intentar conectar el Arduino a una PC a través de USB a menos que realmente lo necesite para hacer algo complejo. Si todo lo que está haciendo es liberar un cerrojo magnético en una puerta o habilitar el siguiente rompecabezas en la secuencia, hay muchas otras opciones más fáciles para discutir más adelante.

Pat.

1 Like

Hola Pat y muchas gracias por tu respuesta. Sería estupendo poder ver algunos de los puzzles que hayas diseñado.

No había considerado utilizar reed switches porque no sabía que existían. Sin duda voy a intentar utilizarlos así que gracias por eso. Mi intención de utilizar sensores magnéticos hall era porque con ellos puedo controlar la cantidad de campo magnético recibido, con lo cual puedo comprobar mas fácilmente la posición del imán en el caso de que se encuentre en un punto en que dos o ningún sensor se activa. Por otra parte, ahora que estoy escribiendo esto pienso que quizás esto no puede hacerse porque no tendrían tantos pins analógicos disponibles.

En lo que respecta a activar sensores de forma involuntaria, yo creo que lo mejor es darle al jugador la información del input que está teniendo via leds o similar. Creo que esto debería ser el caso independientemente del sensor que se utilice, ya que ninguno da información inmediata al jugador cuando se activa.

Respecto a la conexión USB, lo que quiero es tener la posibilidad de activar el puzzle desde el pc, así como activar otros dispositivos o animaciones. El software utilizado para gestionar la sala tiene la posibilidad de controlar eventos de arduino.

Finalmente, aprovecho para preguntarte como harías para resolver la cuestión de un tablero mas grande que la protoboard. Estoy obligado a hacer una pcb? Quisiera no tener que recurrir a soldar ya que nunca lo he hecho y me preguntaba si hay alguna otra forma de hacerlo, o de extender los sensores.

Ahora simplemente te hago caso y voy a experimentar con todo! Gracias!

Moderador:
Hola, estas en el foro Arduino en Español, por lo tanto debes responder en español no inglés
Te pido por favor que traduzcas tu respuesta.
El Sr. @patduino ya ha sido advertido de que lo haga.

1 Like

Seguro -

No había considerado los interruptores de láminas

Sí, interruptores de lengüeta de servicio pesado o sensores de puerta/ventana para sistemas de alarma. Con los interruptores de láminas, tenga en cuenta que sus patrones de activación magnética no son sencillos y pueden no ser lo que desea. Primero probaría los sensores de puerta/ventana más simples.

No importa qué tipo de sensor elija, solo tenga en cuenta estos y sus patrones de activación en su diseño.

Estoy pensando en reflejar las entradas en otra parte de la habitación.

Veo por qué desea una conexión de PC para impulsar una animación en tiempo real. Varios de mis rompecabezas tienen componentes de PC escritos en Unity. Uso una biblioteca Arduino (Uduino) que interactúa con Unity a través de USB. Puede hacer que múltiples rompecabezas interactúen con la PC simultáneamente. Esto no es fácil y es un tema para un foro de tablero de mensajes diferente

1 Like

Gracias!!!

1 Like

De que dimensiones hablas?

1 Like

Muchas gracias nuevamente por tu respuesta Pat, y además por traducirla.

  • Se te ocurre alguna idea para trabajar con un tablero de juego mas grande que la protoboard?

  • No conocía Uduino, voy a echarle un vistazo. Pero en cualquier caso si los componentes están lejos del pc creo que habría que sustituir el cable usb por otra solución. Quizás un cable ethernet es lo mejor para dar internet al dispositivo y hacer la comunicación entre dispositivos y pc vía web?

Saludos.

No está definido aún, va depender de si varía mucho de unas dimensiones a otras, pero mi idea era hacer algo de entre 40x40 y 50x50 cm mas o menos.

Yo no usaria Ethernet. usaria tal vez alguna solución WIFI como MKR100X o ES8266/ESP32
Pero solo es una cuestión de gustos. Puedes hacerlo por ethernet con una placa W5500 por ejemplo.

Estaba mirando costos en JLCPCB y 30x30 cm x 5 piezas (no hacen menos) te salen 105 USD pero mira el cotizador.
Los costos locales (no se en qué pais resides) siempre son mas caros.
Ojo los gastos de envio tmb son importantes.
Busca el cotizador.

Para mi es mas deseable wifi también. Pero al ser un dispositivo coordinado con música y animaciones me da miedo que haya descordinación en cada reproducción. Igualmente esto es algo que entiendo que solo tengo que probar y testar. Voy a testear con esos chips (que por supuesto desconocía también) y a ver que tal. Tengo bastante información ya para ir haciendo pruebas. Mil gracias.

Me sale incluso menos. Me dice 50€ con las opciones por defecto. Resido en España. Mi miedo a hacer la pcb básicamente es por desconocimiento. Es mi primer proyecto, nunca he hecho una ni he soldado ni nada, pero spongo que simplemente hay que hacerla.

Puedes incluso solicitarla armada
Previo diseño claro.
Imagina que sigues la idea de los reed switches, entonces la compras solo con eso ya montado.
tal vez por la cantidad debas sumarle algunos integrados para hacer una red XY o sea una matriz
Tantas filas y tantas columnas.
Un 74hc565 o varios en cascada. Es decir, un 74hc565 controla con solo dos pines 8 salidas pero puedes ademas poner otro 565 en serie, y llegas a 16 y asi vas de 8 en 8.
Lo mismo para la lectura pero usas los 74hc165
Entonces con solo 2 pienes del micrcontrolador envias el barrido a las filas por ejemplo donde estan los 565 y con otras 2 lees las columnas.
Aca un video que te introduce a como funcionan ambos

Esta es la idea básica con 4x4

y aca ves a 2 74hc165 aumentando entradas que en el esquema que te expliqué antes sería para las columnas
image
Asi lo llevas a la cantidad que gustes.

1 Like

Reconozco que me está explotando un poco la cabeza por momentos. Pero creo que la aproximación de los shift registers es justamente la óptima para lo que quiero hacer así que muchísimas gracias. Voy a tomarme mi tiempo en ver el vídeo y entenderlo poco a poco y empezaré a hacer pruebas.

En el futuro ya intentaré buscar por google o por el foro como funciona lo de solicitar la placa montada (incluso con sensores y todo?), pero creo que por hoy ya he abusado bastante de vuestro conocimiento y además tengo muuuucho que procesar y probar de primeras, así que nuevamente muchas gracias. Un saludo.

Te lo sugerí porque es imposible que un micro pueda manejar tantas entradas y salidas.
Debes crear una matriz filas y columnas donde harás esto.
Imaginemos un tablero de 16x16 para hacerlo simple.
Necesitaras 16 salidas o sea 2 integrados shift register como los 74hc595 que serán las filas. Y 2 integrados 74hc165 que seran las entradas.
Enviaras un 1 a una fila o a todas (los 595) que pondrán 5V en cada una de sus 8 salidas x 2 integrados.
Ahora depende como sea el puzzle si se va moviendo a mano lo esperable es que un solo reed switch se cierre o abra. (ojo, hay de los dos tipos, incluso hay de 3 pero no quiero marearte).
El puzzle cerrará magnéticamente un contacto así que la lectura de los 165 serán 16 bits la mayoría en 1 pero uno solo en 0.
Ahi tienes tu posición detectada.
Lo demás es jugar con los bits para decir que posición fue la que esta en 0.
Asi que con solo 4 pines de un micro logras semejante tarea. Te quedan pines para muchas cosas, leds, pantallas lcd, o de otro tipo, etc.

1 Like

Al menos ahora que se que esto puede hacerse ya tengo claro que el limitante no va ser el número de pines del Arduino. Igualmente es cierto que esto complejiza bastante el código pero ayer tras pasar un par de horas viendo el vídeo que me mandaste y otros dos creo que ya entiendo el proceso. Aún me lío al combinar conceptualmetne los outputs del 595 con los outputs del 165 pero estoy seguro de que me las arreglaré cuando esté trasteando. He aprendido conceptos como pulso que no entendía y esto va a hacer que sea un ejercicio mas divertido no solo del lado del hardware sino también del software, que yo pensaba que tenía mas controlado jaja.

Gracias!

Por el contrario, hay librerías y muchos tutoriales que hacen control IN o OUT usando shift registers asi que despreocúpate del código que es lo mas simple.

Hola a todos. Me surge una duda relativa a este mismo proyecto. No se si es el lugar adecuado para recogerla, sino es el caso disculpas a los moderadores. La cuestión es que, ya he decidido que quiero que los tableros sean de 30x30cm. Con un total de 25 sensores reed switch en una cuadrícula de 5x5. Entonces necesito pcbs de 30cm compuestas de chip arduino, bootloader, alimentación, resistencias, switches, y 4 shift registers 74hc595.

He mirado precios en JLCPCB y me sale, sin algunos componentes unos 120€ 5 placas con el ensamblado incluido. Creo que es buen precio pero hay algunas pegas:

  • El ensamblado hay varios componentes que no los incluye (o si se incluye se desorbita el precio), y tendría que soldarlos yo.
  • Para un novato como yo, no poder probar la pcb, y tener que soldar componentes implica que seguramente algo no funcione después.

Es por todo esto que me estoy planteando realizar las versiones finales sobre protobards directamente. Se que no es buena práctica pero al ser un novato y no requerir mas fabricación que 4 piezas creo que es razonable. La cuestión es que para tener el tablero de 30x30, necesitaría 12 protoboards (de las de 160 x 50 aprox)... suponiendo un precio de 4 euros, salen 48 euros en protoboards, multiplicado por 4 piezas son 200€ aprox.

Veis razonable proceder de esta manera? Alguna alternativa o consejo? Existen protobards de esos tamaños para no tener que comprar 12 por tablero?

Un saludo y muchas gracias de antemano.

Como siempre daré mi opinión.
Vivo en Argentina y hablar de 120 o 200 Euros es una locura. Pensar en tatos protoboards es otra locura.
No sabes soldar pero... por que no aprendes?
No sabías Arduino y no digo que ya lo domines pero ahora te animas con el proyecto no? Bueno soldar es lo mismo. Al principio lo haces mal. Luego mejora con la práctica.

Yo te recomiendo algo casi artesanal
Son plaquetas de desarrollo muy baratas. A ver tu estas en España. Miro en algun sitio pero tu tal vez lo encuentres mas barato o simplemente en tu tienda mas cercana al precio que sea.
Mira este link de Placas PCB de desarrollo
O este otro que se ajusta mejor.
No te asustes.
Sigamos con la idea.
Ya tienes las PCB donde montarás todo.
Siguiente, hay que soldar, asi que te compras buen soldador que seguro tienes.
Estaño fino que ya discutiremos al final.
Las placas las unes con los alambres que recuperas al cortar los reed switches o de resistencias .
Simplemente puenteas de una a otra y sueldas.
Dejará una unión firme.
Pones 2 o 3 de manera equidistante. Al final todo conformará una malla.

Veo solo un problema que detallo y luego te diré como resolverlo.
Las placas tienen un borde que molesta


O bien lo cortas con sierra de calar o bien si tienes una caladora con sumo cuidado porque es un corte complicado o lo dejas y los reed que caigan entre medio ya verás como los ubicas. Depende de la precisión. Pero un prototipo solo debe demostrar que el concepto o sea la idea funciona, no ser 100% perfecto.

Ahora las conexiones.
Yo uso cable de wire wramping de 0.25mm


Que te oblliga a comprarte una herramienta que pela el cable y es de suma utilidad pero puedes prescindir de ella. A mi me resulta util.
Esta es la herramienta pero esta cara 32€. Si la encuentras mas barata o China, servirá sino con un buen alicate lo mismo.
El cable wire wrapping trae 1000 pies o sea 330 mts asi que tienes para unos años y muchos te aseguro. Con el haras las conexiones. Podrias incluso no soldar y hacer las conexiones con wire wrampping, luego te paso video.
Pero si sueldas que es lo que yo hago, te queda un prototipo firme (200 veces mejor que con protoboard). Eso si, deberás seguir bien el circuito y no confundirte. Ir tachando conexiones o sea, ser cuidadoso y sistemático a la hora de trabajar.
El cable resiste malos tratos con el soldador pero si te quedas muchos segundos claramente la vaina plastica se fundirá y retraerá. Si eso pasa, cortas el excedente de alambre y no pasó nada.
Bien, creo que esta toda la idea plasmada.
Solo falta tomar el soldador y no tener miedo. Meter la pata al principio e ir mejorando con las soldaduas.
Punta de soldador caliente, apoyas por segundos (ya verás cuántos), aproximas el estaño y dejas que lo absorba y retiras la punta.
Es mas, pones la punta caliente de un lado, sobre el pad de cobre de estas placas que te he indicado, calientas unos seg, aproximas el estaño por el lado opuesto, y solo se funde y queda formando un piramide
image
En 3 se ve lo que debes lograr.
Te va a quedar como un globo al comienzo eso es si pones demasiado estaño, pero ya irás mejorando.