Tabla de contenido:

CheminElectrique (juego de habilidades) - SRO2002: 9 pasos
CheminElectrique (juego de habilidades) - SRO2002: 9 pasos

Video: CheminElectrique (juego de habilidades) - SRO2002: 9 pasos

Video: CheminElectrique (juego de habilidades) - SRO2002: 9 pasos
Video: TODAS Las HABILIDADES y EVOLUCIONES de Kirby y La Tierra Olvidada 🌸 (Nintendo Switch) 2024, Mes de julio
Anonim
CheminElectrique (juego de habilidades) - SRO2002
CheminElectrique (juego de habilidades) - SRO2002
CheminElectrique (juego de habilidades) - SRO2002
CheminElectrique (juego de habilidades) - SRO2002
CheminElectrique (juego de habilidades) - SRO2002
CheminElectrique (juego de habilidades) - SRO2002

Hoy les presento la realización de un juego que hice para la fiesta de fin de año escolar para mi hijo. En Francia a estos festivales los llamamos "kermesses", no sé si existen en otros países y cómo se llaman …

En estas fiestas suele haber los mismos juegos, eso es lo que yo llamaría juegos clásicos, y este año decidí hacer una versión más moderna de uno de estos juegos clásicos: el "Chemin electrique" o "Main chaude".

El objetivo del juego es muy simple, hay un cable por donde pasa una corriente eléctrica, luego tienes un "joystick" compuesto por un círculo metálico en su extremo que pasa alrededor del cable eléctrico y el objetivo del juego es atravesar el cable de un extremo al otro sin tocarlo, de lo contrario se apaga una luz de advertencia y / o un sonido y se ha perdido.

Tradicionalmente, no hay dispositivos electrónicos para crear este juego, una simple batería de 12 V con una bombilla y un poco de cable eléctrico es suficiente, pero tuve algunas ideas geniales para hacer el juego más moderno.

¡Veamos qué agregué como funcionalidad!

Paso 1: características

Como acabo de decir, este juego simplemente enciende una luz cuando el jugador toca inadvertidamente el cable con el "joystick", también sucede con bastante frecuencia que el juego produce un sonido durante el contacto. En mi versión del juego habrá un total de 6 bloques de 4 LED (verde-amarillo-amarillo-rojo) que se encenderán simultáneamente, un timbre que producirá un sonido y también un vibrador integrado en el controlador que se activará cuando hay contacto entre el cable eléctrico y el "joystick".

Los LED se iluminarán gradualmente de verde a rojo dependiendo de cuánto tiempo dure el contacto entre el cable y el controlador.

También agregué una selección del nivel de dificultad (fácil-normal-difícil), así como la capacidad de habilitar / deshabilitar el vibrador y el sonido. El volumen del sonido también será ajustable con un potenciómetro.

La elección de la dificultad es, de hecho, simplemente una demora más o menos larga entre el momento en que hay un contacto entre el cable y el joystick y el momento en que el juego comienza a encenderse / sonar / vibrar. Establezco tiempos predefinidos mediante programación, por ejemplo, en el modo fácil, el juego espera 1 segundo antes de activar las advertencias, mientras que en el modo difícil, las advertencias se activarán de inmediato.

Diseñé el juego para que sea fácil de desmontar, confiable y sobre todo que no presente ningún peligro para los niños que lo usarán. De hecho, dado que el cable eléctrico está atravesado por una corriente y está despojado, tuve que asegurarme de que no presenta ningún peligro para los usuarios del juego.

Paso 2: descargo de responsabilidad y más información

Descargo de responsabilidad y más información
Descargo de responsabilidad y más información

Descargo de responsabilidad:

El juego estará alimentado por 4 baterías de 1.5V, un voltaje total de 6V, también limito la corriente que atraviesa el cable a solo unos pocos microamperios. Por lo tanto, estamos en el campo de la tensión de seguridad muy baja (SELV) con un valor de corriente extremadamente bajo accesible al usuario.

