In questo articolo viene mostrato un semplice esercizio in labview che implementa un gioco basato sul moto di un proiettile. Il gioco prende in ingresso la velocità e l’angolo di lancio di un proiettile e la posizione e dimensione del bersaglio da colpire. Se il proiettile colpisce il bersaglio accende un LED
Front Panel del gioco
Il pannello frontale del gioco contiene i controlli per impostare il proiettile ed il bersaglio, un XY graph per visualizzare l’animazione del proiettile e il bersaglio.
Controls and Indicators
Velocità: Velocità del proiettile | |
Angolo: angolo del proiettile | |
Distanza (cm): distanza del bersaglio espressa in centimetri | |
dimensione (cm): dimensione del bersaglio espressa in centimetri | |
XY Graph: Posizione del bersaglio e del proiettile | |
Colpito: led di notifica se il bersaglio viene colpito dal proiettile |
Block Diagram del programma principale
Il programma principale è stato sviluppato come una macchina a stati finiti. Gli stati sono Initialize, Launch e Stop. Nel primo si inizializza la rappresentazione grafica con il bersaglio. Nel secondo, si calcola l’evoluzione del proiettile, mentre nel terzo il programma termina
Calcolo posizione proiettile
Il calcolo della posizione del proiettile e demandato ad un apposito subVI
Connector Pane
Front Panel
Controls and Indicators
Tempo: istante di tempo in cui calcolare la posizione | ||||
Numeric 2 | ||||
Vx: vcomponente in x della velocità | ||||
Array in : array contenente le posizioni passate del proiettile e del bersaglio | ||||
element | ||||
f | ||||
States: stato del programma, si aggiorna a stop se si supera o si colpisce il bersaglio | ||||
Array out: array aggiornato per la parte della posizione del proiettile, mentre rimane invariato la parte relativa al bersaglio | ||||
element | ||||
f | ||||
Numeric 4 |
Block Diagram
Inizializzazione del bersaglio
Questo subVI genera l’array delle coordinate XY per andare a rappresentare il bersaglio
Connector Pane
Front Panel
Controls and Indicators
dimensione (cm) | ||||
Distanza (cm) | ||||
Numeric | ||||
Numeric 2 | ||||
Array | ||||
element | ||||
f |
Block Diagram