Skip to main content
Portale insegnanti

Il controller come interfaccia utente

Progetto VEXcode IQ con 3 blocchi cappello. A sinistra attaccati al blocco Quando avviato sono i primi, i blocchi per impostare il motore del braccio e il motore dell'artiglio che si arresta per mantenere, una velocità del motore dell'artiglio impostata al 60% e una velocità del motore del braccio impostata al 30%. Quindi un ciclo Forever contiene un blocco if then else. Il blocco if legge If Controller R Up pressed, then spin Claw motor close. Il ramo else contiene un blocco If then else che legge If Controller R Down pressed then spin claw motor open, else stop clawmotor. A destra a Quando il blocco eventi del controller L Up premuto ha un motore del braccio di lancio attivo, attendere che il controller L Up non sia premuto, arrestare i blocchi del motore collegati. Al di sotto di un blocco eventi quando il pulsante L Down del controller premuto ha un motore del braccio di lancio verso il basso, attendere che il controller L Down non sia premuto, il motore del braccio di arresto collegato.
Il progetto di esempio Controller Buttons di VEXcode IQ

Controllo remoto del robot

Molto spesso utilizziamo i telecomandi per interagire con i nostri televisori. Premiamo dei pulsanti che fanno visualizzare al televisore un canale o una schermata di informazione/accesso che vogliamo. Tecnicamente, il telecomando del televisore è un'interfaccia utente. Tuttavia, è un'interfaccia utente molto meno sofisticata di quella utilizzata dal tuo smartphone.

La programmazione del controller IQ è molto più sofisticata. Durante le partite Driver Controlled di una competizione, vuoi che il tuo pilota/team abbia il maggior numero di vantaggi possibili. Puoi programmare i pulsanti e i joystick per fare più di un semplice comportamento e puoi programmarli per fare comportamenti complessi quando i pulsanti/joystick vengono utilizzati in combinazione, in modo simile a come funzionano alcuni controller di gioco. In qualità di programmatore del controller, consideri quali pulsanti utilizzare in combinazione, cercando di capire come posizionare le dita e le mani per raggiungere tutti i pulsanti coinvolti.

L'immagine sopra mostra il progetto dal progetto di esempio dei pulsanti del controller di VEXcode IQ. Vedi come il ciclo [Forever] ha due blocchi [If then else] annidati al suo interno? Fa controllare al progetto se i pulsanti R Up o R Down sono premuti e il robot fa girare il motore Claw chiuso o aperto in base a quello premuto. Quel ciclo [Forever] è molto importante. Consente al controller IQ di controllare ripetutamente su quali pulsanti viene premuto in modo che il robot esegua il comportamento o i comportamenti appropriati.

Considera che potresti mettere due blocchi <Controller Pressed> di rilevamento in un blocco <and> operatore. In questo modo il progetto verificherebbe se venissero premuti due pulsanti. Potresti anche mettere un <and> blocco all'interno di un altro <and> blocco e controllare tre condizioni prima di eseguire un comportamento. Ciò consente di programmare sequenze di comportamento che possono essere avviate semplicemente premendo i pulsanti sul controller.

Considera quante altre combinazioni di condizionali potresti creare con tutti i pulsanti e le loro combinazioni sul controller. Naturalmente, man mano che si programmano comportamenti più complessi nel funzionamento del controller, il progetto si avvicina all'autonomia del robot. Un team di competizione deve capire quali sono i comportamenti migliori da programmare nei propri controller come sequenze complesse e quali comportamenti è meglio lasciare decomposti in più parti in modo che il controller consenta al conducente (utente) di avere un maggiore controllo sulla velocità e accuratezza del comportamento.

Icona Suggerimenti per l'insegnante Suggerimenti per l'insegnante - Modellazione

Modella come combinare <and> i blocchi per gli studenti se hanno difficoltà a immaginare di combinare <and> i blocchi per includere più di una condizione. Ecco un esempio:

Frammento di codice che mostra i blocchi operatore nidificati nella condizione del ramo If. Un operatore AND ha un controller E premuto verso il basso nella prima metà e un nidificato e nella seconda metà con Control F premuto verso l'alto e Controller F premuto verso il basso.

Questo esempio mostra solo il primo blocco di comando e metà del successivo, ma potrebbe esserci un'intera sequenza di comportamenti da eseguire per il robot quando questi tre pulsanti (E Down, F Up e F Down) sono tutti premuti.

Icona Motiva discussione Motiva la discussione

Ogni anno, VEX sfida i suoi utenti con un nuovo gioco. Le squadre competono in partite costituite da un periodo autonomo di un minuto (60 secondi) (senza controller), seguito da un periodo controllato dal conducente di un minuto (60 secondi) (controller). Alcuni studenti potrebbero aver partecipato a competizioni di robotica prima di entrare a far parte di un club o di una squadra. Le domande seguenti chiedono agli studenti di condividere le loro esperienze e/o interessi nei concorsi.

D: Qualcuno qui, o qualcuno che conosci, ha partecipato a una competizione di robotica?
R: Incoraggia gli studenti che hanno gareggiato a condividere le loro esperienze. Rispondi ad altre domande, come "quale robot hai usato?" e/o "qual è stata la tua parte preferita dell'esperienza?".

D: Qualcuno è interessato a saperne di più sulla competizione/gioco VEX di quest' anno?
R: Quando gli studenti rispondono di sì, puoi indirizzarli al sito web del concorso VEX e mostrare il video della sfida di quest' anno.