Blocco di iterazione

Il blocco Ciclo è un contenitore che può includere una sequenza di blocchi di programmazione. Fa in modo che la sequenza di blocchi in esso contenuta si ripeta. Puoi scegliere di ripetere i blocchi all'infinito, per un determinato numero di volte oppure finché il test di un sensore o un'altra condizione non restituisce Vero.

Verranno ripetuti solo i blocchi all'interno del ciclo. Al termine del ciclo, il programma continuerà con i blocchi che si trovano dopo il ciclo.
Suggerimenti
Trascina i blocchi per spostarli all'interno di un ciclo. Il blocco Ciclo si espanderà per lasciare spazio per i blocchi all'interno.
Scegli la modalità del ciclo.


Selettore modalità
Input
Output Conteggio
Nome ciclo

Utilizza il selettore modalità per definire come verrà ripetuto il ciclo. Le diverse modalità specificano la condizione che determinerà la fine del ciclo. Puoi fare in modo ad esempio che il ciclo si ripeta all'infinito o per un determinato numero di volte, finché un valore di dati del sensore non raggiunge una soglia specifica. Gli input disponibili dipenderanno dalla modalità. Le modalità sono descritte di seguito.

Puoi immettere un nome per il ciclo nel campo Nome ciclo nella parte superiore del blocco Ciclo. Questo nome viene utilizzato dal blocco Interruzione ciclo per consentire di interrompere il ciclo in un altro modo.

I blocchi all'interno del ciclo possono utilizzare l'output Conteggio per indicare quante volte è stato ripetuto il ciclo. Per ulteriori informazioni, vedi Utilizzo dell'output Conteggio.
Modalità
Illimitato


Nella modalità Illimitato i blocchi all'interno del ciclo vengono ripetuti all'infinito. Gli eventuali blocchi posizionati dopo il ciclo non verranno mai raggiunti.
Esempio 1
Questo programma fa avanzare un robot in una sequenza alternata linea retta/curve finché il programma non viene arrestato.
Suggerimenti
Utilizza il pulsante Indietro sull'EV3 per arrestare un programma.
Esempio 2
Questo programma visualizza una bocca chiusa sul display del mattoncino EV3 ogni volta che il sensore di contatto viene premuto, altrimenti visualizza una bocca aperta. Il ciclo fa ripetere continuamente il test del sensore nel blocco Selettore.
Conteggio


Nella modalità Conteggio l'input Conteggio specifica per quante volte devono essere ripetuti i blocchi all'interno del ciclo.
Esempio
Questo programma fa in modo che un robot pronunci la parola "Hello" (salve) una volta, quindi "Go" (vai) sei volte e infine "Bravo" una volta. Il blocco Ciclo include un blocco Suono ed è configurato per ripetersi sei volte.
Tempo


Nella modalità Tempo puoi specificare un intervallo di tempo per la ripetizione del ciclo nell'input Secondi. Il tempo viene misurato dall'inizio del ciclo.

Il limite di tempo viene testato solo alla fine della sequenza del ciclo. La sequenza del ciclo verrà sempre eseguita almeno una volta e il ciclo continuerà ricominciando dall'inizio solo se il tempo trascorso è inferiore a quello specificato in Secondi.
Valore logico


Nella modalità Valore logico il ciclo si ripeterà finché, alla fine della sequenza del ciclo, nell'input Fino a non viene immesso il valore Vero. La sequenza del ciclo verrà eseguita sempre almeno una volta e l'input Fino a verrà testato alla fine di ogni iterazione del ciclo.

Utilizza un filo dati per connettere l'input Fino a a un output logico di un blocco di programmazione all'interno del ciclo. L'output dovrebbe restituire Vero quando desideri interrompere il ciclo.
Esempio
Questo programma fa avanzare un robot finché non viene premuto il sensore di contatto o finché il sensore di colore non rileva il colore nero (indipendentemente da quale delle due situazioni si verifica per prima). L'output di un blocco Operazioni logiche viene utilizzato per l'input Fino a del ciclo. Quando il ciclo termina, il robot si arresta.
Suggerimenti
Molti test di sensore che coinvolgono un solo sensore possono essere testati direttamente dal blocco Ciclo utilizzando le modalità sensore descritte di seguito.
Modalità sensore
Il blocco Ciclo include diverse modalità che leggono i dati di un sensore e li confrontano con un valore di input. Per ogni tipo di sensore esistono diverse modalità. Alcuni tipi di dati di sensori possono essere confrontati con un valore di soglia e altri con alcuni valori specifici.
Confronto dei dati dei sensori con un valore di soglia
In una modalità con un input Valore di soglia il blocco Ciclo ripeterà la sequenza di blocchi all'interno del ciclo finché il confronto con il valore di soglia non restituirà Vero. Puoi fare in modo ad esempio che un ciclo si ripeta finché il sensore di colore non rileva un valore di Intensità luce riflessa inferiore al valore di soglia specificato.



Selettore modalità
Selettore della porta
Input Tipo di confronto
Input Valore di soglia

Utilizza il selettore modalità per scegliere una modalità sensore con un input Valore di soglia. Se la modalità utilizza una porta, usa il selettore della porta per essere certo che la porta corrisponda alla porta sul mattoncino EV3 a cui è connesso il sensore o il motore.

Scegli il tipo di confronto che desideri utilizzare dall'elenco Tipo di confronto e immetti il Valore di soglia.

