Gustav Aditya Permana
/
Riset-Odometry
Coba dulu
Diff: omniPos.h
- Revision:
- 0:b455cd43929c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omniPos.h Mon Nov 07 12:24:01 2016 +0000 @@ -0,0 +1,64 @@ +#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 \ No newline at end of file