Vanesa Lara Cruz / Mbed 2 deprecated serial-protocol-V2

Dependencies:   mbed

Fork of 02_LAB_serial_protocol by ferney alberto beltran molina

Committer:
fabeltranm
Date:
Thu Oct 12 00:38:03 2017 +0000
Revision:
13:4226825e2060
Parent:
11:8055e81e45d1
Child:
14:124051c4524a
add all commands

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fabeltranm 10:d2bf51fdc68a 1
fabeltranm 10:d2bf51fdc68a 2 #include "draw.h"
fabeltranm 10:d2bf51fdc68a 3 #include "mbed.h"
fabeltranm 10:d2bf51fdc68a 4
fabeltranm 10:d2bf51fdc68a 5 DigitalOut led(LED1);
fabeltranm 10:d2bf51fdc68a 6
fabeltranm 10:d2bf51fdc68a 7 PwmOut myServoX(PB_3);
fabeltranm 10:d2bf51fdc68a 8 PwmOut myServoY(PB_4);
fabeltranm 10:d2bf51fdc68a 9 PwmOut myServoZ(PB_5);
fabeltranm 10:d2bf51fdc68a 10
fabeltranm 10:d2bf51fdc68a 11
fabeltranm 10:d2bf51fdc68a 12 void led_on(uint16_t ts, uint16_t tms )
fabeltranm 10:d2bf51fdc68a 13 {
fabeltranm 10:d2bf51fdc68a 14
fabeltranm 10:d2bf51fdc68a 15 led=1;
fabeltranm 10:d2bf51fdc68a 16 wait(ts);wait_ms(tms);
fabeltranm 10:d2bf51fdc68a 17 led=0;
fabeltranm 10:d2bf51fdc68a 18
fabeltranm 10:d2bf51fdc68a 19 }
fabeltranm 10:d2bf51fdc68a 20
fabeltranm 10:d2bf51fdc68a 21 int coord2us(float coord)
fabeltranm 10:d2bf51fdc68a 22 {
fabeltranm 10:d2bf51fdc68a 23 if(0 <= coord <= MAXPOS)
fabeltranm 10:d2bf51fdc68a 24 return int(750+coord*1900/50);// u6
fabeltranm 10:d2bf51fdc68a 25 return 750;
fabeltranm 10:d2bf51fdc68a 26
fabeltranm 10:d2bf51fdc68a 27 }
fabeltranm 10:d2bf51fdc68a 28
fabeltranm 10:d2bf51fdc68a 29 void draw(){
fabeltranm 10:d2bf51fdc68a 30 myServoZ.pulsewidth_us(POSDRAW);
fabeltranm 11:8055e81e45d1 31 wait_ms(SS_TIME);
fabeltranm 10:d2bf51fdc68a 32 }
fabeltranm 10:d2bf51fdc68a 33
fabeltranm 10:d2bf51fdc68a 34 void nodraw(){
fabeltranm 10:d2bf51fdc68a 35 myServoZ.pulsewidth_us(MAXPOS);
fabeltranm 11:8055e81e45d1 36 wait_ms(SS_TIME);
fabeltranm 10:d2bf51fdc68a 37 }
fabeltranm 10:d2bf51fdc68a 38
fabeltranm 10:d2bf51fdc68a 39 void vertex2d(uint8_t x, uint8_t y){
fabeltranm 10:d2bf51fdc68a 40
fabeltranm 10:d2bf51fdc68a 41 int pulseX = coord2us(x);
fabeltranm 10:d2bf51fdc68a 42 int pulseY = coord2us(y);
fabeltranm 10:d2bf51fdc68a 43
fabeltranm 10:d2bf51fdc68a 44 myServoX.pulsewidth_us(pulseX);
fabeltranm 10:d2bf51fdc68a 45 myServoY.pulsewidth_us(pulseY);
fabeltranm 10:d2bf51fdc68a 46 wait_ms(SS_TIME); //TODO: CALCULAR EL TIEMPO DE DONDE VIENE
fabeltranm 10:d2bf51fdc68a 47
fabeltranm 10:d2bf51fdc68a 48 }
fabeltranm 10:d2bf51fdc68a 49
fabeltranm 10:d2bf51fdc68a 50 void initdraw(float x, float y){
fabeltranm 10:d2bf51fdc68a 51 vertex2d (x,y);
fabeltranm 10:d2bf51fdc68a 52 draw();
fabeltranm 10:d2bf51fdc68a 53 }
fabeltranm 10:d2bf51fdc68a 54
fabeltranm 10:d2bf51fdc68a 55 void home(){
fabeltranm 10:d2bf51fdc68a 56 nodraw();
fabeltranm 10:d2bf51fdc68a 57 vertex2d(0 ,0);
fabeltranm 10:d2bf51fdc68a 58 }
fabeltranm 10:d2bf51fdc68a 59
fabeltranm 10:d2bf51fdc68a 60
fabeltranm 10:d2bf51fdc68a 61
fabeltranm 10:d2bf51fdc68a 62 void line(float xi, float yi, float xf, float yf)
fabeltranm 10:d2bf51fdc68a 63 {
fabeltranm 10:d2bf51fdc68a 64 float xp; float yp;
fabeltranm 10:d2bf51fdc68a 65 float m= (yf-yi)/(xf-xi);
fabeltranm 10:d2bf51fdc68a 66 float b=yf-m*xf;
fabeltranm 11:8055e81e45d1 67
fabeltranm 10:d2bf51fdc68a 68 initdraw(xi,yi);
fabeltranm 10:d2bf51fdc68a 69 for (xp =xi;xp<=xf;xp+=RSTEP)
fabeltranm 10:d2bf51fdc68a 70 {
fabeltranm 10:d2bf51fdc68a 71 yp =m*xp+b;
fabeltranm 10:d2bf51fdc68a 72 vertex2d(xp,yp);
fabeltranm 10:d2bf51fdc68a 73 }
fabeltranm 10:d2bf51fdc68a 74 nodraw();
fabeltranm 10:d2bf51fdc68a 75
fabeltranm 10:d2bf51fdc68a 76 }
fabeltranm 10:d2bf51fdc68a 77
fabeltranm 10:d2bf51fdc68a 78
fabeltranm 10:d2bf51fdc68a 79 void rectangle(float x, float y, float width,float height) {
fabeltranm 10:d2bf51fdc68a 80
fabeltranm 10:d2bf51fdc68a 81 initdraw(x,y);
fabeltranm 11:8055e81e45d1 82
fabeltranm 10:d2bf51fdc68a 83 vertex2d(x+width, y);
fabeltranm 10:d2bf51fdc68a 84 vertex2d(x+width, y+height);
fabeltranm 10:d2bf51fdc68a 85 vertex2d(x, y+height);
fabeltranm 10:d2bf51fdc68a 86 vertex2d(x, y);
fabeltranm 11:8055e81e45d1 87
fabeltranm 10:d2bf51fdc68a 88 nodraw();
fabeltranm 10:d2bf51fdc68a 89
fabeltranm 11:8055e81e45d1 90 }
fabeltranm 11:8055e81e45d1 91
fabeltranm 11:8055e81e45d1 92 void circle(float x, float y, float radio)
fabeltranm 11:8055e81e45d1 93 {
fabeltranm 13:4226825e2060 94 initdraw(x+radio,y);
fabeltranm 11:8055e81e45d1 95 // coloque codigo aca
fabeltranm 11:8055e81e45d1 96 nodraw();
fabeltranm 11:8055e81e45d1 97
fabeltranm 10:d2bf51fdc68a 98 }