Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:e08430df04a4, 2017-09-16 (annotated)
- Committer:
- camilobar
- Date:
- Sat Sep 16 02:44:14 2017 +0000
- Revision:
- 0:e08430df04a4
camilo;
Who changed what in which revision?
| User | Revision | Line number | New 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 | } |