Tabla de contenido:

Robot de seguimiento de línea basado en PID con matriz de sensor POLOLU QTR 8RC: 6 pasos (con imágenes)
Robot de seguimiento de línea basado en PID con matriz de sensor POLOLU QTR 8RC: 6 pasos (con imágenes)

Video: Robot de seguimiento de línea basado en PID con matriz de sensor POLOLU QTR 8RC: 6 pasos (con imágenes)

Video: Robot de seguimiento de línea basado en PID con matriz de sensor POLOLU QTR 8RC: 6 pasos (con imágenes)
Video: How To Attach Breadboard Wires to QTR8 Sensor 2024, Noviembre
Anonim
Robot de seguimiento de línea basado en PID con matriz de sensores POLOLU QTR 8RC
Robot de seguimiento de línea basado en PID con matriz de sensores POLOLU QTR 8RC

¡Hola!

Este es mi primer escrito sobre instructables, y hoy los llevaré por el camino y les explicaré cómo construir un robot de seguimiento de línea basado en PID utilizando la matriz de sensores QTR-8RC.

Antes de continuar con la construcción del robot, debemos comprender lo que se llama PID,

Paso 1: Principio de funcionamiento

¿Qué es PID?

El término PID significa proporcional, integral, derivada. Así que simplemente, lo que estamos haciendo con la participación de PID con seguimiento de línea es, le estamos dando un comando al robot para que siga la línea y detecte los giros calculando el error considerando cómo lejos se ha salido de la pista.

términos clave como se menciona en los documentos polalu

El valor proporcional es aproximadamente proporcional a la posición de su robot con respecto a la línea. Es decir, si su robot está centrado con precisión en la línea, esperamos un valor proporcional de exactamente 0

El valor integral registra el historial del movimiento de su robot: es una suma de todos los valores del término proporcional que se registraron desde que el robot comenzó a funcionar

La derivada es la tasa de cambio del valor proporcional

En este tutorial, hablaremos solo sobre Kp y los términos Kd, sin embargo, los resultados también se pueden lograr usando el término Ki. Las lecturas que estamos obteniendo del sensor no son solo lecturas analógicas sino también lecturas posicionales del robot. Básicamente, el sensor proporciona valores de 0 a 2500 que van desde la reflectancia máxima a la reflectancia mínima, pero, al mismo tiempo, también proporciona información sobre qué tan lejos se ha quedado el robot de la línea).

Ahora tenemos que considerar el término de error, esta es la diferencia del valor del punto de ajuste de los dos valores y el valor actual. (El valor del punto de ajuste es la lectura que corresponde a la ubicación "perfecta" de los sensores en la parte superior de las líneas. El valor son las lecturas instantáneas del sensor. Por ejemplo: Si está utilizando este sensor de matriz y está utilizando 8 sensores, recibirá una lectura posicional de 3500 si está en el punto, alrededor de 0 si está demasiado lejos de la línea y alrededor de 7000 si está demasiado a la derecha). Nuestro objetivo es hacer que el error sea cero. Solo entonces el robot puede seguir la línea sin problemas.

Luego viene la parte de cálculo.

1) calcula el error.

Error = Valor de punto de ajuste - Valor actual = 3500 - posición

Como estoy usando 8 sensores. el sensor da una lectura de posición de 3500 cuando el robot está perfectamente colocado. Ahora que hemos calculado nuestro error, el margen por el cual nuestro robot se desplaza por la pista, es hora de que analicemos el error y ajustemos las velocidades del motor en consecuencia.

2) determinar las velocidades ajustadas de los motores.

MotorSpeed = Kp * Error + Kd * (Error - LastError);

LastError = Error;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Hablando lógicamente, un error de 0 significa que nuestro robot está hacia la izquierda, lo que significa que nuestro robot necesita ir un poco a la derecha, lo que a su vez significa que el motor derecho necesita reducir la velocidad y el motor izquierdo necesita acelerar. ¡ESTO ES PID!

El valor de MotorSpeed se determina a partir de la propia ecuación. RightBaseSpeed y LeftBaseSpeed son las velocidades (cualquier valor de PWM 0-255) a las que funciona el robot cuando el error es cero.

El código que he adjuntado también incluye cómo verificar los valores posicionales del sensor, para que pueda abrir el monitor en serie y cargar el código y ver por sí mismo con una línea cómo giran los motores cuando la posición varía.

Si tiene problemas al implementar su robot, simplemente verifique si cambia los signos de las ecuaciones.

