Javier Sanchez Peña / Mbed 2 deprecated proyecto_brazo_robotico

Dependencies:   Motor QEI mbed

Revision:
1:bf0631515d8c
Parent:
0:cd0af1b08faf
Child:
2:547c71a1ce67
diff -r cd0af1b08faf -r bf0631515d8c main.cpp
--- a/main.cpp	Mon Jun 12 05:08:04 2017 +0000
+++ b/main.cpp	Fri Jun 16 01:39:55 2017 +0000
@@ -1,4 +1,4 @@
-#include "mbed.h"
+#include "mbed.h"           // declaramos las librerias de funciones 
 #include "Motor.h"
 #include "QEI.h"
 
@@ -31,25 +31,25 @@
 Serial bt(PA_2, PA_3);          // (RX, TX) (puerto serial 2)
 
 // declaramos otras variables que utilizaremos
-Ticker ticker1;                 // iniciamos dos tickers
+Ticker ticker1;                 // iniciamos un ticker
 DigitalOut led1 (LED1);         // declaramos el LED1 
 DigitalOut led2 (LED2);         // declaramos el LED2 
 DigitalOut led3 (LED3);         // declaramos el LED3 
 int pulsos[6]={0,0,0,0,0,0};    // iniciamos el array pulsos
-int posiciones[10][6]={0};      // declaramos los arrays de posiciones 
+int posiciones[10][6]={{0,0,0,0,0,0},{0,250,50,1004,80,100},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},  // sustituye aqui los valores por los de los encoders y deja el primer valor de cada posicion a 0
+                       {0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0}};          // declaramos los arrays de posiciones 
 char dato=0;
 float V=1;
 
 // declaramos el prototipo de las funciones que utilizaremos
 void enviar_bt();               // prototipo de la funcion que ejecutara el ticker1
-void encenderLEDs();            // prototipo de la funcion que ejecutara el ticker1
 void sethome();                 // prototipo de la funcion que nos calibrara la posicion hard home de referencia
 void posicion(int);             // prototipo de la funcion que nos llevara hasta la posicion especificada
 void mover(int,int,float);      // prototipo de la funcion que movera cada motor
 void frenar(int);               // prototipo de la funcion que frenara cada motor
 void pinza(int);                // prototipo de la funcion que abrira (-1) o cerrara (1) la pinza
 void movCinta();                // prototipo de la funcion que avanzara la cinta hasta detectar un objeto
-float map(long,long,long,float,long);   // prototipo de la funcion que hace una redimension de los parametros
+float map(float,float,float,float,float);   // prototipo de la funcion que hace una redimension de los parametros
 
 int main()
 {
@@ -62,7 +62,7 @@
     
     bt.baud(9600);          // velocidad de transmision del bluetooth a 9600 baudios
     
-    ticker1.attach(&enviar_bt, 0.2);    // asignamos la funcion "enviar_bt" al protocolo de interrupcion del "ticker1" y le damos un intervalo de 0.2s
+    ticker1.attach(&enviar_bt, 0.5);    // asignamos la funcion "enviar_bt" al protocolo de interrupcion del "ticker1" y le damos un intervalo de 0.2s
 
     sethome();              // establecemos la posicion de referencia
     
@@ -131,19 +131,43 @@
                 case 'L':       // si el caracter es L se cierra la pinza
                 pinza(1);
                 break;
-                case 'M':       // si el caracter es M se avanza la cinta
-                movCinta();
-                break;
-                case 'N':       // si el caracter es N se mueve a la posicion home
+                case 'M':       // si el caracter es M se mueve a la posicion home
                 posicion(0);
                 pinza(-1);
                 break;
+                case 'N':       // si el caracter es N se mueve a la posicion 1
+                posicion(1);
+                break;
+                case 'O':       // si el caracter es O se mueve a la posicion 2
+                posicion(2);
+                break;
+                case 'P':       // si el caracter es P se mueve a la posicion 3
+                posicion(3);
+                break;
+                case 'Q':       // si el caracter es Q se mueve a la posicion 4
+                posicion(4);
+                break;
+                case 'R':       // si el caracter es R se mueve a la posicion 5
+                posicion(5);
+                break;
+                case 'S':       // si el caracter es S se mueve a la posicion 6
+                posicion(6);
+                break;
+                case 'T':       // si el caracter es T se mueve a la posicion 7
+                posicion(7);
+                break;
+                case 'U':       // si el caracter es U se mueve a la posicion 8
+                posicion(8);
+                break;
+                case 'V':       // si el caracter es V se mueve a la posicion 9
+                posicion(9);
+                break;
             }
         }
     }
 }
 
-float map(long x, long in_min, long in_max, float out_min, long out_max)    // funcion que redimensiona los parametros
+float map(float x, float in_min, float in_max, float out_min, float out_max)    // funcion que redimensiona los parametros
 {
   return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
 }
@@ -303,7 +327,6 @@
                 }
             }
         }
-        wait(0.001);                     // esperamos 0.001s
         pulsos[1]=enc1.getPulses();     // leemos la nueva posicion de los encoders
         pulsos[2]=enc2.getPulses();
         pulsos[3]=enc3.getPulses();