Orologio analogico


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

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%

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

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




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

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

 
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

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

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

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:

 


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