Pero atención, especifico bien que ningún valor de la corriente eléctrica es inofensivo, una corriente débil puede en ciertos casos ser peligrosa para la persona que está electrificada. Investigué mucho sobre esto durante la creación de este proyecto, y aunque no existe un consenso científico sobre el valor límite antes del cual la corriente no tiene impacto en el cuerpo humano, la corriente de algunos microamperios que atraviesa el cable eléctrico tiene muy poco posibilidad de lastimar a una persona.

¡Pero atención, no podré ser responsable en caso de accidente! Siempre se debe tener cuidado al manipular conductores eléctricos activos, incluso con valores de corriente muy bajos. ¡Le recomiendo encarecidamente que se informe lo más posible sobre los riesgos de la electricidad y las buenas precauciones que debe tomar

Más información:

Este proyecto funciona muy bien y tiene todas las características que quería, pero tiene algunos defectos. Cuando creo un proyecto electrónico trato de que todo esté lo más optimizado posible en cuanto a coste, número de componentes, espacio, y sobre todo que el funcionamiento del conjunto sea lo más "lógico" posible.

Mientras estaba haciendo este proyecto y después de terminarlo creo que hay algunas elecciones que tomé que no son las mejores pero estaba presionado por el tiempo, solo tenía 2 semanas para hacer todo desde cero (diseño, programación, encargar componentes, crear el estructura, y especialmente ensamblando todos los elementos).

Indicaré a medida que avance en los pasos de fabricación lo que creo que podría optimizarse si tuviera que crear este juego nuevamente. Pero repito que el proyecto es bastante funcional así, pero soy perfeccionista…

También lamento no haber tomado más fotos de las diferentes etapas del proyecto, pero preferí dedicarme al máximo al proyecto para poder terminarlo a tiempo.

Estoy feliz con este proyecto porque fue un gran éxito en la fiesta de la escuela de mi hijo, así que veamos qué hay en el vientre de la bestia;)

Paso 3: Obligaciones

- Debe funcionar con baterías (por seguridad y movilidad) - El juego debe ser seguro (lo usarán niños de 2 a 10 años)

- La configuración debe estar disponible (elección de activación de sonido / vibrador y elección de dificultad)

- La configuración debe ser simple de entender y de fácil acceso (se debe asumir que la persona que se hará cargo del juego durante la fiesta no sabe nada de electrónica / técnica)

- El sonido debe ser lo suficientemente fuerte (el juego se utilizará en el exterior en un entorno bastante ruidoso).

- El sistema debe ser extraíble al máximo para su almacenamiento y partes físicas fácilmente reemplazables (joystick, cable eléctrico…)

- Debe ser atractivo para los niños (ese es el objetivo principal por el que juegan…:))

Paso 4: Componentes (BOM)

Para el caso: - tablón de madera

- cuadro

- algunas herramientas para perforar y cortar….

Para el "joystick": - 1 vibrador

- cable jack 3.5 (estéreo)

- conector jack 3.5 (estéreo)

- cable eléctrico de 2,5 mm²

- un pequeño tubo de PVC

Componentes electrónicos:

- 16F628A

- 12F675

- ULN2003A

- 2 x 2N2222A

- Diodo Zener 2.7V

- 12 LED azules

- 6 LED verdes

- 6 LED rojos

- 12 LED amarillos

- 5 resistencias 10K

- 2 resistencias 4.7K

- 1 resistencia 470 ohmios

- 6 resistencias 2.2K

- 6 resistencias 510 ohmios

- 18 resistencias 180 ohmios

- 1 potenciómetro 1K

- 1 interruptor ON-OFF

- 2 interruptores ON-OFF-ON

- 1 timbre

- 1 convertidor elevador de CC

- cable eléctrico de 2,5 mm²

- 2 conectores banana macho

- 2 conectores banana hembra

- conector jack 3.5 (estéreo)

- soporte para 4 pilas LR6

- algunas placas de prototipos de PCB

Herramientas electrónicas: - Un programador para inyectar el código en un Microchip 16F628A y 12F675 (por ejemplo, PICkit 2) -

Le aconsejo que utilice Microchip MPLAB IDE (freeware) si desea modificar el código, pero también necesitará el compilador CCS (shareware). También puede utilizar otro compilador, pero necesitará muchos cambios en el programa.

