Cronocurling - Chronocurling
Ho già rotto le scatole a tutti quelli che mi stanno vicino raccontando di tutto su curling. Sono anche riuscito a potare i miei colleghi a fare un prova. Io non sono mai stato un grande sportivo, ma questa disciplina mi sta prendendo per vari aspetti che non sto qui ad elencare. Questo sport mi occupa anche nel tempo libero, quindi: quando non lavoro o quando non sono sul ghiaccio. Ultimamente ho avuto qualche problema nel regolarità nella velocità nel lancio dei sassi. Troppo corto o troppo lungo e questo mi ha spinto a realizzare un cronometro per misurare il tempo di uno slide.
Progetto
Obiettivo: realizzare un cronometro per misurare il tempo da backline oppure teeline fino alla hogline, il risultato poi deve essere visualizzato su un display. Nello sviluppo poi ho aggiunto anche un app per il cellulare per visualizzare le stesse informazioni del display. Ho realizzato il mio cronometro creando un modulo per le fotocellule (ne servono due) e un modulo per il display. Quest’ultimo é ancora da definire se utile e debba restare in futuro, prima devo fare delle prove sul campo.
Ho provato a creare un sistema che rispettasse questi criteri:
semplice da installare
semplice da usare
utilizzabile anche da una sola persona
Così ho sviluppato delle fotocellule che comunicassero tra di loro e con un display senza fili. Ho usato dei moduli nRF24L01 in combinazione con degli Arduino, perché hanno delle ottime librerie (https://github.com/tmrh20/RF24) che semplificano la programmazione. Io ho sfruttato la comunicazione punto a punto utilizzando la fotocellula di stop (posizionata alla hogline) come master per tutto il cronometro. Cosa significa? La fotocellula master comanda il gioco, ordinando alle altre cosa devono fare. Questo permette di ridurre al minimo i falsi allarmi, però complica un po’ la programmazione.
Programmazione
Il cuore di tutto sono tre Arduino, i due che si occupano delle fotocellule hanno lo stesso programma e lo stesso hardware. La differenza é data da un’entrata se configurata a livello alto o livello basso. Il tutto é stato programmato seguendo questo principio:
Accensione display
Accensione e regolazione della fotocellula start (sulla backline o teeline)
Accensione e regolazione della fotocellula stop (sulla hogline)
La fotocellula stop verifica la presenza dell’altra fotocellula, se non presente visualizza un messaggio di errore “Err” sul display (se presente). Altrimenti visualizza sul display un solo 0.
Da questo momento la fotocellula start é armata e qualsiasi interruzione del fascio viene annunciato al master
Quando la fotocellula start annuncia un interruzione parte il cronometro, che però non visualizza in tempo reale il valore sul display per non influenzare la persona che si allena.
Se entro 5 secondi dalla partenza non vi é nessun segnale di stop, allora sul display viene visualizzato il messaggio di errore “Err”, altrimenti viene visualizzato il tempo misurato in secondi e centesimi (i millesimi non sono visualizzati)
Quando appare un solo 0 sul display (dopo 5 secondi) allora é possibile partire con il tentativo successivo
Questo sistema non richiede nessuna interazione tra la persona che si allena e il cronometro. La scelta di visualizzare solo per 5 secondi il tempo misurato é stata fatta sul mio tavolo di casa, eventuali modifiche avverranno dopo la prova sul campo.
Hardware
Cercando su internet ho trovato un progetto simile per realizzare un cronometro come questo. La persona ha utilizzato per la parte delle barriere ottiche dei diodi laser con delle fotoresistenze per detettare l’assenza del laser. Ho realizzato dei test e il risultato non mi soddisfaceva, perché il laser era troppo concentrato e riflettendo sul catarifrangente ritornava quasi esattamente in direzione del diodo. Il cambiamento di valore era minimo e richiedeva una calibrazione iniziale (rendendo più complicata l’installazione). Ho optato quindi per dei sensori ottici usati nel automazione che risultano più cari, ma sono molto più affidabili e semplici da installare. Lo svantaggio di questi sensori é che in base al modello soffrono un po’ le distanze, quindi non tutto l’hardware é adatto allo scopo. Mentre per il laser questo non era un problema.
Le restanti componenti che ho usato sono dei moduli dedicati per la funzione. Come il modulo nRF24L01 che ho usato per la comunicazione wireless, come descritto in precedenza. Il display invece é collegato a un driver per semplificare la gestione di un display con 4 digit, che si chiama TM1637. Con due collegamenti per i dati e un protocollo (per Arduino esiste una libreria) é possibile gestire il display, senza preoccuparsi del aggiornamento continuo del display o dei registri per il controllo dei display. Un tale modulo riduce drasticamente anche l’hardware e il cablaggio necessario.
Ho usato anche un modulo bluetooth JY-MCU e la libreria SoftwareSerial per creare una porta seriale fittizia (non hardware) e collegare direttamente il modulo bluetooth. Questo tipo di modulo non necessita di nessuna configurazione, basta collegare correttamente il Tx e Rx e il gioco é fatto. Lo svantaggio é che il nome visibile tramite bluetooth non é configurabile.
App Android
Ho creato anche un applicazione per Android per visualizzare i valori registrati e per registrare le statistiche per tre giocatori. Rispetto al software per Android in questo caso ho sfruttato un sistema di programmazione a blocchi chiamato App Inventor (http://ai2.appinventor.mit.edu/). L’app si collega al modulo del display e visualizza quello che riceve il display. Dopo le prove sul campo deciderò se tenere il modulo display o rimpiazzare il tutto con un’applicazione. Se dovesse essere il caso allora il modulo display non servirebbe più e il modulo bluetooth verrebbe spostato nella fotocellula stop.
Allegati
Nella mia filosofia del condividere tutto, vi metto a disposizione tutto il mio lavoro. Vi prego solo di farmi sapere in che club/pista il mio lavoro é servito a qualcosa. Quindi scrivetemi a: curling@frigi.ch.
Modulo fotocellula
Modulo display
Applicazione cellulare
Clonclusioni
Anche questo piccolo progetto mi ha permesso di apprendere nuove conoscenze. Eventuali modifiche, aggiornamenti, miglioramenti avverranno dopo le prove che farò nei prossimi giorni sul ghiaccio. Naturalmente pubblicherò tutto qui. Sperò che a qualcuno possa interessare il tutto.