Cloud, come estrarre ora, giorno, anno, ecc…

La lingua

La lingua du default è l’italiano, per estrarre i dati in inglese aggiungere la stringa ‘?l=en’, ecco un esempio:

cloud day_week?l=en
save x
say [x]

In questo caso Damerino dirà il giorno della settimana in inglese.

Altri esempi:

cloud time
save x
say [x]

In questo esempio Damerino dice il giorno della settimana.

cloud day_month
save x
say [x]

In questo esempio Damerino dice il giorno della settimana.

cloud day_week
save x
say [x]

In questo esempio Damerino dice il giorno della settimana.

cloud year
save x
say [x]

In questo esempio Damerino dice il giorno della settimana.

Operazioni iniziali su modalità casuale (blu)

La modalità casuale, quella di colore blu, non ha una struttura che segue una sequenza ma è un intervallarsi di domande (dell’interlocutore) e risposte (di Damerino). Questo intervallarsi è scandito dall’unico pulsante che l’operatore preme per poter parlare.

A volte però capita che vogliamo far fare qualcosa a Damerino prima che questa modalità casuale abbia inizio. Per esempio far dire a Damerino qualcosa, oppure accendere la fotocamera e attivare il tracking.

Ora vediamo come fare. Dobbiamo creare due file, il primo potrebbe essere qualcosa di questo tipo:

say Dimmi un colore
camera on
tracking on
open colori

Come vedete, l’ultima istruzione è open la quale apre il secondo file che si chiama ‘colori’ dove avremo la modalità casuale:

q blu
a blu come il mare
q rosso
a rosso come il fuoco
q verde
a verde come l'erba
q nero
a nero come la notte
q 
a non conosco questo colore

La modalità casuale (blu)

Sono insiemi di domande e risposte. Il compilatore andrà a prelevare la giusta risposta ad ogni domanda che
poniamo a Damerino. Ecco un esempio:

q come stai
a bene grazie 
q come ti chiami 
a Damerino
q sorridi
am felice
q
a non ho capito

q è l’abbreviazione di ‘question’ che significa ‘domanda’ e indica una possibile domanda posta dall’interlocutore.

‘a’ è l’abbreviazione di ‘answer’ che significa ‘risposta’ e indica la frase che pronuncerà Damerino in risposta.

‘am’ è l’abbreviazione di ‘answer’ + ‘mood’ (che significa ‘umore’). Questa istruzione fa assumere a Damerino una espressione facciale.

Se dall’applicazione premi il bottone ‘PARLA’ e chiedi a Damerino ‘come stai’, lui risponderà ‘bene grazie’ e così per tutte le altre coppie di q e a. Se invece utilizzi la parola ‘sorridi’ Damerino risponderà con una espressione felice. Per qualunque altra frase che non contiene le parole chiave utilizzate, Damerino risponderà ‘non ho capito’.

E se gli viene detta una frase un po’ diversa come ad esempio: ‘Ciao Damerino, come stai oggi?’ risponderà comunque perchè nella frase sono presenti entrambe le parole: ‘come’ e ‘stai’.

La modalità sequenziale (verde)

In questa modalità, come dice anche la parola stessa, creiamo una sequenza di istruzioni che il compilatore andrà ad eseguire. Vediamo un esempio.

say ciao, io mi chiamo Damerino
mood felice
say tu come ti chiami?
listen
save nome
say piacere di conoscerti [nome]

In questo esempio, premendo dall’applicazione il bottone ‘Premi per iniziare’, Damerino pronuncerà la frase che segue il say. Poi proseguirà facendo un sorriso con l’istruzione mood. Pronuncerà la frase ‘tu come ti chiami’ e si metterà in ascolto con il riconoscimento vocale tramite il comando listen. Il bottone nell’app diventerà verde e tu potrai parlare. Ciò che dirai verrà salvato nella variabile ‘nome’ tramite il comando save. A questo punto, se ad esempio hai risposto Andrea, lui dirà ‘piacere di conoscerti Andrea’. Il programma termina.

Un’altra variante di programmazione sono le lezioni, in questa struttura di codice Damerino pone delle domande e poi valuta le risposte restituendo dei feedback. Rientrano nella modalità di programmazione verde.

Negli esempi già presenti nell’app trovate vari esempi.

Integrazione delle modalità

Nella nuova versione di Damerino è possibile aprire ed eseguire file di codice direttamente da programma tramite la nuova istruzione open. In questo modo si possono ad esempio far interagire le modalità di programmazione (blu e verde) o scrivere in modo più semplice codici complessi, basterà organizzare il tutto in diversi file. Per fare un esempio creiamo un file che per semplicità chiameremo ‘uno’.

say Questo è il primo file di codice
say Scegli tra il giorno e la notte
open due

Nel secondo file che chiameremo ‘due’ andremo ad inserire:

q giorno
a spero che questa sia una bella giornata
q notte
a se è notte allora andiamo a dormire

Possiamo fare anche il contrario ed aprire un file di codice partendo dalla modalità casuale (blu):

q giorno
ao uno
q notte
ao due

Tramite il comando ao possiamo richiamare altri file di codice, nel caso dell’esempio sopra, se diciamo ‘giorno’ si aprirà il file chiamato ‘uno’, mentre se diciamo ‘notte’ si aprirà il file chiamato ‘due’. Se il file richiamato non esiste il compilatore riporterà un errore.

Guarda questo esempio più concreto e operativo.

Le lezioni

Tramite la modalità di programmazione sequenziale (modalità verde) è possibile utilizzare Damerino per far fare dei veri e propri compiti ai bambini costruendo delle lezioni. Oppure può essere il bambino stesso che programma il suo maestro umanoide! Un metodo molto alternativo per fissare le conoscenze acquisite a scuola. Nelle lezioni Damerino pone delle domande e poi valuta le risposte restituendo dei feedback.

Vediamo un semplice esempio:

yes giusto
not sbagliato
say quanto fa 1 + 2?
listen 3

Eseguendo questo programma Damerino pone la domanda “quanto fa 1 + 2?”. Se l’interlocutore risponde “3” Damerino dirà “giusto”, altrimenti dirà “sbagliato”.

Vediamo un altro esempio più completo:

repetitions 3

yes esatto! # perfetto # bravissimo # sei un genio
not non mi sembra corretto # ma sei sicuro? # no no

say quanto fa 10 + 133?
listen 143
say quanto fa 3 + 8?
listen 24
say quanto fa 220 - 30?
listen 190
yes Esatto, ha proprio 4 zampe!
not Mi sa che non hai mai visto una zebra

say Quante zampe ha una zebra?
listen 4

Significato delle istruzioni specifiche delle lezioni:

  • repetitions: In caso di risposta sbagliata ripeterà la stessa domanda per un numero di volte pari al numero inserito subito dopo.
  • yes: Indica il feedback che Damerino restituirà in caso di risposta corretta.
  • not: Indica il feedback che Damerino restituirà in caso di risposta sbagliata.

Come puoi notare dall’esempio sopra “yes”, “not” e “repetitions” sono persistenti, ossia rimangono validi fino a quando non li ridefinisci nuovamente.

Esempio di utilizzo del cancelletto nel listen

Il cancelletto (#) lo possiamo inserire dappertutto nelle lezioni:

say sai dirmi il nome di una cosa che si scarta? # è una cosa che si scarta, cos'è?
yes esatto # hai indovinato
not hai sbagliato # no
listen caramella # cioccolatino # regalo

In questo esempio Damerino sceglierà a caso tra le due varianti inserite nel “say”.
Abbiamo tre risposte corrette: “caramella”, “cioccolatino” e “regalo”.
Ogni volta che l’interlocutore risponderà correttamente Damerino dirà “esatto” oppure “hai indovinato”.
Ogni volta che l’interlocutore risponderà in modo errato Damerino dirà “hai sbagliato” oppure “no”.
I cancelletti possono essere anche più di uno per ogni istruzione.

L’utilizzo dell’asterisco nel listen

L’istruzione listen accetta l’asterisco che sta a significare “qualunque altra parola o lettera”. Ecco un esempio:

yes esatto hai indovinato!
not no, non è giusto
say quanto fa 12 + 6?
listen 18*

In questo caso saranno considerate corrette tutte le risposte che contengono il numero 18 come ad esempio: “fa 18”,
“18”, “credo che faccia 18”, ecc…
Posso anche combinare l’asterisco al cancelletto in questo modo:

yes esatto hai indovinato!
not no, non è giusto
say sono di più 8 tacchini o 6 galline?
listen 8*#tacchini*

In questo caso saranno esatte tutte le risposte che contengono il numero 8 e tutte le risposte che contengono la
parola tacchini, come ad esempio: “8”, “i tacchini”, “sono di più i tacchini”, “8 tacchini”, ecc…

Il comando manual

Il comando manual ci permette di controllare noi stessi la risposta. Può rivelarsi molto utile nel caso in cui:

  • il bambino non fosse in grado di parlare;
  • il bambino non riuscisse bene a farsi capire;
  • una lezione non preveda un feedback vocale;
  • altri casi…

Esempio di utilizzo del comando “manual”:

say fammi un bel sorriso
yes wow che bel sorriso!
not non mi sembra un sorriso, prova ancora
manual

Nell’esempio sopra, l’applicazione visualizzerà una finestra dove sarà possibile scegliere se la risposta è giusta, sbagliata o se va ripetuta. Consulta la pagina dell’istruzione manual per maggiori dettagli.

Alcuni esempi di lezione:
La frutta in inglese
Correggi le parole sbagliate