Prove Arduino: prima bozza di Tris

Questo articolo descrive il secondo passo compiuto per la realizzazione “casalinga” di una scacchiera elettronica basata sul riconoscimento della posizione e del movimento dei pezzi tramite sensori a effetto di Hall posti sulla scacchiera e magneti posti all’interno dei pezzi.

Questo secondo passo è consistito nella realizzazione di una scacchiera 3×3. Facile da realizzare, questa mini scacchiera permetterà comunque di verificare la possibilità di discriminare le pedine presenti sulle case e di valutare eventuali condizioni di interferenza.

L’idea è di utilizzare la scacchiera  per giocare il Tris realizzando in Arduino, oltre che il software per riconoscere la posizione delle pedine, anche l’algoritmo per giocare, vista la semplicità dell’algoritmo stesso.

Per realizzare la scacchiera mi sono avvalso del fondamentale aiuto di un amico, grande tecnico elettronico nonché bravo artigiano del legno. Per questo passo a lui si deve la realizzazione della scacchiera e dello shield Arduino. Io mi sono limitato a mettere alcune delle idee e lo sviluppo del software.

Per oggi mi limito a presentare lo schema e alcune foto della realizzazione pratica.

Schema della scacchiera Tris con sensori ad effetto di Hall
Schema della scacchiera Tris con sensori ad effetto di Hall

I sensori ad effetto di Hall utilizzati sono gli A1120EUA già visti in un precedente articolo.

Invece di collegare i nove sensori a nove differenti IO digitali di Arduino si è preferito realizzare uno schema a tre righe e tre colonne in modo da ridurre il numero di IO necessari a 6. Questo sistema, se per il momento porta un vantaggio irrilevante, nella realizzazione finale della scacchiera 8×8 porterà vantaggi notevoli permettendo di ridurre il numero di linee di IO necessarie da 64 a soli 16.

Per leggere lo stato di tutti i sensori la soluzione software sarà quella di mandare in stato alto una sola linea tra quelle che alimentano le righe (D3, D4 e D5) e leggere le tre colonne (D0, D1 e D2). Iterando sulle tre righe si potrà leggere lo stato di tutti i sensori.

Poiché un output digitale di Arduino non è in grado di alimentare insieme tre sensori, su ogni riga si è utilizzato uno stadio driver con un transistor 2N3904.

A seguire potete vedere le foto del prodotto finito, scacchiera e shield. Per oggi basta, nella prossima puntata vedremo il software.

La scacchiera per il Tris, con Arduino Uno e relativo shield connesso
La scacchiera per il Tris, con Arduino Uno e relativo shield connesso

 

Lo shield utilizzato per l'acquisizione dello stato della scacchiera
Lo shield utilizzato per l’acquisizione dello stato della scacchiera

 

Posizionamento e collegamento dei sensori ad effetto di Hall sotto la scacchiera
Posizionamento e collegamento dei sensori ad effetto di Hall sotto la scacchiera

 

 

Prove Arduino: sensore ad effetto di Hall

Per un nuovo progetto casalingo su cui sto cominciando a lavorare ho realizzato un semplice circuito con due sensori ad effetto di Hall collegati a una scheda Arduino Uno.

Arduino: test con sensore ad effetto di Hall
Arduino: test con sensore ad effetto di Hall

Dal punto di vista circuitale è tutto molto semplice. Come sensore si è utilizzato il A1120EUA di Allegro Microsystems, connesso a una linea di I/O di Arduino secondo il seguente schema:

Schema di collegamento per un sensore a effetto di Hall A1120
Schema di collegamento per un sensore a effetto di Hall A1120

Vcc (5V) e GND sono connessi ai corrispondenti pin della scheda Arduino Uno, OUT viene connesso a un I/O digitale della scheda Arduino.

Se nessun magnete è prossimo al chip A1120, su OUT si leggerà un livello alto (5V), mentre se si avvicina un magnete si leggerà un livello basso (0V).

Per valutare eventuali problemi di interferenza tra vari sensori, il primo circuito realizzato ha già due sensori, ognuno collegato a una diversa linea di I/O. Nel loop principale  dello sketch Arduino vengono letti i due input e se almeno un magnete è rilevato viene acceso il led L presente sulla scheda connesso alla linea di I/O 13.

Inoltre sulla console seriale nella linea viene inviato un messaggio con lo stato degli I/O tutte le volte che c’è una variazione. A seguire lo sketch completo.

 

CREDITS: Come spunto per il circuito e lo sketch si è preso un articolo sul sito inglese hobbytronics.