Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
r2d2 [2017/02/16 04:21]
leo created
r2d2 [2019/11/29 01:22] (current)
leo
Line 1: Line 1:
 [[examplescode|Regresa a codigos]] [[examplescode|Regresa a codigos]]
-<codedoc code:c> +<sxh c> 
 /* /*
  * Prueba de robot R2D2  * Prueba de robot R2D2
- ​* ​(c) 2016 Copyright Leonardo Yamasaki Maza+ * Copyright ​Octubre 2019 Leonardo Yamasaki Maza
  * Licencia GPL.  * Licencia GPL.
  */  */
 +
 +#include <​SoftwareSerial.h>​
 +#include <​Servo.h>​
  
 // General defines // General defines
Line 12: Line 15:
 #define MOTOR2P ​   4  //Pin Motor 2 positivo #define MOTOR2P ​   4  //Pin Motor 2 positivo
 #define MOTOR2N ​   5  //Pin Motor 2 negativo #define MOTOR2N ​   5  //Pin Motor 2 negativo
-#​define ​SERVO      ​6  //Pin Señal del servo cable amarilo +#​define ​SERVO1 ​    6  //Pin Señal del servo cable amarilo 
-#define ECHOPIN ​   ​ //​Ultrasonido +#define SERVO2 ​    ​7 ​ //Pin Señal del servo cable amarilo 
-#define TRIGPIN ​   ​8 ​ //​Ultrasonido+#define SERVO3 ​    ​8 ​ //Pin Señal del servo cable amarilo 
 +#define HEADPIN ​   8 
 +#define ECHOPIN ​   ​ //​Ultrasonido 
 +#define TRIGPIN ​  10  //​Ultrasonido
 #define RXBLUE ​   11  //Pin conectar a RX del modulo Bluetooth #define RXBLUE ​   11  //Pin conectar a RX del modulo Bluetooth
 #define TXBLUE ​   12  //Pin conectar a TX del modulo Bluetooth #define TXBLUE ​   12  //Pin conectar a TX del modulo Bluetooth
-#define TESTLED ​  13  //Pin del LED interno +#define TESTLED ​   //Pin del LED interno 
-#define FLASHTIME ​100 //Tiempo de flasheo LED13 +#define FLASHTIME ​50s  ​//Tiempo de flasheo LED13 
-#define DELAYHEAD ​15  //​Retardo de posición del servo en ms+#define DELAYHEAD ​30  //​Retardo de posición del servo en ms
 #define MAXSPEED ​ 80  //Maxima velocidad #define MAXSPEED ​ 80  //Maxima velocidad
- 
- 
  
 //Settings para servo mueve cabeza //Settings para servo mueve cabeza
-#include <​Servo.h>​ 
 Servo head; Servo head;
 int pos = 0; int pos = 0;
Line 35: Line 38:
  
 //​Comunicacion con bluetooth //​Comunicacion con bluetooth
