Vai al contenuto

Orologio analogico

Da Wikiversità, l'apprendimento libero.


lezione
lezione
Orologio analogico
Tipo di risorsa Tipo: lezione
Materia di appartenenza Materia: Informatica per la scuola media 1
Avanzamento Avanzamento: lezione completa al 100%

Costruire un orologio analogico le cui lancette si muovano segnando l'ora corretta.

Versione di Scratch utilizzata

[modifica]

La versione di scratch usata in questo progetto è scratch 3.0 online.


Cosa richiede l'esercizio e come si fa

[modifica]

Trovare e mostrare sullo stage l'ora corretta in ore, minuti e secondi. Disegnare o inserire il quadrante di un orologio. Inserire o disegnare le lancette in modo che ruotino sull'estremità posizionata al centro del quadrante segnando l'ora corretta.

Qualche calcolo

[modifica]

Lancetta delle ore

[modifica]

Il quadrante dell'orologio si divide in 12 ore l'angolo compreso tra due ore successive è di .

La corrispondenza tra ora e angolo è dunque:

Didascalia
Cella di intestazione Cella di intestazione
1 10°
2 60°
3 90°
4 120°
5 150°
6 180°
7 210°
8 240°
9 270°
10 300°
11 330°
12


La lancetta delle ore segna l'ora corretta in base all'angolo che forma con la direzione verticale in cui sono posizionate le ore 12. In scratch le direzioni sono:

0° verticale in su, 
90° destra, 
180 ° verticale in giù,
-90°, ma anche 270° sinistra.

Scratch fornisce una funzione per avere data, ora, minuti e secondi correnti.

scratch blocks
scratch blocks

La prima ora, all'una, la lancetta delle ore dovrà puntare in direzione 30° rispetto alla verticale. Per tutte le ore la direzione in cui deve puntare la lancetta sarà data dal calcolo


che quindi nel caso della prima ora sarà


Come si può notare nella tabella sopra alle ore 12 corrisponde l'angolo 0°, probabilmente per scratch ma è possibile evitare che gli angoli della lancetta delle ore aumentino infinitamente utilizzando la divisione in modulo. scratch block mod La divisione in modulo, abbreviata mod, è una operazione che partendo da una divisione restituisce come risultato il resto. Così è possibile ottenere per tutte e 24 le ore solo risultati tra 0 e 12, infatti

 e  

e poi ricomincia

e così via fino a

e

E così nel codice che fa muovere la lancetta delle ore al numeratore della frazione ci sarà sempre un numero tra 0 e 12.

Scratch blocks
Scratch blocks




Costumi e codice

[modifica]

Per ottenere una lancetta rotante è importante che il centro dello sprite sia posizionato nell'estremo della lancetta che vogliamo resti fermo al centro del quadrante dell'orologio. Così ad esempio per la bacchetta da prestigiatore andiamo nella scheda in cui è possibile modificare il costume e selezionandolo per intero lo spostiamo in modo che il centro dello sprite coincida con un estremo della bacchetta.

Scratch costume che ruota centro un estremo
Scratch costume che ruota centro un estremo

Nella figura qui sopra il centro dello sprite è nell'estremo a sinistra della bacchetta.
Gli sprite necessari per questo progetto.

scratch sprites
scratch sprites

Quadrante orologio

[modifica]

Il quadrante dell'orologio lo si può ottenere scaricando un file dalla rete che abbia una licenza creative commons. E lo si può caricare come disegno su scratch. Volendo lo si può anche disegnare sia come sprite sia come sfondo.

Lancetta delle ore

[modifica]

Per la lancetta delle ore nel progetto di esempio è stata scelta la bacchetta del mago, e il codice è questo, come abbiamo già visto anche sopra.

Scratch blocks
Scratch blocks

Con questo codice si ottiene però una lancetta delle ore che scatta solo una volta all'ora solo ad ora compiuta. Negli orologi veri il movimento della lancetta delle ore però è più continuo, e si posiziona anche tra le ore.

Un movimento più continuo, che si avvicini all'ora corretta nella mezz'ora precedente e se ne allontani in quella successiva lo si ottiene con questo codice.

scratch code blocks
scratch code blocks

Il quadrante è stato diviso in minuti


che è il totale dei minuti che la lancetta delle ore conteggia facendo un giro completo di quadrante. A questo punto la posizione delle lancetta delle ore si ottiene facendo

in questo modo si calcola l'angolo che la lancetta delle ore forma con la verticale.

Lancetta dei minuti

[modifica]

Il codice della lancetta dei minuti deve tenere conto che sono 60 i minuti sul quadrante, e sono dunque 60 i diversi angoli che la lancetta deve comporre. A differenza della lancetta delle ore però la lancetta dei minuti si azzera ad ogni passaggio sulla verticale, ogni volta che trascorre un minuto.
E' per questo abbastanza semplice ricavare l'angolo che la lancetta deve indicare sul quadrante


Che corrisponde al codice scratch:

Scratch blocks
Scratch blocks

Lancetta dei secondi

[modifica]

Dopo la descrizione della lancetta minuti non è difficile comprendere come deve funzionare la lancetta dei secondi che dovrà seguire la formula:



Note

[modifica]

Bibliografia

[modifica]
  • Guida all’uso di Scratch Versione Studenti; Alberto Barbero, Marco Marchisotti, Alberto Davì; Associazione Dschola, Iniziativa realizzata nell’ambito del progetto Diderot della Fondazione CRT, 2014

Collegamenti esterni

[modifica]