Skip to main content

Lezione 3: Utilizzo dei sensori e dell'elettromagnete per posizionare un disco nell'obiettivo

Aggiunta del sensore di distanza al progetto

Nella lezione 2, il robot VR ha guidato in retromarcia fino al punto di partenza per rilasciare il disco. Ciò ha richiesto all'utente di calcolare la distanza esatta da percorrere per il robot VR. Questo potrebbe non essere sempre possibile. Invece, il robot VR può utilizzare i valori del sensore riportati per raccogliere e rilasciare i dischi con precisione costante. 

In questa lezione, il sensore di distanza verrà utilizzato per determinare dove il robot VR dovrebbe smettere di guidare quando ritorna alla meta. Questo sensore segnala la distanza dalla parte anteriore del robot VR all'oggetto più vicino utilizzando il comando get_distance Per utilizzare il sensore di distanza per riportare il robot VR all'obiettivo, è necessario che accada quanto segue: 

  • Il robot VR dovrà girarsi di 180 gradi in modo che il sensore di distanza sia rivolto l'obiettivo. Il comando turn_to_heading può essere utilizzato per garantire che il robot VR giri nella direzione corretta.
  • Il robot VR utilizzerà il sensore di distanza con la parete posteriore del parco giochi per determinare dove far cadere il disco. 
  • Il robot VR guiderà verso l'obiettivo. 
Una vista prospettica del Robot VR sul Disk Mover Playground nella posizione del primo disco blu, con il disco collegato all'elettromagnete. L'obiettivo blu è dietro il robot.

Per tua informazione

Il comando turn_to_heading gira il robot VR verso una direzione specifica utilizzando il sensore giroscopico. La direzione in cui il robot VR girerà (a sinistra o a destra) è determinata in base alla direzione corrente del sensore giroscopico. Passare all'intestazione Comando Python VEXcode VR, legge la sottolineatura virata del punto di trasmissione per sottolineare l'intestazione, con 90 e Gradi tra parentesi.

Il comando turn_to_heading viene utilizzato per dirigere il robot VR verso una direzione specifica, indipendentemente dalla posizione del robot VR. Quando si solleva o si rilascia un disco, il robot VR potrebbe andare fuori rotta. Utilizzando il comando turn_to_heading si garantisce che il robot VR si sposti nella posizione assoluta anziché in una posizione relativa alla direzione precedente.

Una vista dall'alto verso il basso del robot VR al centro di un cerchio che illustra le intestazioni del robot. A ore 12, allineato con la parte anteriore del robot, è 0 gradi. L'intestazione corre in senso orario intorno al cerchio, con 90 gradi nella posizione a ore 3, 180 gradi nella posizione a ore 6 e 270 gradi nella posizione a ore 9.

