lal

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
aschut
Date:
Wed Oct 31 16:12:43 2018 +0000
Commit message:
voor flix;

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r e0567b87d8ab main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Oct 31 16:12:43 2018 +0000
@@ -0,0 +1,128 @@
+// EMG naar HOEK
+
+//----------------~INITIATING-------------------------
+#include "mbed.h"
+
+// KINEMATICS          --       DEPENDENCIES
+#include "stdio.h"
+#define _USE_MATH_DEFINES
+#include <math.h>
+#define M_PI    3.14159265358979323846 /* pi */
+
+//----------------GLOBALS--------------------------
+
+//CONSTANTS KINEMATICS
+// constants
+const float la = 0.256;         // lengte actieve arm
+const float lp = 0.21;          // lengte passieve arm
+const float rp = 0.052;         // straal van midden end effector tot hoekpunt
+const float rm = 0.23;          // straal van global midden tot motor
+const float a = 0.09;           // zijde van de driehoek
+const float xas = 0.40;         // afstand van motor 1 tot motor 3
+const float yas = 0.346;        // afstand van xas tot motor 2
+const float thetap = 0;         // rotatiehoek van de end effector
+
+// motor locatie
+const int a1x = 0;              //x locatie motor 1
+const int a1y = 0;              //y locatie motor 1
+const float a2x = (0.5)*xas;    // x locatie motor 2
+const float a2y = yas;          // y locatie motor 2
+const float a3x = xas;          // x locatie motor 3
+const int a3y = 0;              // y locatie motor 3
+
+// script voor het bepalen van de desired position aan de hand van emg (1/0)
+
+//  EMG OUTPUT
+int EMGxplus;
+int EMGxmin ;
+int EMGyplus;
+int EMGymin ;
+
+// Dit moet experimenteel geperfectioneerd worden
+float tijdstap = 0.05;      //nu wss heel langzaam, kan miss omhoog
+float v = 0.1;                // snelheid kan wss ook hoger
+
+float px = 0.2;     //starting x    
+float py = 0.155;   // starting y
+
+// limits (since no forward kinematics)
+float upperxlim = 0.36; //niet helemaal naar requierments ff kijken of ie groter kan
+float lowerxlim = 0.04;
+float upperylim = 0.30;
+float lowerylim = 0.04;
+
+
+//----------------FUNCTIONS--------------------------
+
+// ~~~~~~~~~~~~~~ROBOT KINEMATICS ~~~~~~~~~~~~~~~~~~
+
+// functie x positie
+float positionx(int EMGxplus,int EMGxmin)
+{
+    float EMGx = EMGxplus - EMGxmin;
+
+    float verplaatsingx = EMGx * tijdstap * v;
+    float pxnieuw = px + verplaatsingx;
+    // x limit
+    if (pxnieuw <= upperxlim && pxnieuw >= lowerxlim)
+        {
+        px = pxnieuw;
+        }
+    else
+        {
+        if (pxnieuw >= lowerxlim)
+        {
+        px = upperxlim;
+        }
+    else
+        {
+        px = lowerxlim;
+        }
+    }
+//printf("X eindpunt (%f) en verplaatsing: (%f)\n\r",px,verplaatsingx);
+return px;
+}
+
+
+// functie y positie
+float positiony(int EMGyplus,int EMGymin)
+{
+    float EMGy = EMGyplus - EMGymin;
+
+    float verplaatsingy = EMGy * tijdstap * v;
+    float pynieuw = py + verplaatsingy;
+
+    // y limit
+    if (pynieuw <= upperylim && pynieuw >= lowerylim)
+        {
+        py = pynieuw;
+        }
+    else
+        {
+            if (pynieuw >= lowerylim)
+            {
+            py = upperylim;
+            }
+            else
+            {
+            py = lowerylim;
+            }
+        }
+//printf("Y eindpunt (%f) en verplaatsing: (%f) \n\r",py,verplaatsingy);
+return (py);
+}
+
+
+
+//----------------------MAIN---------------------------------
+int main()
+{
+        
+
+// berekenen positie
+   float px = positionx(1,0);  // EMG: +x, -x
+   float py = positiony(1,0);  // EMG: +y, -y
+   //printf("positie (%f,%f)\n\r",px,py);
+
+
+}
diff -r 000000000000 -r e0567b87d8ab mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Oct 31 16:12:43 2018 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/e95d10626187
\ No newline at end of file