Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Tablero de ajedrez electrónico (prototipo de demostración 4x4)

Componentes y suministros

Sensor de efecto Hall
× 16
Protoboard sin soldadura de tamaño completo
× 1
LED (genérico)
× 16
Lector RFID (genérico)
Antena y lector RFID de 125 kHz
× 1
Arduino Mega 2560
× 1
Etiqueta RFID 3M
× 2

Herramientas y máquinas necesarias

plexiglás
Papel brillante
tablones de madera
Pintura acrílica (verde oscuro y crema) x2
Imanes redondos de 10 mm
Piezas de ajedrez de peón y reina
Soldador y materiales de soldadura

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

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, ofrecido 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 fabricantes 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. , LED 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 encontrar una solución creativa para el problema de reconocimiento de figuras, utilizando un lector RFID, sensores de efecto Hall y Arduino Mega.

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 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 la partida 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 lengüeta, 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.

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

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

Nota # 2:Aunque se usa ampliamente, por mi experiencia puedo decir que la tecnología RFID no es la mejor idea para usar en aplicaciones de bricolaje (por supuesto, si tiene 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.

Aquí está la lista de todas las herramientas Usé para el proyecto:

Componentes electrónicos:

  • Protoboard (x1)
  • Sensores de efecto Hall omnidireccionales A1126LUA-T (IC-1126 SW OMNI 3-SIP ALLEGRO) (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

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, deberá realizar algunas soldaduras 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 un PCB con sensores e incluso 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 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 al 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 puedes volver a cortar 4 paredes de cartón a la altura que desees 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 10 cm de radio adjuntos debajo, 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.

Aquí hay algunos videos y fotos de diferentes etapas:

¡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 en Skype (tahir.miriyev9r1), para que podamos programar una conversación y discutir las cosas en detalle. ¡Mucha suerte!

Código

  • thinK_code.ino
thinK_code.ino Arduino
Traté de 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 usar esta notación. Por lo tanto, utilicé matrices y representé cuadrados como 00, 01, 02, 03,10,11,12,13, ..., 32,33 respectivamente.
 #include  SoftwareSerial RFID (11, 12); // ----------------------------------------------- ------------ COMIENZO ------------------------------------- -------------------------------------------------- ------ int posición_vacío [2]; int posición_figura [2] [2]; // pensando en la posición de una figura como una matriz de dos vectores (reina y peón) con tres entradas (posición x, posición y y valor 1 (reina), 2 (peón) int new_id [14] ={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; int id_type_matrix [4] [4] ={{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}; int temp =0; int queen_id [14] ={2, 53, 65, 48, 48, 56, 51, 49, 55, 70, 65, 51, 52, 3}; int pawn_id [14] ={2, 53, 65, 48, 48, 56, 51, 56, 67, 49, 56, 52, 68, 3}; int temp_vect [2]; int count =0; int ID =0; int yeni_id [14]; // matriz de matriz inicial para sensores de efecto Hallint hes_bool_matrix [4] [4]; // lista de efecto Hall pines de sensores en Arduinoconst int hes_00 =44; const int hes_01 =45; const int hes_02 =46; const int hes_03 =47; const int hes_10 =48; const int hes_11 =49; const int hes_12 =50; const int hes_13 =2; const int hes_20 =3; const int hes_21 =4; const int hes_22 =5; const int hes_23 =6; const int hes_30 =7; const int hes_31 =8; const int hes_32 =9; const int hes_33 =10; int hes_pin_matrix [4] [4] ={{hes_00, él s_01, hes_02, hes_03}, {hes_10, hes_11, hes_12, hes_13}, {hes_20, hes_21, hes_22, hes_23}, {hes_30, hes_31, hes_32, hes_33}}; // LED pinsconst int led_00 =22; const int led_01 =23; const int led_02 =24; const int led_03 =25; const int led_10 =26; const int led_11 =27; const int led_12 =28; const int led_13 =29; const int led_20 =30; const int led_21 =31; const int led_22 =32; const int led_23 =33; const int led_30 =34; const int led_31 =35; const int led_32 =36; const int led_33 =37; int led_matrix [4] [4] ={{led_00, led_01, led_02, led_03}, {led_10, led_11, led_12, led_13}, {led_20, led_21, led_22, led_23}, {led_30, led_31, led_32, led_33}}; // ---------- ------------------------------------------- AREA DE CONFIGURACION ----- -------------------------------------------------- -------------------------- configuración vacía () {RFID.begin (9600); Serial.begin (9600); // modos de lectura (entrada) para sensores de efecto hall pinMode (hes_01, INPUT); pinMode (hes_02, ENTRADA); pinMode (hes_03, ENTRADA); pinMode (hes_00, ENTRADA); pinMode (hes_10, ENTRADA); pinMode (hes_11, ENTRADA); pinMode (hes_12, ENTRADA); pinMode (hes_13, ENTRADA); pinMode (hes_20, ENTRADA); pinMode (hes_21, ENTRADA); pinMode (hes_22, ENTRADA); pinMode (hes_23, ENTRADA); pinMode (hes_30, ENTRADA); pinMode (hes_31, ENTRADA); pinMode (hes_32, ENTRADA); pinMode (hes_33, ENTRADA); // Modos de escritura (salida) para pines LED pinMode (led_00, OUTPUT); pinMode (led_01, SALIDA); pinMode (led_02, SALIDA); pinMode (led_03, SALIDA); pinMode (led_10, SALIDA); pinMode (led_11, SALIDA); pinMode (led_12, SALIDA); pinMode (led_13, SALIDA); pinMode (led_20, SALIDA); pinMode (led_21, SALIDA); pinMode (led_22, SALIDA); pinMode (led_23, SALIDA); pinMode (led_30, SALIDA); pinMode (led_31, SALIDA); pinMode (led_32, SALIDA); pinMode (led_33, SALIDA); read_tags (); retraso (1000); primera_figura (); retraso (1000); Serial.end (); RFID.end (); retraso (5000); Serial.begin (9600); retraso (1000); RFID.begin (9600); retraso (1000); read_tags (); retraso (5000); //RFID.flush (); // detiene múltiples lecturas second_figure (); delay (1000); // id_type_matrix [0] [2] =2; // id_type_matrix [2] [1] =1;} // ------------------ --------------------------------- AREA DE FUNCIONES --------------- --------------------------------------------- // --- ------------------------------------- Seguimiento de identificación RFID y reconocimiento de figuras ------- ---------------------------------------- ID_comparación booleana (int aa [14], int bb [14]) {booleano ff =falso; int fg =0; para (int cc =0; cc <14; cc ++) {if (aa [cc] ==bb [cc]) {fg ++; }} if (fg ==14) {ff =true; } return ff;} int read_tags () {Serial.println ("Coloque la figura cerca del lector RFID"); retraso (5000); RFID.flush (); // detiene múltiples lecturas si (RFID.available ()> 0) {delay (300); para (int z =0; z <14; z ++) {ID =RFID.read (); new_id [z] =ID; Serial.println (new_id [z], DEC); retraso (500); }} Serial.println ("Se realizó la lectura de ID"); ++ recuento; retraso (5000); // hora de colocar la figura en un tablero y la segunda frente a un lector RFID return new_id;} void first_figure () {if (compare_ID (new_id, queen_id) ==true) {Serial.println ("QUEEN IS DETECTED" ); for (int s =0; s <=3; s ++) {for (int t =0; t <=3; t ++) {if (digitalRead (hes_pin_matrix [s] [t]) ==0) {id_type_matrix [s ] [t] =1; temp_vect [0] =s; temp_vect [1] =t; Serial.print ("La reina se coloca en:"); Serial.print (s); Serial.println (t); digitalWrite (led_matrix [s] [t], HIGH); retraso (1000); digitalWrite (matriz_de_ led [s] [t], BAJA); }}}} else if (compare_ID (new_id, pawn_id) ==true) {Serial.println ("PEÑA ES DETECTADA"); for (int s =0; s <=3; s ++) {for (int t =0; t <=3; t ++) {if (digitalRead (hes_pin_matrix [s] [t]) ==0) {id_type_matrix [s ] [t] =2; temp_vect [0] =s; temp_vect [1] =t; Serial.print ("El peón se coloca en:"); Serial.print (s); Serial.println (t); digitalWrite (led_matrix [s] [t], HIGH); retraso (1000); digitalWrite (matriz_de_ led [s] [t], BAJA); }}}} else {Serial.println ("Figura indefinida"); }} void second_figure () {if (compare_ID (new_id, queen_id) ==true) {Serial.println ("REINA ES DETECTADA"); for (int s =0; s <=3; s ++) {for (int t =0; t <=3; t ++) {if (digitalRead (hes_pin_matrix [s] [t]) ==0 &&(s! =temp_vect [0] || t! =temp_vect [1])) {id_type_matrix [s] [t] =1; Serial.print ("La reina se coloca en:"); Serial.print (s); Serial.println (t); digitalWrite (led_matrix [s] [t], HIGH); retraso (1000); digitalWrite (matriz_de_ led [s] [t], BAJA); }}}} else if (compare_ID (new_id, pawn_id) ==true) {Serial.println ("PEÑA ES DETECTADA"); for (int s =0; s <=3; s ++) {for (int t =0; t <=3; t ++) {if (digitalRead (hes_pin_matrix [s] [t]) ==0 &&(s! =temp_vect [0] || t! =temp_vect [1])) {id_type_matrix [s] [t] =2; Serial.print ("El peón se coloca en:"); Serial.print (s); Serial.println (t); digitalWrite (led_matrix [s] [t], HIGH); retraso (1000); digitalWrite (matriz_de_ led [s] [t], BAJA); }}}}} // ------------------------------------------- ---- ENCONTRANDO CIFRAS -------------------------------------------- ----------------------------- // función extra para apagar los leds solo cuando vuelves a colocar la figura en el tablerovoid leds_off () {int i, j; para (i =0; i <=3; i ++) {para (j =0; j <=3; j ++) {digitalWrite (led_matrix [i] [j], LOW); }}} // --------------------------------------------- ---- REINA EN MOVIMIENTO -------------------------------------------- -------------------------------------------------- --void move_queen () {int i, j; para (i =posición_vacío [0]; i <3;) {escritura_digital (matriz_de_ led [++ i] [posición_vacío [1]], ALTA); // iluminar a lo largo de una línea vertical} for (i =empty_pos [0]; i> 0;) {digitalWrite (led_matrix [- i] [empty_pos [1]], HIGH); } para (i =posición_vacío [1]; i <3;) {digitalWrite (matriz_de_ led [posición_vacío [0]] [++ i], ALTA); // se ilumina a lo largo de una línea horizontal} for (i =empty_pos [1]; i> 0;) {digitalWrite (led_matrix [empty_pos [0]] [- i], HIGH); } i =posición_vacío [0]; j =posición_vacío [1]; para (i =i - 3, j =j - 3; i <=3, j <=3; i ++, j ++) {if (i> =0 &&j> =0 &&i! =empty_pos [0]) { Serial.print (i); Serial.println (j); digitalWrite (matriz_de_ led [i] [j], ALTA); }} i =posición_vacío [0]; j =posición_vacío [1]; para (i =i + 3, j =j - 3; i> =0, j <=3; i--, j ++) {if (i> =0 &&i <=3 &&j> =0 &&j <=3 &&i! =Empty_pos [0]) {Serial.print (i); Serial.println (j); digitalWrite (matriz_de_ led [i] [j], ALTA); }}} // ------------------------------------- empezar a leer el número de cifras y guardar posiciones para cada uno de ellos -------------------------- void figure_reading () {// lee todas las posiciones en un bucle para detectar la posición de un peón int i, j, found_figure =0; inicio:found_figure =0; // leer todas las posiciones ocupadas (0) y vacías (1) en el tablero // asignar 0 (=cuadrado vacío), 1 (=cuadrado ocupado) a una variable hes_bool_matrix [0] [0] =digitalRead (hes_00); hes_bool_matrix [0] [1] =digitalRead (hes_01); hes_bool_matrix [0] [2] =digitalRead (hes_02); hes_bool_matrix [0] [3] =digitalRead (hes_03); hes_bool_matrix [1] [0] =digitalRead (hes_10); hes_bool_matrix [1] [1] =digitalRead (hes_11); hes_bool_matrix [1] [2] =digitalRead (hes_12); hes_bool_matrix [1] [3] =digitalRead (hes_13); hes_bool_matrix [2] [0] =digitalRead (hes_20); hes_bool_matrix [2] [1] =digitalRead (hes_21); hes_bool_matrix [2] [2] =digitalRead (hes_22); hes_bool_matrix [2] [3] =digitalRead (hes_23); hes_bool_matrix [3] [0] =digitalRead (hes_30); hes_bool_matrix [3] [1] =digitalRead (hes_31); hes_bool_matrix [3] [2] =digitalRead (hes_32); hes_bool_matrix [3] [3] =digitalRead (hes_33); for (i =0; i <=3; i ++) {for (j =0; j <=3; j ++) {if (hes_bool_matrix [i] [j] ==0) {found_figure ++; if (found_figure ==1) {if (id_type_matrix [i] [j] ==0) {id_type_matrix [i] [j] =temp; temp =0; } if (id_type_matrix [i] [j] ==1) {Serial.print ("La reina está de pie sobre:"); Serial.print (i); Serial.println (j); figure_pos [0] [0] =i; figure_pos [0] [1] =j; } else if (id_type_matrix [i] [j] ==2) {Serial.print ("Peón está parado en:"); Serial.print (i); Serial.println (j); figure_pos [0] [0] =i; figure_pos [0] [1] =j; // if (id_type_matrix [i] [j] ==0) {// id_type_matrix [i] [j] =temp; // temp =0; }}}} else if (found_figure ==2) {if (id_type_matrix [i] [j] ==0) {id_type_matrix [i] [j] =temp; temp =0; } if (id_type_matrix [i] [j] ==1) {Serial.print ("La reina está de pie sobre:"); Serial.print (i); Serial.println (j); figure_pos [1] [0] =i; figure_pos [1] [1] =j; // if (id_type_matrix [i] [j] ==0) {// id_type_matrix [i] [j] =temp; // temp =0; }} else if (id_type_matrix [i] [j] ==2) {Serial.print ("Peón está parado en:"); Serial.print (i); Serial.println (j); figure_pos [1] [0] =i; figure_pos [1] [1] =j; // if (id_type_matrix [i] [j] ==0) {// id_type_matrix [i] [j] =temp; // temp =0; } // ir a salir; }}}}} fuera:if (found_figure ==0 || found_figure ==1) {ir a inicio; } más si (figura_encontrada ==2) {apagado_ leds (); } //---------------------------------------------- nosotros elige qué figura elegir --------------------------------------------- -------------------- posición_vacío [0] =-1; retraso (2000); if (digitalRead (hes_pin_matrix [figure_pos [0] [0]] [figure_pos [0] [1]]) ==1) {empty_pos [0] =figure_pos [0] [0]; posición_vacío [1] =posición_figura [0] [1]; temp =id_type_matrix [posiciones_vacías [0]] [posiciones_vacías [1]]; id_type_matrix [posiciones_vacias [0]] [posiciones_vacias [1]] =0; } else if (digitalRead (hes_pin_matrix [figure_pos [1] [0]] [figure_pos [1] [1]]) ==1) {empty_pos [0] =figure_pos [1] [0]; posición_vacío [1] =posición_figura [1] [1]; temp =id_type_matrix [posiciones_vacías [0]] [posiciones_vacías [1]]; id_type_matrix [posiciones_vacias [0]] [posiciones_vacias [1]] =0; } // ------------------------------------------- PEÓN O REINA EN MOVIMIENTO -------------------------------------------------- -------------------------------------------------- if (temp ==1) {if (empty_pos [0]! =-1) {move_queen (); ir a empezar; }} else if (temp ==2) {if (empty_pos [0]! =-1) {if (empty_pos [0] <2) {digitalWrite (led_matrix [empty_pos [0] + 1] [empty_pos [1]] , ALTO); digitalWrite (led_matrix [posición_vacío [0] + 2] [posición_vacío [1]], ALTA); } más si (posiciones_vacías [0] ==2) {digitalWrite (matriz_ led [posiciones_vacías [0] + 1] [posiciones_vacías [1]], ALTA); } demás; } delay (100);} figure_reading ();} // ------------------------------------ --------------------------------- inicio del bucle --------------- -------------------------------------------------- ------------------- bucle vacío () {figure_reading ();} 

Esquemas

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 de 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. 4x4demo_q0nvG3T3nS.fzz

Proceso de manufactura

  1. Oda al prototipo
  2. Tinta electrónica
  3. Prototipo de Raspoulette
  4. ¿Qué es RFID?
  5. Prototipo de moldes de inyección frente a moldes de inyección de producción
  6. La piel electrónica reacciona al dolor
  7. Cómo elegir una empresa de fabricación de prototipos de PCB
  8. Definiciones importantes de PCB prototipo:Parte 2
  9. ¿Qué es la creación de prototipos?
  10. Introducción a las bombas electrónicas
  11. Comprender el funcionamiento del sistema de encendido electrónico