Coba dulu

Dependencies:   PID QEI mbed

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