Contenu

technologies et sciences des ingénieurs

Recherche simple Vous recherchez ...

espace pédagogique > disciplines du second degré > STI > enseignement > systèmes

du raisonnement jusqu'au code : algorithmie et Blockly@rduino

mis à jour le 15/11/2015


blockly@rduino

Partir de la situation problème, exprimer sa solution, la formaliser puis la convertir en instructions sans obstacle d'apprentissage d'un langage de programmation particulier, voilà le but de Blockly@rduino pour convertir des phrases en code Arduino.

mots clés : arduino programmation code blockly@rduino algorithme


L'algorithmie est l'expression d'une suite d'opérations élémentaires aboutissant à une résolution de problème, quel que soit le domaine : mathématique, programmation, organisation, etc.
Celle-ci se fait en langage naturel, et est donc accessible à tous les élèves, mais la vraie difficulté vient de sa traduction par étapes successives pour aboutir au langage machine.

 
Heureusement les compilateurs ont été créés pour que nous n'abordions jamais ce langage machine... A ce propos, pour tout savoir des différents langages, les nuances entres les termes et que faisons nous à quel moment, je vous conseille la lecture de cet article très complet de Wikipedia : www.wikiwand.com/fr/Compilateur

La première étape est de faire écrire par les élèves l'attendu de leur système :
 
le robot doit suivre la ligne

Puis leur demander de décomposer :
 
quand il détecte une ligne noire, il tourne
 
Mais concrètement que fait le système ? car en se mettant à la place du système, on passe du point de vue utilisateur au point de vue système, seul raisonnement qui permet d'aboutir à un programme :
 
il avance mais si la ligne noire est détectée à gauche, il tourne à gauche, sinon si la ligne noire est détectée à droite alors il tourne vers la droite

Tout le travail de l'enseignant est de faire progresser les détails dans le langage de l'élève et de l'amener vers des formulations de plus en plus proches du système mais surtout les plus simples possibles. il faut lui apprendre à décomposer un problème en sous-problèmes jusqu'à ce que chaque sous-problème soit dans une zone proximale de résolution de problème possible (pour paraphraser la zone proximale de développement explicitée par Lev Vigotsky). En effet, un problème trop complexe ne peut pas être résolu immédiatement, nous l'analysons pour le résoudre morceau par morceau. Voici ce qui peut être fait avec Blockly@rduino.
 

Utilisons un langage graphique : Blockly@rduino


L'enseignant va définir avec l'élève, en fonction du système/robot :"c'est quoi concrètement 'avancer' ?".
Dans notre exemple, il s'agit d'un simple système avec 2 LDR (gauche & droite) devant pour mesurer la réflexion lumineuse sur la table et 2 servomoteurs à rotation continue pour la propulsion.

Avancer (à l'enseignant de choisir en fonction du niveau de l'élève s'il faut préparer avant cette partie, s'il faut donner les numéros de broche, s'il faut lui laisser comprendre le dispositif ou bien s'il faut lui laisser tout faire) :

Et ainsi de suite pour toutes les fonctions avancer - reculer - tourner - détecter.

Mais je vais détailler pour voir comment prendre en compte la mesure de la luminosité :

ATTENTION ! La mesure de la luminosité est la plus délicate, soumise à toutes les perturbations possibles, donc à déconseiller aux débutants !

Vous trouverez le programme complet en suivant ce lien : www.technologiescollege.fr/blockly@rduino/index.html

Du bloc au code

 
Donc la nouvelle question est comment arriver jusqu'au code ? Rappelons tout d'abord ce qu'est le code : la traduction dans un langage informatique spécifique d'un programme établi, donc le plus important n'est pas le code mais le programme ! C'est à dire la suite d'instructions élémentaires que l'on attend du système. Bref faisons simple et laissons Blockly@rduino faire cette traduction à la place des élèves :
 
 
Il ne reste plus qu'à téléverser ce programme traduit en code, relativement au langage C Arduino, dans la carte de votre robot.

Pour savoir comment faire cela facilement, rendez-vous sur la page du tutoriel.
 

information(s) pédagogique(s)

niveau : tous niveaux, Cycle 3, --- COLLÈGE ---, 2nde

type pédagogique : démarche pédagogique

public visé : élève, enseignant

contexte d'usage : non précisé

référence aux programmes :

Décomposer le problème posé en sous-problèmes afin de structurer un programme de commande.

Écrire, mettre au point (tester, corriger) et exécuter un programme commandant un système réel et vérifier le comportement attendu.

Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs.

haut de page

Pour faire un lien, saisissez l'adresse complète du site web (http://www.siteweb.fr) ou du mail.


écoutez le mot à saisir

technologies et sciences des ingénieurs - Rectorat de l'Académie de Nantes