← Todos los proyectosTous les projetsAll projects

La Gamelle, robot seguidor de línea La Gamelle, robot suiveur de ligne La Gamelle, a line-following robot

Un robot autónomo construido para el Gamel Trophy del IUT de Cachan. Tiene que seguir la línea lo más rápido posible y tomar los atajos de la pista. Diseñamos sus dos placas en KiCad y lo programamos en C; en la homologación completó el recorrido en unos 19 segundos.

Un robot autonome construit pour le Gamel Trophy de l'IUT de Cachan. Il doit suivre la ligne le plus vite possible et prendre les raccourcis de la piste. Nous avons conçu ses deux cartes sous KiCad et l'avons programmé en C ; à l'homologation, il a bouclé le parcours en 19 secondes environ.

An autonomous robot built for the Gamel Trophy at IUT de Cachan. It has to follow the line as fast as possible and take the track's shortcuts. We designed its two boards in KiCad and programmed it in C; it completed the qualifying run in about 19 seconds.

AñoAnnéeYear
2025–2026
ContextoCadreContext
Gamel Trophy, BUT GEII, IUT de CachanGamel Trophy, BUT GEII, IUT de CachanGamel Trophy, BUT GEII, IUT de Cachan
HerramientasOutilsTools
C, MPLAB XC8, KiCad
El robot La Gamelle sobre la pista
La Gamelle en la pista del IUT. La Gamelle sur la piste de l'IUT. La Gamelle on the IUT track.

En la pistaSur la pisteOn the track

Vuelta de homologación. Tour d'homologation. Qualifying run.

ArquitecturaArchitectureArchitecture

Una batería de plomo de 12 V alimenta directamente la placa de potencia de los motores. Reguladores 7805 bajan la tensión a 5 V para el microcontrolador y los sensores. El robot lleva además una pantalla LCD, un botón de fin de carrera y un jack de seguridad.

Une batterie au plomb 12 V alimente directement la carte hacheur des moteurs. Des régulateurs 7805 abaissent la tension à 5 V pour le microcontrôleur et les capteurs. Le robot embarque aussi un écran LCD, un bouton de fin de course et un jack de sécurité.

A 12 V lead-acid battery powers the motor driver board directly. 7805 regulators bring it down to 5 V for the microcontroller and the sensors. The robot also has an LCD screen, a limit switch and a safety jack.

Diagrama de bloques del robot: carta de sensores, carta microcontrolador y carta de potencia
Diagrama general: placa de sensores, microcontrolador y placa de potencia. Synoptique : carte capteurs, microcontrôleur et carte hacheur. Overview: sensor board, microcontroller and motor driver board.

Placa de sensoresCarte capteursSensor board

Cinco sensores infrarrojos CNY70 colocados a menos de 10 mm del suelo. Los tres centrales sirven para seguir la línea; los dos exteriores detectan las bifurcaciones a 90° que llevan a los atajos.

Cinq capteurs infrarouges CNY70 placés à moins de 10 mm du sol. Les trois capteurs centraux servent au suivi de ligne ; les deux extérieurs détectent les embranchements à 90° qui mènent aux raccourcis.

Five CNY70 infrared sensors mounted less than 10 mm above the floor. The three in the middle handle line following; the two outer ones detect the 90° branches that lead to shortcuts.

Esquema KiCad de la placa de sensores con cinco CNY70
Esquema de la placa de sensores en KiCad. Schéma de la carte capteurs sous KiCad. Sensor board schematic in KiCad.

Placa de potenciaCarte hacheurMotor driver board

Cada motor de 12 V se controla con un MOSFET IRL510 conmutado por la señal PWM del microcontrolador, lo que permite ajustar la velocidad de cada rueda por separado.

Chaque moteur 12 V est commandé par un MOSFET IRL510 piloté par le signal PWM du microcontrôleur, ce qui permet de régler la vitesse de chaque roue séparément.

Each 12 V motor is switched by an IRL510 MOSFET driven by the microcontroller's PWM output, so the speed of each wheel can be set independently.

Esquema KiCad de la placa de potencia con MOSFET IRL510
Esquema de la placa de potencia en KiCad. Schéma de la carte hacheur sous KiCad. Motor driver schematic in KiCad.

Programa y controlProgramme et asservissementSoftware and control

El programa está escrito en C con MPLAB XC8 y organizado como una máquina de estados. Las lecturas de los sensores se normalizan entre 0 y 100 y se filtran antes de calcular el error de posición respecto a la línea. A partir de ese error, un control proporcional-derivativo corrige la velocidad de cada motor:

Le programme est écrit en C avec MPLAB XC8 et organisé en machine à états. Les mesures des capteurs sont normalisées entre 0 et 100 et filtrées avant de calculer l'erreur de position par rapport à la ligne. À partir de cette erreur, un correcteur proportionnel-dérivé ajuste la vitesse de chaque moteur :

The program is written in C with MPLAB XC8 and structured as a state machine. Sensor readings are normalised to 0–100 and filtered before computing the position error relative to the line. From that error, a proportional-derivative controller adjusts each motor's speed:

correction = C0 * erreur + Kd * (erreur - erreur_pre)

Para los atajos, el sensor exterior izquierdo detecta la bifurcación. Una temporización de 0,25 s evita confundirla con un cruce, y para girar a 90° se corta el motor del lado interior.

Pour les raccourcis, le capteur extérieur gauche détecte l'embranchement. Une temporisation de 0,25 s évite de le confondre avec un croisement, et le moteur intérieur est coupé pour tourner à 90°.

For shortcuts, the outer left sensor detects the branch. A 0.25 s delay keeps it from being mistaken for a crossing, and the inner motor is cut to make the 90° turn.