Développement d’un robot pour apprendre à programmer

Envoyé par le 26 Juin 2017

Par Alexandre GRANGIER, Maxime Mazouffre, Pierre Hamoir et Ahmed Kamoun

Contexte

Dans le cadre de la réforme des programmes d’enseignement en France, l’initiation à la programmation a pris plus d’importance et l’appréhension de la pensée scientifique et devenue un objectif de l’école. Ceci nécessite un certain matériel dédié.

En grande distribution, on trouve différents modèles de robots destinés à apprendre la pensée algorithmique aux enfants de différents niveaux tels que le Bee-Bot [1] le Cubetto [2] ou le Thymio [3].

Aussi sympathiques qu’ils soient, ces robots restent à coût élevé ce qui ne permet pas leur utilisation en classe. L’objectif du projet est donc de créer un prototype de robot évolutif en utilisant le matériel du Fablab de l’école qui soit à coût raisonnable et qui permet ensuite la fabrication de plusieurs robots qui seront utilisés à différents niveaux de l’enseignement.

 

Matériel utilisé

En plus du médium 3mm qui nous a servi à découper la structure du robot, nous avons utilisé le matériel suivant :

• 1 carte Arduino UNO
• 1 ARDUINO MOTOR SHIELD R3
• 2 moteurs
• 2 roues
• 6 boutons
• 1 bille à roulement libre
• 1 batterie rechargeable
• 2 LEDs
• Des fils de connexion

Conception du robot

Nous présentons dans cette partie la manière dont nous avons construit notre robot, et c’est ce qui sera transmis aux écoles souhaitant le construire elles-mêmes sous forme de mode d’emploi détaillé transmis sur une clé USB contenant par ailleurs les pièces à découper nécessaires au format .dxf pour pouvoir les concevoir à la découpeuse laser.

Une fois les pièces imprimées, l’assemblage du squelette est assez simple et intuitif. Dans un souci de clarté, nous avons donné un nom spécifique à chaque pièce, cela facilitant grandement la compréhension du mode d’emploi (voir figure 11).

Figure 11

Nous avons commencé par insérer les arches 1 et les arches 2 dans les fentes de la plateforme 2 prévues à cet effet, en faisant bien attention à alterner les arches 1 et les arches 2, et en commençant par mettre une arche 1 dans la fente la plus proche du trou rectangulaire qui accueillera plus tard la batterie (figure 12).

Nous avons ensuite passé le cercle central dans les fentes des arches en le passant par le dessus (figure 12).

Figures 12 et 13

Nous avons finalement ajouté la plateforme 3 pour verrouiller le tout (figure 13). Avant de coller le squelette à la plateforme 1, nous y avons ajouté les composants. Nous avons commencé par les roues pour lesquelles il suffisait d’utiliser les fentes de la plateforme 1 (figure15), puis la bille stabilisatrice donc la hauteur peut être ajustée (figure 16), et enfin la carte arduino et le shield que nous avons vissés (figure 17).

Figures 15, 16 et 17

Pour terminer, nous avons fixé la batterie en la glissant dans le trou qui lui est destiné sur la plateforme 2, et nous avons fixé les boutons sur la plateforme 3 et les soudant directement aux fils les reliant à la carte arduino (figure 18). Nous avons finalement associé les deux parties que sont la plateforme principale (plateforme 1) et le squelette (plateformes 2 et 3 et arches) en les collant avec de la colle à bois (figure 19).

Figures 18 et 19

Modes de fonctionnement du robot

a)Transmission de commande

Dans un premier temps, le robot peut être utilisé avec des boutons. Pour cela, il a été nécessaire d’utiliser six différentes actions élémentaires pour pouvoir permettre une totale mobilité :

– Avant
– Arrière
– Rotation Droite
– Rotation Gauche
– Annuler
– Démarrer

Le SHIELD Arduino utilisé, le DK Electronics v1.0 (Figure 1), bloquant l’accès aux différents pins de la carte, il a fallu utiliser les ports analogiques (A0-A5) en mode tout ou rien pour pouvoir réaliser le montage.

Cependant, n’utilisant que deux moteurs, nous avons pu enlever du système un microcontrôleur (à droite sur la Figure 1) pour pouvoir libérer certains pins de commande afin d’ajouter des fonctionnalités au robot.

L’utilisation de l’utilisation d’un encodage pour la commande à effectuer posant problèmes nous avons opté pour une liste de longueur fixe, en effet une limitation de 10 mouvements était imposée par le format (long) des entiers en Arduino. Nous avons choisi de laisser jusqu’à 30 mouvements pour éviter d’utiliser trop de mémoire et de trop utiliser la batterie

Lorsque que le robot est construit, il faut effectuer des tests pour savoir quelles valeurs rentrer. Lors du projet Dec, nous avons utilisé le même matériel et nous avons constaté que dans la pratique, nous devions ajuster la fonction pour chaque voiture. Par exemple, si le moteur droite subit plus de frottements que le gauche, il faut augmente la vitesse de celui-ci.

b)Application

En plus de la possibilité de pilotage du robot grâce aux boutons, les enfants pourront aussi le piloter utilisant une application Android prévue pour cet usage (Figure 2). L’application présente les six boutons présents sur le robot et permet les mêmes fonctionnalités. Figure 2 : interface de l’application

L’application enregistre le choix de mouvements de l’utilisateur dans leur succession. L’envoi de l’information par Bluetooth ne se fait qu’au moment où l’utilisateur appuie sur le bouton Start. Le dernier bouton Reset est conçu pour réinitialiser le robot.

c)Ardublock

Afin de permettre à des classes plus élevé d’utiliser le robot, nous laissons la possibilité de brancher un câble USB directement sur la carte Arduino.
Ainsi ces élèves pourront coder directement le comportement qu’ils veulent que le robot adopte juste en programmant directement le comportement des moteurs, donnant une plus grande flexibilité aux mouvements possible du robot, et permettant l’intégration dans l’algorithme des boucles ou des tests

Un capteur infrarouge suiveur de ligne ou un capteur ultrason pourront être ajoutés dans le robot à la demande du client offrant de nouvelles fonctionnalités, pour aller plus loin dans l’apprentissage de la programmation.

La programmation étant assez compliqué pour des élèves de primaire, elle est faite au moyen d’Ardublock (Figure 3), une interface simplifié de programmation Arduino.

Un algorithme reprenant le code initial du fonctionnement du robot sera mis a disposition à titre d’exemple, pour introduire les élèves au fonctionnement d’Ardublock (les limitations du logiciel ne permettant pas de capture d’écran correcte, il n ‘apparaît pas dans cet article).

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *