Tabla de contenido:

Demostración 4x4 de un tablero de ajedrez electrónico / Con Arduino Mega + Lector RFID + Sensores de efecto Hall: 7 pasos
Demostración 4x4 de un tablero de ajedrez electrónico / Con Arduino Mega + Lector RFID + Sensores de efecto Hall: 7 pasos

Video: Demostración 4x4 de un tablero de ajedrez electrónico / Con Arduino Mega + Lector RFID + Sensores de efecto Hall: 7 pasos

Video: Demostración 4x4 de un tablero de ajedrez electrónico / Con Arduino Mega + Lector RFID + Sensores de efecto Hall: 7 pasos
Video: Que? #short 2024, Mes de julio
Anonim
Demostración 4x4 de un tablero de ajedrez electrónico / Con Arduino Mega + Lector RFID + Sensores de efecto Hall
Demostración 4x4 de un tablero de ajedrez electrónico / Con Arduino Mega + Lector RFID + Sensores de efecto Hall

Hola creadores, Soy Tahir Miriyev, graduado en 2018 de la Universidad Técnica de Oriente Medio, Ankara / Turquía. Me especialicé en Matemáticas Aplicadas, pero siempre me encantó hacer cosas, especialmente cuando implicaba algún trabajo manual con la electrónica, el diseño y la programación. Gracias a un curso único sobre creación de prototipos, impartido en nuestro departamento de Diseño Industrial, tuve la oportunidad de hacer algo realmente interesante. El proyecto puede tratarse como un proyecto a término, con una duración de un semestre completo (4 meses). A los estudiantes se les asignó una tarea para encontrar un enfoque creativo para diseñar productos / demostraciones ya existentes y realizar sus ideas utilizando microcontroladores y sensores Arduino. Estaba pensando en el ajedrez, y después de investigar un poco sobre proyectos exitosos, noté que en proyectos anteriores los creadores básicamente usaban motores de ajedrez listos para usar (donde todos los movimientos de cada figura estaban programados en el núcleo), junto con Raspberry Pi, algunos MUX. 'es, LED's e interruptores de lengüeta. En mi proyecto, sin embargo, decidí deshacerme de cualquier software externo en términos de un motor de ajedrez, y buscar una solución creativa para el problema de Reconocimiento de Figuras, usando lector RFID, sensores de efecto Hall y Arduino Mega.

Paso 1: ¿Qué es un problema de reconocimiento de figuras y cómo lo resolví?

¿Qué es un problema de reconocimiento de figuras y cómo lo resolví?
¿Qué es un problema de reconocimiento de figuras y cómo lo resolví?

En pocas palabras, suponga que tiene un tablero de ajedrez con un "cerebro" = microcontrolador, y tiene que hacer que su tablero comprenda qué figura tiene en la mano y dónde la ha colocado. Este es el problema del reconocimiento de figuras. La solución a este problema es trivial cuando tienes un motor de ajedrez con todas las piezas en sus posiciones iniciales en el tablero. Antes de explicar por qué es así, permítanme hacer algunos comentarios.

Para aquellos que están entusiasmados con cómo funcionan las cosas aquí, tengo que hacer una aclaración sobre por qué necesitamos interruptores de lengüeta (o en mi caso, usé sensores de efecto Hall): si colocas un imán debajo de cada pieza y lo recoges de un cuadrado en el tablero (asumiendo que hay un interruptor de lengüeta debajo de cada cuadrado) debido a la existencia / no existencia del campo magnético sobre el sensor, puede hacer que su controlador comprenda si hay / no hay una pieza sobre el cuadrado. Sin embargo, todavía no le dice nada al microcontrolador sobre exactamente qué pieza está colocada en el cuadrado. Solo dice que hay / no hay una pieza en un cuadrado. En este punto, nos encontramos cara a cara con un problema de reconocimiento de figuras, que se puede resolver mediante un motor de ajedrez, con todas las piezas colocadas en sus posiciones iniciales cuando comienza el juego de ajedrez. De esta manera, el microcontrolador "sabe" dónde se encuentra cada pieza desde el principio, con todas las direcciones fijadas en la memoria. Sin embargo, esto nos trae una gran limitación: no se puede seleccionar, digamos, cualquier número de piezas y colocarlas al azar en cualquier lugar del tablero y comenzar a analizar el juego. Siempre debes comenzar desde el principio, todas las piezas deben estar en el tablero originalmente, ya que esta es la única forma en que el microcontrolador puede rastrear sus ubicaciones una vez que levantas una pieza y la colocas en otro cuadrado. En esencia, este fue el problema que noté y decidí trabajar.

Mi solución fue bastante simple, aunque creativa. Coloqué un lector de RFID en la parte frontal de una placa. Mientras tanto, adjunté no solo un imán debajo de las piezas, sino también una etiqueta RFID, y cada pieza tiene una identificación única. Por lo tanto, antes de colocar una figura en cualquier cuadrado deseado, primero puede sostener la pieza cerca del lector RFID y dejar que lea el ID, identificar la pieza, guardarla en la memoria y luego puede colocarla donde desee. Además, en lugar de usar interruptores de láminas, para simplificar el diseño del circuito, usé sensores de efecto Hall, que funcionan de manera similar, con la única diferencia de enviar 0 o 1 a un microcontrolador como datos digitales, lo que significa "hay" o "no hay" ninguna pieza en el cuadrado, respectivamente. También agregué LED (desafortunadamente no del mismo color, no los tenía), de modo que cuando levante la pieza, se enciendan todas las ubicaciones cuadradas, donde se podría colocar una pieza levantada. Piense en ello como una práctica educativa para los estudiantes de ajedrez:)

Por último, me gustaría señalar que a pesar de que utilicé varias técnicas, el proyecto sigue siendo simple y comprensible, no muy elaborado ni demasiado complicado. No tuve tiempo suficiente para continuar con el tablero de ajedrez de 8x8 (también porque 64 sensores de efecto Hall son costosos en Turquía, cubrí todos los gastos relacionados con el proyecto), por eso hice la versión de demostración 4x4 con solo dos piezas probadas: Peón y Reina. En lugar de usar un motor de ajedrez, escribí un código fuente para Arduino, que genera todo lo que verá en el video a continuación.

Paso 2: Cómo funcionan las cosas

Image
Image

Antes de pasar a la explicación paso a paso de cómo se hizo el proyecto, creo que sería mejor ver un video ilustrativo y tener una idea intuitiva de lo que estoy hablando.

Nota # 1: uno de los LED rojos (el primero en la fila / de izquierda a derecha) se quemó, no importa.

Nota # 2: aunque ampliamente utilizada, por mi experiencia puedo decir que la Tecnología RFID no es la mejor idea para usar en aplicaciones de bricolaje (por supuesto si tienes alternativas). Antes de que todo funcionara, hice muchas pruebas colocando piezas de ajedrez cerca del lector y esperando hasta que lea correctamente la identificación. El puerto serie debe configurarse para eso porque la forma en que el lector RFID lee la identificación es solo un dolor de cabeza. Uno debe intentarlo por sí mismo para comprender el problema. Si necesita más ayuda, envíeme un correo electrónico ([email protected]) o agregue skype (tahir.miriyev9r1), para que podamos programar una conversación y discutir las cosas en detalle, lo explicaré todo a fondo.

Paso 3: herramientas y componentes

Herramientas y componentes
Herramientas y componentes
Herramientas y componentes
Herramientas y componentes
Herramientas y componentes
Herramientas y componentes

Aquí está la lista de todas las herramientas que utilicé para el proyecto: Componentes electrónicos:

  • Tablero de pruebas (x1)
  • Omnidireccional A1126LUA-T (IC-1126 SW OMNI 3-SIP ALLEGRO) Sensores de efecto Hall (x16)
  • LED básicos de 5 mm (x16)
  • Cables de puente
  • Antena y lector RFID de 125 kHz (x1)
  • Arduino Mega (x1)
  • Etiquetas RFID 3M (x2)

Otros materiales:

  • Plexiglás
  • Papel brillante
  • Tablones cortos (de madera)
  • Pintura acrílica (verde oscuro y crema) x2
  • Cartón fino
  • Imanes redondos de 10 mm (x2)
  • Piezas de peón y reina
  • Soldador y materiales de soldadura.

Paso 4: Esquemas (Fritzing)

Esquemas (Fritzing)
Esquemas (Fritzing)

Los esquemas son un poco complicados, lo sé, pero la idea debería ser clara. Fue la primera vez que usé Fritzing (muy recomendado por cierto), probablemente las conexiones se podrían dibujar con mayor precisión. De todos modos, anoté todo dentro de los esquemas. Nota: No pude encontrar el modelo exacto de RDIF Reader entre los componentes en la base de datos de Fritzing. El modelo que utilicé es el módulo RFID de 125Khz - UART. Puede encontrar tutoriales en Youtube sobre cómo configurar este módulo con Arduino.

