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 02:47] leo |
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 | ||
| - | * 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 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 163: | Line 167: | ||
| if (distance >= maximumRange || distance <= minimumRange){ | if (distance >= maximumRange || distance <= minimumRange){ | ||
| /* Send a negative number to computer and Turn LED ON to indicate "out of range" */ | /* Send a negative number to computer and Turn LED ON to indicate "out of range" */ | ||
| - | // Serial.println('No reading'); | + | // Serial.println("No reading"); |
| digitalWrite(TESTLED, HIGH); | digitalWrite(TESTLED, HIGH); | ||
| } | } | ||
| Line 183: | Line 187: | ||
| */ | */ | ||
| void setup() { | void setup() { | ||
| + | digitalWrite(TESTLED,HIGH); | ||
| //Motores puente H | //Motores puente H | ||
| pinMode(MOTOR1P,OUTPUT); | pinMode(MOTOR1P,OUTPUT); | ||
| Line 195: | 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 | ||
| softSerial.begin(9600); | softSerial.begin(9600); | ||
| - | softSerial.println('Hello, R2D2!\r\n'); | + | softSerial.println("Hello, R2D2!\r\n"); |
| // 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 216: | 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; | ||
| case 'b': | case 'b': | ||
| atras(); | atras(); | ||
| - | softSerial.println('Atras'); | + | softSerial.println("Atras"); |
| + | Serial.println("Atras"); | ||
| espera=1; | espera=1; | ||
| break; | break; | ||
| case 'r': | case 'r': | ||
| derecha(); | derecha(); | ||
| - | Serial.println('Derecha'); | + | softSerial.println("Derecha"); |
| + | Serial.println("Derecha"); | ||
| espera=1; | espera=1; | ||
| break; | break; | ||
| case 'l': | case 'l': | ||
| izquierda(); | izquierda(); | ||
| - | softSerial.println('Izquierda'); | + | softSerial.println("Izquierda"); |
| + | Serial.println("Izquierda"); | ||
| espera=1; | espera=1; | ||
| break; | break; | ||
| case 'd': | case 'd': | ||
| derechaLenta(); | derechaLenta(); | ||
| - | Serial.println('Derecha lenta'); | + | softSerial.println("Derecha lenta"); |
| + | Serial.println("Derecha lenta"); | ||
| espera=1; | espera=1; | ||
| break; | break; | ||
| case 'i': | case 'i': | ||
| 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; | ||
| if(vel>256){ | if(vel>256){ | ||
| 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; | ||
| if(vel<80){ | if(vel<80){ | ||
| 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'); | ||
| break; | break; | ||
| case 'n': | case 'n': | ||
| - | softSerial.println('Cabeza izquierda'); | + | softSerial.println("Cabeza izquierda"); |
| + | Serial.println("Cabeza izquierda"); | ||
| espera=1; | espera=1; | ||
| headmove('i'); | headmove('i'); | ||
| break; | break; | ||
| case 'o': | case 'o': | ||
| - | softSerial.println('Cabeza derecha'); | + | softSerial.println("Cabeza derecha"); |
| + | Serial.println("Cabeza derecha"); | ||
| espera=1; | espera=1; | ||
| headmove('d'); | headmove('d'); | ||
| break; | break; | ||
| 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 303: | Line 325: | ||
| } | } | ||
| //END | //END | ||
| - | + | </sxh> | |
| - | </codedoc> | + | |