Coba dulu

Dependencies:   PID QEI mbed

omniPos.h

Committer:
gustavaditya
Date:
2016-11-07
Revision:
0:b455cd43929c

File content as of revision 0:b455cd43929c:

#ifndef OMNIPOS_H
#define OMNIPOS_H

#include "mbed.h"
#include "QEI.h"

#define diameterRoda 10

// Deklarasi variabel encoder
// Lebih jelas baca file QEI.h
QEI encoderDepan( outA, outB, 2000, X2_ENCODING);   //inA, inB, pin Indeks (NC = tak ada), resolusi, pembacaan
QEI encoderBelakang( outA, outB, 2000, X2_ENCODING);
QEI encoderKanan( outA, outB, 2000, X2_ENCODING);
QEI encoderKiri( outA, outB, 2000, X2_ENCODING);

class omniPos {
public:

    /** Dkiri untuk Motor 1
     *  Dkanan untuk Motor 2        
     *  Bkanan untuk Motor 3        
     *  Bkiri untuk Motor 4
     *      _________________
     *      |     DEPAN     |
     *      | 1.         .2 |
     *      | `           ` |
     *      | .           . |
     *      | 4`         `3 |
     *      |_______________|
     *      
     */
    typedef enum Wheel {

        Dkiri,
        Dkanan,
        Bkanan,
        Bkiri

    } Wheel;
    
    // Membuat interface dari omniPos
    omniPos(Wheel wheel);
    
    // Set center/pusat posisi omni.
    // Posisi sekarang saat di reset akan dijadikan pusat (0,0)
    void setCenter(void);
    
    // Membaca posisi X-axis dari satu omni wheel
    float getX(void);
    
    // Membaca posisi Y-axis dari satu omni wheel
    float getY(void);
    
    // Membaca tetha atau sudut rotasi robot
    float getTetha(void);
    
    // Membaca posisi 1 omni wheel ==> fi (rad)
    float getPos();
    
    // Membaca kecepatan angular 1 omni wheel  ==> fi dot (rad/s)
    float getVel(int delta_t);
};

#endif