ELEMENTARIO

Prof ? Clique ici !

Entrées/Sorties élémentaires

Boutons

Ils sont numérotés de 0 à 7 (de droite à gauche).

Quand on les relache, les boutons à bascule (première ligne) déclenchent les fonctions suivantes sans paramètre :

  • toggle_0 to toggle_7

Les boutons momentanés (seconde ligne) déclenchent les fonctions suivantes sans paramètre :

  • press_0 to press_7
  • release_0 to release_7

Une variable stocke l’état des boutons à bascule :

toggle_state = [0, 0, 0, 0, 0, 0, 0, 0]

Attention : les positions dans cette variable sont contraires aux positions des boutons (numéros croissants de gauche à droite dans la variable et de droite à gauche pour les boutons).

Affichage

4×7 fonctions ont été définies pour gérer l’affichage. Elles attendent toutes un argument : 0 ou 1. Voici par exemple celles qui correspondent au caractère à droite, numéroté 0 :

  • segment_0_a(on_off)
  • segment_0_b(on_off)
  • segment_0_c(on_off)
  • segment_0_d(on_off)
  • segment_0_e(on_off)
  • segment_0_f(on_off)
  • segment_0_g(on_off)

Idem pour les autres caractères, numérotés de 1 à 3 de droite à gauche. Voici la correspondance entre lettre et position :

 -- a --
|       |
f       b
|       |
 -- g --
|       |
e       c
|       |
 -- d --

La fonction suivante peut aussi être pratique :

  • segment(place, seg, on_off)

où seg est une lettre de a à g ou le numéro correspondant (de 0 à 6 à la place des lettres de a à g).

Applications

Vous pouvez charger votre propre code pour modifier le comportement d’Elementario, et ceci de deux façons :

  1. les blocs (onglet Blockly) ;
  2. le bouton Charger (onglet Code).

Principe

Les idées directrices d’Elementario sont :

  1. simplifier les entrées et les sorties afin de maximiser la créativité et la réflexion du programmeur ou de la programmeuse ;
  2. faciliter la fabrication d’une version matérielle de très faible coût (shield Arduino, ESP-32…).

Idées de mise en œuvre

Description en direction des élèves

Voici une proposition de description rapide de la plateforme : Elementario est un système très simple d’entrées et de sorties, que l’on peut programmer pour obtenir des animations ou des jeux. Elle est composée de :

  • SORTIES : un « écran » de quatre caractères à sept segments (1) ;
  • ENTRÉES : deux rangées de boutons, la première ayant des boutons à bascule (2), la seconde des boutons momentanés (3) ;
  • éventuellement un affichage annexe pour débeuguer (console.log en JS et print en Python).
copie d’écran d’Elementario
Une copie d’écran d’Elementario

Attention les sorties ne sont pas des entrées : l’affichage à sept segment n’est pas cliquable ! De même, les entrées ne sont pas des sorties : on ne peut pas changer l’état des boutons depuis le programme. Voici à quoi peuvent ressembler ces boutons dans la vraie vie :

bouton à bascule
Bouton à bascule
bouton momentané
Bouton momentané

On programme en JavaScript dans le navigateur ou en Python dans la version Python :

  • Pour modifier l’affichage (sorties) on « appelle » des fonctions.
  • Pour que le système réagisse aux manipulations des boutons (entrées) on définit des fonctions, ces fonctions seront alors appelées lors de la pression ou le relachement des boutons.

Toutes Ces fonctions sont décrites avec précision au début de cette page. N’oubliez pas d’appuyer sur le bouton « Charger » pour tester votre code !

Si le code informatique vous fait peur (onglet Code), vous pouvez programmer avec des blocs (onglet Blockly).

Mise en route

Quelques idées de questions à poser aux élèves :

  • Pour un caractère comportant 7 segments, combien peut-on avoir de figures différentes ?
  • Sur la ligne des boutons à bascule, combien de combinaisons différentes peut-on avoir ?
  • Pour quatre caractères à 7 segments, combien peut-on avoir de possibilités d’affichage ?
  • Imaginer une petite application, un utilitaire, un jeu ou une simple animation que l’on peut fabriquer avec cette plateforme.
  • …

Suivant les idées des élèves, on oriente le travail vers différents concepts informatiques : décimal, binaire, hexadécimal, modularité,… l’idée étant de toujours décomposer pour aller vers le bas niveau, par exemple jusqu’aux portes logiques.

Je ne donne pas d’idée d’animation ou de jeu car je veux que les élèves fassent le chemin tout seuls, ou au moins voient les idées de leurs camarades. Quelques exemples quand même pour les profs :

  • répliquer les boutons à bascule sur les segments b et f ;
  • …
  • un « Mastermind » avec des chiffres ou d’autres symboles ;
  • un « Flappy Bird » rudimentaire.

Version Python

Une version Python permet de travailler avec ce langage mais aussi d’organiser son travail avec des fichiers. Vous pouvez télécharger le code depuis la page Github. Seul le fichier .py est nécessaire, et il faut ranger vos fichiers dans le dossier modules. Tous les fichiers Python dans ce dossier seront chargés dans l’ordre alphabétique en plus de ce qui peut être tapé dans l’onglet Code.

Modules

Si le ou la programmeuse a besoin de fonctions prédéfinies pour aller plus vite, il suffit de cocher «U» (pour Utiliser). Si on coche «T» (pour Test), Elementario vérifie que la fonction programmée par le ou la programmeuse retourne bien les bonnes valeurs.

Contact

email - github

ELEMENTARIO

Elementary Input/Output

Buttons

They are numbered from 0 to 7 (from right to left).

When released the toggle buttons (first line) will trigger the following functions with no parameter on release:

  • toggle_0 to toggle_7

The momentary buttons (second line) will trigger the following functions with no parameter:

  • press_0 to press_7
  • release_0 to release_7

A variable holds the state of the toggle buttons:

toggle_state = [0, 0, 0, 0, 0, 0, 0, 0]

Please note: the positions in this variable go in the other way than the one for the buttons (increasing from left to right in the variable and from right to left for the buttons).

Display

4×7 functions have been defined for handling the display. All take one parameter: 0 or 1. Here are the ones correponding to the character on the right, numbered 0:

  • segment_0_a(on_off)
  • segment_0_b(on_off)
  • segment_0_c(on_off)
  • segment_0_d(on_off)
  • segment_0_e(on_off)
  • segment_0_f(on_off)
  • segment_0_g(on_off)

And the same for the other displays, numbered from 1 to 3, from left to right. Here is the correspondence between letter and position:

 -- a --
|       |
f       b
|       |
 -- g --
|       |
e       c
|       |
 -- d --

The following function can be handy too.

  • segment(place, seg, on_off)

where seg is the number of the corresponding segment (from 0 to 6 instead of the letters from a to g).

Applications

The preloaded app will display something related to the toggle buttons when pressing the momentary 0 button (on the right). Can you guess what it displays?

Moreover, you can load your own code to change the behaviour of Elementario with the Load button.