Piccolo / Mbed 2 deprecated Piccolo_1C_Funciones

Dependencies:   mbed

Fork of Piccolo_1C_Funciones by Heidy Vanessa Vasquez Valencia

Committer:
Vanessa620
Date:
Fri Oct 06 04:35:58 2017 +0000
Revision:
2:f52a2c0dedb4
Parent:
1:f246d2321c06
SIS.EMB.PICOLO.V1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Vanessa620 0:ad525f3cd781 1 #include "mbed.h"
Vanessa620 2:f52a2c0dedb4 2 #include "math.h"
Vanessa620 2:f52a2c0dedb4 3 #define MAXPOS 50 // maxposX : 5.5cm ; maxposY : 4.5cm
Vanessa620 2:f52a2c0dedb4 4 #define SS_TIME 500
Vanessa620 2:f52a2c0dedb4 5 #define PI 3.1415926
Vanessa620 0:ad525f3cd781 6
Vanessa620 0:ad525f3cd781 7 PwmOut myServoX(PB_3);
Vanessa620 0:ad525f3cd781 8 PwmOut myServoY(PB_4);
Vanessa620 0:ad525f3cd781 9 PwmOut myServoZ(PB_10);
Vanessa620 0:ad525f3cd781 10
Vanessa620 0:ad525f3cd781 11
Vanessa620 0:ad525f3cd781 12 int coord2us(float coord)
Vanessa620 2:f52a2c0dedb4 13 {
Vanessa620 0:ad525f3cd781 14 if(0 <= coord <= MAXPOS)
Vanessa620 0:ad525f3cd781 15 return int(750+coord*1900/50);// u6
Vanessa620 2:f52a2c0dedb4 16 //return 750;
Vanessa620 2:f52a2c0dedb4 17 }
Vanessa620 2:f52a2c0dedb4 18 void vertex2d(float y) //, float y
Vanessa620 0:ad525f3cd781 19 {
Vanessa620 2:f52a2c0dedb4 20 // int pulseX = coord2us(x);
Vanessa620 2:f52a2c0dedb4 21 int pulseY = coord2us(y);
Vanessa620 0:ad525f3cd781 22
Vanessa620 2:f52a2c0dedb4 23 //myServoX.pulsewidth_us(pulseX);
Vanessa620 0:ad525f3cd781 24 myServoY.pulsewidth_us(pulseY);
Vanessa620 0:ad525f3cd781 25 wait_ms(SS_TIME);
Vanessa620 0:ad525f3cd781 26 }
Vanessa620 0:ad525f3cd781 27
Vanessa620 0:ad525f3cd781 28
Vanessa620 0:ad525f3cd781 29
Vanessa620 0:ad525f3cd781 30 void home()
Vanessa620 0:ad525f3cd781 31 {
Vanessa620 2:f52a2c0dedb4 32 vertex2d(0);
Vanessa620 2:f52a2c0dedb4 33 }
Vanessa620 0:ad525f3cd781 34
Vanessa620 0:ad525f3cd781 35 void maxpos()
Vanessa620 0:ad525f3cd781 36 {
Vanessa620 2:f52a2c0dedb4 37 vertex2d(MAXPOS);
Vanessa620 0:ad525f3cd781 38 }
Vanessa620 2:f52a2c0dedb4 39 /*
Vanessa620 2:f52a2c0dedb4 40 void cuadrado(int x, int y, int l)
Vanessa620 2:f52a2c0dedb4 41 {
Vanessa620 2:f52a2c0dedb4 42 float a;
Vanessa620 2:f52a2c0dedb4 43 float b;
Vanessa620 2:f52a2c0dedb4 44
Vanessa620 2:f52a2c0dedb4 45 wait(2);vertex2d(a,b);
Vanessa620 2:f52a2c0dedb4 46 printf("position x =%.2f\n",a);
Vanessa620 2:f52a2c0dedb4 47 printf("position y =%.2f\n",b);
Vanessa620 2:f52a2c0dedb4 48 a=a+l;
Vanessa620 2:f52a2c0dedb4 49 wait(2);vertex2d(a,b);
Vanessa620 2:f52a2c0dedb4 50 printf("position x =%.2f\n",a);
Vanessa620 2:f52a2c0dedb4 51 printf("position y =%.2f\n",b);
Vanessa620 2:f52a2c0dedb4 52 b=b+l;
Vanessa620 2:f52a2c0dedb4 53 wait(2);vertex2d(a,b);
Vanessa620 2:f52a2c0dedb4 54 printf("position x =%.2f\n",a);
Vanessa620 2:f52a2c0dedb4 55 printf("position y =%.2f\n",b);
Vanessa620 2:f52a2c0dedb4 56 a=a-l;
Vanessa620 2:f52a2c0dedb4 57 wait(2);vertex2d(a,b);
Vanessa620 2:f52a2c0dedb4 58 printf("position x =%.2f\n",a);
Vanessa620 2:f52a2c0dedb4 59 printf("position y =%.2f\n",b);
Vanessa620 2:f52a2c0dedb4 60 b=b-l;
Vanessa620 2:f52a2c0dedb4 61 wait(2);vertex2d(a,b);
Vanessa620 2:f52a2c0dedb4 62 printf("position x =%.2f\n",a);
Vanessa620 2:f52a2c0dedb4 63 printf("position y =%.2f\n",b);
Vanessa620 2:f52a2c0dedb4 64
Vanessa620 2:f52a2c0dedb4 65 vertex2d(x,y);
Vanessa620 2:f52a2c0dedb4 66 // wait(2);
Vanessa620 2:f52a2c0dedb4 67 a=x+l;
Vanessa620 2:f52a2c0dedb4 68 vertex2d(a,y);
Vanessa620 2:f52a2c0dedb4 69 //wait(2);
Vanessa620 2:f52a2c0dedb4 70 b=y+l;
Vanessa620 2:f52a2c0dedb4 71 vertex2d(a,b);
Vanessa620 2:f52a2c0dedb4 72 //wait(2);
Vanessa620 2:f52a2c0dedb4 73 vertex2d(x,b);
Vanessa620 2:f52a2c0dedb4 74 // wait(2);
Vanessa620 2:f52a2c0dedb4 75 vertex2d(x,y);
Vanessa620 2:f52a2c0dedb4 76 }
Vanessa620 0:ad525f3cd781 77
Vanessa620 0:ad525f3cd781 78 void diag()
Vanessa620 0:ad525f3cd781 79 {
Vanessa620 2:f52a2c0dedb4 80 wait(2);vertex2d(0,0);
Vanessa620 0:ad525f3cd781 81 wait(2);vertex2d(10,10);
Vanessa620 0:ad525f3cd781 82 wait(2);vertex2d(20,20);
Vanessa620 0:ad525f3cd781 83 wait(2);vertex2d(30,30);
Vanessa620 2:f52a2c0dedb4 84 wait(2);vertex2d(40,40);*/
Vanessa620 2:f52a2c0dedb4 85
Vanessa620 2:f52a2c0dedb4 86 /*wait(1);vertex2d(0,0);
Vanessa620 0:ad525f3cd781 87 wait(1);vertex2d(40,0);
Vanessa620 0:ad525f3cd781 88 wait(1);vertex2d(40,40);
Vanessa620 0:ad525f3cd781 89 wait(1);vertex2d(0,40);
Vanessa620 2:f52a2c0dedb4 90 wait(1);vertex2d(0,0);
Vanessa620 0:ad525f3cd781 91
Vanessa620 2:f52a2c0dedb4 92 wait(1);vertex2d(10,0);
Vanessa620 2:f52a2c0dedb4 93 wait(1);vertex2d(10,40);
Vanessa620 2:f52a2c0dedb4 94 wait(1);vertex2d(20,40);
Vanessa620 2:f52a2c0dedb4 95 wait(1);vertex2d(20,0);
Vanessa620 2:f52a2c0dedb4 96 wait(1);vertex2d(30,0);
Vanessa620 2:f52a2c0dedb4 97 wait(1);vertex2d(30,40);
Vanessa620 2:f52a2c0dedb4 98 wait(1);vertex2d(40,40);
Vanessa620 2:f52a2c0dedb4 99 wait(1);vertex2d(40,0);
Vanessa620 0:ad525f3cd781 100 }
Vanessa620 2:f52a2c0dedb4 101
Vanessa620 2:f52a2c0dedb4 102
Vanessa620 2:f52a2c0dedb4 103
Vanessa620 2:f52a2c0dedb4 104 void Pendiente(int x0,int y0,int x1,int y1)
Vanessa620 2:f52a2c0dedb4 105 {
Vanessa620 2:f52a2c0dedb4 106 float x;
Vanessa620 2:f52a2c0dedb4 107 float y;
Vanessa620 2:f52a2c0dedb4 108 float m;
Vanessa620 2:f52a2c0dedb4 109 for(x=x0; x<=x1; x=x+1)
Vanessa620 2:f52a2c0dedb4 110 {
Vanessa620 2:f52a2c0dedb4 111 m=(y1-y0)/(x1-x0);
Vanessa620 2:f52a2c0dedb4 112 y=m*(x-x0)+y0;
Vanessa620 2:f52a2c0dedb4 113 vertex2d(x,y);
Vanessa620 2:f52a2c0dedb4 114 printf("position x =%.2f\n",x);
Vanessa620 2:f52a2c0dedb4 115 printf("position y =%.2f\n",y);
Vanessa620 2:f52a2c0dedb4 116 }
Vanessa620 2:f52a2c0dedb4 117 */
Vanessa620 2:f52a2c0dedb4 118 /*
Vanessa620 2:f52a2c0dedb4 119 vertex2d(x0,y0);
Vanessa620 2:f52a2c0dedb4 120 //wait(2);
Vanessa620 2:f52a2c0dedb4 121 vertex2d(x1,y1);
Vanessa620 2:f52a2c0dedb4 122 }
Vanessa620 0:ad525f3cd781 123
Vanessa620 2:f52a2c0dedb4 124 void circle(float cx, float cy, float radio)
Vanessa620 2:f52a2c0dedb4 125 {
Vanessa620 2:f52a2c0dedb4 126 float y;
Vanessa620 2:f52a2c0dedb4 127 float x;
Vanessa620 2:f52a2c0dedb4 128 wait(2); vertex2d(cx,cy);
Vanessa620 2:f52a2c0dedb4 129
Vanessa620 2:f52a2c0dedb4 130
Vanessa620 2:f52a2c0dedb4 131 for(double i=PI/2; i<=PI ;i=i+0.5)
Vanessa620 2:f52a2c0dedb4 132 {
Vanessa620 2:f52a2c0dedb4 133 x=radio*cos(i);
Vanessa620 2:f52a2c0dedb4 134 y=radio*sin(i);
Vanessa620 2:f52a2c0dedb4 135 vertex2d(cx-x,cy-y);
Vanessa620 2:f52a2c0dedb4 136 printf("position x =%.2f\n",x);
Vanessa620 2:f52a2c0dedb4 137 printf("position y =%.2f\n",y);
Vanessa620 2:f52a2c0dedb4 138 }
Vanessa620 2:f52a2c0dedb4 139 wait(1);
Vanessa620 2:f52a2c0dedb4 140 for(double i=0; i<=PI/2 ;i+=0.5)
Vanessa620 2:f52a2c0dedb4 141 {
Vanessa620 2:f52a2c0dedb4 142 x=radio*cos(i);
Vanessa620 2:f52a2c0dedb4 143 y=radio*sin(i);
Vanessa620 2:f52a2c0dedb4 144 vertex2d(x+cx,y+cy);
Vanessa620 2:f52a2c0dedb4 145 printf("position x =%.2f\n",x);
Vanessa620 2:f52a2c0dedb4 146 printf("position y =%.2f\n",y);
Vanessa620 2:f52a2c0dedb4 147 }
Vanessa620 2:f52a2c0dedb4 148
Vanessa620 2:f52a2c0dedb4 149 for(double i=PI; i<=(3*PI)/2 ;i=i+0.5)
Vanessa620 2:f52a2c0dedb4 150 {
Vanessa620 2:f52a2c0dedb4 151 x=radio*cos(i);
Vanessa620 2:f52a2c0dedb4 152 y=radio*sin(i);
Vanessa620 2:f52a2c0dedb4 153 vertex2d(x+y,cx+cy);
Vanessa620 2:f52a2c0dedb4 154 printf("position x =%.2f\n",x);
Vanessa620 2:f52a2c0dedb4 155 printf("position y =%.2f\n",y);
Vanessa620 2:f52a2c0dedb4 156 }*/
Vanessa620 2:f52a2c0dedb4 157 /*
Vanessa620 2:f52a2c0dedb4 158 for(double i=3*PI/2; i<=2*PI ;i=i+0.1)
Vanessa620 2:f52a2c0dedb4 159 {
Vanessa620 2:f52a2c0dedb4 160 x=radio*cos(i);
Vanessa620 2:f52a2c0dedb4 161 y=radio*sin(i);
Vanessa620 2:f52a2c0dedb4 162 vertex2d(cx+x,cy-y);
Vanessa620 2:f52a2c0dedb4 163 printf("position x =%.2f\n",x);
Vanessa620 2:f52a2c0dedb4 164 printf("position y =%.2f\n",y);
Vanessa620 2:f52a2c0dedb4 165 }
Vanessa620 2:f52a2c0dedb4 166 }
Vanessa620 0:ad525f3cd781 167
Vanessa620 2:f52a2c0dedb4 168 void Pendiente(int x0,int y0,int x1,int y1);
Vanessa620 0:ad525f3cd781 169
Vanessa620 2:f52a2c0dedb4 170 */
Vanessa620 2:f52a2c0dedb4 171
Vanessa620 2:f52a2c0dedb4 172 int main()
Vanessa620 0:ad525f3cd781 173 {
Vanessa620 0:ad525f3cd781 174 // configuracion de periodo
Vanessa620 0:ad525f3cd781 175 myServoX.period_ms(20);
Vanessa620 0:ad525f3cd781 176 myServoY.period_ms(20);
Vanessa620 0:ad525f3cd781 177 myServoZ.period_ms(20);
Vanessa620 0:ad525f3cd781 178
Vanessa620 0:ad525f3cd781 179 while(1)
Vanessa620 2:f52a2c0dedb4 180 {
Vanessa620 2:f52a2c0dedb4 181 home();
Vanessa620 2:f52a2c0dedb4 182 wait(2);
Vanessa620 0:ad525f3cd781 183 maxpos();
Vanessa620 2:f52a2c0dedb4 184 wait(2);
Vanessa620 2:f52a2c0dedb4 185 home();
Vanessa620 2:f52a2c0dedb4 186
Vanessa620 2:f52a2c0dedb4 187
Vanessa620 2:f52a2c0dedb4 188 /* wait(3);
Vanessa620 2:f52a2c0dedb4 189 //Pendiente(30,35,15,20);
Vanessa620 2:f52a2c0dedb4 190 //Pendiente(15,20,0,35);
Vanessa620 2:f52a2c0dedb4 191 //Pendiente(0,35,15,50);
Vanessa620 2:f52a2c0dedb4 192 //wait(3);
Vanessa620 2:f52a2c0dedb4 193 //Pendiente(15,50,30,35);
Vanessa620 2:f52a2c0dedb4 194 //wait(3);
Vanessa620 2:f52a2c0dedb4 195
Vanessa620 2:f52a2c0dedb4 196 wait(3);
Vanessa620 2:f52a2c0dedb4 197
Vanessa620 2:f52a2c0dedb4 198 Pendiente(30,20,30,40);
Vanessa620 2:f52a2c0dedb4 199 Pendiente(30,40,40,40);
Vanessa620 2:f52a2c0dedb4 200 Pendiente(40,40,40,20);
Vanessa620 2:f52a2c0dedb4 201 Pendiente(40,20,30,20);
Vanessa620 2:f52a2c0dedb4 202 wait(3);
Vanessa620 2:f52a2c0dedb4 203 Pendiente(20,0,50,0);
Vanessa620 2:f52a2c0dedb4 204 Pendiente(50,0,50,10);
Vanessa620 2:f52a2c0dedb4 205 Pendiente(50,10,30,15);
Vanessa620 2:f52a2c0dedb4 206
Vanessa620 2:f52a2c0dedb4 207 cuadrado(0,0,10);
Vanessa620 2:f52a2c0dedb4 208 wait(2);
Vanessa620 2:f52a2c0dedb4 209 circle(30,0,15);
Vanessa620 2:f52a2c0dedb4 210 wait(3);
Vanessa620 2:f52a2c0dedb4 211
Vanessa620 2:f52a2c0dedb4 212 diag();
Vanessa620 2:f52a2c0dedb4 213 */
Vanessa620 2:f52a2c0dedb4 214 }
Vanessa620 0:ad525f3cd781 215 }