Partiamo dalla posizione…

Come spiegato qualche articolo fa. L’elemento fondamentale nella prima parte del progetto del robot è l’encoder. Questo sensore permette utilizzato nella giusta maniera, permette di leggere la posizione angolare del motore e sapendo il tempo trascorso tra una ed un’altra anche la velocità.

La prima parte della spiegazione è disponibile nella pagina dedicata ai sensori di posizone.

L’encoder è costituito da 2 segnali in uscita sfasati ciascuno di circa 90 gradi. Questa immagine presenta la lettura dei due canali dell’encoder in questione:

channel A & B

Calcolo della posizione

Attraverso l’utilizzo dei due canali è possibile riconoscere il verso di rotazione del motore e se richiesto, eseguire uno XOR dei due segnali per avere una informazione più precisa sulla posizione o velocità del motore.

Segnali Encoder

Per avere il riferimento relativo della posizione effettiva del motore basta contare attraverso un contatore gli impulsi provenienti da uno dei due canali e sapere la risoluzione dell’encoder.

[tex]Delta theta = N theta_c[/tex]

Dove N è il numero di conteggi
[tex]theta_c = frac{2pi}{N_c}[/tex]
[tex]N_c[/tex] è il numero di celle

Il QEI

Per poter eseguire queste semplici operazioni il dsPIC implementa una importante periferica hardware che attua queste procedure di conteggio e di rilevazione del verso di rotazione.

QEI

Il QEI (Quadrature Encoder Interface) esegue come operazioni fondamentali senza occupare tempo di elaborazione del microntrollore:

  • Filtraggio programmabile del segnale in ingresso
  • Contatore di impulsi e della direzione
  • Registro di 16Bit per il salvataggio del conteggio
  • Possibilità di settare la risoluzione a x2 o x4

I Registri utilizzati per poter configurare e leggere le informazioni provenienti da questa periferica sono:

QEIxCON = per configurare la periferica
DFLTxCON = Per configuare il filtro digitale
POSxCNT = Numero di conteggio raggiunto
MAXxCNT = Massimo valore raggiungibile

All’interno del registro QEIxCON è presente il bit UPDN che restituisce il verso di rotazione letto dagli encoder.

La configurazione del robot

Per il robot è stata scelta la configurazione in modalità di conteggio a x4 permettendo quindi una Risoluzione dell’angolo di:

[tex]K_{theta} = frac{2pi}{CPR*RAPPORTO*(x4)} = frac{2pi}{300*30*4}[/tex]

[tex]K_{theta} = simeq 0.000174532925199 rad[/tex]

Nella figura qui sotto è presente il metodo di conteggio in modalità x4

Modalita x4

Copyright © 2009. All Rights Reserved.

8 thoughts on “Partiamo dalla posizione…

  • Ciao… scusa ma non ho capito bene il funzionamento del QEI, e ho bisogno di un aiutino..
    Ho una scheda MC1 Motor Control Development Board della Microchip che monta un dsPic30F60 con cui controllo 2 motori attraverso le uscite PWM.
    Hai motori vorrei aggiungere 2 encoder, uno per motore, il problema è che di porte QEI ne ho solo una, come posso fare per l’alto encoder?
    Inoltre, ho bisogno di alcuni chiarimenti sulla QEI…. questa a 3 Pin, QEA, QEB in cui vanno i segnali sfasati (ci arrivano gia sfasati vero??), e il Pin Index che non ho ben capito a cosa serve, ( Mi conta le rivoluzioni o il numero di impulsi?)
    Spero che tu mi possa aiutare,
    Grazie
    M.G.

  • >Ho una scheda MC1 Motor Control Development Board della Microchip che >monta un dsPic30F60 con cui controllo 2 motori attraverso le uscite PWM.
    >Hai motori vorrei aggiungere 2 encoder, uno per motore, il problema è che di >porte QEI ne ho solo una, come posso fare per l’alto encoder?

    Hai bisogno di un secondo microcontrollore o puoi passare alla serie dsPIC33 che è dotata di 2 moduli QEI.

    >Inoltre, ho bisogno di alcuni chiarimenti sulla QEI…. questa a 3 Pin, QEA, >QEB in cui vanno i segnali sfasati (ci arrivano gia sfasati vero??)

    Si esattamente, guarda questo articoletto per capire al meglio il funzionamento dell’encoder: http://explorer.minisumo.net/?page_id=462

    >il Pin Index che non ho ben capito a cosa serve, ( Mi conta le rivoluzioni o il >numero di impulsi?)

    Se il tuo encoder è dotato di un terzo segnale chiamato di “index” ti permette di sapere dove è collocato lo “zero” dell’encoder e quindi quanti impulsi ci vogliono per arrivare perché l’encoder faccia un giro completo.

    Ciao
    RB

  • Salve ho un encoder line drive della omron, devo controllare la posizione con la massima cura per costruire un pendolo inverso su carrello, come controllore vorrei usare il pic16f877a, qual’è il modo migliore per farlo? il pic che voglio usare io ha la funzione QEI?

    Grazie
    Bernini Stefano

  • Salve ho un encoder line drive della omron, devo controllare la posizione con la massima cura per costruire un pendolo inverso su carrello, come controllore vorrei usare il pic16f877a, qual’è il modo migliore per farlo? il pic che voglio usare io ha la funzione QEI?

    Grazie
    Bernini Stefano

  • Sarei interessato al’encoder che ai nel testo , mi puoi dare indirizzo della ditta, e il
    suo prezzo .
    Saluti
    Pagoben Luciano

Leave a Reply