Entrades

S'estan mostrant les entrades d'aquesta data: maig, 2020

31.- Notation

Imatge
Una de les característiques que ha de tenir el taulell és una tft on es vagin escrivint les jugades, en un principi això estava pensat per poder desar les partides en la SD que les tft porten incorporades, el que ha passat és que L'arduino Micro té molt poca memòria, com que no el coneixia ni havia pensat que tingués tant poca memòria i aquesta funció no hi cap. També em faltarien pins per poder completar aquesta operació, per tant, la tft queda a nivell testimonial i no serveix per a gaire més que per fer bonic. Utilitzant una placa teensy 2.0++ que és quasi igual de gran que el Micro es podria fer però ja tinc les plaques a mig fer i ara ja és massa tard (potser en un futur). En el video es veu la primera proba d'escriptura dels moviments, hi ha alguna cosa que falla encara :(, però ja ho solucionaré. Una de las características que debe tener el tablero es una tft donde se vayan escribiendo las jugadas , en un principio esto estaba pensado para poder guardar la

30.- Capturing pieces

Imatge
Vull que es puguin capturar les peces tant si s'aixeca primer la peça que captura com la capturada. Quiero que se puedan capturar las piezas tanto si se levanta primero la pieza que captura como la capturada. I want the pieces to be able to be captured whether the capturing piece or the captured one is lifted first.

29.- Castling

Imatge
És una de les coses a gestionar, que es puguin fer els enrocs, en el meu cas he fet servir una variable booleana que estarà a FALSE mentre no es faci l'enroc i passarà a TRUE quan es produeixi aquesta situació, no té cap mena de complicació. ...Com podeu veure al final del video, ara ve la gestió de la captura de peces.... Es una de las cosas a gestionar , que se puedan hacer los enroques , en mi caso he usado una variable booleana que estará a FALSE mientras no se haga el enroque y pasará a TRUE cuando se produzca esta situación , no tiene ningún tipo de complicación . ...Como se puede ver en el final del video, ahora toca la gestión de la captura de piezas... It is one of the things to manage, that the castings can be done, in my case I used a Boolean variable that will be to FALSE as long as the castling is not done and will pass to TRUE when this situation occurs, it does not have any of complication. ..As you can see at the end of the video, now its time

28.- Trying to play with Arena

Imatge
Una vegada dominat el moviment lo únic que haig de fer és mirar la matriu inicial i la final i quins elements d'aquestes són els que han canviat, evidentment, si no hi ha hagut moviment senzillament segueixo escanejant el taulell i res més. Els digits de les matrius els associo amb una casella amb el format de referència dels taulells (a1,...,h8) obtenint la casella de sortida i la d'arribada. Aquestes dues caselles formaran l'ordre que enviaré pel port serie amb la llibreria Keyboard que emularà una entrada per teclat de la jugada al programa de l'ordinador. Una vez do minado el movimiento lo único que tengo que hacer es mirar la matriz inicial y la final y qué elementos de estas son los que han cambiado, evidentemente , si no ha habido movimiento sencillamente sigo escaneando el mostrador y nada más. Los digitos de las matrices los asocio con una casilla con el formato de referencia de los azulejos ( a1 , ..., h8 ) obteniendo la

27.- Movement detection

Imatge
Amb els imans ja escollits i les peces amb els imans incorporats puc començar a fer les probes de codi. El primer que se m'acut és intentar detectar el moviment, és a dir, quan s'activen i desactiven caselles. Això es fa al mateix algoritme de la lectura del taulell, en el moment en que es compara l'estat actual amb l'anterior. Ja soc capaç, doncs, de detectar el moviment de peces. Con los imanes ya elegidos y las piezas con los imanes incorporados puedo empezar a hacer las pruebas de código. Lo primero que se me ocurre es intentar detectar el movimiento, es decir, cuando se activan y desactivan casillas . Esto se hace en el mismo algoritmo de la lectura del tablero , en el momento en que se compara el estado actual con el anterior . With the magnets already chosen and the pieces with the built-in magnets I can start doing the code tests. The first thing that comes to mind is to try to detect movement, that is, when boxes are turned

26.- Magnets

Imatge
Una de les altres coses a decidir és quin imant he de fer servir. El taulell que he fet és de 4cm d'escac i peces del núm. 4, vaig decidir fer aquestes dimensions perquè és la mida perfecte per mi, ni massa gran ni massa petit. Vaig començar, doncs, a fer probes amb diferents imants per aquestes dimensions. Primer he hagut de fer probes per detectar les peces al meu minijac O tra de las cosas a decidir es qué imán tengo que usar . El tablero que he hecho es de 4cm de escaque y piezas del núm . 4, decidí hacer estas dimensiones porque es el tamaño perfecto para mí , ni demasiado grande ni demasiado pequeño . Empecé , pues, a hacer pruebas con diferentes imanes para estas dimensiones. Antes de todo he necesitado hacer varias pruebas de detección con mi minijac. One of the other things to decide is which magnet should I use. The board I made is 4cm square and pieces of no. 4, I decided to make these dimensions because it is the perfect size for me, neithe

25.- Time selection finished and players button controling it

Imatge
Per finalitzar el tema del temps afegeixo el segon display i el botó dels jugadors que utilitzaré de la següent forma: no hi haura un botó per cada jugador sino que només tindrà botó el jugador blanc, la absència de senyal del blanc serà entesa com la senyal del negre, així m'estalvio una entrada a la targetes. Para finalizar el tema del tiempo añado el segundo display y el botón de los jugadores que utilizaré de la siguiente forma : no habrá un botón para cada jugador sino que sólo tendrá botón el jugador blanco , la ausencia de señal del blanco será entendida como la señal del negro, así me ahorro una entrada a la tarjetas. To end the topic of time selecting I add the second display and the player button that I will use as follows: there will be no button for each player but only the white player will have a button, the absence of white signal will be understood as the signal of black, so I save an entry on the cards. El código para la entrada

24.- Selecting times with displays and tft

Imatge
EL següent pas obligat és la selecció del temps i l'increment amb els 2 dispositius, els displays i la tft, això implica connectar el Micro i el Nano directament entre ells. Es pot veure com el Micro subministra la tensió al Nano i els dos comparteixen els botons de Ok i seg/min en paral.lel. El siguiente paso obligado es la selección del tiempo y el incremento con los 2 dispositivos, los displays y la tft , esto implica conectar Micro y Nano directamente entre ellos. Se puede ver como el Micro suministra la tensión al Nano y los dos comparten los botones de Ok y seg / min en paralelo . The next required step is the selection of time and increment with the 2 devices, displays and tft, this involves connecting the Micro and Nano directly to each other. You can see how the Micro supplies voltage to the Nano and the two share the Ok and sec / min buttons in parallel. The wiring scheme: No tengo el código que utilizé para esta prueba pero en el siguie

23.- 7 segment displays

Imatge
Després de la tria de temps vull que es visualitzin en dos displays de 4 digits. Aquests estaran exclusivament goevernats pel Nano. Comentar que tenen 4 pins cada un i això implicaria 8 pins al Nano cosa que ara mateix no tinc. Per solucionar això es pot fer servir el protocol I2C posant els 2 displays en paral.lel, aquests tindran una adreça associada i cada vegada que ens volguem comunicar amb un dels dos n'hi haurà prou amb enviar les dades a la seva adreça corresponent. Per saber quina adreça té cada display s'ha de connectar cada display als pins I2C del Nano i executar l'script següent, l'adreça sortirà al monitro série de l'IDE : #include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); while (!Serial); // Leonardo: wait for serial monitor Serial.println("\nI2C Scanner"); } void loop() { byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for(address = 1; address < 1

22- Selecting playing time and increment

Imatge
La primera part del projecte està basada en jugar amb rellotge, evidentment això vol dir que el taulell permetrà jugar contra l'ordinador i contra un altre jugador. Les partides doncs estaran controlades pel botóns dels jugadors en qualsevol dels dos casos, això signifaica que, al jugar human vs computer el jugador haurà de clicar el botó per ell i per la màquina. Amb la futura implementació de jugar sense temps això no caldrà però de moment tiro per aquest camí. La primera parte del proyecto está basada en jugar con reloj , evidentemente esto quiere decir que el tablero permitirá jugar contra el ordenador y contra otro jugador . Las partidas pues estarán controladas por botones de los jugadores en cualquiera de los dos casos , esto significa que , al jugar human vs computer el jugador deberá pulsar el botón por él y por la máquina. Con la futura implementación de jugar sin tiempo esto no será necesario pero de momento tiro por este c

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

Imatge
Aquest és l'esquema electrònic complert, es poden veure els dos microcontroladors, L'Arduino Micro (tft i codi de joc) i l'Arduino Nano (displays, codi del temps i (potser) buzzer). Este es el esquema electrónico completo , se pueden ver los dos microcontroladores , El Arduino Micro ( tft y código de juego ) y el Arduino Nano ( displays , código del tiempo y (tal vez ) buzzer) . This is the complete electronic scheme, you can see the two microcontrollers, The Arduino Micro (tft and game code) and the Arduino Nano (displays, time code and (perhaps) buzzer). Right click to download the image in order to see it in more detail This schematic was made with opensource Fritzing: https://fritzing.org /home/   UPDATED!!    I decided to make some changes to the first idea of the board. I removed the buzzer and I fixed one bug I didn't notice at the first time, and this is I connected the reset pins of the two cards in order to reset them both, with the first sc

20.- Operating sequence (needs to be updated)

Imatge
Degut a la quantitat de dispositius que he decidit gestionar necesitaré 2 plaques. He triat un arduino Nano i un Micro. Arduino NANO: Bàsicament per controlar el temps ja que aquest ha de ser gestionat apart del codi principal perquè s'ha de mantenir un descompte exacte d'un segon i si hi ha ingerències d'alguna part del codi entre mig del descompte d'un segon, aquest, no seria un descompte precís. Básicamente para controlar el tiempo ya que este debe ser gestionado aparte del código principal para que se mantendrá un descuento exacto de un segundo y si hay injerencias de alguna parte del código entre medio del descuento de un segundo, este , no sería un descuento preciso. Basically to control the time function that has to be controlled apart of the main code (controlled by the Micro) because, in order to keep exactly 1 second in the discounting time, this discount cannot be disturbed by any other part of code. So Nano has to be focused only to manage the ti