Ogni volta che termina la sequenza di blocchi all'interno del ciclo, il blocco Ciclo legge i dati del sensore e testa il valore di soglia. Se il test restituisce Falso, il ciclo si ripeterà. Se invece il test restituisce Vero, il ciclo terminerà e il programma passerà al blocco successivo dopo il ciclo.

Per ulteriori informazioni sull'utilizzo dei diversi tipi di sensori e sui dati che forniscono, vedi gli articoli della Guida "Utilizzo dei sensori".
Esempio
Questo programma fa avanzare un robot facendogli ripetere tre suoni diversi finché il sensore di colore non rileva un'intensità di luce riflessa inferiore a 50, quindi il robot si arresta.
Suggerimenti
Il valore di soglia del sensore viene testato solo alla fine della sequenza del ciclo. Nell'esempio precedente, se il sensore di colore attraversa brevemente un colore scuro nel mezzo del ciclo, è possibile che il robot non lo percepisca e non si arresti.
Confronto dei dati dei sensori con valori specifici
Le seguenti modalità dei sensori consentono a un ciclo di confrontare i dati di un sensore con valori di input specifici. Il ciclo si ripete finché i dati di un sensore non corrispondono a un valore di input specificato.
ModalitàNote
Pulsanti del mattoncino Il ciclo si ripete finché uno dei pulsanti selezionati non esegue l'azione selezionata.

Vedi Utilizzo dei pulsanti del mattoncino.
Sensore di colore - Colore Il ciclo si ripete finché non viene rilevato uno dei colori selezionati.

Vedi Utilizzo del sensore di colore.
Sensore infrarosso - Telecomando Il ciclo si ripete finché sul beacon IR non viene premuto uno dei pulsanti selezionati.

Vedi Utilizzo della modalità Telecomando del sensore infrarosso.
Sensore di contatto Il ciclo si ripete finché il sensore di contatto non è nello stato selezionato.

Vedi Utilizzo del sensore di contatto.
Sensore ad ultrasuoni - Presenza/Ascolto Il ciclo si ripete finché non viene rilevato un segnale ad ultrasuoni.

Vedi Utilizzo del sensore ad ultrasuoni.
Scambio messaggi Il ciclo si ripete finché non viene ricevuto il tipo di messaggio specificato.

Vedi Blocco Scambio messaggi.
Suggerimenti
Il sensore viene testato solo alla fine della sequenza del ciclo. Se i dati del sensore corrispondono al valore di input specificato solo per un breve periodo durante l'esecuzione della sequenza del ciclo, è possibile che il ciclo non si interrompa.
Utilizzo dell'output Conteggio
L'output Conteggio all'inizio di un blocco Ciclo indica per quante volte è stata eseguita la sequenza del ciclo. Puoi utilizzare il conteggio all'interno del ciclo per fare in modo che la sequenza del ciclo esegua un'operazione diversa ogni volta che si ripete il ciclo.

Il conteggio è pari a 0 la prima volta che viene eseguito il ciclo e aumenta di un'unità ogni volta che il ciclo si ripete.
Esempio
Questo programma visualizza un conteggio del numero di volte in cui il sensore di contatto è stato premuto e rilasciato sul display del mattoncino EV3. Un blocco Attesa all'interno del ciclo fa in modo che il ciclo attenda che ogni sensore di contatto venga premuto e rilasciato prima di ripetersi e viene utilizzato il valore di Conteggio per l'input di testo del blocco Display.
Ridimensionamento di un ciclo
Il blocco Ciclo in genere si espande automaticamente per creare spazio per nuovi blocchi di programmazione che vengono trascinati in esso. Puoi anche ridimensionare un blocco Ciclo manualmente, se necessario. Per ridimensionare un ciclo, seleziona il blocco Ciclo, quindi trascina le maniglie di ridimensionamento visualizzate intorno al bordo.
Esempio
Questo blocco Ciclo viene ridimensionato per creare spazio per una seconda sequenza di blocchi al suo interno.
Input e output
Gli input disponibili per il blocco Ciclo dipenderanno dalla modalità selezionata. È possibile immettere i valori di input direttamente nel blocco. In alternativa, i valori di input possono essere forniti da fili dati dagli output di altri blocchi di programmazione.
InputTipoNote
Conteggio Valore numericoNumero di volte in cui deve essere ripetuto il ciclo nella modalità Conteggio.
Secondi Valore numericoNumero di secondi per cui deve essere ripetuto il ciclo nella modalità Tempo.
Fino a Valore logicoNella modalità Valore logico il ciclo si interrompe quando questo input corrisponde a Vero.
Tipo di confronto Valore numericoTipo di confronto per una modalità sensore con un valore di soglia.
0: = (Uguale)
1: ? (Diverso)
2: > (Maggiore di)
3: = (Maggiore o uguale a)
4: < (Minore di)
5: = (Minore o uguale a)
Valore di soglia Valore numericoValori con cui confrontare i dati del sensore per una modalità sensore con un valore di soglia.
(Input per singoli tipi di sensore)Per ulteriori informazioni sui dati dei sensori, vedi la Guida relativa ai singoli tipi di sensore.
L'output del blocco Ciclo corrisponde al numero di ripetizioni del ciclo. Per utilizzare l'output, usa un filo dati per connetterlo a un blocco di programmazione all'interno del ciclo o successivo al ciclo.
OutputTipoNote
Conteggio Valore numericoNumero di volte in cui è stato eseguito il ciclo. Il conteggio è pari a 0 durante la prima esecuzione del ciclo.
Ciclo
Collegamenti rapidi