Go Down

Topic: [Tesina] SchoolDuino (Read 3 times) previous topic - next topic

legolas93

Per dovere nei confronti di Ratto93 e per la felicità di tutti ( :smiley-sweat:) 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  :smiley-sweat:)..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  :smiley-eek: 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..  :smiley-zipper:) . 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.
"Sono convinto che l'informatica abbia molto in comune con la fisica...Dentro i confini del computer, sei tu il creatore. Controlli - almeno

Brunello

Bravo....
Ti vedo bene a fare il direttore del personale in una grande azienda

superlol

e usare rfid al posto degli infrarossi?  XD

comunque se uno non si registra? risulta assente?

a parte questo direi ottimo lavoro  ;)

tanto la scuola italiana non ha soldi quindi non ti comprerà mai nulla  XD (però sarebbe più carino avere il "telecomando" su millefori invece che su breadboard :P )

P.S.:
fa tanto minority report dove ti leggono le retine ovunque vai :D
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

legolas93

#3
Jun 19, 2012, 07:23 pm Last Edit: Jun 19, 2012, 07:25 pm by legolas93 Reason: 1

e usare rfid al posto degli infrarossi?  XD

comunque se uno non si registra? risulta assente?

a parte questo direi ottimo lavoro  ;)

tanto la scuola italiana non ha soldi quindi non ti comprerà mai nulla  XD (però sarebbe più carino avere il "telecomando" su millefori invece che su breadboard :P )

P.S.:
fa tanto minority report dove ti leggono le retine ovunque vai :D


Rfid costano troppo. La mia scuola ha 1000 alunni. Ho pensato anche ad un modulo Rf ma..3 euro a modulo per 1000 sono 3 mila euro in più. L'obiettivo era spendere meno possibile e penso di esserci riuscito!.

Cmq l'idea è una variazione di un qualcosa..in pratica quest'anno nella mia scuola hanno messo giu lettori di smart card ovunque perchè vogliono implementare un sistema simile..solo che la solita cosa all'italiana..20'000 mila euro spesi e per attivarli definitivamente dicono che servano altri soldi..e via così..in pratica non verranno mai attivati. Da qui lo stimolo ad ideare questo progetto.

Se uno non si registra risulta assente..ma non vedo il motivo per stare a scuola a perdere tempo e non vederlo neanche riconosciuto quel tempo!.

Per quanto riguarda la millefori..è solo un prototipo quindi la BreadBoard penso sia giusta!. Poi sinceramente..in un mese..Imparare abbastanza Java per farlo, imparare ad usare Arduino, imparare l'elettronica minima per sviluppare il progetto..Non c'era tempo per imparare anche a lavorare con le millefori! (è nei piani di questa estate!)
Io faccio uno scientifico e queste cose le sfioriamo e basta.
"Sono convinto che l'informatica abbia molto in comune con la fisica...Dentro i confini del computer, sei tu il creatore. Controlli - almeno

Madwriter

sarebbe stato il mio incubo a scuola i prof non ricordano mai quanti ritardi/assenze fai  ]:D complimenti per il progettino =)
"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

ratto93

Mi ero illuso di vedere un fusor ma ti devo i miei complimenti  ;)
Davvero bello compare !!!
Dai... la senti l'ansia che sale ? il culmine sarà domani tra le 8:00 e le 8:30  ]:)
Se corri veloce come un fulmine, ti schianterai come un tuono.

superlol

i chip rfid passivi non costano nulla.
500 smart card le trovi a 300€
alla fine prendendone 1000 le paghi 500€ sinceramente (da 125KHz)
più 30€ a modulo ricevitore-trasmettitore. contando che una scuola ha massimo 4 entrate (in genere) fai in totale neanche 1000€.

poi però non vi è la gestione della visualizzazione delle ore di assenza.

poi costa più il tuo telecomando:
2€ di 4 display 7 seg, 1 shift register 0.50€, un atmega sui 3€ alla fine una rfid costa molto meno :P

certo non puoi visualizzare le ore di assenza (ma le puoi interfacciare su un database mysql ed ogni studente ha una password per vederle. noi lo abbiamo a forlì per assenze, voti e circolari, si chiama delfoscuola però è tutto manuale e non automatico)

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

legolas93


Mi ero illuso di vedere un fusor ma ti devo i miei complimenti  ;)
Davvero bello compare !!!
Dai... la senti l'ansia che sale ? il culmine sarà domani tra le 8:00 e le 8:30  ]:)



:smiley-sleep: io me la ronfo bellamente.... Non è vero!  :D Hihi  :smiley-red:

Cmq lo sforzo è stato molto di più nella parte software (Trasmissione dati Ir, via Seriale, ecc, senza dimenticare il programma di gestione in se!). La parte elettronica è relativamente banale. (Poi magari pubblico tutto il codice, quello dei due Arduino e quello del programma di gestione)

Eh solo che prima di comprare le cose ho letto che era molto difficile interfacciare Arduino ad un modulo rfid..magari mi sbaglio..nel senso..avevo letto che nessuno era riuscito ancora a farlo funzionare! quindi ho deciso di partire da qualcosa di realizzabile..

