Codifica con motori intelligenti VEX IQ

Il VEX IQ Smart Motor ha molte funzioni da utilizzare durante la codifica in VEXcode IQ. Ciò può tornare utile durante la codifica di bracci, artigli e prese d'aria, nonché trasmissioni e altri meccanismi creati utilizzando VEX IQ. Comprendere come codificare i motori aiuterà ad alleviare problemi come lo stallo dei progetti o il mancato funzionamento dei motori come previsto.

Encoder motore

Non solo il VEX IQ Smart Motor trasforma l'energia elettrica in energia meccanica, come fa la maggior parte dei motori, ma ha anche caratteristiche che la maggior parte dei motori non ha, che lo rendono "intelligente". Una delle sue caratteristiche principali è l'encoder in quadratura. Questo encoder è montato all'interno del motore per tracciare la velocità e/o la posizione dell'albero motore.

I rapporti provenienti dall'encoder del VEX IQ Smart Motor consentono di sapere:

  • La direzione di rotazione del motore (avanti/indietro o aperto/chiuso)
  • La posizione del motore e la quantità di rotazione e posizione del motore (in giri o gradi)
  • La velocità di rotazione del motore (in base alla posizione dell'encoder nel tempo)

Poiché l'encoder riporta gli stati del motore, è possibile utilizzarli nei calcoli dietro le quinte per far funzionare molti dei comandi di movimento e rilevamento all'interno del VEXcode IQ.

Codifica dei singoli motori

Prima di iniziare a codificare i singoli motori intelligenti in VEXcode IQ, è necessario configurare il motore. I singoli motori vengono spesso utilizzati per meccanismi aggiuntivi come prese, bracci e artigli. Tuttavia tutte le informazioni si applicano ancora ad altri meccanismi che utilizzano motori singoli.

Menu Dispositivi VEXcode IQ con l'elenco dei dispositivi connessi visualizzato. Viene evidenziato uno Smart Motor, a indicare che può essere configurato dopo averlo selezionato.

Segui i passaggi descritti in questo articolo per configurare il tuo motore individuale in VEXcode IQ.

Con un singolo motore configurato, i comandi per controllare quel motore appariranno nella Casella degli strumenti. Noterai che esistono diversi tipi di comandi: in attesa e non in attesa.

Comandi di attesa e non di attesa

Tieni presente che tutte le immagini qui mostrano i blocchi. Tutti questi progetti possono essere ricostruiti in Python o C++ e contengono le stesse funzionalità dei blocchi.

Progetto di blocchi VEXcode IQ che utilizza comandi di attesa per muovere, uno dopo l'altro, il motore dell'artiglio, poi il robot e infine il motore del braccio. Il progetto recita: Una volta avviato, ruotare ClawMotor di 90 gradi. Quindi, procedere in retromarcia per 200 mm e ruotare ArmMotor di 180 gradi.

I comandi di attesa impediscono al progetto di continuare fino al completamento del comportamento. Questi includono comandi come [Gira per] e [Gira per posizione].

Il progetto mostrato qui utilizza un modello Clawbot (2 motori) e tutti i comandi sono in attesa. Quindi, in serie, il motore dell'artiglio si chiuderebbe di 90 gradi, il robot si muoverebbe all'indietro, quindi il braccio ruoterebbe verso l'alto per raggiungere la posizione di 180 gradi.

VEXcode IQ blocca il progetto che utilizza comandi non di attesa per far girare il motore di aspirazione per esattamente 2 secondi. Il progetto riporta: Una volta avviato, far girare IntakeMotor, attendere 2 secondi, quindi arrestare IntakeMotor.

Al contrario ci sono comandi non in attesa. Un comando senza attesa eseguirà il comportamento indefinitamente o fino a quando non verrà richiesto di passare a un altro comportamento. Questi includono comandi come [Gira].

Il progetto mostrato qui utilizza un BaseBot con un'assunzione aggiunta. Qui il motore di aspirazione inizierebbe a girare. Il comando [Wait] è un comando di attesa, quindi l'assunzione continuerà a girare fino allo scadere dei 2 secondi, quindi passerà al comando successivo nel progetto che è un comando [Stop]. Quindi il motore smetterebbe di girare.

Timeout del motore

Quando si codifica un motore come parte di un braccio o di un artiglio, è importante ricordare la differenza tra blocchi in attesa e non in attesa e come questi influenzeranno il movimento del robot. I timeout del motore consentono di impostare un limite di tempo affinché il motore raggiunga la posizione target prevista. Se non ha raggiunto quella posizione allo scadere del tempo, il motore smetterà di provare a girare e il progetto passerà al comando successivo.

Progetto di blocchi VEXcode IQ che utilizza un blocco di timeout del motore per far ruotare il motore dell'artiglio chiuso per 90 gradi o finché non sono trascorsi 2 secondi prima di muovere il robot. Il progetto recita: All'avvio, imposta il timeout di ClawMotor a 2 secondi e fai ruotare ClawMotor di 90 gradi. Infine, procedere in retromarcia per 200 mm.

In questo esempio, il timeout del motore è impostato su 2 secondi. Se l'artiglio non si chiude a 90 gradi entro 2 secondi, il motore smetterà di girare al segno dei 2 secondi, quindi passerà al comando successivo e andrà avanti.

La schermata Cervello è visualizzata con il Motor Sensor Dashboard aperto dal menu Dispositivi. Vengono visualizzate informazioni sul motore, come il comando, la velocità, la posizione, la corrente e la Smart Port del motore.

Se non sei sicuro di quanto spostare un motore, utilizza il dashboard del sensore. Il cruscotto riporta la posizione del motore in gradi e giri, quindi quando muovi un motore (come aprire e chiudere un artiglio) i numeri cambieranno. Utilizzare questo test per determinare quanti gradi o rotazioni sono necessarie per chiudere un artiglio, sollevare un braccio, ruotare un'aspirazione, ecc.

Consulta questi articoli per scoprire come utilizzare la dashboard del sensore.

Codifica dei motori intelligenti come parte di una trasmissione

Prima di iniziare a codificare una trasmissione in VEXcode IQ, è necessario configurare la trasmissione inclusi i motori utilizzati. I motori sono configurati all'interno della trasmissione per garantire che siano controllati con gli stessi comandi come [Drive] e [Drive for].

Comandi di attesa e non attesa

Quando si codifica una trasmissione, sono disponibili comandi di attesa e non attesa per controllare il movimento del robot.

Progetto di blocchi VEXcode IQ che utilizza comandi di attesa per far avanzare il robot e poi girarlo a destra uno dopo l'altro. Il progetto recita: Una volta avviato, procedere in avanti per 200 mm e poi svoltare a destra di 90 gradi.

I comandi di attesa impediscono al progetto di continuare fino al completamento del comportamento. Questi includono comandi come [Vai verso] [Svolta verso] e [Vai verso direzione].

Il progetto mostrato qui utilizza un modello Clawbot (2 motori) e tutti i comandi sono in attesa. Quindi, in serie, il robot avanzerebbe per 200 millimetri e poi girerebbe a destra utilizzando la trasmissione.

VEXcode IQ blocca il progetto che utilizza un comando non di attesa per far avanzare il robot finché non viene premuto il Bumper, per poi girarlo verso destra. Il progetto recita: Una volta avviato, procedere in avanti, attendere che venga premuto Bumper3, quindi girare a destra di 90 gradi.

Al contrario ci sono comandi non in attesa. Un comando non di attesa eseguirà il comportamento indefinitamente o fino a quando non verrà richiesto di passare a un altro comportamento. Questi includono comandi come [Drive].

Il progetto mostrato qui utilizza un BaseBot. In questo caso il robot avanzava indefinitamente fino a quando non veniva premuto l'interruttore del paraurti. Quindi il progetto passerebbe al comando successivo e il robot smetterebbe di guidare e girerebbe a destra di 90 gradi.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: