Conception d’un robot suiveur de ligne rapide

De la conception à la réalisation :

Voici un exemple de conception d’un robot suiveur de ligne pour le Tournoi national de Robotique de Nîmes, qui a lieu tous les ans, au mois de mai.

Avec l’expérience, certains choix technologiques sont privilégiés en particulier sur le processeur et ses outils de développement. Mais la curiosité d’expérimenter de nouvelles idées pousse à tester d’autres protocoles, d’autres capteurs et à essayer de combiner l’ensemble sans perte d’efficacité.

Par ailleurs, outre ces aspects technologiques, il faut réaliser un ensemble mécanique cohérent. De nombreux aller-retour sont nécessaires entre la mécanique et l’électronique pour avancer vers la réalisation finale.

L’un des points intéressants qui justifient de réaliser une nouvelle version d’un robot suiveur de ligne efficace, c’est la possibilité d’utiliser les outils de l’IA, comme ChatGPT et Claude AI pour optimiser certains points, à l’image des calculs mathématiques. Mais il ne faut pas être aveuglé par les prouesses de l’IA. Dans l’état actuel de ses capacités, de nombreuses erreurs apparaissent dans ses calculs et la connaissance approfondie des systèmes permet de les débusquer. Malgré cela, un peu être d’un grand secours pour vérifier et donc accélérer le développement d’un code. C’est beaucoup moins évident pour un schéma électronique et un design adapté.

Optimisation d’un calcul pour PIC18F, utilisation de l’IA

Voici un exemple intéressant de l’utilisation de l’IA pour optimiser un calcul mathématique. Nous prenons pour exemple le calcul de la distance d’un obstacle par un capteur à ultrasons de type HC-SR04. La formule consiste à multiplier une variable par une constante.

Les données sont les suivantes : compteur 16 bits à 1µs et vitesse du son 340m/s

Le calcul habituel nous donne : distance (cm) = durée (µs) / 58) = durée (µs) x 0,017.

Sur un microcontrôleur 8bits, les divisions sont couteuses en temps logicielles et les multiplications par un flottant à peine meilleures. L’IA nous propose un optimisation graduelle avec un calcul d’erreur. Après diverses demandes de plus en plus précises, L’IA nous propose de remplacer la division par un décalage binaire

0.017 ≈N/2k

9/512 = 0.017578 , avec une erreur de 0.17 %

512 = 2⁹ → décalage de 9 bits. Le calcul consiste à multiplier en premier par 9, puis à faire 9 décalages vers la droite pour diviser par 512.

Code en C pour PIC18F : distance_cm = (ticks * 9) >> 9;

✔ ultra rapide
✔ pas de division lente
✔ erreur < 0,2 %
✔ parfait pour HC-SR04

Le schéma électronique utilise un PIC18F46K22. L’Interface Homme Machine (IHM) comporte 2 DELs, 3 poussoirs, une liaison UART (PC via Hyperterminal et Bluetooth) et un afficheur OLED. Le reste des éléments comporte une interface moteurs, le capteur de ligne à base de TCRT5000, des encodeurs, un capteur US HC-SR04 et un servomoteur.

La mécanique finale

Réalisé avec un logiciel de CAO efficace, les fichiers sont imprimés en PETG avec une imprimante 3D Prusa. Le résultat obtenu s’accorde parfaitement avec les circuits imprimés réalisés sous EAGLE, les moteurs, engrenages, accu et les autres éléments.

Pour finaliser l’ensemble, il faut dessiner et réaliser les pièces en relation avec le servomoteur et le capteurs à ultrasons fixé sur ce dernier. Les pneus de la photo seront changés pour des modèles adaptés.

Publié dans Robotique | Marqué avec , , , , , | Commentaires fermés sur Conception d’un robot suiveur de ligne rapide

Carte de Développement pour PIC16F1847

Depuis l’article à l’origine de cette carte, l’auteur a multiplié les exemplaires pour arriver à une solution plus propre, tout en gardant l’esprit des débuts. Lien avec l’article d’origine

La modification la plus importante est l’utilisation du PIC16F1847 en remplacement du 16F88. Mais d’autres composants de la même famille 16F peuvent utilisés cette carte à condition de disposer de la même répartition des broches du composants.

Une autre modification concerne la programmation de la puce sélectionnée. Quelque soit le fabricant, on utilise un bootloader. C’est à dire un bout de code placé dans le composant. Ce code dialogue avec une application sur le PC pour reprogrammer la puce et en même temps permet un dialogue avec cette même puce. Cette dernière possibilité permet de résoudre les erreurs et plus simplement de créer une interface de dialogue entre la puce et votre PC.

Cours de programmation

Trame de Base pour débuter

Projet de contrôle de DELs de type NeoPixel

Projet Expert

Publié dans Etudes & Réalisations | Commentaires fermés sur Carte de Développement pour PIC16F1847

Enceinte Bluetooth 2024

Dans le cadre du FabLab de Nîmes, l’atelier Électronique a proposé la réalisation d’une petite enceinte Bluetooth pour cette rentrée 2024.

Le groupe a réalisé un petit ampli 0.5W et a choisi des divers modules et un design moderne pour habiller l’ensemble de l’électronique.

Vidéo du résultat obtenu (la musique est un choix personnel)

Piece 1 et 2 zip

Publié dans Etudes & Réalisations | Commentaires fermés sur Enceinte Bluetooth 2024

Nouveau Robot Formule 1 en 2024

Cette nouvelle version est une évolution du modèle 2023.
Ce qui ne change pas d'une version à l'autre, ceux sont les capteurs, les moteurs, le processeur, le servo-moteur, l'accu.
Ce qui change, c'est les roues et pneus (fait maison à partir d'un moule), les interfaces moteurs (les précédents étaient trop fragiles).
Publié dans Robotique | Commentaires fermés sur Nouveau Robot Formule 1 en 2024

Robot Formule 1

L’année scolaire 2022/2023 a été l’occasion de revoir nos bases en robotique avec l’étude, la réalisation et la programmation d’un Robot Suiveur de Ligne (RSL), Line Follower Robot (LFR). Le tournoi national de robotique de Nîmes est l’opportunité de motiver les étudiants pour concourir et performer.

Le cahier des charges imposé par le tournoi donne les dimensions maximales du robot, le fait qu’il soit nécessaire de contourner un obstacle et enfin d’être capable de suivre un mur en virage en l’absence de piste. Ce qui correspond à 3 qualifications de complexité croissante. Nous avons respecté chronologiquement cette progression dans la construction de nos robots.

10 réalisations ont permis de tester plusieurs formes avec des dispositions diverses des moteurs et des capteurs.

Quelques choix ont été contraint par soucis de pédagogie.

  • Les moteurs de type Pololu 1/30
  • Les roues adaptées
  • Une interface Pololu DRV8835
  • Un µC 18F26K22
  • Un afficheur OLED I2C
  • Un capteur de ligne QTR8A
  • Un télémètre Sharp ou Ultrasons
  • Un micro-servo 9G
  • Interface Bluetooth à RN42

Les divers éléments structurels ont été dessinés sur SolidWorks et réalisés avec une imprimante 3D et une découpe LASER. Le circuit imprimé a été dessiné sous EAGLE. L’association a été validé sous SolidWork.

La phase de programmation a aussi permis de valider certaines structures au détriment d’autres. Le test sur piste a permis aussi de confirmer l’efficacité des diverses routines logicielles comme le calcul du barycentre ainsi que la correction PD.

L’interface Bluetooth associée à une appli pour smartphone de type Serial Bluetooth Terminal permet modifier les coefficients du correcteur PD, en direct sur le robot pendant qu’il roule. Le contrôle du robot avec un smartphone et son amélioration est une révélation pour beaucoup d’étudiants et donne un effet très positif sur le projet et sa finalité pédagogique.

 

Publié dans Robotique | Commentaires fermés sur Robot Formule 1

Carte Bluetooth RN42

Voici une nouvelle carte électronique de type Bluetooth pour remplacer le module précédent devenu obsolète (voir l’article sur le module FB155BC).

Cette carte utilisant un module RN42 de chez Microchip permet de créer une passerelle Bluetooth entre une carte à microcontrôleur et un PC ou un smartphone. Notre carte a les caractéristiques suivantes :

  • Tension d’alimentation : sous 5Volts (connecteur K1)
  • Consommation 3 mA (connecté) à 30mA (transmission)
  • Dialogue ASCII par UART (SPP) jusqu’à 240 kbaud, mais paramétrer à 57600 baud
  • Del de contrôle (mode recherche et mode appairé)
  • Portée jusqu’à 10m

 

Schéma de mise en œuvre :

Publié dans Etudes & Réalisations | Marqué avec | Commentaires fermés sur Carte Bluetooth RN42

INISAT – Plateforme pédagogique pour notre licence Pro AIT

La licence professionnelle Assemblage Intégration (LPro AIT) à l’IUT de Nîmes permet aux étudiants de découvrir les métiers du spatial.

Pour les aider dans cette action, nous avons conçu une plateforme pédagogique. Il s’agit d’une structure de la forme d’un CubeSat nommé IniSat.

IniSat, pour Initiation aux Satellites, est une réalisation en impression 3D supportant 3 cartes électroniques et 2 faces solaires.

L’interface homme machine (IHM) comporte des interrupteurs (Sélection, Goupille, fin de course), des indicateurs lumineux ainsi que des connecteurs pour programmer la carte à processeur et recharger l’accumulateur.

Une station sol permet de dialoguer avec la structure. Le procédé de dialogue est sans fil à 2,4GHz.

Divers capteurs (GPS, Centrale à Inertie, Caméra, température) permettent de découvrir les différentes missions que l’on peut demander à un vrai satellite.

Cet outil pédagogique est réalisé en partenariat avec le CNES.

Publié dans Espace, Etudes & Réalisations | Marqué avec , , , , , | Commentaires fermés sur INISAT – Plateforme pédagogique pour notre licence Pro AIT

« Objectif Lune »

Conférence sur les projets spatiaux, le 14 mai 2019 à 13h, à l’IUT de Nîmes.

Hubert Diez, responsable des relations avec l’enseignement supérieur et spécialiste des drones au CNES, viendra nous expliquer les projets spatiaux qui sont confiés aux étudiants pour la prochaine décennie. A cette occasion, il va nous confier un rover lunaire, afin de l’améliorer pour une mission sur la lune.

Si vous souhaitez plus de renseignements, contacter moi.

Publié dans Espace, Robotique | Marqué avec , , , , , , , , , , , | Commentaires fermés sur « Objectif Lune »

Les réalisations de l’année

Plusieurs plateformes robotiques ont été réalisées cette année.

Que ce soit dans le cadre d’un projet pédagogique, tuteuré ou libre, elles ont permis à toute la promotion d’étudiants de 1ère année, de s’initier à la programmation avec un objet ludique.

Deux types de robots ont été réalisés, permettant d’utiliser la carte Picky 4.2. Le premier robot permet de réaliser un suivi de ligne ou un parcours dans un labyrinthe classique à murs. le deuxième ne permet que de faire un robot suiveur de ligne, mais rapide.

Publié dans Etudes & Réalisations, Robotique | Commentaires fermés sur Les réalisations de l’année

Petit Robot utilisant la carte Picky 4.2

Pour exploiter la carte Picky dans une plateforme robotique, nous avons développé une réalisation simple et peu couteuse. L’utilisation d’une imprimante 3D a permis de réaliser l’ensemble des pièces.

Un premier exemple complète la plateforme. Nous avons réalisé un support pour un servomoteur qui porte un télémètre Sharp. Un programme adapté permettra de réaliser un robot capable de se déplacer entre des obstacles.

Ce deuxième exemple représente un robot suiveur de ligne rapide. Sa vitesse maximale est de 4m/s. Il est parfait pour participer à une compétition de robotique.

Publié dans Robotique | Marqué avec , , , , , , | Commentaires fermés sur Petit Robot utilisant la carte Picky 4.2

Picky 4.2 : carte à µC pour petit robot

Carte Picky 4.2

Voici la dernière version de la série des cartes à µC PIC pour la robotique, développée au département GEII de l’IUT de Nîmes.

Cette carte sera utilisée pour les divers projets tuteurés et dans le module Étude et Réalisation au 2ème semestre (ERS2), dont le thème sera la robotique. Elle peut parfaitement permettre de réaliser un robot suiveur de ligne, un robot sumo ou encore un robot pour résoudre des labyrinthes. Bref, elle peut vous permettre de participer au tournoi national de robotique, organisé par l’association TNRS et le département GEII de l’IUT de Nîmes.

On y retrouve les ressources indispensables pour réaliser un petit robot digne de ce nom.

  • µC PIC16F1847P avec fréquence max de 32MHz
  • Interface pour 2 moteurs 600mA (ou 1A) max
  • Régulateur de tension 5Volts
  • Interrupteur général
  • Protection contre les inversions de polarité de la source
  • IHM : Bouton poussoir, DEL et liaison UART (option Bluetooth disponible)
  • Mesure de la tension d’alimentation
  • 7 lignes configurables en entrées/sorties, ou 5 E/S et une liaison I2C
  • Alimentation 13Volts max, Consommation : 30mA
  • Dimension : 60mm x 40mm

La figure suivante correspond au schéma électronique de cette nouvelle version.

Le développement de cette carte a commencé en 2004. Mais des versions plus élaborées ont été développées en parallèle et utilisées depuis pour des robots plus puissants et pour la pédagogie en 1ère et 2ème année.

Pour réaliser et utiliser cette carte, demander à l’enseignant responsable de la partie robotique. Il pourra vous fournir les documents nécessaires à sa réalisation et une trame de programmation pour tester la carte.

Trame de Programmation pour Picky 4.2

Carte à 5 capteurs pour suiveur de ligne

Associée à la carte à µC comme celle présentée plus haut, elle permet de lire 5 capteurs à réflexion orientés vers le sol. L’émission infrarouge est commandée par une ligne. De ce fait, en l’absence d’une lecture des capteurs, on peut réduire la consommation de la carte. Cette dernière n’étant pas négligeable, de l’ordre de 45mA.

Publié dans Etudes & Réalisations, Robotique | Marqué avec , , , , , , , , , , , , | Commentaires fermés sur Picky 4.2 : carte à µC pour petit robot

Bluetooth, mise en œuvre du module FB155BC

Le module FB155BC est un bon moyen pour tester une application dont la communication s’effectue par Bluetooth.

Nous vous proposons une fiche technique pour mettre en place cette communication.

La partie technique s’appuie sur une carte qui se branche sur la carte à µC 16F1847 utilisée pendant les cours de projets ERS2.

Une application Android peut être assez facilement réalisée avec l’environnement en ligne MIT App Inventor.

Publié dans Etudes & Réalisations | Commentaires fermés sur Bluetooth, mise en œuvre du module FB155BC