This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
r2d2 [2017/02/28 03:02] leo |
r2d2 [2019/11/29 01:22] (current) leo |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| /* | /* | ||
| * Prueba de robot R2D2 | * Prueba de robot R2D2 | ||
| - | * Copyright 216 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 7 //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 9 //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 7 //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 33: | 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 49: | 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 61: | 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 134: | 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 181: | Line 187: | ||
| */ | */ | ||
| void setup() { | void setup() { | ||
| + | digitalWrite(TESTLED,HIGH); | ||
| //Motores puente H | //Motores puente H | ||
| pinMode(MOTOR1P,OUTPUT); | pinMode(MOTOR1P,OUTPUT); | ||
| Line 193: | 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 201: | 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 214: | 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 223: | 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 233: | 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 243: | 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 258: | 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 267: | 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 276: | 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 281: | 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 286: | 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; | ||