aa

Dependencies:   wheel_an QEI omni_wheel PID R1370 Controller ikarashiMDC

Files at this revision

API Documentation at this revision

Comitter:
skouki
Date:
Thu May 16 08:43:30 2019 +0000
Parent:
0:46c70e5b719d
Commit message:
a

Changed in this revision

PID.lib Show annotated file Show diff for this revision Revisions of this file
QEI.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-os.lib Show annotated file Show diff for this revision Revisions of this file
omni_wheel.lib Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PID.lib	Thu May 16 08:43:30 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/aberk/code/PID/#6e12a3e5af19
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QEI.lib	Thu May 16 08:43:30 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/NHK-Robocon2016_Nagaoka_B_Team/code/QEI/#fe23b32e62ca
--- a/main.cpp	Thu May 16 07:41:44 2019 +0000
+++ b/main.cpp	Thu May 16 08:43:30 2019 +0000
@@ -2,35 +2,41 @@
 #include "controller.h"
 #include "ikarashiMDC.h"
 #include "R1370.h"
-#include "wheel_an.h"
 #define PI 3.141593
+#include"omni_wheel.h"
+#include"PID.h"
 
+PID pid1(3.0,3.0,0.000005,0.01);
+OmniWheel omni(3);
 Controller pad(PC_10, PC_11, 208);
-R1370 R1370(D10,D2);
+R1370 R1370(PB_6,PA_10);
 Serial pc(USBTX, USBRX, 115200);
 Serial serial(PC_6, PC_7, 115200);
-DigitalOut serialcontrol(PD_2);
+DigitalOut serialcontrol(D10);
 
-ikarashiMDC ikarashi[]
+ikarashiMDC motor[]=
 {
     ikarashiMDC(&serialcontrol,2,0,SM,&serial),
     ikarashiMDC(&serialcontrol,2,1,SM,&serial),
     ikarashiMDC(&serialcontrol,2,2,SM,&serial)
 };
 
-Wheelan wheel[]
-{
-    Wheelan(PI * 1 / 6),
-    Wheelan(PI * 5 / 6),
-    Wheelan(PI * 9 / 6)
-};
-
 int main()
 {
-    ikarashi[0].braking = true;
+    pid1.setInputLimits(-90,90);
+    pid1.setOutputLimits(-0.5,0.5);
+    pid1.setBias(0);
+    pid1.setMode(1);
+    pid1.setSetPoint(0);
+    omni.wheel[0].setRadian(PI * 1.0 / 6.0);
+    omni.wheel[1].setRadian(PI * 5.0 / 6.0);
+    omni.wheel[2].setRadian(PI * 9.0 / 6.0);
+  
+    motor[0].braking = true;
     int b[11];
     double rad[2],dis[2];
     double value[3];
+    pc.printf("saaa");
     while(1){
         if(pad.receiveState()){
             for(int i = 0; i < 13; i++){
@@ -41,36 +47,22 @@
                 dis[i] = pad.getNorm(i);
                 rad[i] = PI - rad[i];
             }
+            double X = dis[0]*cos(rad[0]);
+            double Y = dis[0]*sin(rad[0]);
             R1370.update();
-            pc.printf("degree : %.3lf    ", R1370.getAngle());
-
-            for (int i = 0; i < 3; ++i)
-            {
-                value[i] = wheel[i].an_uc(rad[1], dis[1]);
-            }
-
-            if(b[7] == 1 && b[9] == 0) {
-                value[0] -= 0.3;
-                value[1] -= 0.3;
-                value[2] -= 0.3;
-            } else if (b[9] == 1 && b[7] == 0) {
-                value[0] += 0.3;
-                value[1] += 0.3;
-                value[2] += 0.3;
-            }
-
-            for (int i = 0; i < 3; ++i)
-            {
-                pc.printf("%lf ", value[i]);
-                ikarashi[i].setSpeed(value[i]);
-            }
-            pc.printf("\n\r");
-
+            double angle = R1370.getAngle();
+            pid1.setProcessValue(angle);
+            double spin_power = pid1.compute();
+            omni.computeXY(X,Y,-spin_power);
+            pc.printf("%.3f||%.3f||%.3f||%.3f\n\r",X,Y,angle,spin_power);
+            for(int i = 0; i < 3; i++)
+                motor[i].setSpeed(omni.wheel[i]);
+            
         }else{
             pc.printf("error\n\r");
             for (int i = 0; i < 3; i++)
             {
-                ikarashi[i].setSpeed(0);
+                motor[i].setSpeed(0);
             }
         }
     }
--- a/mbed-os.lib	Thu May 16 07:41:44 2019 +0000
+++ b/mbed-os.lib	Thu May 16 08:43:30 2019 +0000
@@ -1,1 +1,1 @@
-https://github.com/ARMmbed/mbed-os/#c9e63f14085f5751ff5ead79a7c0382d50a813a2
+https://github.com/ARMmbed/mbed-os/#6f338f8915d22737ecb5f3de508584b6fb00749e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/omni_wheel.lib	Thu May 16 08:43:30 2019 +0000
@@ -0,0 +1,1 @@
+http://os.mbed.com/teams/NHK-Robocon2016_Nagaoka_B_Team/code/omni_wheel/#cfec945ea421