Lezione 1: Che cos'è un algoritmo?
In questa lezione, imparerai cos'è un algoritmo e come l'utilizzo di algoritmi in VEXcode VR Python ti consente di creare progetti con comportamenti più diversi. I progetti algoritmici istruiscono il robot VR a rispondere al suo ambiente, che sarà necessario per risolvere la Dynamic Castle Crasher Challenge.
Risultati di apprendimento
- Identifica che gli algoritmi sono costituiti da sequenza, selezione e iterazione (loop).
- Identificare che gli algoritmi sono sequenze precise di istruzioni, implementate utilizzando linguaggi di programmazione, per i processi che devono essere eseguiti da un robot VR.
Algoritmi
Gli algoritmi sono sequenze precise di istruzioni, implementate utilizzando linguaggi di programmazione, come VEXcode VR Python, per i processi che devono essere eseguiti da un robot VR.
Gli elementi di base di un algoritmo sono sequenza, selezione e iterazione.
- Sequenza - l'ordine in cui comportamenti e comandi sono combinati in un progetto al fine di produrre un risultato desiderato.
- Selezione - l'uso di dichiarazioni condizionali in un progetto. Dichiarazioni condizionali, come se o se altro influisce sul flusso di progetto di un progetto.
- Iterazione : gli algoritmi utilizzano spesso la ripetizione per eseguire passaggi un certo numero di volte o fino a quando non viene soddisfatta una determinata condizione. Questo è anche noto come "looping". L'iterazione può modificare il flusso del progetto ripetendo un comportamento un numero specificato di volte o fino a quando non viene soddisfatta una condizione.
Questo progetto esemplificativo della sfida dell'Unità 8 è un esempio di algoritmo. Include una combinazione di loop, dati del sensore e comandi messi insieme in una sequenza per risolvere la Disk Mover Challenge.
def main():
per valore in range(3):
per valore in range(3):
# 1. Drive to disk using Down Eye Sensor
while not down_eye.near_object():
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 2. Prendi il magnete del
disco. Energizza (BOOST)
# 3. Guidare verso l'obiettivo utilizzando il sensore
di distanza drivetrain.turn_to_heading (180, GRADI)
mentre front_distance.get_distance (MM) > 200
: drivetrain.drive (FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 4. Drop disk in goal
magnet.energize(DROP)
drivetrain.drive_for(REVERSE, 100, MM)
# 5. Ruotare verso il disco successivo driveetrain.turn_to_heading
(0, GRADI)
wait(5, MSEC)
# 6. Girare e guidare verso il prossimo obiettivo
drivetrain.turn_to_heading(90, GRADI)
drivetrain.drive_for(AVANTI, 800, MM)
# 7. Passare ai dischi
drivetrain.turn_to_heading(0, GRADI)
wait(5, MSEC)Sequenza
Il modo in cui i comandi sono sequenziati e combinati determina i comportamenti del robot VR. In questo esempio, ogni insieme di comportamenti necessari per spostare un disco viene eseguito tre volte, quindi il robot VR passa al successivo insieme di dischi e ripete i comportamenti, fino a quando tutti i dischi non vengono restituiti agli obiettivi. 
Selezione
Questo progetto include anche la selezione che determina le parti del progetto che vengono eseguite in base alle condizioni del sensore. Innanzitutto, il sensore Down Eye viene utilizzato per determinare quando il robot VR è vicino a un disco, in modo che il disco possa essere prelevato. Quindi, il sensore di distanza viene utilizzato per determinare quando il robot VR è oltre l'obiettivo, in modo che il disco possa essere lasciato cadere. 
Nel primo ciclo while , la selezione dei comandi da eseguire si basa sui valori del sensore segnalati dal sensore Down Eye.
- Mentre non viene rilevato alcun oggetto, il robot VR avanzerà.
- Mentre viene rilevato un oggetto, il robot VR si fermerà.
Nel secondo ciclo while , la selezione del comando da eseguire si basa sui valori del sensore segnalati dal sensore di distanza.
- Mentre la distanza riportata è superiore a 200 millimetri (mm), il robot VR avanzerà.
- Mentre la distanza riportata è inferiore a 50 millimetri (mm), il robot VR smetterà di guidare e passerà alla parte successiva del progetto per alimentare l'elettromagnete.
Iterazione
Il progetto utilizza l'iterazione, o "loop", per ripetere le azioni e controllare ripetutamente i valori dei sensori riportati. Questo progetto contiene loop nidificati: un loop in modo che il robot VR possa raccogliere tutti e tre i dischi di un colore; e un secondo loop per ripetere quel processo per raccogliere tutti i dischi nel parco giochi. 
Questo algoritmo è progettato per raccogliere e restituire tre dischi, tre volte, per completare la Disk Mover Challenge. La stessa logica applicata per raccogliere e spostare i dischi ripetutamente utilizzando sequenza, selezione e iterazione può essere applicata anche ad altre sfide, come la Dynamic Castle Crasher Challenge.