Podcast
Questions and Answers
¿Cuál es el valor de la ganancia derivativa definida en las variables?
¿Cuál es el valor de la ganancia derivativa definida en las variables?
¿Qué variable se usa para determinar si se debe cambiar de lado?
¿Qué variable se usa para determinar si se debe cambiar de lado?
¿Qué método se sugiere para realizar un arranque suave?
¿Qué método se sugiere para realizar un arranque suave?
¿Cuál es el propósito de la variable 'Timeout_SinPegarLado'?
¿Cuál es el propósito de la variable 'Timeout_SinPegarLado'?
Signup and view all the answers
¿Qué representa la variable 'SetPoint_IZQ'?
¿Qué representa la variable 'SetPoint_IZQ'?
Signup and view all the answers
¿Cuál es la condición para que la variable Bandera_RampaAcel_Habilitada se establezca como 1?
¿Cuál es la condición para que la variable Bandera_RampaAcel_Habilitada se establezca como 1?
Signup and view all the answers
¿Qué ocurre cuando la velocidad Veloc alcanza el valor 255?
¿Qué ocurre cuando la velocidad Veloc alcanza el valor 255?
Signup and view all the answers
¿Qué provoca que se desactive la aceleración según las condiciones proporcionadas?
¿Qué provoca que se desactive la aceleración según las condiciones proporcionadas?
Signup and view all the answers
¿Cuál es el rol de la función PWMySentido en relación con la corrección?
¿Cuál es el rol de la función PWMySentido en relación con la corrección?
Signup and view all the answers
En el caso por defecto del estado, ¿qué se asigna a ModoAcel?
En el caso por defecto del estado, ¿qué se asigna a ModoAcel?
Signup and view all the answers
¿Qué se configura para que la función se inicie correctamente en Base a un temporizador?
¿Qué se configura para que la función se inicie correctamente en Base a un temporizador?
Signup and view all the answers
¿Qué sucede si el interruptor SW_Dip1 está activado?
¿Qué sucede si el interruptor SW_Dip1 está activado?
Signup and view all the answers
En la función Lectura_IRP_Val, ¿qué se guarda en el buffer circular?
En la función Lectura_IRP_Val, ¿qué se guarda en el buffer circular?
Signup and view all the answers
¿Qué condiciona el reset del índice del buffer circular en Lectura_IRP_Val?
¿Qué condiciona el reset del índice del buffer circular en Lectura_IRP_Val?
Signup and view all the answers
¿Qué se acumula en la función ActualizarPromedioIRP_Val?
¿Qué se acumula en la función ActualizarPromedioIRP_Val?
Signup and view all the answers
¿Cuál es el propósito principal de la función ActualizarPromedioIRP_Val?
¿Cuál es el propósito principal de la función ActualizarPromedioIRP_Val?
Signup and view all the answers
¿Cómo se recopilan los datos de los sensores en la función Lectura_IRP_Val?
¿Cómo se recopilan los datos de los sensores en la función Lectura_IRP_Val?
Signup and view all the answers
¿Qué condición se debe cumplir para activar la bandera Bandera_Arrancamos?
¿Qué condición se debe cumplir para activar la bandera Bandera_Arrancamos?
Signup and view all the answers
¿Qué valor se asigna a IR_P[i] si este es menor que el umbral blanco?
¿Qué valor se asigna a IR_P[i] si este es menor que el umbral blanco?
Signup and view all the answers
¿Cuál es la función del comando 'constrain' en el código?
¿Cuál es la función del comando 'constrain' en el código?
Signup and view all the answers
¿Qué ocurre cuando 'LadoActual' no es igual a 'UltimoLado'?
¿Qué ocurre cuando 'LadoActual' no es igual a 'UltimoLado'?
Signup and view all the answers
En la función Lectura_IRF, ¿qué indica que LadoActual se establece en 0?
En la función Lectura_IRF, ¿qué indica que LadoActual se establece en 0?
Signup and view all the answers
¿Qué parámetro se usa para ajustar IR_P[i] a una escala común?
¿Qué parámetro se usa para ajustar IR_P[i] a una escala común?
Signup and view all the answers
¿Cuál es el propósito de la variable 'sumaPonderada' en la función CalcularErrorActual?
¿Cuál es el propósito de la variable 'sumaPonderada' en la función CalcularErrorActual?
Signup and view all the answers
¿Qué significa cuando se establece que la variable Bandera_CambioLado es igual a 1?
¿Qué significa cuando se establece que la variable Bandera_CambioLado es igual a 1?
Signup and view all the answers
¿Cuál es el resultado de aplicar el filtro en el bucle que recorre los sensores?
¿Cuál es el resultado de aplicar el filtro en el bucle que recorre los sensores?
Signup and view all the answers
¿Qué sucede cuando LadoActual es igual a 0 o UltimoLado es igual a 0?
¿Qué sucede cuando LadoActual es igual a 0 o UltimoLado es igual a 0?
Signup and view all the answers
En el bloque de código para el lado derecho, ¿qué valor se asigna a errorActual?
En el bloque de código para el lado derecho, ¿qué valor se asigna a errorActual?
Signup and view all the answers
¿Cuál es el propósito de la bandera Bandera_ArranqueSuave?
¿Cuál es el propósito de la bandera Bandera_ArranqueSuave?
Signup and view all the answers
¿Qué sucede si LadoActual es igual a 2 y ha pasado el tiempo de Timeout_SinPegarLado?
¿Qué sucede si LadoActual es igual a 2 y ha pasado el tiempo de Timeout_SinPegarLado?
Signup and view all the answers
¿Qué valor se asigna al ki cuando Bandera_ArranqueSuave es verdadera?
¿Qué valor se asigna al ki cuando Bandera_ArranqueSuave es verdadera?
Signup and view all the answers
Cuando se busca estabilizar el arranque, ¿cuáles son los valores de kp y kd si Bandera_ArranqueSuave es falsa?
Cuando se busca estabilizar el arranque, ¿cuáles son los valores de kp y kd si Bandera_ArranqueSuave es falsa?
Signup and view all the answers
¿Cuál de los siguientes es parte de la lógica empleada cuando LadoActual es igual a 0 o 1?
¿Cuál de los siguientes es parte de la lógica empleada cuando LadoActual es igual a 0 o 1?
Signup and view all the answers
¿Qué valor se asigna a kp cuando Bandera_PegarladoAct es verdadera?
¿Qué valor se asigna a kp cuando Bandera_PegarladoAct es verdadera?
Signup and view all the answers
Study Notes
Variables y Configuraciones del PID
- Se definen variables para el control PID: error actual, anterior, integración y derivativa, con constantes para ganancias proporcional (kp), integral (ki) y derivativa (kd).
- Las ganancias son: kp = 1.3, ki = 1.8, kd = 0.15.
- Un valor multiplicador para el blanco en PID se establece en 2.55.
Control de Tiempo y Arranque Suave
- Se utiliza un temporizador para controlar el tiempo desde el último lado tocado; el timeout es de 1000 ms.
- Se implementa una bandera para el arranque suave con un timeout de 400 ms.
- Manejo del giro abrupto con un timeout derivado elevado de 200 ms.
Definición de Setpoints y Lado Actual
- Se definen valores de setpoint para cada lado (izquierda y derecha) como 0.
- El lado actual se inicializa en 2 (todo blanco), con un último lado definido en 0 (izquierda) o 1 (derecha).
Funciones de Lectura de Sensores
- Lectura de valores de sensores de piso y almacenamiento en un buffer circular.
- Se calcula el promedio de los valores de los sensores, considerando un umbral negro para determinar el estado de los sensores.
- Funciones implementadas para actualizar lecturas de sensores frontales y calcular el error actual basado en el lado activo.
Error y Modificación de Valores K
- La función para calcular el error actual ajusta el valor según el lado activo del robot (izq o der) usando un sistema de pesos predefinido.
- En la modificación de valores K se establece un arranque suave que adapta las ganancias en el tiempo de transición.
Aceleración y Control de Velocidad
- Se gestiona la aceleración del robot, comenzando desde un estado detenido hasta alcanzar la velocidad máxima permitida (255).
- Control de condiciones para evitar inestabilidad durante el aumento de velocidad que se basa en la corrección y el tiempo transcurrido.
Implementación de Correcciones
- Se aplican restricciones para las correcciones obtenidas, mapeando valores para una salida estable en motores.
- Se evalúan múltiples condiciones para ajustar la dirección y velocidad del robot en función de las lecturas de los sensores.
Manejo de Estados del Robot
- Se define un sistema de estados para el avance del robot, controlando el sentido de giro y velocidad en base a la lógica implementada.
- Cada estado del modo de aceleración ajusta las configuraciones y permite la toma de decisiones en tiempo real según las lecturas de los sensores y el comportamiento del robot.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Este cuestionario explora los conceptos básicos del control PID, incluyendo las variables y ganancias necesarias para su implementación. Se revisarán los valores de ganancia proporcional, integral y derivativa, además de sus aplicaciones prácticas en programación.