e poi gli infrarossi mi affascinavano e gli avevo in casa. Ccon il display cmq ha qualche potenzialità ancora da esprimere, queste sono le funzioni minime che può avere. Ultima cosa: mi ero preposto l'obiettivo di imparare più possibile e sapevo che realizzare qualcosa di attuabile veramente e concretamente era praticamente impossibile. Ma ho imparato molto e sono felice  :)
Poi io sono abbastanza cocciuto quindi non usavo funzioni o classi senza approfondire bene la documentazione Java..  :smiley-sweat:

A me quello che spaventa di più è la terza prova. Italiano penso di cavarmela, fisica pure data la mole enorme di esercizi svolti. Mentre la terza prova ..  :smiley-zipper:

Poi negli orali basta tamponare e via  ]:D
"Sono convinto che l'informatica abbia molto in comune con la fisica...Dentro i confini del computer, sei tu il creatore. Controlli - almeno

superlol

io per una cosa simile ammetto che usere VB.net in quanto mooolto facile (si lo so.. micro$oft.. infatti ho deciso di imparare phyton).

comunque l'rfid mi ha incuriosito, appena entra qualche soldo 30€ vanno in imu ed altri 30€ in rfid, voglio vedere se funziona bene (poi in convitto ci sono le tag rfid passive per aprire le stanze chissà se...  :smiley-zipper: )
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Michele Menniti

Quote
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..

No, è sbagliato, o meglio lo è se piloti contemporaneamente (e non in multiplexer) tutti i 7 digit. Ogni digit deve avere la sua R di limitazione, se ne usi una sola in comune ottieni una differente luminosità delle cifre in base al numero di segmenti accesi.
Prova a mandare 1 e poi 8 o viceversa e ti accorgerai come 1 è molto più luminoso di 8.
D'altra parte (non ho visto lo schema) se il catodo lo stai collegando anch'esso ad un pin di Arduino questo diverrebbe un grosso problema da gestire, ma immagino che tu invece l'abbia collegato a GND.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

superlol


Quote
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..

No, è sbagliato, o meglio lo è se piloti contemporaneamente (e non in multiplexer) tutti i 7 digit. Ogni digit deve avere la sua R di limitazione, se ne usi una sola in comune ottieni una differente luminosità delle cifre in base al numero di segmenti accesi.
Prova a mandare 1 e poi 8 o viceversa e ti accorgerai come 1 è molto più luminoso di 8.
D'altra parte (non ho visto lo schema) se il catodo lo stai collegando anch'esso ad un pin di Arduino questo diverrebbe un grosso problema da gestire, ma immagino che tu invece l'abbia collegato a GND.

ma se accende e spegne ogni pin il problema non si presenta.. come per le matrici di led
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

legolas93


Quote
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..

No, è sbagliato, o meglio lo è se piloti contemporaneamente (e non in multiplexer) tutti i 7 digit. Ogni digit deve avere la sua R di limitazione, se ne usi una sola in comune ottieni una differente luminosità delle cifre in base al numero di segmenti accesi.
Prova a mandare 1 e poi 8 o viceversa e ti accorgerai come 1 è molto più luminoso di 8.
D'altra parte (non ho visto lo schema) se il catodo lo stai collegando anch'esso ad un pin di Arduino questo diverrebbe un grosso problema da gestire, ma immagino che tu invece l'abbia collegato a GND.


Sisi la differente luminosità l'avevo notata e penso anche capita. (Leggi di Kirchhoff) la corrente è sempre la stessa se non sbaglio quindi quando la divido per 7 mi da meno luminosità. Ma cmq non rischio di fare danni vero?. L'altro piedino connesso al GND.
"Sono convinto che l'informatica abbia molto in comune con la fisica...Dentro i confini del computer, sei tu il creatore. Controlli - almeno

Michele Menniti

No, l'unico danno è quello di far storcere il naso di brutto a chi ha un minimo di decente conoscenza di elettronica, è davvero una cosa da non fare, se non per ottenere volutamente un qualche effetto scenografico, ma varrebbe p.es. per una barra di led, non certo per un display numerico. Insomma, se fai in tempo, metti 7 R sui digit e toglia quella sul catodo, che se trovi un Elettronico a valutare il tuo lavoro (molto bello peraltro!) ti fa nero :smiley-yell:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Testato

mi associo ai complimenti, molto ben fatto, bravo.
segui il consiglio del menny sulle R, per fare il figo potresti usare una barra di r chiusa in un unico chip.
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Michele Menniti


mi associo ai complimenti, molto ben fatto, bravo.
segui il consiglio del menny sulle R, per fare il figo potresti usare una barra di r chiusa in un unico chip.


Verissimo, ci sono le reti resistive, quelle di tipo parallelo, le ho usate sul mio capacimetro TTL, 8 resistenze da 150 ohm (ma il valore lo scegli all'acquisto) sotto forma di un DIP16.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Go Up