Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed Servo TextLCD
Revision 0:e7637a78fcf4, committed 2018-11-22
- Comitter:
- oggonei
- Date:
- Thu Nov 22 00:16:52 2018 +0000
- Commit message:
- version funcional before JAL changes
Changed in this revision
diff -r 000000000000 -r e7637a78fcf4 Servo.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Servo.lib Thu Nov 22 00:16:52 2018 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/simon/code/Servo/#36b69a7ced07
diff -r 000000000000 -r e7637a78fcf4 TextLCD.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Thu Nov 22 00:16:52 2018 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/simon/code/TextLCD/#308d188a2d3a
diff -r 000000000000 -r e7637a78fcf4 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Nov 22 00:16:52 2018 +0000 @@ -0,0 +1,750 @@ +#include "mbed.h" +#include "Servo.h" +#include "TextLCD.h" + +Serial command(USBTX,USBRX); +TextLCD lcd(PB_3, PB_5, PB_4, PB_10, PA_8, PA_9); // rs, e, d4-d7 +DigitalOut trigger6(PC_10); +DigitalIn echo6(PC_11); +DigitalOut trigger5(PC_12); +DigitalIn echo5(PD_2); +DigitalOut trigger4(PC_0); +DigitalIn echo4(PC_3); +DigitalOut trigger3(PC_1); +DigitalIn echo3(PC_2); +DigitalOut trigger2(PA_4); +DigitalIn echo2(PB_0); +DigitalOut trigger1(PA_1); +DigitalIn echo1(PA_0); +DigitalOut trigger0(PA_13); +DigitalIn echo0(PA_14); +DigitalOut mder(PC_8); //bandeja derecha +DigitalOut miz(PC_9); //bandeja inquierda +DigitalOut stepsy(D3); +DigitalOut diry(D6); +DigitalOut ene(D8); +Servo myservo(PA_10); +int distance = 0; +int correction = 0; +Timer sonar; +int x=0,j=0,puestos=0; + +int main() +{ + sonar.reset(); + sonar.start(); + while (echo6==2) {}; + sonar.stop(); + correction = sonar.read_us(); + command.baud(9600); + myservo = 0.22; + lcd.printf("Parking!\nBienvenido"); + + inicio: + if(command.readable()>0) + { + x=command.getc(); + if(x=='a') // automatico + { + wait(0.4); + lcd.cls(); + lcd.printf("Mando automatico"); + command.printf("Entra automatico"); + wait(0.3); + automatico: + lcd.cls(); + lcd.printf("buscando\nCarro"); + trigger0 = 1; + sonar.reset(); + wait_us(10.0); + trigger0 = 0; + while (echo0==0) {}; + sonar.start(); + while (echo0==1) {}; + sonar.stop(); + distance = (sonar.read_us()-correction)/58.0; + if(distance<8) + { + lcd.cls(); + lcd.printf("Espere\nPor Favor"); + wait(0.5); + lcd.cls(); + lcd.printf("Buscando \nPuesto"); + //command.printf("rojo %d",distance); + wait(1); + trigger1 = 1; + sonar.reset(); + wait_us(10.0); + trigger1 = 0; + while (echo1==0) {}; + sonar.start(); + while (echo1==1) {}; + sonar.stop(); + distance = (sonar.read_us()-correction)/58.0; + command.printf("distancia: %d",distance); + if(distance<8) + { + lcd.cls(); + lcd.printf("Puesto 1\nOcupado"); + wait(1); + //command.printf("sensores 2"); + wait(0.1); + trigger2 = 1; + sonar.reset(); + wait_us(10.0); + trigger2 = 0; + while (echo2==0) {}; + sonar.start(); + while (echo2==1) {}; + sonar.stop(); + distance = (sonar.read_us()-correction)/58.0; + if(distance<8) + { + lcd.cls(); + lcd.printf("Puesto 2\nOcupado"); + wait(1); + //command.printf("sensores 3"); + wait(0.1); + trigger3 = 1; + sonar.reset(); + wait_us(10.0); + trigger3 = 0; + while (echo3==0) {}; + sonar.start(); + while (echo3==1) {}; + sonar.stop(); + distance = (sonar.read_us()-correction)/58.0; + if(distance<8) + { + lcd.cls(); + lcd.printf("Puesto 3\nOcupado"); + wait(1); + wait(0.1); + trigger4 = 1; + sonar.reset(); + wait_us(10.0); + trigger4 = 0; + while (echo4==0) {}; + sonar.start(); + while (echo4==1) {}; + sonar.stop(); + distance = (sonar.read_us()-correction)/58.0; + if(distance<8) + { + lcd.cls(); + lcd.printf("Puesto 4\nOcupado"); + wait(1); + //command.printf("sensores 5"); + wait(0.1); + trigger5 = 1; + sonar.reset(); + wait_us(10.0); + trigger5 = 0; + while (echo5==0) {}; + sonar.start(); + while (echo5==1) {}; + sonar.stop(); + distance = (sonar.read_us()-correction)/58.0; + if(distance<8) + { + lcd.cls(); + lcd.printf("Puesto 5\nOcupado"); + wait(1); + trigger6 = 1; + sonar.reset(); + wait_us(10.0); + trigger6 = 0; + while (echo6==0) {}; + sonar.start(); + while (echo6==1) {}; + sonar.stop(); + distance = (sonar.read_us()-correction)/58.0; + if(distance<8) + { + lcd.cls(); + lcd.printf("Puesto 6\nOcupado"); + wait(1); + lcd.cls(); + lcd.printf("Parqueadero \nLleno"); + wait(1); + } + else + { + lcd.cls(); + lcd.printf("Puesto 6\nDisponible"); + } + } + else + { + lcd.cls(); + lcd.printf("Puesto 5\nDisponible"); + } + } + else + { + lcd.cls(); + lcd.printf("Puesto 4\nDisponible"); + } + } + else//3er puesto + { + lcd.cls(); + lcd.printf("Puesto 3\nDisponible"); + wait(0.3); + diry=0; + ene= 0; + for(j=0;j<=5900;j++) + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + //saca estiba + mder=1; + miz=0; + wait(1.5); + mder=0; + wait(0.1); + diry=0; + ene= 0; + for(j=0;j<=700;j++) + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + mder=0; + miz=1; + wait(1.5); + miz=0; + wait(0.1); + diry=1; + ene= 0; + for(j=0;j<=6750;j++) + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + wait(0.1); + myservo = 0.4; + wait(0.1); + myservo = 0.6; + wait(0.1); + myservo = 0.8; + wait(0.1); + myservo = 0.9; + lcd.cls(); + lcd.printf("Ingrese\nPor Favor"); + wait(3); + myservo = 0.7; + wait(0.1); + myservo = 0.5; + wait(0.1); + myservo = 0.3; + wait(0.1); + myservo = 0.22; + lcd.cls(); + lcd.printf("Parqueando"); + wait(0.3); + diry=0; + ene= 0; + for(j=0;j<=6800;j++) + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + mder=1; + miz=0; + wait(1.5); + mder=0; + wait(0.1); + diry=1; + ene= 0; + for(j=0;j<=1200;j++) + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + mder=0; + miz=1; + wait(1.5); + miz=0; + diry=1; + ene= 0; + for(j=0;j<=5550;j++) + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + } + } + else //2do puesto + { + lcd.cls(); + lcd.printf("Puesto 2\nDisponible"); + wait(0.3); + diry=0; + ene= 0; + for(j=0;j<=2700;j++)//pasos que sube + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + //saca estiba + mder=1; + miz=0; + wait(1.5); + mder=0; + wait(0.1); + diry=0; + ene= 0; + for(j=0;j<=700;j++)// pasos que suben + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + mder=0; + miz=1; + wait(1.5); + miz=0; + wait(0.1); + diry=1; + ene= 0; + for(j=0;j<=3400;j++)//pasos que baja + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + wait(0.1); + myservo = 0.4; + wait(0.1); + myservo = 0.6; + wait(0.1); + myservo = 0.8; + wait(0.1); + myservo = 0.9; + lcd.cls(); + lcd.printf("Ingrese\nPor Favor"); + wait(3); + myservo = 0.7; + wait(0.1); + myservo = 0.5; + wait(0.1); + myservo = 0.3; + wait(0.1); + myservo = 0.22; + lcd.cls(); + lcd.printf("Parqueando"); + wait(0.3); + diry=0; + ene= 0; + for(j=0;j<=3700;j++)//pasos que sube con carro + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + mder=1; + miz=0; + wait(1.5); + mder=0; + wait(0.1); + diry=1; + ene= 0; + for(j=0;j<=1200;j++)//pasos que baja carro + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + mder=0; + miz=1; + wait(1.5); + miz=0; + diry=1; + ene= 0; + for(j=0;j<=25000;j++)//pasos que baja + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + } + } + else//1 puesto + { + lcd.cls(); + lcd.printf("Puesto 1\nDisponible"); + wait(0.3); + //saca estiba + mder=1; + miz=0; + wait(1.5); + mder=0; + wait(0.1); + diry=0; + ene= 0; + for(j=0;j<=700;j++) + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + mder=0; + miz=1; + wait(1.5); + miz=0; + wait(0.1); + diry=1; + ene= 0; + for(j=0;j<=700;j++) + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + wait(0.1); + myservo = 0.4; + wait(0.1); + myservo = 0.6; + wait(0.1); + myservo = 0.8; + wait(0.1); + myservo = 0.9; + lcd.cls(); + lcd.printf("Ingrese\nPor Favor"); + wait(3); + myservo = 0.7; + wait(0.1); + myservo = 0.5; + wait(0.1); + myservo = 0.3; + wait(0.1); + myservo = 0.22; + lcd.cls(); + lcd.printf("Parqueando"); + wait(0.3); + diry=0; + ene= 0; + for(j=0;j<=700;j++) + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + mder=1; + miz=0; + wait(1.5); + mder=0; + wait(0.1); + diry=1; + ene= 0; + for(j=0;j<=600;j++) + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + mder=0; + miz=1; + wait(1.5); + miz=0; + diry=1; + ene= 0; + for(j=0;j<=100;j++) + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + } + } + else + wait(0.5); + goto automatico; + } + else if(x=='m') //manual + { + command.printf("Entra a manual"); + lcd.cls(); + lcd.printf("Mando Manual!"); + inicio2: + wait(0.2); + if(command.readable()>0) + { + x=command.getc(); + if(x=='1') + { + lcd.cls(); + lcd.printf("Sube!\n"); + wait_us(2); + diry=0; + ene= 0; + for(j=0;j<=1000;j++) + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + goto inicio2; + } + else if(x=='2') + { + lcd.cls(); + lcd.printf("Baja!\n"); + wait_us(2); + diry=1; + ene= 0; + for(j=0;j<=1000;j++) + { + stepsy=0; + wait_us(2); + stepsy=1; + wait_us(1800); + } + goto inicio2; + } + else if(x=='3') + { + //mover motor derecha + lcd.cls(); + command.printf("Gira derecha"); + mder=1; + miz=0; + wait(0.5); + mder=0; + goto inicio2; + } + else if(x=='4') + { + //mover motor izquierda + lcd.cls(); + command.printf("Gira izquierda"); + mder=0; + miz=1; + wait(0.5); + miz=0; + goto inicio2; + } + else if(x=='5') + { + lcd.cls(); + lcd.printf("Cerrado!\n"); + //abre seguro + myservo = 0.22; + goto inicio2; + } + else if(x=='6') + { + //cierra seguro + lcd.cls(); + lcd.printf("Abierto!\n"); + myservo = 0.9; + goto inicio2; + } + + else if(x=='7')//sensores + { + //command.printf("sensores 6"); + wait(0.1); + lcd.cls(); + lcd.printf("Censando!\n"); + trigger6 = 1; + sonar.reset(); + wait_us(10.0); + trigger6 = 0; + while (echo6==0) {}; + sonar.start(); + while (echo6==1) {}; + sonar.stop(); + distance = (sonar.read_us()-correction)/58.0; + if(distance<8) + { + command.printf("\nb"); + puestos++; + //command.printf("rojo %d",distance); + } + else + { + command.printf("\nc"); + //command.printf("verde %d",distance); + } + //command.printf("sensores 5"); + wait(0.1); + trigger5 = 1; + sonar.reset(); + wait_us(10.0); + trigger5 = 0; + while (echo5==0) {}; + sonar.start(); + while (echo5==1) {}; + sonar.stop(); + distance = (sonar.read_us()-correction)/58.0; + if(distance<8) + { + command.printf("\nd"); + //command.printf("rojo"); + puestos++; + } + else + { + command.printf("\ne"); + //command.printf("verde"); + } + //command.printf("sensores 4"); + wait(0.1); + trigger4 = 1; + sonar.reset(); + wait_us(10.0); + trigger4 = 0; + while (echo4==0) {}; + sonar.start(); + while (echo4==1) {}; + sonar.stop(); + distance = (sonar.read_us()-correction)/58.0; + if(distance<8) + { + puestos++; + command.printf("\nf"); + //command.printf("rojo"); + } + else + { + command.printf("\ng"); + //command.printf("verde"); + } + //command.printf("sensores 3"); + wait(0.1); + trigger3 = 1; + sonar.reset(); + wait_us(10.0); + trigger3 = 0; + while (echo3==0) {}; + sonar.start(); + while (echo3==1) {}; + sonar.stop(); + distance = (sonar.read_us()-correction)/58.0; + if(distance<8) + { + puestos++; + command.printf("\nh"); + //command.printf("rojo"); + } + else + { + command.printf("\ni"); + //command.printf("verde"); + } + //command.printf("sensores 2"); + wait(0.1); + trigger2 = 1; + sonar.reset(); + wait_us(10.0); + trigger2 = 0; + while (echo2==0) {}; + sonar.start(); + while (echo2==1) {}; + sonar.stop(); + distance = (sonar.read_us()-correction)/58.0; + if(distance<8) + { + puestos++; + command.printf("\nj"); + //command.printf("rojo"); + } + else + { + command.printf("\nk"); + //command.printf("verde"); + } + //command.printf("sensores 1"); + wait(0.1); + trigger1 = 1; + sonar.reset(); + wait_us(10.0); + trigger1 = 0; + while (echo1==0) {}; + sonar.start(); + while (echo1==1) {}; + sonar.stop(); + distance = (sonar.read_us()-correction)/58.0; + if(distance<8) + { + puestos++; + command.printf("\nl"); + //command.printf("rojo"); + } + else + { + command.printf("\nm"); + //command.printf("verde"); + } + lcd.cls(); + puestos=6-puestos; + lcd.printf("Puestos libres:\n %d",puestos); + switch(puestos) + { + case 1: + command.printf("\nn"); + wait(0.1); + break; + case 2: + command.printf("\no"); + wait(0.1); + break; + case 3: + command.printf("\np"); + wait(0.1); + break; + case 4: + command.printf("\nq"); + wait(0.1); + break; + case 5: + command.printf("\nr"); + wait(0.1); + break; + case 6: + command.printf("\ns"); + wait(0.1); + break; + default: + break; + } + wait(0.1); + puestos=0; + } + goto inicio2; + } + else + goto inicio2; + } + } + else + goto inicio; +} \ No newline at end of file
diff -r 000000000000 -r e7637a78fcf4 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Nov 22 00:16:52 2018 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/e95d10626187 \ No newline at end of file