Pero te lo proporcionaré. Archivos HEX para que pueda inyectarlos directamente en microcontroladores.

Paso 5: Análisis de funciones

Análisis de funciones
Análisis de funciones
Análisis de funciones
Análisis de funciones

Microcontrolador 16F628A (Func1): Es el "cerebro" de todo el sistema, es este componente el que detecta la posición de los interruptores de configuración, el que detecta si hay contacto entre el "joystick" y el cable eléctrico, y el que activa el Avisos (luz, sonido y vibrador). Elegí este componente porque tengo un stock bastante grande y porque estoy acostumbrado a programar con él, y como no tenía mucho tiempo para hacer este proyecto preferí llevar algún material que conozca bien.

Interfaz de alimentación ULN2003A (Func2): Este componente sirve como interfaz de alimentación entre el 16F628A y los circuitos que consumen más energía de la que puede proporcionar el microcontrolador (LED, zumbador, vibrador).

Control de zumbador (Func3):

El PIC 16F628A no puede proporcionar suficiente corriente para alimentar el zumbador, especialmente porque el zumbador debe alimentarse a través de un convertidor elevador para aumentar su potencia de sonido.

De hecho, dado que el conjunto se suministra en 6V y que el zumbador requiere 12V para funcionar al máximo, utilizo un convertidor para obtener el buen voltaje. Entonces uso un transistor como interruptor (modo de conmutación) para controlar la fuente de alimentación del zumbador. El componente que elegí es un 2N2222A clásico que es muy adecuado para este uso.

Aquí están las características del zumbador: 12V 25mA, esto significa que necesita una potencia teórica de P = UI = 12 x 25mA = 0.3W

Por lo tanto, hay un requisito de potencia de 0,3 W del convertidor de refuerzo de CC, el módulo de refuerzo de CC tiene una eficiencia del 95%, por lo que hay aproximadamente un 5% de pérdida. Por lo tanto, se requiere una potencia mínima de 0.3W + 5% = 0.315W en la entrada del convertidor.

Ahora podemos deducir la corriente Ic que atravesará el transistor Q1:

P = U * Ic

Ic = P / U

Ic = P / Vcc-Vcesat

Ic = 0, 315 / 6-0, 3

Ic = 52 mA

Ahora calculamos la resistencia base que permite que el transistor esté bien saturado:

Ibsatmin = Ic / Betamin

Ibsatmin = 52mA / 100

Ibsatmin = 0,5 mA

Ibsat = K x Ibsatmin (elijo un coeficiente de sobresaturación K = 2)

Ibsat = 2 x Ibsatmin

Ibsat = 1 mA

R12 = Ur12 / Ibsat

R12 = Vcc - Vbe

R12 = (6 - 0,6) / 1 mA

R12 = 5,4 K

Valor normalizado (E12) para R12 = 4.7K

Control de vibrador (Func4):

En cuanto al zumbador, el 16F628A no puede suministrar suficiente corriente al vibrador que requiere una corriente de 70mA, además debe ser alimentado al máximo con un voltaje de 3V. Así que elegí usar un diodo Zener junto con un transistor para hacer un regulador de voltaje de 2.7V para el vibrador. El funcionamiento de la asociación zener-transistor es simple, el zener fija el voltaje de 2.7V en la base del transistor y el transistor "copia" este voltaje y suministra la energía.

La corriente que atravesará el transistor Q2 es, por tanto, igual a Ic = 70mA

Ahora calculamos la resistencia base permitiendo que el transistor esté bien saturado:

Ibsatmin = Ic / Betamin

Ibsatmin = 70mA / 100

Ibsatmin = 0, 7mA

Ibsat = K x Ibsatmin (elijo un coeficiente de sobresaturación K = 2) Ibsat = 2 x Ibsatmin

Ibsat = 1, 4 mA

La corriente mínima en el diodo zener debe ser al menos Iz = 1mA para su funcionamiento, por lo que podemos deducir la corriente que pasa por la resistencia R13:

Ir13 = Ibsat + Iz

