embebidos grupo1 / Mbed 2 deprecated piccolotaller1

Dependencies:   mbed

Committer:
camilobar
Date:
Sat Sep 16 02:44:14 2017 +0000
Revision:
0:e08430df04a4
camilo;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
camilobar 0:e08430df04a4 1 #include "mbed.h"
camilobar 0:e08430df04a4 2 #define MAXPOS 50
camilobar 0:e08430df04a4 3 #define SS_TIME 500
camilobar 0:e08430df04a4 4
camilobar 0:e08430df04a4 5 PwmOut myServoX(PB_3);
camilobar 0:e08430df04a4 6 PwmOut myServoY(PB_4);
camilobar 0:e08430df04a4 7 PwmOut myServoZ(PB_5);
camilobar 0:e08430df04a4 8
camilobar 0:e08430df04a4 9
camilobar 0:e08430df04a4 10 int coord2us(float coord)
camilobar 0:e08430df04a4 11 {
camilobar 0:e08430df04a4 12 if(0 <= coord <= MAXPOS)
camilobar 0:e08430df04a4 13 return int(750+coord*1900/50);//
camilobar 0:e08430df04a4 14 return 750;
camilobar 0:e08430df04a4 15
camilobar 0:e08430df04a4 16 }
camilobar 0:e08430df04a4 17
camilobar 0:e08430df04a4 18 void vertex2d(float x, float y, float z){//llamado una funcion coordenada con variables decimal en x,y
camilobar 0:e08430df04a4 19
camilobar 0:e08430df04a4 20 int pulseX = coord2us(x);
camilobar 0:e08430df04a4 21 int pulseY = coord2us(y);
camilobar 0:e08430df04a4 22 int pulseZ = coord2us(z);
camilobar 0:e08430df04a4 23 myServoX.pulsewidth_us(pulseX);
camilobar 0:e08430df04a4 24 myServoY.pulsewidth_us(pulseY);
camilobar 0:e08430df04a4 25 myServoZ.pulsewidth_us(pulseZ);
camilobar 0:e08430df04a4 26 wait_ms(SS_TIME);
camilobar 0:e08430df04a4 27
camilobar 0:e08430df04a4 28 }
camilobar 0:e08430df04a4 29 void home()
camilobar 0:e08430df04a4 30 {
camilobar 0:e08430df04a4 31
camilobar 0:e08430df04a4 32 vertex2d(0 ,0,1);
camilobar 0:e08430df04a4 33 }
camilobar 0:e08430df04a4 34
camilobar 0:e08430df04a4 35 void maxpos()
camilobar 0:e08430df04a4 36 {
camilobar 0:e08430df04a4 37 vertex2d(MAXPOS ,MAXPOS,0);
camilobar 0:e08430df04a4 38 }
camilobar 0:e08430df04a4 39
camilobar 0:e08430df04a4 40 void diag()
camilobar 0:e08430df04a4 41 {
camilobar 0:e08430df04a4 42 vertex2d(15,0,0);
camilobar 0:e08430df04a4 43 vertex2d(15,0,10);
camilobar 0:e08430df04a4 44 vertex2d(15,20,10);
camilobar 0:e08430df04a4 45 vertex2d(15,50,10);
camilobar 0:e08430df04a4 46 vertex2d(15,50,0);
camilobar 0:e08430df04a4 47
camilobar 0:e08430df04a4 48
camilobar 0:e08430df04a4 49 }
camilobar 0:e08430df04a4 50 void diag2()
camilobar 0:e08430df04a4 51 {
camilobar 0:e08430df04a4 52 vertex2d(15,25,0);
camilobar 0:e08430df04a4 53 vertex2d(15,25,10);
camilobar 0:e08430df04a4 54 vertex2d(10,35,10);
camilobar 0:e08430df04a4 55 vertex2d(0,50,10);
camilobar 0:e08430df04a4 56
camilobar 0:e08430df04a4 57 vertex2d(0,50,0);
camilobar 0:e08430df04a4 58
camilobar 0:e08430df04a4 59
camilobar 0:e08430df04a4 60 }
camilobar 0:e08430df04a4 61
camilobar 0:e08430df04a4 62 void square(float x, float y, float l)
camilobar 0:e08430df04a4 63 {
camilobar 0:e08430df04a4 64 int i,j;
camilobar 0:e08430df04a4 65 int p,t;
camilobar 0:e08430df04a4 66 vertex2d(x,y,0);
camilobar 0:e08430df04a4 67 wait(1);
camilobar 0:e08430df04a4 68 vertex2d(x,y,10);
camilobar 0:e08430df04a4 69 wait(1);
camilobar 0:e08430df04a4 70 p=l;
camilobar 0:e08430df04a4 71 i=p;
camilobar 0:e08430df04a4 72 j=y;
camilobar 0:e08430df04a4 73 vertex2d(i,j/2,10);
camilobar 0:e08430df04a4 74
camilobar 0:e08430df04a4 75 t=l;
camilobar 0:e08430df04a4 76 j=t;
camilobar 0:e08430df04a4 77 vertex2d(i,j,10);
camilobar 0:e08430df04a4 78 p=l;
camilobar 0:e08430df04a4 79 i=p;
camilobar 0:e08430df04a4 80 vertex2d(x,j,10);
camilobar 0:e08430df04a4 81
camilobar 0:e08430df04a4 82 vertex2d(x,y,10);
camilobar 0:e08430df04a4 83 vertex2d(x,y,0);
camilobar 0:e08430df04a4 84 vertex2d(0,0,0);
camilobar 0:e08430df04a4 85 }
camilobar 0:e08430df04a4 86 void line(float Xi,float Xf,float Yi,float Yf){
camilobar 0:e08430df04a4 87 int i,j;
camilobar 0:e08430df04a4 88 i=Xi;
camilobar 0:e08430df04a4 89 j=Yi;
camilobar 0:e08430df04a4 90 vertex2d(Xi,Yi,0);
camilobar 0:e08430df04a4 91 vertex2d(i,j,10);
camilobar 0:e08430df04a4 92 wait(2);
camilobar 0:e08430df04a4 93 i=Xf;
camilobar 0:e08430df04a4 94 j=Yf;
camilobar 0:e08430df04a4 95 vertex2d(i,j,10);
camilobar 0:e08430df04a4 96 wait(2);
camilobar 0:e08430df04a4 97 vertex2d(Xf,Yf,0);
camilobar 0:e08430df04a4 98 vertex2d(0,0,0);
camilobar 0:e08430df04a4 99
camilobar 0:e08430df04a4 100 }
camilobar 0:e08430df04a4 101 void circle(int X,int Y,int R){
camilobar 0:e08430df04a4 102 float resolucion=10,i,j;
camilobar 0:e08430df04a4 103 double PI=3.1416;
camilobar 0:e08430df04a4 104 vertex2d(X,Y,0);
camilobar 0:e08430df04a4 105 wait(1);
camilobar 0:e08430df04a4 106 for (double angulo=0;angulo<=370;angulo =angulo+resolucion){
camilobar 0:e08430df04a4 107 double radian=((angulo * PI)/180);
camilobar 0:e08430df04a4 108 j=R * cos(radian);
camilobar 0:e08430df04a4 109 i=R * sin(radian);
camilobar 0:e08430df04a4 110 vertex2d(X+i,Y+j,10);
camilobar 0:e08430df04a4 111
camilobar 0:e08430df04a4 112 }
camilobar 0:e08430df04a4 113 }
camilobar 0:e08430df04a4 114
camilobar 0:e08430df04a4 115 int main() {
camilobar 0:e08430df04a4 116 // configuracion de periodo
camilobar 0:e08430df04a4 117 myServoX.period_ms(10);
camilobar 0:e08430df04a4 118 myServoY.period_ms(10);
camilobar 0:e08430df04a4 119 myServoZ.period_ms(20);
camilobar 0:e08430df04a4 120
camilobar 0:e08430df04a4 121 while(1)
camilobar 0:e08430df04a4 122 {
camilobar 0:e08430df04a4 123
camilobar 0:e08430df04a4 124 //home();
camilobar 0:e08430df04a4 125 //wait(1);
camilobar 0:e08430df04a4 126 diag2();
camilobar 0:e08430df04a4 127 wait(1);
camilobar 0:e08430df04a4 128 diag();
camilobar 0:e08430df04a4 129 wait(1);
camilobar 0:e08430df04a4 130 square(0,0,25);
camilobar 0:e08430df04a4 131 wait(5);
camilobar 0:e08430df04a4 132 //line(0,30,0,30);
camilobar 0:e08430df04a4 133 //wait(5);
camilobar 0:e08430df04a4 134 circle(35,20,8); //coordenada x y seguido del radio
camilobar 0:e08430df04a4 135 wait(5);
camilobar 0:e08430df04a4 136
camilobar 0:e08430df04a4 137
camilobar 0:e08430df04a4 138 }
camilobar 0:e08430df04a4 139
camilobar 0:e08430df04a4 140 }