Paul Devoge

Projet Informatique et Science du Numérique (ISN) : robot autonome

Juin 2013

Cette page présente un travail de lycéen, il est ancien et possiblement inexact, toute information devra donc être revérifiée.

Présentation

Dans le cadre de l’exploration spatiale ou sous-marine, il est plus économique et plus simple d’utiliser des robots complètement autonomes pour le déplacement, l’étude géologique et la récupération de données.

Notre « robot » est en réalité un châssis avec deux chenilles et leurs moteurs, et nous allons devoir mettre tout cela en mouvement. Nous allons devoir faire en sorte que l’on ait à faire les réglages de vitesse et de sens du robot pour qu’il puisse ensuite évoluer seul.

Dans un premier temps, nous avons réalisé la partie pilotage des moteurs via un circuit intégré LMD18200.

Nous avons ensuite programmé un microcontrôleur PIC16F88 pour commander la vitesse de rotation des moteurs et l’inversion du sens de marche ainsi que l’arrêt.

Dans un deuxième temps, nous avons créé une page web présentant l’évolution de notre projet.

Pour résumer, nous avons, par ordre chronologique:

  • compris l’architecture et le fonction d’un microcontrôleur ;
  • réalisé des programmes simples (allumage d’une LED, compteur binaire, gestion d'une onde PWM) ;
  • compris le fonctionnement d’un moteur à courant continu ;
  • piloté un moteur dans les deux sens de rotation en modifiant sa vitesse ;
  • assimilé le langage HTML5 et CSS3 pour réaliser une page web.

Les outils logiciels utilisés sont :

  • Proteus pour la simulation électronique;
  • Flowcode pour la programmation du microcontrolleur;
  • Notepad++ et le Bloc-notes pour le développement du site internet.

Pilotage des moteurs

L’objectif est de parvenir à actionner les deux moteurs du robot dans les deux sens, de manière indépendante tout en variant leurs vitesses. Il existe un circuit qui permet de faire tout cela : le LMD18200. Celui-ci a besoin d’être piloté par un microcontrôleur que nous étudierons plus tard.
Le circuit LMD18200 contient un pont en H de transistors pour inverser la tension aux bornes du moteurs ainsi qu’un circuit PWM pour moduler la largeur des impulsions et par conséquent faire varier la vitesse des moteurs.

Le pont en H


Schéma du pont en H


On utilise le pont en activant les commutateurs (pour notre projet ce sont des transistors gravés dans le silicium du circuit LMD18200) de différentes combinaisons pour obtenir le branchement voulu.

Le pont en H permet de contrôler la polarité de la tension aux bornes du moteur, ou de ne le soumettre à aucune tension (moteur arrêté). Les commutateurs sont actionnés deux par deux soit S1-S4 ou S2-S3 pour faire tourner le moteur dans un sens ou dans l'autre.

Le moteur tourne dans le sens des aiguilles d’une montre avec S1-S4 et dans le dans le sens inverse avec S2-S4.




Le PWM (ou MLI)

Le circuit LMD18200 inclus un modulateur de largeur d’impulsion (MLI) ce qui permet de faire varier la vitesse de rotation du moteur.

Pour une période (et donc une fréquence) constante, le MLI fait varier le pourcentage de temps pendant lequel le moteur est alimenté par rapport au pourcentage de non alimentation. Le moteur reçoit donc un signal électrique périodique mais celui-ci n’y voit que du feu car la fréquence de ce signal est tout de même très élevée.

Explication du fonctionnement du PWM

La commande de vitesse est donnée à l’aide de deux potentiomètres (un pour chaque moteur).

Un potentiomètre est un résistor variable dont la résistance peut être réglée au moyen d’une petite poignée rotative.

Microcontrôleur

Un microcontrôleur PIC

Le microcontrôleur Pic sert à envoyer une commande au circuit LMD18200 qui poura alors faire varier le sens et la vitesse de rotation.

Qu’est-ce qu’un microcontrôleur ?

Le microcontrôleur est un composant électronique programmable. On le programme par le biais d’un ordinateur grâce à un langage informatique. Un microcontrôleur est constitué par un ensemble d’éléments qui ont chacun une fonction bien déterminée.

La mémoire

Il en possède 4 types :

  • Flash : C’est la mémoire sur lequel on sauvegarde le programme que le microcontrôleur devra exécuter.
  • RAM : c'est la mémoire dite « vive », elle va contenir les variables de notre programme. Elle est dite « volatile » car elle s'efface si on coupe l'alimentation du microcontrôleur.
  • EEPROM : Le microprogramme qui permet au microcontrôleur de fonctionner est contenu dans cette mémoire morte. Cette mémoire ne s'efface pas lorsque l'on éteint le microcontrôleur ou lorsqu'on le reprogramme.
  • Les registres : c'est un type de mémoire utilisé par le processeur.

Le processeur

Le processeur, aussi appelé CPU, est le composant principal du microcontrôleur C'est lui qui va exécuter le programme que nous lui donnerons à traiter.

Avant tout, pour que le microcontrôleur fonctionne, il lui faut une alimentation. Cette alimentation se fait en générale par du +5V. D'autres ont besoin d'une tension plus faible, du +3,3V.

En plus d'une alimentation, il a besoin d'un signal d'horloge. C'est une succession de tension 0V et 5V qui permet de cadencer le fonctionnement du microcontrôleur à un rythme régulier. Grâce à cela, il peut introduire la notion de temps en programmation.

Quelle utilisation fait-on du microcontrôleur ?

Celui-ci pilote le circuit LMD et lui donne une consigne concernant la vitesse et le sens de rotation de chacun des moteurs. Ce microcontrôleur est programmable par le biais d'une carte de programmation et d'un logiciel de programmation, comme Flowcode, que nous utilisons, et qui fonctionne grâce à un langage graphique sous forme d'algorigramme. Ce langage est simple d'utilisation et fonctionne sur un système de blocs ayant chacun une fonction.

La carte
Ce type de programme est ensuite convertit en langage C par le logiciel Flowcode puis envoyé sur le microcontrôleur à travers une carte de programmation USB.

Sur cette carte, on peut enficher différents type de microcontrôleur et même brancher une carte de prototypage sans soudure pour expérimenter le programme que l'on vient de charger dans le microcontrôleur.

Bien sûr nous ne pouvons pas intégrer cette carte dans notre robot, d'autant plus qu'elle nécessite une alimentation en 14v alors que notre robot possède une série de pile pour un total de 9v. Il faut donc, après avoir intégrer le programme dans notre microcôntroleur grâce à cette carte, souder le support du microcontrôleur ainsi que les potentiomètres sur une plaque de soudure de petite taille, pour le faire ensuite rentrer dans notre robot.


Page Web

Les pages du web utilisent plusieurs langages, comme le HTML, le CSS, le PHP ou encore le JavaScript. Dans le cadre de notre projet, nous avons uniquement employé le HTML et le CSS car ces deux langages suffisent à créer un site internet.
Ces deux langages ont un rôle très différent.

Le HTML

Le HTML permet de remplir le contenu des pages. Celui-ci va permettre en effet de d’écrire telle phrase dans tel paragraphe, ou encore quels liens notre site va afficher, en utilisant des balises. Celles-ci se présentent sous cette forme :

La première sert à indiquer le début de la balise tandis que l’autre marque sa fin. Certaines balises sont obligatoires comme la balise que l’on commence en tout début de document et qui se termine à la fin de celui-ci.

Voilà quelques balises, parmi les plus utilisées :

On utilise généralement des logiciels tels Notepad++ pour programmer des langages tel le HTML, qui enregistrent alors un fichier de format « .html ». On peut néanmoins utiliser le Bloc-notes Windows, bien qu’il offre moins de confort.

Voici un aperçu de notre page de présentation de notre projet en utilisant uniquement le HTML :

Notre page de présentation sans CSS

Et voilà le code nécessaire pour obtenir ce résultat :

Le code CSS se présente dans une feuille de style de cette façon : il faut d’abord préciser de quelle partie de notre site on veut donner des graphismes, que l’on présente de cette façon :

La notation de début peut varier selon le type d’élément : pour un bloc de type « div » nommé corps, il faudra inscrire « #corps » à la place de « Partie_de_notre_site ».

Les caractéristiques que l’on peut changer sont de nature différente, comme la taille, le positionnement, la couleur de fond, la présence d’une bordure ou encore la police d’écriture utilisée dans un certain bloc. Il faut cependant les séparer obligatoirement par un retour à la ligne et un point virgule.

Il existe cependant beaucoup de problèmes de compatibilité pour le CSS selon les navigateurs. Ainsi, il est arrivé lors de la programmation de notre site internet qu’après avoir vérifié les graphismes sur le navigateur « Google Chrome », ceux-ci soient apparus désastreux sur « Internet Explorer ». Il existe alors deux solutions : utiliser des « erreurs » volontairement dans le code (des « hacks ») pour qu’une partie du code ne soit reconnue que par un navigateur, ou alors devoir utiliser des compromis et n’employer que du code reconnu par tous les navigateurs.

Voilà donc ce que donne maintenant notre site une fois le CSS ajouté :

Notre page avec du CSS

Et une partie du code utilisé :