Per dovere nei confronti di Ratto93 e per la felicità di tutti ( ) ecco il mio progettino.
SchoolDuino
Prendi un Arduino, con un LED Ir, e un Ricevitore Ir. Aggiungi due pulsanti. Fiondalo in tasca ad ogni studente. (Quindi può essere benissimo uno Stand-Alone). Anzi..buttiamoci dentro anche un Display 7 segmenti.
Prendi un altro Arduino (stavolta ti serve la USB..). Sempre un Led Ir e un Ricevitore Ir. Stavolta però ninente pulsanti. Collegalo al computer.
Scrivi due piccoli firmware per l'Arduino con la USB (Che chiamerò SERVER) e per quello Stand Alone (CLIENT).
Avvia sul computer questo software: (Un migliaio di righe di codice..)
Premi Avvia.
MISSION COMPLETE
Ora..
- Lo studente Cavia arriva a scuola. Guardando con il suo Arduino il SERVER clicca il pulsantino..Tataaa..Presenza registrata.
Lo studente Cavia deve uscire prima da scuola. Guardando il Server preme il pulsantino..Tataaa..Uscita anticipata registrata.
ecc..
Funzioni accessorie: Lo studente vuole sapere quante assenze ha fatto dall'inizio dell'anno?..Guardando il Server preme L'ALTRO pulsantino. tataaa..Sul display 7 segmenti viene visualizzato il numero delle..mmm..marinate..Totali!.
FEATURE:
- Salvataggio della Banca Dati (assenze, ritardi..ecc) in formato crittografato AES a 256 Bit
- Comodo, pratico, intuitivo, mirabolante, bellissimo, FA anche il Caffè! (no scherzoo
)..Dovrò pur venderlo bene il mio prodotto 8)
- Altre che sono presenti nel software..
Ho pensato molto a come risolvere il problema di interferenza tra Ir nel caso due studenti vogliano registrarsi contemporaneamente. Ho risolto adottando un sistema a turni di pochissimi millisecondi. In pratica quando un Client vuole trasmettere aspetta che il Server dia inizio al suo turno e una volta che tocca a lui in quei pochi millisecondi invia la richiesta.
Attualmente in un secondo sono riuscito a farci stare 33 turni. Quindi in una scuola da 300 persone in media uno studente deve aspettare 5 secondi per registrarsi. Ma penso che perdendoci del tempo ulteriore posso ancora aumentare il numero di turni al secondo. Ma il tempo manca..
Soddisfazioni personali: TANTE!.
- Primo programma in Java oltre ad Helloword!
- Primo progetto Arduino!
Idea originale e "autoideata"
Client:
SERVER:
Momenti da ricordare:
"Il giorno in cui ho scelto che non volevo uno Starter Kit e ho cominciato ad ordinare componenti a caso su RS. e Non ne ho praticamente sbagliato uno ]
Cmq un Grazie doveroso a tutta la community. Mi avete aiutato davvero tanto!. Un mese fa non sapevo nemmeno cos'era Arduino e ora sono felice come un bimbo. Se ho flashato bootloader ecc è merito vostro (E' giusto pensare di mettere una resistenza da 220Ohm al catodo di un Display a Catodo comune in moto da non doverne mettere una per ogni Pin? fin'ora funziona.. :P)
Allegato trovate il software da eseguire sul computer!. (Se trovate Bug fatemelo sapere prontamente).
Speriamo che la commissione apprezzi lo sforzo e che tutto vada per il verso giusto. (La figuraccia è sempre in agguato e gli infrarossi non danno moltissima sicurezza.. ) . Però ho utilizzato un algoritmo Sony per la trasmissione che ho modificato per renderlo più veloce che devo dire che è molto preciso e sicuro. (Un grazie a Ken Sheriff per il codice di base).
Grazie anche al creatore della librearia ControlP5 per Processing.
Se avete domande chiedete pure! Tenete conto che è un prototipo e solo il punto di partenza. Penso che per la maturità però basti questo e mi convenga usare il tempo restante per ripassare altre più materie possibili.
SchoolDuino.zip (2.18 MB)