Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
stev1014
Date:
Sat Sep 16 01:44:03 2017 +0000
Commit message:
codigo primer corte

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 64c0ae9da68e main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Sep 16 01:44:03 2017 +0000
@@ -0,0 +1,189 @@
+#include "mbed.h"
+#define MAXPOS 255
+
+PwmOut servoX(PB_3);
+PwmOut servoY(PB_4);
+PwmOut servoZ(PB_5);
+
+
+DigitalIn botoncirculo(PA_0);
+DigitalIn botonpunto(PB_0);
+DigitalIn botonlinea(PC_1);
+DigitalIn botoncuadrado(PC_0);
+float xvalue, yvalue, xiline,yiline,xfline,yfline;
+int xisquare, yisquare,lenght,xlado,ylado;
+double i,j,r;
+ 
+ 
+ 
+int coord2pulse(float coord)
+{
+    if(0 <= coord <= MAXPOS)
+    return int(coord*1000/150+750);
+    return 750;
+}
+ 
+ 
+void vertex2d(float x, float y, float z){
+ 
+    int pulseX = coord2pulse(x);
+    int pulseY = coord2pulse(y);
+    int pulseZ = coord2pulse(z);
+    servoX.pulsewidth_us(pulseX);
+    servoY.pulsewidth_us(pulseY);
+    servoZ.pulsewidth_us(pulseZ);
+}
+
+
+void maxpos()
+{
+vertex2d(255 ,255,255);
+}  
+  
+  void home()
+{
+    vertex2d(255,255,242);
+    wait_ms(600);
+}    
+
+void punto()
+{
+    xvalue = 100;
+    yvalue = 100;
+    
+    vertex2d(xvalue,yvalue,242);
+    wait_ms(600);
+    vertex2d(xvalue,yvalue,180);
+    wait_ms(600);
+}    
+  
+  void linea()
+{      
+
+    xiline = 250;
+    yiline = 250;
+    xfline = 10;
+    yfline = 10;
+    
+    vertex2d(xiline,yiline,242);
+    wait_ms(600);
+    vertex2d(xiline,yiline,180);
+    wait_ms(600);
+    vertex2d(xfline,yfline,180);
+    wait_ms(600);
+}       
+
+void cuadrado(){
+ 
+ xisquare = 10;
+ yisquare = 10;
+ lenght = 200;
+ 
+ 
+ xlado = lenght + xisquare;
+ ylado = lenght + yisquare;
+ 
+ vertex2d(xisquare,yisquare,242);
+ wait_ms(600);
+ vertex2d(xisquare,yisquare,180);
+ wait_ms(600);
+ vertex2d(xlado,yisquare,180);  
+ wait_ms(600);
+ vertex2d(xlado,ylado,180); 
+ wait_ms(600);
+ vertex2d(xisquare,ylado,180); 
+ wait_ms(600);
+ vertex2d(xisquare,yisquare,180); 
+ wait_ms(600);
+  }
+  
+  
+  void circulo()
+  {
+  double x1=125,x2,y1=125,y2;
+  vertex2d(x1 ,y1,240);
+  wait(2);
+  r=60;
+
+  wait_ms(600);
+ 
+  for (  x2=0;x2<=r;x2++){
+      y2= pow(((r*r)-(x2*x2)),0.5);
+      i=  x2+x1;  
+      j=y1+y2;
+      vertex2d(i ,j,180) ;
+      wait_ms(30);
+      }
+       
+    for (  x2=r;x2>=0;x2--){
+      y2= pow(((r*r)-(x2*x2)),0.5);   
+      i=  x2+x1;  
+      j= y1 - y2;
+      vertex2d(i ,j,180) ;
+      wait_ms(30);
+       }
+  
+  for (  x2=0;x2<=r;x2++){
+      y2= pow(((r*r)-(x2*x2)),0.5);   
+      i=  x1- x2;  
+      j= y1 - y2;
+      vertex2d(i ,j,180) ;
+      wait_ms(30);
+       }
+      
+      
+    for (  x2=r;x2>=0;x2--){
+   y2= pow(((r*r)-(x2*x2)),0.5);   
+      i=  x1-x2;  
+      j=y1+y2;
+      vertex2d(i ,j,180) ;
+      wait_ms(30);
+       }
+    
+   
+     vertex2d(i ,j,240) ;
+     wait_ms(600);
+      
+   if(x2==r)
+   {
+    home();
+    wait(1);
+    }
+     
+  }
+ 
+int main() {
+      
+      while(1) {
+      
+ // configurar periodo
+    servoX.period_ms(20);
+    servoY.period_ms(20);
+    servoZ.period_ms(20);
+    
+     home();  
+     wait(1);
+        
+     if (botonpunto == 1) { 
+     punto();
+     wait(1);
+     }
+     
+     if (botonlinea == 1) { 
+   
+     linea();
+     wait(1);
+     }
+     
+     if (botoncuadrado == 1) { 
+     cuadrado();
+     wait(1);
+     }
+     
+     if (botoncirculo == 1) { 
+     circulo();
+     wait(1);
+     }
+     }
+     }
+
diff -r 000000000000 -r 64c0ae9da68e mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sat Sep 16 01:44:03 2017 +0000
@@ -0,0 +1,1 @@
+https://mbed.org/users/mbed_official/code/mbed/builds/a330f0fddbec
\ No newline at end of file