Ir13 = 1, 4 mA + 1 mA

Ir13 = 2, 4 mA

Para garantizar que la corriente del diodo Zener Iz esté siempre en el rango de funcionamiento correcto, se toma un margen de seguridad con un: Ir13_fixed = 5mA (elección de valor completamente arbitraria)

Ahora calculemos el valor de R13:

R13 = U13 / Ir13_fixed

R13 = VCC-Vz / Ir13_fixed

R13 = 6-2, 7 / 5mA

R13 = 660 ohmios

Valor normalizado (E12) para R13 = 470 ohmios

Podría haber elegido 560 ohmios en la serie E12 pero no tenía este valor, así que tomé el valor anterior …

Se puede optimizar

Cuando hice el diseño del proyecto no pensé en el Vbe del transistor así que en lugar de tener 2.7V para alimentar el vibrador solo tengo 2.7V-0.6V = 2.1V. Debería haber tomado un zener de 3.3V por ejemplo, el vibrador habría sido un poco más potente aunque el resultado sea bastante satisfactorio, no aprovecho toda la potencia del vibrador…

LED de advertencia (Func5):

Los LED se colocan verticalmente como si formaran un indicador: rojo

Amarillo2

Amarillo1

Verde

Cuando se detecta un contacto entre el "joystick" y el cable eléctrico, se iluminan gradualmente de verde a rojo.

Los LED se conectan al VCC en grupos según su color:

- Todo el ánodo de los LED verdes están conectados entre sí.

- Todos los ánodos de los LED amarillos1 están conectados entre sí

- Todo el ánodo de los LED amarillos2 están conectados entre sí

- Todo el ánodo de los LED rojos están conectados entre sí.

Luego, el microcontrolador los activa conectando a tierra su cátodo a través del ULN2003A.

Nota:

En el esquema solo hay un LED de cada color con un símbolo "X6" al lado porque uso una versión gratuita de Cadence Capture y estoy limitado por un número máximo de componentes por diagrama, por lo que no pude hacer que aparecieran todos los LED. …

Gestión del nivel de sonido del zumbador (Func6):

Es simplemente un potenciómetro en serie con el zumbador que permite ajustar el volumen del sonido.

LEDs "Decoración" (Func7 - Esquema / Página 2):

El propósito de estos LED es crear una persecución para la decoración del juego. Se iluminan de izquierda a derecha. Hay un total de 12 LED azules: 6 al comienzo del recorrido que representan la línea de salida y 6 al final del recorrido que representan la línea de meta.

Elegí hacer una multiplexación de pantalla para estos LED porque habría requerido muchos más pines para ordenarlos (6 pines con multiplexación, 12 pines sin multiplexación).

Además se indica en su hoja de datos que el Vf es 4V por lo tanto no pude poner 2 LEDs en serie (VCC es 6V), y tampoco pude ponerlos en paralelo porque TEORICAMENTE necesitan 20 mA y que el microcontrolador puede suministrar solo 25 mA máx. por pin, por lo tanto, 40 mA habría sido imposible.

Para resumir, no pude hacer una asociación de LED (en serie o en paralelo) y no tenía suficiente pin en el microcontrolador para manejarlos de todos modos … Así que elegí usar otro microcontrolador (12F675) de 8 pines para poder Gracias a este microcontrolador controlo la activación de los LED configurando un nivel lógico alto (VCC) en sus ánodos y utilizo el PIC 16F628A y ULN2003A para realizar el multiplexado.

Puede optimizarse:

Me di cuenta mientras realizaba las pruebas en un tablero que para la misma corriente I = 20mA los LED tenían una gran diferencia de brillo según sus colores, por ejemplo con 20mA los LED azules eran mucho más brillantes que los verdes. No me pareció estético que algunos LED fueran mucho más brillantes que otros, así que varié la resistencia en serie con los LED azules hasta que obtuve la misma potencia luminosa que los LED verdes alimentados con una corriente de 20 mA.