Continua a costruire il progetto 

  • Continua a lavorare nel  progetto Unit8Lesson3.
  • Aggiungere un comando turn_to_heading dopo il terzo commento. Impostare il parametro a 180 gradi, in modo che il progetto ora assomigli a questo: 

    def main():
        #1. Drive al primo disco
        mentre non è down_eye.near_object():
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
        drivetrain.stop()
    
        # 2. Prendi il primo magnete del disco
        .Energizza (BOOST)
    
        # 3. Guidare fino all'obiettivo
        drivetrain.turn_to_heading(180, GRADI)
    
        # 4. Rilasciare il disco nell'obiettivo
  • Ora che il robot VR è orientato verso l'obiettivo, il robot VR dovrà tornare all'obiettivo. Aggiungi un ciclo while sotto il comando turn_to_heading , in modo che la terza sezione del progetto appaia così: 

    	# 3. Guidare fino all'obiettivo
        drivetrain.turn_to_heading(180, GRADI)
        in condizione:
            wait(5, MSEC)
  • Per tornare all'obiettivo, il robot VR utilizzerà i dati del sensore di distanza per determinare quando il robot VR è all'interno dell'obiettivo. Come discusso nella lezione precedente, ogni quadrato della griglia sul Disk Mover Playground misura 200 millimetri (mm) per 200 millimetri (mm).Una vista ravvicinata dell'angolo in basso a sinistra del parco giochi, che mostra che ogni quadrato della griglia 10 per 10 sul pavimento del parco giochi misura 200 mm per 200 mm.
  • Utilizzando tali misurazioni, è possibile determinare che il centro dell'obiettivo si trova a circa 200 millimetri (mm) dalla parete del Parco Giochi.

    Una vista ravvicinata dell'angolo in basso a sinistra del Disk Mover Playground. Il robot VR ha un disco blu collegato all'elettromagnete ed è rivolto verso l'obiettivo blu. Una misurazione dalla parete posteriore del parco giochi al centro della porta blu è etichettata come 200 millimetri.
  • Il robot VR dovrebbe guidare mentre il sensore di distanza segnala che il robot VR si trova a più di 200 millimetri (mm) dalla parete del parco giochi. Imposta la condizione del ciclo while sul comando get_distance con il parametro millimetri (mm). Quindi aggiungere l'operatore di confronto a maggiore di (>) 200. La terza sezione del progetto dovrebbe ora assomigliare a questa: 

    	# 3. Guidare fino all'obiettivo
        drivetrain.turn_to_heading(180, GRADI)
        mentre front_distance.get_distance(MM) > 200:
            wait(5, MSEC)
  • Aggiungi un comando drive in questo ciclo while , in modo che la terza sezione del progetto appaia così. Questo istruirà il robot VR a guidare in avanti mentre il sensore di distanza segnala una distanza superiore a 200 millimetri (mm).

    	# 3. Drive to the goal
        drivetrain.turn_to_heading(180, DEGREES)
        while front_distance.get_distance(MM) > 200:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
  • Una volta che il robot VR ha raggiunto l'obiettivo (200 mm dalla parete), il robot VR dovrà smettere di guidare. Aggiungere un comando stop all'esterno del ciclo  while , in modo che la terza sezione del progetto appaia così:

    	# 3. Guidare fino all'obiettivo
        drivetrain.turn_to_heading(180, GRADI)
        mentre front_distance.get_distance(MM) > 200:
            drivetrain.drive(AVANTI)
            wait(5, MSEC)
        drivetrain.stop()
  • Ora che il robot VR è fermo nell'obiettivo, può far cadere il disco. Aggiungere un comando energize sotto il quarto commento e impostare il parametro su 'DROP'. La quarta sezione del progetto dovrebbe ora assomigliare a questa:

    	# 4. Rilasciare il disco nell'obiettivo
        magnet.energize(DROP)
  • Il robot VR dovrà guidare in retromarcia a breve distanza per evitare di ribaltarsi o scontrarsi con i dischi. La collisione con un disco potrebbe potenzialmente far andare fuori rotta il robot VR. Il robot VR dovrà quindi ruotare in modo da essere nuovamente rivolto verso i dischi. Aggiungere i seguenti comandi dopo il comando di energizzazione finale come mostrato, per indicare al robot VR di guidare in retromarcia per 100 millimetri (mm) e tornare a una direzione di 0 gradi. Assicurarsi che i comandi siano rientrati correttamente nel progetto.

    	# 4. Rilasciare il disco nell'obiettivo magnet.energize
        (DROP) drivetrain.drive_for
    
    	(REVERSE, 100, MM)
        drivetrain.turn_to_heading(0, DEGREES)
  • Aprire il Disk Mover Playground se non è già aperto ed eseguire il progetto.
  • Il robot VR avanza, raccoglie il primo disco, quindi si gira a una direzione di 180 gradi per affrontare l'obiettivo. Il robot VR utilizza quindi i valori del sensore di distanza per determinare quando interrompere la guida e rilasciare il disco.

    Una vista laterale dell'obiettivo blu del Disk Mover Playground, con il primo disco blu lasciato cadere nell'obiettivo, e il robot VR viene ruotato e posizionato nella parte anteriore dell'obiettivo, pronto a raccogliere il disco successivo.

Flusso del progetto per eliminare il primo disco nell'obiettivo

Notare come il ciclo while funziona con il sensore di distanza in questa parte del progetto.

  • Il robot VR avanzerà mentre il sensore di distanza si trova a più di 200 millimetri dalla parete.
  • Quando il sensore di distanza rileva che la parete del Playground è a meno di 200 millimetri (mm) di distanza, il progetto passerà al comando successivo al di fuori del ciclo mentre e il robot VR smetterà di muoversi.
  • Il progetto continuerà, per eccitare l'elettromagnete per far cadere il disco nell' obiettivo.
  • Quindi il robot VR si invertirà e ruoterà di 180 gradi per essere pronto ad affrontare il disco successivo.

Selezionare il pulsante Avanti per continuare con il resto della lezione.