4.- Sensor array

Cada sensor anirà ubicat a sota cada casella, per tant es necessitaran 64 sensors. Aquests hauran de conformar una matriu que serà gestionada pel codi del el microcontrolador que faré servir, codi que hauré d'escriure jo evidentment.

Per gestionar una matriu 8x8 ha ha varies opcions, la més immediata és tenir una entrada al microcontrolador per cada sensor, això implicaria tenir com a mínim 64 entrades (64 pins) disponibles només pels 64 sensors, després es necessitarien encara més entrades pels demés elements electrónics del taulell.

64 entrades pels sensors són DEFINITIVAMENT massa! és per això que es va implementar la llibreria Keypad per microcontroladors com Arduino però la té tothom. Aquesta llibreria permet reduir les entrades a 16 (8+8) convertint aquesta xarxa de 64 sensors en una matriu bidimensional de 8 files i 8 columnes.

Cada sensor estará ubicado debajo de cada casilla, por lo que se necesitan 64 sensores. Estos tendran que conformar una matriz que será gestionada por el código del microcontrolador que usaré. Mi intención es escribir mi propio código.

Para gestionar la matriz 8x8 hay varias opciones, la más inmediata seria tener una entrada para cada sensor, eso implicaría tener como mínimo 64 entradas (pins) disponibles sólo para los sensores, después se necesitarían más para el resto del hardware que se pretenda utilizar, aparte tendria que ir cada sensor con su cable al micro.

DEFINITIVAMENTE 64 entradas es una tontería, por suerte disponemos de la libreria Keypad, disponibla para todos los micros del mercado (casi seguro vamos), que nos facilita mucho esta tarea. Esta libreria permite reducir las entradas a 16 (8+8) convertiendo esta matriz de 64 en una bidimensional de 8 filas y 8 columnas.

Each sensor will be located below each square, so 64 sensors will be needed. These will have to form an array that will be managed by the code of the microcontroller that I will use, code that I will have to write obviously.

To manage an 8x8 array there are several options, the most immediate is to have an input to the microcontroller for each sensor, this would mean having at least 64 inputs (64 pins) available only for the 64 sensors, then even more inputs would be needed for the other elements counter electronics.

64 inputs for the sensors are DEFINITELY too much! that’s why the Keypad library was implemented for microcontrollers like Arduino but everyone has it. This library allows to reduce the entries to 16 (8 + 8) turning this matrix of 64 sensors into a two-dimensional array of 8 rows and 8 columns.

La disposició ha de ser la següent:



Es tracta d'unir un dels extrems de cada sensor per crear una fila i l 'altre per crear una columna, d'aquesta manera, i amb la llibreria keypad del nostre microcontrolador només ens fara falta 8 entrades per les files i 8 per les columnes.

Se trata de unir uno de los extremos de cada sensor formando una fila i el otro formando una columna, de esta manera, y con la libreira Keypad, sólo necesitaremos 8 entradas para las filas y 8 para las columnas.

Just joining one of the ends of each sensor to each other forming a row and the other end forming a column we will need just 8 entries for the rows and 8 for the columns.

Per exemple, si tenim peça sobre el sensor B del dibuix obtindrem aquesta lectura revisant la fila 1 que vol dir activant la fila 1 per veure quantes columnes actives de sortida té, així obtenim un node actiu, en aquest cas Row1Col2:

Con una pieza encima de la casilla B obtendremos un nodo activo en la fila 1 columna 2. Asociando filas i columnas a casillas obtendremos en qué casillas hay pieza.

With a piece above square B we will obtain an active node in row 1 column 2. Associating rows and columns with squares we will obtain in which squares there is a piece.



Veiem com activant la fila 1, la columna 2 és la que està activa per tant vol dir que hi ha peça a la casella 1-2.

Aquesta configuració cartesiana té un petit problema i és que quan tenim més de 2 sensors actius pot ser que ens doni una lectura equivocada en alguna casella per l'efecte de sensors sobre els que passa senyal en sentit contrari activant files o columnes que no estem llegint en aquell moment.

Per exemple, si tenim peça sobre A, B i C, veiem que el sensor D té lectura sobre la seva fila i sobre la seva columna ja que la fila 1 la fila 2 la columna 1 i la 2 estan actives i el node 2-1 sembla que sigui actiu quan en realitat està obert això és degut a que la corrent es cola pel sensor C.

Activant la fila 1 queden actives la columna 1 (per efecte del sensor A) i la columna 2 (per efecte del sensor B) però també queda la fila 2 activa per la senyal que passa per C.

Vemos como activando la fila 1, la columna 2 es la que está activa por tanto significa que hay pieza en la casilla 1-2.

Esta configuración cartesiana tiene un pequeño problema y es que cuando tenemos más de 2 sensores activos puede que nos dé una lectura equivocada en alguna casilla por el efecto de corrientes que atraviesan sensores en sentido contrario

Por ejemplo, si tenemos pieza sobre A, B y C, vemos que el sensor D tiene lectura sobre su fila y sobre su columna ya que la fila 1 la fila 2 la columna 1 y la 2 están activas y el nodo 2- 1 parece que sea activo cuando en realidad está abierto esto es debido a que la corriente se cuela por el sensor C.

Activando la fila 1 quedan activas la columna 1 (por efecto del sensor A) y la columna 2 (por efecto del sensor B) pero también queda la fila 2 activa por la señal que pasa por C.

We can see how by activating row 1, column 2 is the one that is active so it means that there is piece in box 1-2.

This Cartesian configuration has a small problem and is that when we have more than 2 active sensors it may give us a wrong reading in some square by the effect of sensors on which it passes in the opposite direction activating rows or columns that we are not reading in that moment.

For example, if we have piece on A, B and C, we see that sensor D has reading on its row and on its column since row 1 row 2 column 1 and 2 are active and node 2- 1 appears to be active when in fact it is open this is because the current flows through sensor C.

By activating row 1, column 1 (due to the effect of sensor A) and column 2 (due to the effect of sensor B) remain active, but row 2 also remains active due to the signal passing through C.



Per evitar això només col.locant diodes als extrems de cada sensor ens evitaran que passin les corrents paràsites. Hauria de quedar així:

Para evitar esto sólo colocando diodos en los extremos de cada sensor nos evitarán que pasen las corrientes parásitas. Debería quedar así:

To avoid this just by placing diodes at the ends of each sensor will prevent us from passing parasitic currents. It should look like this:


Per tant, finalment la matriu sencera haurà de tenir un aspecte així / aspecto final que tendrá que tener / the final look it has to have



Per tant es necessitaran 64 diodes més per la matriu. 64 diode more will be needed. The 1N4148 will be perfect.

1N4148 diode


Comentaris

Entrades populars d'aquest blog

45.- Weighting the pieces

3.- Sensors II

21.- Electronic scheme (updated 26/08/2020)