¡Y me di cuenta de que los LED azules tenían el mismo brillo que los LED verdes con una corriente de solo 1 mA! Lo que significa que si hubiera sabido eso antes podría haber optado por poner los LED azules en serie (en grupos de 2). Y solo necesitaba 3 pines más en el 16F675A (que están disponibles), por lo que no necesitaba agregar otro microcontrolador dedicado a administrar estos LED.

Pero en este momento del diseño no lo sabía, a veces hay una diferencia nada despreciable entre las características de la documentación técnica y las características reales de los componentes …

Limitación de la corriente (Func0):

No había planeado esta parte en absoluto en el momento del diseño, la agregué solo al final del proyecto, cuando todo estaba terminado. Al principio simplemente había conectado el VCC directamente al cable eléctrico con simplemente una resistencia desplegable para poner la entrada del microcontrolador que detecta el contacto a tierra.

Pero, como dije antes, investigué mucho para averiguar si la corriente que fluye a través del cable eléctrico podría ser peligrosa si llegara a tener contacto entre el cable y un cuerpo humano.

No encontré una respuesta precisa sobre este tema, así que preferí agregar una resistencia entre el VCC y el cable eléctrico para reducir la corriente que cruza el cable tanto como sea posible.

Entonces quería poner una resistencia de alto valor para reducir la corriente al valor más bajo posible, pero como ya había terminado el proyecto y, por lo tanto, todas las diferentes tarjetas soldadas y cableadas, ya no pude quitar la resistencia pulldown de 10Kohm. Por lo tanto, tuve que elegir un valor de resistencia para obtener 2/3 de VCC en el pin BR0 (pin 6 de 16F628A) para que el microcontrolador detecte aunque es un nivel lógico alto cuando hay contacto entre el joystick y el cable eléctrico.. Si hubiera agregado demasiada resistencia, habría tenido el riesgo de que el microcontrolador no hubiera detectado el cambio entre el estado de lógica baja y el estado de lógica alta.

Entonces elegí agregar una resistencia de 4.7K para obtener un voltaje de aproximadamente 4V en el pin cuando hay contacto entre el joystick y el cable eléctrico. Si a esto se suma la resistencia de la piel humana en caso de contacto del cable eléctrico con la mano, por ejemplo, la corriente que fluye a través del cuerpo sería inferior a 1 mA.

E incluso si una persona toca el cable solo estará en contacto con el terminal positivo de las baterías y no entre el terminal positivo y negativo pero como dije en el descargo de responsabilidad SIEMPRE presta atención a lo que haces con la corriente eléctrica.

Nota: Dudé durante mucho tiempo en agregar esta resistencia ya que la corriente eléctrica posiblemente accesible para el usuario (a través del cable eléctrico) es débil y que el conjunto es alimentado por batería con solo 6V de voltaje y que tal vez sea estrictamente innecesario. Limite la corriente de las baterías, pero como es para niños, preferí tomar todas las precauciones posibles.

Paso 6: Programación

Programacion
Programacion

Los programas están escritos en lenguaje C con MPLAB IDE y el código se compila con CCS C Compiler.

El código está completamente comentado y es bastante simple de entender, pero explicaré rápidamente las funciones principales de los 2 códigos (para 16F628A y 12F675).

El primer programa -CheminElectrique.c- (16F628A):

Gestión de multiplexación de LED: Función: RTCC_isr ()

Utilizo el timer0 del microcontrolador para provocar un desbordamiento cada 2ms que permite gestionar la multiplexación de los LED.

Gestión de detección de contactos:

Función: void main ()

Este es el bucle principal, el programa detecta si hay contacto entre el joystick y el cable eléctrico y activa los leds / zumbador / vibrador según el tiempo de contacto.

Gestión del entorno de dificultad:

Función: long GetSensitivityValue ()

Esta función se utiliza para comprobar la posición del interruptor que permite seleccionar la dificultad y devuelve una variable que representa el tiempo de espera antes de activar las alarmas.

Gestión de configuración de alarma:

Función: int GetDeviceConfiguration ()

Esta función se utiliza para comprobar la posición del interruptor que selecciona la activación del zumbador y vibrador y devuelve una variable que representa las alarmas que deben estar activas.

