Ehecatl

Public

@mictlanteam

Share Ehecatl

Check access before sharing the link.

Who can open this board

Anyone can open this board. No sign-in is required.

This link opens the latest version. Copying it does not grant additional access.

Loading…

README

EHECATL - Line Follower Racing Robot

EHECATL (pronunciado "Ehécatl") es un robot seguidor de línea diseñado para competencias de racing. Su nombre proviene del dios azteca del viento, representando su característica principal: un sistema de succión mediante turbina para generar efecto ground y aumentar la tracción en curvas a alta velocidad.

🏆 Características Principales

Hardware

  • Microcontrolador: ESP32-S3-Zero
  • Sensores: Array de 16 sensores IR con multiplexadores duales
  • Motores: 2 motores DC con drivers RZ7886
  • Turbina: Sistema de succión con ESC brushless (efecto ground)
  • Control: Botón físico, señal externa de start, y comandos serial

Software

  • Control PID: Controlador proporcional-derivativo ajustable
  • Pre-inicio Inteligente: Estabilización y activación de turbina antes del arranque
  • Aceleración Adaptativa: Velocidad mínima de 20% para arranques rápidos
  • Protocolo ESC: Control de turbina a 50Hz (protocolo servo estándar)
  • Lectura Simétrica: Sensores leídos desde el centro hacia extremos
  • Calibración Automática: Auto-calibración con umbral adaptativo

🛠️ Especificaciones Técnicas

Mapa de Pines

ComponentePinTipoDescripción
Motores
Motor Izq A1PWMControl motor izquierdo
Motor Izq B4PWMControl motor izquierdo
Motor Der A9PWMControl motor derecho
Motor Der B2PWMControl motor derecho
Sensores
MUX_A3Digital OutControl multiplexador (LSB)
MUX_B11Digital OutControl multiplexador
MUX_C10Digital OutControl multiplexador (MSB)
Sensores 1-88Analog InLectura multiplexador 1
Sensores 9-167Analog InLectura multiplexador 2
Utilidades
LED5Digital OutLED de estado
Botón13Digital InBotón con pull-up
Start Signal6Digital InSeñal de inicio externa
Turbina12PWM (ESC)Control turbina/succión

Configuraciones PWM

Motores

  • Frecuencia: 5 kHz
  • Resolución: 10 bits (0-1023)
  • Canales: 0-3

Turbina (ESC)

  • Frecuencia: 50 Hz (protocolo servo)
  • Resolución: 11 bits
  • Rango: 102-204 (1000μs-2000μs)
  • Canal: 4

Parámetros PID

KP = 0.2    // Ganancia proporcional
KD = 0.80   // Ganancia derivativa

Tiempos de Control

  • Loop de control: 1000 μs (1 kHz)
  • Timeout pérdida de línea: 250 ms
  • Calibración sensores: 3000 ms
  • Tiempo máximo de prueba: 30000 ms

⚙️ Configuración

Configuración de Flash (platformio.ini)

[env:esp32-s3-zero]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino
board_build.mcu = esp32s3
board_build.f_cpu = 240000000L
board_build.flash_mode = qio
board_upload.flash_size = 4MB
board_build.arduino.memory_type = qio_opi
board_build.psram_type = opi
board_build.partitions = default.csv
monitor_speed = 115200
upload_speed = 921600

Ajuste de Parámetros

Los parámetros principales se pueden ajustar en:

  • control.h: Constantes PID, tiempos de control
  • motors.h: Configuración PWM de motores y turbina
  • sensors.h: Configuración de sensores

📱 Uso Básico

Inicio del Robot

  1. Encendido: Conectar alimentación
  2. Inicialización: Esperar 2 segundos (ESC de turbina)
  3. Calibración: Presionar botón → Mover robot sobre línea 3 segundos
  4. Listo: LED indica que está listo para iniciar

Modos de Inicio

El robot puede iniciarse de 3 formas:

  1. Botón Largo (>1s):

    • Presionar y mantener botón
    • Cuenta regresiva de 3 segundos
    • Último segundo: pre-inicio con turbina al 85%
    • ¡GO!
  2. Señal Externa (Pin 6):

    • Compatible con sistemas de competencia
    • Inicio inmediato al detectar HIGH en pin 6
  3. Comando Serial (s):

    • Enviar comando s por monitor serial
    • Cuenta regresiva de 3 segundos
    • Inicio automático

Comandos Serial

ComandoFunciónEjemplo
sIniciar carrera-
xDetener carrera-
rMostrar sensores RAW-
cMostrar sensores calibrados-
v[num]Cambiar velocidad base (0-100%)v40
a[num]Cambiar aceleración (0-100%)a70
f[num]Cambiar velocidad turbina (0-100%)f90
calRe-calibrar sensores-

📊 Rendimiento

📝 Licencia

Este proyecto está bajo la Licencia MIT. Ver archivo LICENSE para más detalles.

🔗 Enlaces Útiles


EHECATL - El viento que domina la pista 💨🏎️

Comments

No comments yet. Be the first to ask about this board.

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.