Tabla de contenido:
- Paso 1: Cambio de ubicación del tutorial
- Paso 2: construya el robot de accionamiento diferencial SnappyXO
- Paso 3: conecte la electrónica
- Paso 4: Instale la biblioteca Arduino de PreciseMovement
- Paso 5: Código
- Paso 6: cómo funciona
Video: Robot de movimiento preciso SnappyXO: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Haga que su robot Arduino vaya recto una distancia específica o gire a un ángulo específico utilizando la biblioteca Arduino PreciseMovement.
El robot necesita un lanzador de bolas rodantes o equivalente para minimizar la fricción al girar.
www.pololu.com/product/954
Puede decirle al robot que avance a una distancia específica o que gire a un ángulo específico. El programa determina su posición utilizando la navegación a estima. Dado que las estimaciones de posición se basan únicamente en la velocidad de la rueda, el deslizamiento inducirá un error considerable. El diseñador del robot debe tener cuidado de minimizar el riesgo de deslizamiento.
Esto ha sido probado para funcionar con el robot SnappyXO.
Paso 1: Cambio de ubicación del tutorial
El tutorial se ha trasladado a la página siguiente. Este tutorial ya no se mantiene.
sites.google.com/stonybrook.edu/premo
Paso 2: construya el robot de accionamiento diferencial SnappyXO
La biblioteca PreciseMovement que usaremos solo es compatible con robots de accionamiento diferencial. Puede optar por utilizar otros robots con tracción en 2 ruedas.
Paso 3: conecte la electrónica
Para el codificador óptico SnappyXO estándar:
D0 (salida del codificador) -> Pin digital Arduino
VCC -> Arduino 5V
GND -> GND
Motor y Arduino Power:
La fuente de alimentación del motor debe ser adecuada para los motores que utiliza. Para el kit SnappyXO, se utilizan baterías 4AA para la potencia del motor y batería de 9V para la potencia de Arduino. Asegúrese de que todos tengan un GND común.
Paso 4: Instale la biblioteca Arduino de PreciseMovement
Descargar:
github.com/jaean123/PreciseMovement-library/releases
Cómo instalar la biblioteca Arduino:
wiki.seeedstudio.com/How_to_install_Arduino_Library/
Paso 5: Código
Código Arduino:
create.arduino.cc/editor/ whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview
Estos parámetros requieren ajuste. Otros parámetros etiquetados como recomendados en el código se pueden ajustar para un mejor rendimiento.
- Verifique y coloque los pines del motor debajo de ARDUINO PINS.
-
Establezca LONGITUD y RADIO.
- LONGITUD es la distancia desde la rueda izquierda a la rueda derecha.
- RADIUS es el radio de la rueda.
-
Configure PULSES_PER_REV, que es el número de pulsos que emite el codificador para una revolución de rueda.
- Tenga en cuenta que esto es diferente del número de pulsos que emite el codificador para una revolución del eje del motor, a menos que los codificadores estén conectados para leer directamente desde el eje de la rueda.
- PULSES_PER_REV = (pulsos por una revolución del eje del motor) x (relación de transmisión)
-
Configure STOP_LENGTH si ve que el robot se está sobrepasando después del movimiento hacia adelante.
El robot se detendrá una vez que la posición estimada esté a STOP_LENGTH lejos del objetivo. Por lo tanto, STOP_LENGTH, es la distancia aproximada requerida para que el robot se detenga
-
Parámetros PID
KP_FW: Este es el componente proporcional del movimiento hacia adelante. Aumente esto hasta que el robot se endereza. Si no puede hacer que funcione correctamente sintonizando esto, es probable que el hardware sea el culpable. (por ejemplo, desalineación de la rueda, etc.)
KP_TW: Este es el componente proporcional del PID de movimiento de torsión. Simplemente comience desde un valor bajo y aumente esto hasta que la velocidad de giro, o la velocidad angular del robot mientras gira, sea lo suficientemente rápida, pero no provoque un sobreimpulso. Para realizar observaciones, puede hacer que el robot alterne de 0 a 90 y viceversa insertando lo siguiente en la función de bucle
Coloque esto en bucle para sintonizar KP_FW:
mover.forward (99999);
Coloque esto en bucle para alternar de 0 a 90 para sintonizar KP_TW:
mover.twist (90); // Gire 90 CW
retraso (2000);
mover.twist (-90) // Girar 90 CCW
retraso (2000);
Tenga en cuenta que para girar realmente la velocidad angular en TARGET_TWIST_OMEGA, el KI_TW también debe ajustarse, ya que un controlador proporcional nunca se ajustará al objetivo exacto. Sin embargo, no es necesario girar exactamente a esa velocidad angular. La velocidad angular solo necesita ser lo suficientemente lenta.
Paso 6: cómo funciona
Si tiene curiosidad sobre cómo funciona, siga leyendo.
El movimiento hacia adelante se mantiene recto utilizando el algoritmo de búsqueda pura en una ruta en línea recta. Más sobre Pure Pursuit:
El controlador PID de torsión intenta mantener la velocidad angular de torsión en TARGET_TWIST_OMEGA. Tenga en cuenta que esta velocidad angular es la velocidad angular de todo el robot, no las ruedas. Solo se usa un controlador PID y la salida es la velocidad de escritura PWM de los motores izquierdo y derecho. La navegación a estima se realiza para calcular el ángulo. Una vez que el ángulo alcanza el umbral de error, el robot se detiene.
Recomendado:
Voltímetro preciso con pantalla de tinta electrónica Waveshare (0-90v CC) con Arduino Nano: 3 pasos
Voltímetro preciso de pantalla de tinta electrónica Waveshare (0-90v CC) con Arduino Nano: en este Instructable, uso una pantalla de papel electrónico Waveshare de 2.9 '' con un Arduino Nano, un divisor de voltaje y un ADS1115 para mostrar voltajes precisos de hasta 90 voltios DC en el E-Paper Display. Este instructable combina estos dos proyectos anteriores: - Ardui
Voltímetro preciso y exacto de Arduino (0-90 V CC): 3 pasos
Voltímetro preciso y exacto de Arduino (0-90V DC): en este instructable, he construido un voltímetro para medir altos voltajes DC (0-90v) con relativa precisión y exactitud usando un Arduino Nano. Las medidas de prueba que tomé fueron lo suficientemente precisas, en su mayoría dentro de 0.3v del voltaje real medido con un
GPSDO YT, Oscilador disciplinado 10Mhz Frecuencia de referencia. Bajo costo. Preciso .: 3 pasos
GPSDO YT, Oscilador disciplinado 10Mhz Frecuencia de referencia. Bajo costo. Preciso.: *********************************************** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * STOP * nueva versión de pantalla lcd 2x16 disponible aquí: https: //www.instructables.com/id
[Robot Arduino] Cómo hacer un robot de captura de movimiento - Robot de pulgares - Servomotor - Código fuente: 26 pasos (con imágenes)
[Robot Arduino] Cómo hacer un robot de captura de movimiento | Robot de pulgares | Servomotor | Código fuente: Thumbs Robot. Usó un potenciómetro del servomotor MG90S. ¡Es muy divertido y fácil! El código es muy simple. Son solo alrededor de 30 líneas. Parece una captura de movimiento. ¡Deje cualquier pregunta o comentario! [Instrucción] Código fuente https: //github.c
Salida controlada por movimiento: desde una luz de detección de movimiento: 6 pasos
Salida controlada por movimiento: desde una luz de detección de movimiento: Imagina que eres un truco o trato que va a la casa más aterradora de la cuadra. Después de pasar todos los demonios, fantasmas y cementerios, finalmente llegas al último camino. ¡Puedes ver los dulces en un tazón delante de ti! Pero luego, de repente, un gho