El segundo programa -LedStartFinishCard.c- (12F675):

Gestión de activación de LED azul: Función: void main ()

Este es el bucle principal del programa, activa los LED uno tras otro de izquierda a derecha (para crear una persecución)

Vea a continuación un archivo zip del proyecto MPLAB:

Paso 7: soldadura y ensamblaje

Soldadura y montaje
Soldadura y montaje
Soldadura y montaje
Soldadura y montaje
Soldadura y montaje
Soldadura y montaje
Soldadura y montaje
Soldadura y montaje

Parte "física": empecé por crear la caja, entonces corté tablas de madera de unos 5 mm de grosor para la parte superior y los lados y elegí una tabla de 2 cm de grosor para que la parte inferior tuviera más peso y que el juego no se moviera.

Ensamblé las tablas entre estar con pegamento para madera, no puse tornillos ni clavos y ¡es realmente sólido!

Para hacer el juego más atractivo que una simple caja pintada, le pedí a mi esposa que creara una decoración para la parte superior de la caja (porque realmente apesto en el diseño gráfico…). Le pedí que hiciera un camino sinuoso (para tener relación con el cable…) con latas / panel en los bordes de las curvas para poder incorporar mis LED de advertencia. Los LED azules de las decoraciones serán como las líneas de salida y llegada. Ella creó un escenario estilo "Ruta 66", con una carretera que atraviesa una especie de desierto, y después de varias impresiones para encontrar la buena ubicación de los LED, ¡quedamos bastante contentos con el resultado!

Luego perforé agujeros para todos los conectores, interruptores y, por supuesto, los LED.

El cable eléctrico se retuerce para crear zig-zags para aumentar la dificultad del juego, y cada extremo se atornilla a un conector banana macho. Luego, los conectores se conectarán a los conectores banana hembra que están conectados a la tapa de la carcasa.

Parte electrónica:

He dividido la parte electrónica en varios prototipos de tarjetas pequeñas.

Existen:

- una tarjeta para 16F628A

- una tarjeta para 12F675

- 6 tarjetas LED de advertencia

- 4 tarjetas para LED decorativos (línea de salida y meta)

Arreglé todas estas tarjetas debajo de la tapa de la caja, y puse el soporte de la batería en la parte inferior de la caja con el zumbador y el módulo de refuerzo de CC.

Todos los elementos electrónicos están conectados enrollando cables, los he agrupado lo más posible según su dirección y los he trenzado y fijado con pegamento caliente para que queden lo más "limpios" posible y sobre todo que haya sin falsos contactos o cables que se desconecten. ¡Realmente me tomó mucho tiempo cortar / pelar / soldar / colocar los cables correctamente!

Parte "Joystick":

Para el joystick tomé un pequeño trozo de tubo de PVC (1.5cm de diámetro y 25cm de largo) y luego soldé el conector jack hembra así:

- un terminal conectado al cable al final del joystick (ContactWire en el esquema)

- un terminal conectado al terminal positivo del vibrador (2A en el conector J1A en el esquema)

- un terminal conectado al terminal negativo del vibrador (1A en el conector J1A en el esquema)

Luego integré el cable, el vibrador y el conector jack dentro del tubo y fijé el jack con pegamento caliente para asegurarme de que nada se mueva al conectar el cable jack entre el joystick y la otra parte del sistema.

Paso 8: video

Paso 9: Conclusión

Ahora que el proyecto terminó, fue realmente genial hacer este proyecto a pesar de que lamento tener muy poco tiempo para hacerlo. Me permitió asumir un nuevo desafío;) ¡Espero que este juego funcione durante muchos años y que divierta a muchos niños que celebrarán el final de su año escolar!

Proporciono un archivo de archivo que contiene todos los documentos que usé / creé para el proyecto.

No sé si mi estilo de escritura será correcto porque en parte estoy usando un traductor automático para ir más rápido y como no hablo inglés de forma nativa, creo que algunas oraciones probablemente serán raras para las personas que escriben inglés a la perfección.

Si tiene alguna pregunta o comentario sobre este proyecto, ¡hágamelo saber!

Recomendado: