Vieni più vicino!

MecWilly non è mai contento, vuole che ti avvicini, ma se ti avvicini troppo poi non gli va bene, devi trovare la giusta distanza! 🙂

Aggiusta i due valori di soglia in base alle tue esigenze e alla tua fantasia, inoltre essi dipendono anche dalla risoluzione della tua fotocamera, quindi potranno aver bisogno comunque di una regolazione.

camera on
tracking on
do
if $widthface < 200
say vieni più vicino!
if $widthface > 250
say ora sei troppo vicino!
repeat

Proviamo a migliorare il codice. Innanzitutto forse hai notato che quando il programma inizia MecWilly parte subito dicendoti ‘vieni più vicino’, questo succede perchè all’inizio la costante $widthface è settata a -1, in quanto ancora non ha visto nessuna faccia (vedi i dettagli su questa costante). Poichè la prima condizione if si verifica con ‘$widthface < 200’, il -1 rientra in questa condizione.

Per evitare ciò possiamo inserire un nuovo if che scatta quando la costante $widthface è settata a -1. Cosa gli facciamo fare quando ancora nessuna faccia è stata avvistata da MecWilly? Niente di meglio di un randeyes che muove gli occhi (e a volte le sopracciglia) di MecWilly in direzioni casuali 🙂

camera on
tracking on
do
if $widthface = -1
randeyes
elseif $widthface < 200
say vieni più vicino!
elseif $widthface > 250
say ora sei troppo vicino!
repeat

Scattami un selfie quando sorrido

Proprio così, quando fai un sorriso MecWilly ti scatta un selfie 🙂 Potresti ad esempio modificare questo programma in modo che quando gli dici di scattarti un selfi MecWilly te lo scatta, oppure che ti scatti un selfie appena ti vede, le possibilità sono tante, basta avere fantasia.

camera on
tracking on
do
if $smile > 80
takephoto
sleep 1
repeat

Nell’esempio è presente anche l’istruzione tracking in modo che MecWilly segua con gli occhi. L’istruzione sleep evita che MecWilly scatti troppi selfie durante un sorriso.

Non ti addormentare!

La costante [$eyes] restituisce un valore tra 0 e 100 che esprime la probabilità che gli occhi siano chiusi. Questo perchè il riconoscimento può sbagliare e non abbiamo un dato certo, ma un dato probabile. Nell’esempio abbiamo impostato 60 (che corrisponde ad un 60% di probabilità che gli occhi siano chiusi) ma puoi cambiare questo valore se vedi che non è soddisfacente.

camera on
tracking on
do
if $eyes > 60
say hei, non ti addormentare!
repeat

Se sorridi MecWilly ti fa un complimento

In questo esempio utilizziamo la costante [$smile] per determinare se la persona di fronte a MecWilly sta sorridendo. Questa costante restituisce un valore tra 0 e 100 che esprime la probabilità di un sorriso. Questo perchè il riconoscimento può sbagliare e non abbiamo un dato certo, ma un dato probabile. Nell’esempio abbiamo impostato 80 (che corrisponde ad un 80%) ma puoi cambiare questo valore se vedi che non è soddisfacente.

camera on
tracking on
do
if $smile > 80
say hai un bel sorriso
repeat

MecWilly ti saluta quando ti vede

L’utilizzo della costante [$face] è molto semplice in quanto restituisce soltando due valori, 1 (c’è una faccia), 0 (non c’è una faccia). Dobbiamo ricordarci di accendere la telecamera con la funzione camera prima di utilizzare la computer vision.

camera on
do
if $face = 1
say ciao
repeat