Paso 5: proceso

Proceso
Proceso

Es hora de explicar cómo se hicieron las cosas. Siga la descripción paso a paso:

1. Coger una cartulina de 21x21 cm, así como cartulina extra para cortar y pegar las paredes de la parte superior del tablero, con el fin de hacer 16 cuadrados con A B C D 1 2 3 4 enumerados. Dado que el cartón es delgado, puede colocar 16 sensores de efecto hall en cada cuadrado, con 3 patas cada uno y 16 LED con 2 patas cada uno.

2. Después de configurar los componentes, necesitará soldar un poco para soldar las patas de los sensores de efecto Hall y los LED a los cables de puente. En este punto, recomendaría seleccionar cables de colores de manera inteligente, para que no se confunda con las patas + y - de los LED, también con las patas VCC, GND y PIN de los sensores de efecto Hall. Por supuesto, uno podría imprimir una PCB con sensores e incluso el tipo WS2812 de LED ya soldados, pero decidí mantener el proyecto simple y hacer un poco más de "trabajo manual". En este punto, todo lo que tiene que hacer es preparar cables y sensores; en las etapas posteriores, siguiendo el esquema de Fritzing, puede ver dónde debe conectar el extremo de cada cable. En breve, algunos de ellos irán directamente a los PIN en el Arduino Mega (hay suficientes en el Arduino), otros al tablero y todos los GND se pueden soldar a una sola pieza de cable (haciendo un terreno común) que más adelante debe estar conectado a GND en la placa Arduino. Una nota importante aquí: los sensores de efecto Hall son OMNIDIRECCIONALES, lo que significa que no importa qué polo de un imán se mantendrá cerca del sensor, enviará 0 datos mientras haya algún campo magnético cerca y 1 cuando no lo haya, es decir, el imán está lejos (más de digamos 5 cm) del sensor.

3. Prepare un cartón similar de 21x21 cm y fije el Arduino Mega y una placa de pruebas larga en él. También puede volver a cortar 4 paredes de cualquier altura deseada de cartón y pegarlas verticalmente con esas dos capas de tablas cuadradas de 21x21 cm. Luego siga Fritzing Schematics para configurar las cosas. También puede configurar el lector RFID una vez que haya terminado con los LED y los sensores de efecto Hall.

4. Pruebe si todos los LED y sensores funcionan, enviando señales usando códigos básicos. No evite este paso, ya que le permitirá probar si todo funciona correctamente y pasar a la construcción adicional de la placa.

5. Prepare Peón y Reina, con dos imanes de un radio de 10 cm adjuntos a continuación, así como etiquetas RFID redondas. Más adelante, deberá leer las ID de esas etiquetas desde la pantalla serial en Arduino IDE.

6. Si todo funciona bien, ¡puede iniciar el código principal y probar cosas!

7 (opcional). Puede hacer algún trabajo artístico con madera que le dará a su demo una vista más natural. Eso depende de su voluntad e imaginación.

Paso 6: Algunas fotos y videos de diferentes etapas

Image
Image
Algunas fotos y videos de diferentes etapas
Algunas fotos y videos de diferentes etapas
Algunas fotos y videos de diferentes etapas
Algunas fotos y videos de diferentes etapas

Paso 7: código fuente

Código fuente
Código fuente

Ahora, cuando hayamos terminado con un prototipo, estamos listos para darle vida con el código Arduino a continuación. Intenté dejar tantos comentarios como pude, para hacer comprensible el proceso de análisis de código. Para ser honesto, la lógica puede parecer un poco compleja a primera vista, pero si profundiza en la lógica del código, se verá más completo.

Nota: Al igual que en el tablero de ajedrez real, numeré los cuadrados de forma abstracta como A1, A2, A3, A4, B1,…, C1,…, D1,.., D4. Sin embargo, en el código, no es práctico utilizar esta notación. Por lo tanto, utilicé matrices y representé cuadrados como 00, 01, 02, 03, 10, 11, 12, 13,…, 32, 33 respectivamente.

¡Gracias por su atención! Pruebe todo y sea libre de escribir en los comentarios sobre cualquier tipo de error que me haya perdido, mejoras, sugerencias, etc..com) o agregar skype (tahir.miriyev9r1), para que podamos programar una conversación y discutir las cosas en detalle. ¡La mejor de las suertes!