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.

Codificatore del 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.

immagine7.png

Segui i passaggi 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.

immagine3.png

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.

immagine6.png

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.

immagine2.png

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.

immagine4.png

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.

immagine1.png

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.

immagine8.png

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: