Algoritmi

 Il set LEGO SPIKE ESSENTIAL contiene:


a) un hub intelligente dotato di 2 porte I/O, connettività Bluetooth, giroscopio a 6 assi e batteria ricaricabile agli ioni di litio con porta di ricarica e connessione micro USB, 

b) 2 motori piccoli, 

c) un sensore di colore,

d) una matrice LED.

Esiste la possibilità di collegare contemporaneamente i due motori nelle due porte A e B come nel caso della costruzione della macchina “taxi, taxi”. 

Nelle altre costruzioni viene utilizzato sempre solo un motore, che aziona una parte della costruzione in LEGO fornendo il movimento all’oggetto costruito. Pertanto resta libera l’altra porta ed è possibile collegare il sensore di colore (ricevere un informazione dall’esterno) o la matrice LED per restituire un’azione di colore.

La programmazione avviene a cascata, il primo comando viene messo in alto e gli altri a seguire.

In alto viene inserito sempre un blocco “evento” di colore giallo con una leggera gobba superiormente. Ecco alcuni di questi blocchi eventi:

Attraverso la programmazione posso mandare un informazione alle porte A e B, quindi un output; cioè un'informazione che attraverso i comandi del programma sono io a fornire alle porte un'azione. 

Le azioni vengono compiute dai motori o dalla matrice a LED. Pertanto l’informazione di output viene tradotta in un'azione di movimento o di colore.


Le informazioni che possiamo acquisire dall’esterno ovvero gli input sono:

Un esempio di un programma a blocchi:

Blocchi di controllo

ciclo - ripeti, ciclo continuo, If Then ripeti se è vera la condizione inserita nel blocco.

If Then Else ripeti se è vera la condizione inserita nel blocco, altrimenti esegui un’altra azione. Attendi fino a quando è vera la condizione oppure ripeti ciclo fino a quando è vera la condizione.

Esaminiamo il diagramma di flusso della struttura SE. 

Eseguo le stesse azioni del programma visto precedentemente solo SE il sensore colore (collegato nella porta B) identificherà il colore blu. 


Utilizzo la struttura del SE ALLORA (imponendo una condizione):

se è vera la condizione che impongo eseguo i comandi riportati nella struttura programmata. 

La condizione è che il sensore colore individui il colore Blu.

Esaminiamo il seguente algoritmo di programmazione: abbiamo la struttura loop o ciclo continuo (per sempre) con all’interno la struttura SE ALLORA, la condizione è se la porta B rileva il colore verde allora il programma eseguirà un movimento.

Analoga situazione con la differenza che SE il sensore rileverà il colore verde il programma illuminerà di verde la matrice LED, invece di azionare un movimento.

Possiamo perfezionare algoritmo imponendo che SE il colore rilevato è diverso dal verde allora la matrice LED si illuminerà di rosso. Questo riusciamo a farlo con la struttura 

SE ALLORA - ALTRIMENTI 

In questo caso: 

se la condizione sarà vera, colore verde, il programma illuminerà di verde la matrice LED; 

se la condizione non sarà vera la matrice LED si illuminerà di rosso. 

Nel mondo dell’informatica questa struttura si individua con il termine della nidificazione dei SE, ed in questo modo puoi imporre tutte le condizioni che vuoi; una specie di matrioska una dentro l’altra.

Se è vera la prima domanda esegui una seconda domanda, se anche questa è vera esegui ancora una terza e così via. 

Uso di una variabile. Creao la variabile A1.

Questo algoritmo è formato da un ciclo continuo e due SE ALLORA con dentro la variabile A1.

Il primo SE si chiede se il tagliando è di colore verde, il secondo SE si chiede se la variabile A1 è inferiore al valore 5. Il che sta a significare che il tagliando verde consente solo cinque accessi. Pertanto per cinque volte potrò far vedere il tagliando e si aprirà, ad esempio potremmo pensare ad una sbarra che si apra con un movimento verso l’alto.  Nel secondo SE c’è la condizione <5 matematicamente dovrebbero essere solo quattro accessi perché il quinto non deve essere conteggiato perché < di 5. 

In realtà esiste anche il valore zero che deve essere conteggiato, pertanto sono 5 accessi.

Analogamente all'algoritmo del programma visto precedentemente con la struttura SE ALLORA - ALTRIMENTI con l’aggiunta della variabile A1 e dei cinque accessi. 

Esaminiamo la seguente struttura di programmazione. 

Ci sono due variabili A1 e B1 che sono rispettivamente associate a due accessi diversi, il tagliando verde e il tagliando rosso.

Ipotizziamo:

che il tagliando verde consenta 5 accessi mentre il tagliando rosso solo 3 accessi.

Definire un blocco

Il sensore giroscopico consente di effettuare movimenti molto più precisi. La tua missione consiste nel programmare il robot in modo che completi un giro sul posto fino a un'angolazione esatta utilizzando il sensore giroscopico. 

L'imbardata è la rotazione di un veicolo intorno ad un asse verticale passante per il baricentro del mezzo. L'imbardata è un termine utilizzato in ambito aeronautico, in aviazione ed in ambito automobilistico. Viene anche indicato con il termine inglese Yaw.

Obiettivo finale:

...................

..........................

.................

.................................

................

.........