-#include <​SoftwareSerial.h>​ 
 SoftwareSerial softSerial(RXBLUE,​ TXBLUE); // RX, TX Bluetooth SoftwareSerial softSerial(RXBLUE,​ TXBLUE); // RX, TX Bluetooth
  
 // Movimiento del servo para cabeza // Movimiento del servo para cabeza
 void headmove(char c) { void headmove(char c) {
 +  head.attach(HEADPIN);​
   if(c=='​d'​) {   if(c=='​d'​) {
-    for (pos = 90; pos >= 0; pos -= 1) {+    for (pos = 90; pos >= 0; pos -= 5) {
       head.write(pos);​       head.write(pos);​
       delay(DELAYHEAD);​       delay(DELAYHEAD);​
     }     }
-    for (pos = 0; pos <= 90; pos += 1) {+    for (pos = 0; pos <= 90; pos += 5) {
       head.write(pos);​       head.write(pos);​
       delay(DELAYHEAD);​       delay(DELAYHEAD);​
Line 51: Line 54:
   }   }
   if(c=='​i'​) {   if(c=='​i'​) {
-    for (pos = 90; pos <= 180; pos += 1) {+    for (pos = 90; pos <= 180; pos += 5) {
       head.write(pos);​       head.write(pos);​
       delay(DELAYHEAD);​       delay(DELAYHEAD);​
     }     }
-    for (pos = 180; pos >= 90; pos -= 1) {+    for (pos = 180; pos >= 90; pos -= 5) {
       head.write(pos);​       head.write(pos);​
       delay(DELAYHEAD);​       delay(DELAYHEAD);​
Line 63: Line 66:
     pos = 90;     pos = 90;
     head.write(pos);​     head.write(pos);​
-    delay(DELAYHEAD);+    delay(3000);
   }   }
   if(c=='​m'​) {   if(c=='​m'​) {
-    for (pos = 90; pos >= 0; pos -= 1) {+    for (pos = 90; pos >= 0; pos -= 5) {
       head.write(pos);​       head.write(pos);​
       delay(DELAYHEAD);​       delay(DELAYHEAD);​
     }     }
-    for (pos = 0; pos <= 90; pos += 1) {+    for (pos = 0; pos <= 90; pos += 5) {
       head.write(pos);​       head.write(pos);​
       delay(DELAYHEAD);​       delay(DELAYHEAD);​
     }     }
-        ​for (pos = 90; pos <= 180; pos += 1) {+    ​for (pos = 90; pos <= 180; pos += 5) {
       head.write(pos);​       head.write(pos);​
       delay(DELAYHEAD);​       delay(DELAYHEAD);​
     }     }
-    for (pos = 180; pos >= 90; pos -= 1) {+    for (pos = 180; pos >= 90; pos -= 5) {
       head.write(pos);​       head.write(pos);​
       delay(DELAYHEAD);​       delay(DELAYHEAD);​
     }     }
   }   }
 +  head.detach();​
 } }
 // //
Line 136: Line 140:
 } }
  
-//​Flashe ​LED 13 in borad+//​Flashe ​TESTLED ​in board
 void flash(int p, int t){ void flash(int p, int t){
-  digitalWrite(p,​HIGH);​ 
-  delay(t); 
   digitalWrite(p,​LOW);​   digitalWrite(p,​LOW);​
 +  delay(t);
 +  digitalWrite(p,​HIGH);​
   delay(t);   delay(t);
   }   }
Line 162: Line 166:
    
  if (distance >= maximumRange || distance <= minimumRange){  if (distance >= maximumRange || distance <= minimumRange){
-   /* Send a negative number to computer and Turn LED ON  +   /* Send a negative number to computer and Turn LED ON to indicate "out of range" */
-   to indicate "out of range" */+
 //   ​Serial.println("​No reading"​);​ //   ​Serial.println("​No reading"​);​
    ​digitalWrite(TESTLED,​ HIGH); ​    ​digitalWrite(TESTLED,​ HIGH); ​
Line 184: Line 187:
  */  */
 void setup() { void setup() {
 +  digitalWrite(TESTLED,​HIGH);​
   //Motores puente H   //Motores puente H
   pinMode(MOTOR1P,​OUTPUT);​   pinMode(MOTOR1P,​OUTPUT);​
Line 196: Line 200:
  
   //Servo config   //Servo config
-  head.attach(SERVO);+  head.attach(HEADPIN);
   headmove('​c'​);​   headmove('​c'​);​
 +  head.detach();​
  
   // set the data rate for the SoftwareSerial port   // set the data rate for the SoftwareSerial port
Line 204: Line 209:
  
   // Open serial communications and wait for port to open:   // Open serial communications and wait for port to open:
-//  ​Serial.begin(9600);​ +  ​Serial.begin(9600);​ 
-//  while (!Serial) { +  while (!Serial) { 
-//    ; +    ;  } 
-//  } +  Serial.println("​Hello R2D2!\r\n"​);​
-//  ​Serial.println("​2nd Hello R2D2!\r\n"​);​+
 } }
- 
 void loop() { void loop() {
   if (softSerial.available()) {   if (softSerial.available()) {
Line 217: Line 220:
     softSerial.write(':'​);​     softSerial.write(':'​);​
   }   }
 +//  digitalWrite(TESTLED,​LOW);​
 +//  delay(50);
 +//  digitalWrite(TESTLED,​HIGH);​
 +//  delay(50);
   switch(cmd){   switch(cmd){
     case '​f':​     case '​f':​
       adelante();       adelante();
       softSerial.println("​Adelante"​);​       softSerial.println("​Adelante"​);​
 +      Serial.println("​Adelante"​);​
       espera=1;       espera=1;
       break;       break;
Line 226: Line 234:
       atras();       atras();
       softSerial.println("​Atras"​);​       softSerial.println("​Atras"​);​
 +      Serial.println("​Atras"​);​
       espera=1;       espera=1;
       break;       break;
     case '​r':​     case '​r':​
       derecha();       derecha();
 +      softSerial.println("​Derecha"​);​
       Serial.println("​Derecha"​);​       Serial.println("​Derecha"​);​
       espera=1;       espera=1;
Line 236: Line 246:
       izquierda();​       izquierda();​
       softSerial.println("​Izquierda"​);​       softSerial.println("​Izquierda"​);​
 +      Serial.println("​Izquierda"​);​
       espera=1;       espera=1;
       break;       break;
     case '​d':​     case '​d':​
       derechaLenta();​       derechaLenta();​
 +      softSerial.println("​Derecha lenta"​);​
       Serial.println("​Derecha lenta"​);​       Serial.println("​Derecha lenta"​);​
       espera=1;       espera=1;
Line 246: Line 258:
       izquierdaLenta();​       izquierdaLenta();​
       softSerial.println("​Izquierda lenta"​);​       softSerial.println("​Izquierda lenta"​);​
 +      Serial.println("​Izquierda lenta"​);​
       espera=1;       espera=1;
       break;       break;
     case '​s':​     case '​s':​
       parar();       parar();
-      headmove('​c'​);​ 
       softSerial.println("​Parar"​);​       softSerial.println("​Parar"​);​
 +      Serial.println("​Parar"​);​
       espera=1;       espera=1;
       break;       break;
     case '​+':​     case '​+':​
       softSerial.println("​Sube velocidad"​);​       softSerial.println("​Sube velocidad"​);​
 +      Serial.println("​Sube velocidad"​);​
       espera=1;       espera=1;
       vel+=20;       vel+=20;
Line 261: Line 275:
         vel=255;         vel=255;
         softSerial.println("​Limite sube velocidad"​);​         softSerial.println("​Limite sube velocidad"​);​
 +        Serial.println("​Limite sube velocidad"​);​
       }       }
       break;       break;
     case '​-':​     case '​-':​
       softSerial.println("​Baja velocidad"​);​       softSerial.println("​Baja velocidad"​);​
 +      Serial.println("​Baja velocidad"​);​
       espera=1;       espera=1;
       vel-=20;       vel-=20;
Line 270: Line 286:
         vel=80;         vel=80;
         softSerial.println("​Limite baja velocidad"​);​         softSerial.println("​Limite baja velocidad"​);​
 +        Serial.println("​Limite baja velocidad"​);​
       }       }
       break;       break;
     case '​m':​     case '​m':​
       softSerial.println("​Cabeza escaneando"​);​       softSerial.println("​Cabeza escaneando"​);​
 +      Serial.println("​Cabeza escaneando"​);​
       espera=1;       espera=1;
       headmove('​m'​);​       headmove('​m'​);​
Line 279: Line 297:
     case '​n':​     case '​n':​
       softSerial.println("​Cabeza izquierda"​);​       softSerial.println("​Cabeza izquierda"​);​
 +      Serial.println("​Cabeza izquierda"​);​
       espera=1;       espera=1;
       headmove('​i'​);​       headmove('​i'​);​
Line 284: Line 303:
     case '​o':​     case '​o':​
       softSerial.println("​Cabeza derecha"​);​       softSerial.println("​Cabeza derecha"​);​
 +      Serial.println("​Cabeza derecha"​);​
       espera=1;       espera=1;
       headmove('​d'​);​       headmove('​d'​);​
Line 289: Line 309:
     case '​u':​     case '​u':​
       softSerial.println("​Distancia ultrasonido:"​);​       softSerial.println("​Distancia ultrasonido:"​);​
-      ​softSerial.print(ultrasonido());​+      ​Serial.print(ultrasonido()); 
 +      Serial.println("​Distancia ultrasonido:"​);
       break;       break;
     default:     default:
       if(espera) {       if(espera) {
-        ​softSerial.println("​En espera...");+        ​Serial.println("​En espera"​);​
         espera=0;         espera=0;
         flash(TESTLED,​FLASHTIME);​         flash(TESTLED,​FLASHTIME);​
-        softSerial.println("​Distancia ultrasonido:"​);​ +        ​//softSerial.println("​Distancia ultrasonido:"​);​ 
-        softSerial.print(ultrasonido());​+        ​//softSerial.print(ultrasonido());​
       }       }
       break;       break;
Line 304: Line 325:
 } }
 //END //END
- +</sxh>
-</codedoc>+