Y ahora la parte más complicada ENCONTRAR Kp Y Kd, tuve que pasar más de 1 hora para sintonizar perfectamente mi robot. En lugar de poner valores aleatorios, encontré un método más fácil para determinar esto.

  1. Comience con kp y Kd igual a 0, y comience con Kp, primero intente configurar Kp en 1 y observe el robot, nuestro objetivo es seguir la línea incluso si está tambaleante, si el robot se sobrepasa y pierde la línea, reduzca el valor de kp.si el robot no puede navegar un giro y es lento, aumente el valor de Kp.
  2. Una vez que el robot parece seguir un poco la línea, ajuste el valor de Kd (valor de Kd> valor de Kp) comience desde 1 y aumente el valor hasta que vea una conducción suave con menor oscilación.
  3. Una vez que el robot comience a seguir la línea, aumente la velocidad y vea si es capaz de retener y seguir la línea.

Tenga en cuenta que la velocidad tiene un impacto directo en el ajuste de PID y, a veces, es posible que deba volver a sintonizar para que coincida con la velocidad de su robot.

Ahora podemos empezar a construir nuestro robot.

Paso 2: la construcción

La construcción
La construcción
La construcción
La construcción
La construcción
La construcción

Arduino atmega 2560 con cable USB, este es el microcontrolador principal utilizado.

Chasis- para el chasis del robot he usado 2 placas acrílicas circulares que se usan para otro proyecto que es perfecto para esto. Usando tuercas y tornillos he construido un chasis de 2 pisos, para poder conectar otros módulos a la placa superior. O puede utilizar el chasis listo para usar disponible.

www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…

Motores de engranajes micrometálicos: el robot necesitaba motores de rotación rápida para hacer frente a la rutina PID, para eso he usado motores con una potencia nominal de 6 V 400 rpm y ruedas de agarre adecuadas.

www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…

www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…

Matriz de sensores QTR 8Rc: se puede usar para el seguimiento de línea, como se mencionó anteriormente, creo que ahora tiene una comprensión clara de cómo operar la matriz de sensores con PID. El código es muy simple y utilizando las bibliotecas arduino existentes podrá para construir un seguidor de línea veloz.

www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…

Controlador de motor TB6612FNG: quería usar un controlador de motor que pueda manejar giros y cambiar de dirección en un instante, que sea capaz de frenar eficazmente los motores cuando la señal PWM baja.

www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…

Batería de lipo: la batería de lipo de 11,1 V se utiliza para proporcionar energía al robot. Aunque he usado una batería de lipo de 11,1 V, esta capacidad es más de lo que se necesita para el arduino y los motores. Si puede encontrar un 7,4 V de peso ligero batería lipo o paquete de baterías de 6V Ni-MH será perfecto. Por esta razón, tengo que usar un convertidor buck para convertir el voltaje a 6V.

11.1V-

7.4 V-

Módulo convertidor Buck-

Además de eso, necesita cables de puente, tuercas y pernos, destornilladores y cintas eléctricas y también bridas para asegurarse de que todo esté en su lugar.

Paso 3: Montaje

Montaje
Montaje
Montaje
Montaje
Montaje
Montaje
Montaje
Montaje

conecte los motores y una pequeña rueda giratoria en una placa con tuercas y tornillos y luego monte el sensor QTR, el controlador del motor, la placa arduino y finalmente la batería en el chasis.

Aquí hay un diagrama perfecto que encontré en Internet, que le dice cómo se deben realizar las conexiones.

Paso 4: diseñe su línea de seguimiento

Diseñe su línea de seguimiento
Diseñe su línea de seguimiento

Ahora su proyecto parece casi haber terminado. En cuanto a la última etapa, necesita tener una pequeña arena para probar su robot. He usado una línea aleatoria de línea blanca de 3 cm de ancho sobre un fondo negro. Asegúrate de pegar todo bien y por el momento evita cruces y cortes de ángulos de 90 grados, porque es un caso complicado en el punto de codificación.

Paso 5: programe su código

1. Descarga e instala Arduino

IDE de escritorio

· Ventanas -

· Mac OS X:

· Linux -

2. Descargue y pegue el archivo de matriz de sensores QTR 8 RC en la carpeta de bibliotecas de Arduino.

·

· Pega archivos en la ruta - C: / Arduino / libraries

3. Descarga y abreLINEFOLLOWING.ino

4. Sube el código a la placa arduino a través de un cable USB

Paso 6: ¡¡HECHO

Image
Image

ahora tienes un robot de seguimiento de línea hecho por ti mismo.

Espero que este tutorial haya sido útil. No dude en ponerse en contacto conmigo a través de [email protected] si tiene algún problema.

nos vemos pronto con otro nuevo proyecto.

¡Disfruta construyendo!

Recomendado: