![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
New
Dependencies: SparkfunAnalogJoystick
Diff: main.cpp
- Revision:
- 5:9f30f0a6dc76
- Parent:
- 4:60e3365da280
- Child:
- 6:7c987ba78aa3
diff -r 60e3365da280 -r 9f30f0a6dc76 main.cpp --- a/main.cpp Thu Jul 22 01:56:42 2021 +0000 +++ b/main.cpp Fri Jul 23 03:05:12 2021 +0000 @@ -23,7 +23,7 @@ int Distance2 = 0; // Distancia atrás de la silla. int Distance3 = 0; // Distancia a la izquierda de la silla. int Distance4 = 0; // Distancia a la derecha de la silla. -int DistanceLimit = 15; // Distancia límite de acercamiento a un Obstaculo permitida por la silla. +int DistanceLimit = 50; // Distancia límite de acercamiento a un Obstaculo permitida por la silla. // Entradas digitales para selección de modos de la silla. DigitalIn Modo1(D8); // Modo manual. @@ -35,13 +35,13 @@ Serial PC(USBTX,USBRX); // Por aquí se reciben caracteres que el miprocesador interpreta para ejecutar una acción, como los comandos de voz o alguna alerta. // Salidas digitales y PWM para controlar el driver de los motores. -DigitalOut Direccion1(PC_6); // Dirección del motor 1. -PwmOut PWM_Velocidad1(PB_15); // Velocidad del motor 1. -DigitalOut Direccion2(D14); // Dirección del motor 2. -PwmOut PWM_Velocidad2(D15); // Velocidad del motor 2. +DigitalOut Direccion1(D15); // Dirección del motor 1. +PwmOut PWM_Velocidad1(D14); // Velocidad del motor 1. +DigitalOut Direccion2(PC_6); // Dirección del motor 2. +PwmOut PWM_Velocidad2(PB_15); // Velocidad del motor 2. // Salida para manejar la señal del buzzer de alertas. -PwmOut Buzzer(D3); +PwmOut Buzzer(PE_14); // Función para reproducir un sonido del buzzer cuando se detecta proximidad a un obstáculo. void Reproducir_Buzzer_Proximidad(void) @@ -63,6 +63,7 @@ Buzzer.write(0.5); thread_sleep_for(200); } + Buzzer.write(0); BuzzTime.stop(); } @@ -149,7 +150,7 @@ PWM_Velocidad2.write(0.0f); } -// Función para leer el sensor de proximidad 1. +// Función para leer el sensor de proximidad 1. ADELANTE void Thread1_HCSR04() { DigitalOut Trigger(D0); @@ -187,7 +188,7 @@ } } -// Función para leer el sensor de proximidad 2. +// Función para leer el sensor de proximidad 2. //ATRAS void Thread2_HCSR04() { DigitalOut Trigger(D2); @@ -225,7 +226,7 @@ } } -// Función para leer el sensor de proximidad 3. +// Función para leer el sensor de proximidad 3. //IZQUIERDA void Thread3_HCSR04() { DigitalOut Trigger(D4); @@ -263,7 +264,7 @@ } } -// Función para leer el sensor de proximidad 4. +// Función para leer el sensor de proximidad 4. //DERECHA void Thread4_HCSR04() { DigitalOut Trigger(D6); @@ -304,7 +305,7 @@ // Función para leer valores del joystick y ejecutar sus comandos. void Thread5_Joystick() { - SparkfunAnalogJoystick JoyStick(A1,A0,D12); + SparkfunAnalogJoystick JoyStick(A1,A0,PE_0); float X; float Y; while(1) @@ -319,29 +320,29 @@ printf(" \n\r"); */ if(X >= -0.60f && X <= 0.60f && Y >= 0.90f && Y <= 1.00f) - { - if(Distance1 > DistanceLimit) + { + if(Distance2 > DistanceLimit) { - printf("Comandos del joystick: Hacia adelante. \r \n"); - Mover_Hacia_Adelante(1000); // Mover por un segundo. + printf("Comandos del joystick: Hacia atras. \r \n"); + Mover_Hacia_Atras(3000); } else { - printf("Comandos del joystick: Obstaculo hacia adelante. \r \n"); + printf("Comandos del joystick: Obstaculo hacia atras. \r \n"); Reproducir_Buzzer_Proximidad(); } thread_sleep_for(500); } if(X >= -0.60f && X <= 0.60f && Y <= -0.90f && Y >= -1.00f) - { - if(Distance2 > DistanceLimit) + { + if(Distance1 > DistanceLimit) { - printf("Comandos del joystick: Hacia atras. \r \n"); - Mover_Hacia_Atras(1000); // Mover por un segundo. + printf("Comandos del joystick: Hacia adelante. \r \n"); + Mover_Hacia_Adelante(3000); } else { - printf("Comandos del joystick: Obstaculo hacia atras. \r \n"); + printf("Comandos del joystick: Obstaculo hacia adelante. \r \n"); Reproducir_Buzzer_Proximidad(); } thread_sleep_for(500); @@ -351,7 +352,7 @@ if(Distance3 > DistanceLimit) { printf("Comandos del joystick: Hacia la izquierda. \r \n"); - Mover_Hacia_Izquierda(1000); // Mover por un segundo. + Mover_Hacia_Izquierda(3000); } else { @@ -365,7 +366,7 @@ if(Distance4 > DistanceLimit) { printf("Comandos del joystick: Hacia la derecha. \r \n"); - Mover_Hacia_Derecha(1000); // Mover por un segundo. + Mover_Hacia_Derecha(3000); } else {