Description d’un robot mobile autonome évitant les obstacles et analysant son environnement pour sélectionner la meilleure direction à prendre.
Il est basé sur l’utilisation d’une carte ARDUINO UNO.
La réalisation s’est voulue en limitant au minimum l’achat de composants. Ainsi la plateforme support , le bouclier avant sont réalisés avec des éléments de récupérations et les roues à l’aide de bouchons de bouteilles d’eau et de lait. Si l’on souhaite un « look » plus professionnel, on trouvera dans le commerce tous les éléments nécessaires.
Pour rendre autonome le robot nous avons besoin bien sûr de moteurs pour la mobilité et de capteurs de proximité pour détecter les obstacles proches. En cas de non détection anticipée des obstacles, des micro-rupteurs solidaires du bouclier avant détecteront le contact avec l’obstacle.
Afin d’analyser l’environnement on utilise un capteur de mesure de distance. Le capteur choisi mesure la distance d’un obstacle entre 20 et 120 cm. Ce capteur est supporté par un servomoteur qui permet de balayer une zone de 120° devant le robot.
On trouvera plus loin la liste des composants indispensables (capteurs, actionneurs et électronique).
Circuit d’interface
Le circuit d’interface supporte les connecteurs et le circuit de commande des moteurs.
Il se broche sur la carte ARDUINO.
C’est un circuit imprimé double face.
La face supérieure est le plan de masse avec les composants. La face inférieure comporte les pistes du circuit.
Sur le plan de masse, afin d’éviter les court-circuits, on prendra soin de détourer, à l’aide d’un petit foret, les passages de connexion à la face inférieure qui ne sont pas reliés à la masse.
Prototype du circuit interface
Circuit-Imprimé_Interface-Robot
Implantations des composants du circuit d’interface
Programmation du robot
Nous ne décrirons pas ici en détail le programme ; ça prendrait trop de place mais nous donnerons quelques idées et liens sur la méthode utilisée.
Bien sûr, avant toute chose, il est nécessaire d’avoir téléchargé l’environnement de développement, l’IDE Arduino, et de l’installer.
Le programme de pilotage du robot est décomposé en plusieurs tâches :
– Tâche initiale : c’est la tâche maître
– Tâche marche robot : elle gère l’avance ou le recul du robot et assure la détection des obstacles
– Tâche rotation : elle assure la séquence de rotation du robot
– Tâche servo : elle gère le balayage du capteur de distance
– Tâche rampe moteur droit : elle gère les variations progressives de vitesse du moteur droit
– Tâche rampe moteur gauche : elle gère les variations progressives de vitesse du moteur gauche
Ces deux dernières tâches évitent les à-coups dus aux variations brutales de vitesse des moteurs. Cependant on pourrait s’en passer ici compte tenu de la faible inertie de notre robot.
On trouvera ici un tutoriel sur la programmation multitâche sur Arduino et ci-dessous le canevas pour programmer des applications multitâches.
*******************************