Scratch

Un logiciel à tout faire !

Jean-Paul Bricard

Petit guide des possibilités d'utilisation du logiciel Scratch en Technologie.

Commentez

- Titre : Scratch

- Auteur : Jean-Paul Bricard

- Parution : 9 septembre 2015

- Public visé :

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2015 Jean-Paul Bricard. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. La présentation générale

- I-A. Qu'est-ce que c'est ?

- I-B. Le principe

- I-C. Téléchargement

- II. L'interface de Scratch

- III. Premier programme avec Scratch 2

- III-A. Exemple 1

- III-B. Exemple 2

- IV. Programmer les interfaces du laboratoire

- IV-A. Matériel

- IV-B. Programmation de la « brique » NXT

- IV-C. Préparation de la « brique » NXT

- IV-D. Programmation de la « brique » NXT

- IV-D-1. Réalisation et programmation sur une maquette de distributeur de croquettes

- IV-D-2. Réalisation du programme pas-à-pas

- IV-E. Programmation de l'interface Picoboard

- IV-F. Programmation de l'interface Picoboard et simulation d'éclairage automatique

- IV-G. Programmation de la carte Arduino « Uno »

- IV-H. Programmation de l'interface ROBO Computing porte de garage

- V. Remerciements

I - La présentation générale

Développé par le groupe de recherche Lifelong Kindergarten auprès du laboratoire Média du MIT, Scratch est un nouveau langage de programmation qui facilite la création d'histoires interactives, de dessins animés, de jeux, de compositions musicales, de simulations numériques ainsi que leurs partages sur le Web.

Scratch est un logiciel libre conçu pour initier les élèves, dès l'âge de 8 ans, à des concepts fondamentaux en mathématiques et en informatique. Il repose sur une approche ludique de l'algorithmique, pour les aider à créer, à raisonner et à coopérer. Il favorise également le partage sur le Web. À partir de 2007, le site Web a été ouvert afin de permettre à tous d'une part de publier, donc de partager ses projets sur le Web, et d'autre part d'apporter une aide à la mise en œuvre de Scratch.

I-A - Qu'est-ce que c'est ?

- Scratch est dynamique, il permet de modifier le code du programme en cours d'exécution. Orienté multimédia pour l'enseignement à l'univers informatique des enfants, il traite avec une grande facilité des concepts de base de la programmation comme les boucles, les tests, les affectations de variables, et surtout la manipulation des objets, comme les sons et les vidéos.

- Scratch est visuel, tout le code est directement inscrit dans la langue maternelle de l'enfant (une vingtaine de langues européennes est disponible) sous forme de briques en couleurs (par exemple les contrôles en jaune, les variables en rouge, les mouvements en bleu).

- Scratch est libre et permet ainsi à l'enseignant de diffuser sa pédagogie par une interactivité quasi ludique des objets manipulés par ces briques logicielles. Le nom de Scratch fait référence à cet art de mélanger des sons grâce aux tables de mixage, comme à cette possibilité de réutiliser des objets.

Nous allons exploiter les différentes possibilités d'interaction avec différentes interfaces utilisées au collège…

I-B - Le principe

Des « briques » assemblées graphiquement constituent le programme.

I-C - Téléchargement

Scratch en version 1.4

Scratch en version 2.0

Tutoriel de prise en main en français

Et quelques sites incontournables :

- http://www.cndp.fr/ecolenumerique/tous-les-numeros/boite-a-outices/apprendre-par-le-jeu/article/article/aide-memoire-recapitulatif-scratch.html ;

- https://scratch.mit.edu/help/.

II - L'interface de Scratch

Sprite peut être traduit par objet ou par lutin

III - Premier programme avec Scratch 2

Il existe deux versions de Scratch 2.0 :

- une version en ligne qui nécessite un navigateur récent et Adobe Flash Player ;

- et une version téléchargeable pour tous les environnements qui nécessite Adobe Air.

Sinon, sous Linux, la version 1.4 s'installe simplement avec les paquets de la distribution.

III-A - Exemple 1

La nouvelle version de Scratch inclut dans ses possibilités l'exploitation d'une caméra vidéo utilisée comme capteur. Nous allons réaliser un programme de détection de mouvements dans une zone précise. Les mouvements détectés vont déclencher une alarme. Ce programme peut être utilisé dans le cadre du thème confort et domotique, pour illustrer la fonction sécurité.

Quand Scratch 2.0 est lancé, passez le logiciel en français en cliquant sur l'icône représentant un globe terrestre.

Faites disparaître le chat :

Cliquez sur l'onglet « Scripts ». Choisissez le menu « Evènements ». Faites glisser la commande dans la zone réservée aux programmes :

Le programme démarrera en cliquant sur le drapeau de couleur verte.

Dans un deuxième temps, nous allons configurer la caméra. Cliquez sur l'option « capteurs ». Faites glisser et posez les deux blocs ci-dessous. Accrochez-les au bloc précédent :

Cliquez sur le bloc « activer la vidéo ». Cet essai est réalisé avec une caméra vidéo intégrée à l'ordinateur portable :

La vidéo est maintenant activée.

Nous allons créer une zone sensible sur l'écran :

Ce lutin, encore appelé « sprite », prendra la forme d'un rectangle de couleur rouge. Choisissez une couleur et dessinez un rectangle dans l'éditeur :

Cliquez sur le bouton « vectoriser :

La zone« sensible »est définie.

Cliquez à présent sur l'onglet « Script ». C'est normal qu'il soit vide, car le script précédent est attaché à la scène.

Sélectionnez « Evènements » :

Faites glisser cette instruction :

C'est le début du programme. Sélectionnez « Contrôle » :

Créez maintenant une boucle à répétition infinie avec l'instruction suivante :

Créez maintenant un test avec l'instruction :

Nous allons voir : comment détecter le mouvement ? Sélectionnez « Opérateurs » :

Il faut créer un opérateur :

Préparez l'instruction de détection de mouvements :

Détection d'un point en mouvement dans la zone c'est-à-dire sur le lutin, si le mouvement détecté dans la zone est supérieur à 70% :

Dans ce cas, une alarme va être déclenchée sous forme d'un son joué :

Le programme complet

Il ne reste plus qu'à lancer et tester le programme :

III-B - Exemple 2

Numéraire, bijoux, téléphones et ordinateurs portables : les cambrioleurs qui sévissent depuis quelques semaines dans l'Aube sont à la recherche d'argent et d'objets facilement revendables. Ils opèrent en fin d'après-midi, lorsque les maisons non éclairées trahissent l'absence de leurs occupants, ou en pleine nuit lorsque leurs victimes sont endormies. Ce scénario est celui qui inquiète le plus les forces de police. Ce weekend, une quinzaine de cambriolages ont été commis dans des pavillons de l'agglomération troyenne, souvent après 22 h. Les malfaiteurs ont sévi à la Rivière-de-Corps, Saint-Parres-aux-Tertes et Saint-André-les-Vergers.

Article tiré de l'Est-Eclair, 2013

Problématique : comment assurer la surveillance d'une habitation ?

Une des réponses possibles évoque la vidéosurveillance.

Une autre réponse évoque la détection de mouvements autour des portes et des fenêtres.

Matériel nécessaire :

- une webcam ;

- des enceintes ;

- le logiciel Scratch 2.0 installé ;

- Un fichier son de sirène au format .wav.

Consignes

Modifier le programme précédent pour permettre la surveillance des deux fenêtres.

Compétences visées

Traitement du signal : algorithme, organigramme, programme.

1

Identifier les étapes d'un programme de commande représenté sous forme graphique.

La programmation d'un support automatique ne demande pas l'écriture de lignes de code. Elle doit être graphique si le support présente une interface qui le permet. Le système automatique doit être simple.
L'objectif est de comprendre de manière globale l'impact de la modification sur le fonctionnement du système.

2

Modifier la représentation du programme de commande d'un système pour répondre à un besoin particulier et valider le résultat obtenu.

Coup de pouce

Aide donnée aux élèves sous forme de différentes procédures ou différents programmes.

Le fichier son :

Pour charger un fichier son différent

Pour définir une autre zone sensible :

La commande « envoyer à tous » permet d'envoyer un message d'un programme à un autre :

La commande « quand je reçois » permet de déclencher un évènement en fonction du message reçu :

La commande « sauvegarder » va vous permettre d'enregistrer tous vos essais :

Dans un premier temps, il faut créer une ou plusieurs autres zones sensibles. Ces différentes zones doivent être ajustées en fonction de la pièce à surveiller :

Des « sprites » ou lutins seront dessinés dans l'éditeur sous forme de rectangles. Pour chacun des « sprites », le programme ou script associé est toujours identique.

Le script suivant est à saisir pour tous les lutins. Le message « alarme » est envoyé aux autres scripts :

Ce script est associé à la scène 1. Si le message « alarme » est transmis, alors l'alarme va retentir :

IV - Programmer les interfaces du laboratoire

Scratch est bien un outil universel permettant le pilotage et la programmation d'interfaces que nous pouvons mettre en œuvre en 4e ou 3e .

IV-A - Matériel

Voici du matériel souvent présent dans un laboratoire et de nouveau :

Lego TMNXTEnchantingWindows

Carte Arduino Uno TM - Interface de puissance pour Arduino Uno.Windows : S4A

Fischertechnik TM - ROBO LT CONTROLLER ScratchfischWindows

Fischertechnik TM - ROBO INTERFACE Scratchfisch Windows

Carte d'acquisition Pico Board TM - Windows Scratch 1.4 - Linux Raspbian Scratch 1.4

Raspberry PI - Interface Piface Linux RaspbianScratch 1.4

IV-B - Programmation de la « brique » NXT

Enchanting est la première extension de Scratch que nous allons tester. C'est une version de Scratch 1.4 modifiée.

Pour télécharger la dernière version d'Enchanting, rendez-vous sur le site officiel : http://enchanting.robotclub.ab.ca/tiki-index.php.

Sur ce site, une documentation sous forme de « cartes » au format .pdf en français permet une prise en main rapide. Pour en savoir plus : cliquez ici.

IV-C - Préparation de la « brique » NXT

Avant de pouvoir réaliser et tester des programmes avec Enchanting, nous devons « flasher » le microprogramme résidant dans la « brique » NXT. Cette opération n'est pas irrémédiable, on peut toujours revenir en arrière en utilisant le logiciel NXT Mindstorm pour télécharger le microprogramme d'origine.

Retour au firmware d'origine

IV-D - Programmation de la « brique » NXT

Reliez le micro contrôleur NXT à l'ordinateur à l'aide de son câble USB. Dans le menu « Fichier », choisissez la commande « Télécharger le micrologiciel… » :

Cliquez sur « Oui » pour reformater le NXT :

Une petite musique retentit en fin de téléchargement et l'opération est réussie  !

Changez le firmware d'origine

IV-D-1 - Réalisation et programmation sur une maquette de distributeur de croquettes

Problème : comment partir en weekend tout en prenant soin de son chat ?

Le schéma :

Fonctions de services

Critères

Niveaux

Tolérance

FP1 : distribuer les croquettes pour chat pendant 48 heures.

Type de nourriture distribuée

Croquettes sèches

Quantité de nourriture distribuée par distribution simple

100 g par jour pour un chat adulte

+- 10 %

Réglage de la quantité distribuée

Aucun

Durée de la distribution

10 minutes

+- 10 minutes

Horaires de distribution

Définis par l'utilisateur

Type de distribution

- Programmé
- Manuel

Extrait du cahier des charges fonctionnel (suite)

Fonctions de services

Critères

Niveaux

Tolérance

FC1 : maintenir la nourriture à l'abri de l'air.

Fermeture étanche du compartiment.

IV-D-2 - Réalisation du programme pas-à-pas

Configuration du moteur :

Le servomoteur sera relié sur le port A :

Le début du programme :

Le programme va démarrer si l'on clique sur le drapeau vert :

Cette procédure peut être utilisée pour ouvrir et fermer le compartiment contenant les croquettes.

1. La vitesse de rotation est fixée à 10°/s, ce qui est très lent.

2. La référence est fixée par le compte rendu du capteur angulaire du servomoteur. C'est le point de départ de la rotation.

3. Le moteur tourne de 90° et s'arrête.

4. La référence est fixée à nouveau et le moteur tourne de 90° dans le sens contraire. Retour à la position de départ :

Configuration d'un capteur de contact :

Dans l'éditeur, choisissez un capteur de contact. Faites « glisser » le bloc sur le port 1. Il faudra relier le capteur sur l'entrée 1 :

Réalisons le programme suivant :

- une boucle est créée pour que les actions se répètent à l'infini ;

- le programme attend un appui sur le bouton poussoir ;

- dans ce cas-là, le moteur tourne de 90° ;

- un nouvel appui sur le bouton permet une rotation angulaire de 90° dans l'autre sens.

Ce qui nous donne :

Ce programme peut être utilisé pour ouvrir et fermer le compartiment contenant les croquettes :

Ce prototype de distributeur de croquettes peut servir de support pédagogique pour faire émerger la notion de condition de commande et de logique combinatoire de base : et, ou, non.

L'action sur le bouton poussoir permet de commander l'ouverture et la fermeture en douceur du distributeur de croquettes.

Nous allons ajouter un capteur de distance à ultrasons. Si le chat s'approche à moins de 10 cm, le distributeur s'ouvre en douceur. Le distributeur se referme si aucune présence du chat n'est détectée pendant 10 secondes :

Le capteur à ultrasons est utilisé pour mesurer la distance. Il faut le connecter sur l'entrée 2 du NXT.

Le bouton poussoir permet de commander en priorité l'ouverture ou la fermeture du récipient de croquettes :

Compétences visées

Commande d'un objet technique et logique combinatoire de base : ET, OU ou NON

2

Modifier une condition logique de commande

On s'appuiera sur un objet pluritechnique simple ou un système automatique simple. Il s'agit de montrer que la commande du dispositif peut être conditionnelle et que le comportement du système dépend d'informations captées et exploitées de façon logique.

Le problème suivant peut être posé : à quelle condition s'ouvre le distributeur de croquettes ?

Les activités possibles :

- tester le fonctionnement de la maquette et proposer une réponse sous forme d'un texte ;

- identifier les conditions directement dans le programme.

IV-E - Programmation de l'interface Picoboard

L'interface Picoboard permet d'acquérir des phénomènes physiques de toutes sortes :

- mouvements ;

- intensité sonore ;

- intensité lumineuse ;

- appuis ;

- contacts ;

- variation de résistivité.

Picoboard est disponible chez : https://www.sparkfun.com/products/10311.

Picoboard est aussi compatible avec Scratch 1.4 et Scratch 2.0 sous Windows.

Vous pouvez récupérer le driver à cette adresse : http://www.picocricket.com/picoboardsetupUSB.html.

Les capteurs « tilt » et « distance » concernent l'interface des LEGO Education WeDo :

IV-F - Programmation de l'interface Picoboard et simulation d'éclairage automatique

Scratch permet de réaliser des animations. Commencez par dessiner une maquette de maison avec Google Sketchup 8 :

Exportez l'image puis mettez-la en forme (avec Paint par exemple) : le petit parallélépipède rectangle représente une source de lumière (éteinte pour l'instant).

Enregistrez le document au format .png sous le nom « maison1 » :

Recommencez la même opération en simulant l'éclairage. Enregistrez cette évolution au format .png sous le nom « maison2 » :

Dans Scratch 1.4, réalisons le programme suivant :

Cliquez sur le chat avec le bouton droit et faites-le disparaître !

Importez un nouvel objet (icône dossier) : maison1.

Cliquez sur l'onglet : « costumes ».

Cliquez sur le bouton : « importer » et récupérez : maison 2.

Cliquez alors sur l'onglet : « scripts » et saisissez le « corps » du programme.

Pour lancer le programme, cliquez sur le drapeau vert. En appuyant une fois sur le bouton de la Picoboard, la maison s'illumine. En appuyant une nouvelle fois, la maison s'éteint :

Une première variante du programme : éclairage automatique en fonction de l'ambiance lumineuse extérieure :

Le seuil de luminosité est fixé à 20 %. Ce réglage est à effectuer en fonction de la luminosité ambiante :

Dans l'obscurité cette valeur est basse.

Une deuxième variante pour que l'éclairage obéisse aux sons :

IV-G - Programmation de la carte Arduino « Uno »

Une toute petite carte que nous pouvons obtenir facilement. Cliquez ici pour en savoir plus.#

Un câble USB est nécessaire pour l'alimenter et lui transférer des programmes.

Une version du logiciel Scratch 1.4 permet de la programmer en temps réel.#

Vous pouvez la récupérer à cette adresse : http://s4a.cat/.

Vous aurez également besoin de l'éditeur de programme Arduino que l'on peut récupérer à cette adresse : #http://arduino.googlecode.com/files/arduino-1.0.5-windows.zip.

Pour terminer, il faut également récupérer le firmware à cette adresse et le transférer dans la carte avant de lancer Scratch (s4a) : http://s4a.cat/downloads/S4AFirmware15.ino.

Récupérez ce fichier et copiez-le sur le bureau par exemple.

Lancez alors le logiciel Arduino et ouvrez le fichier.

Au démarrage, répondez OUI pour que le fichier soit mis au bon emplacement :

Branchez alors votre carte Arduino® et cliquez sur le bouton « téléverser » dans le menu fichier :

Une fois le téléchargement vers la carte Arduino® effectué, le programme devient résident même si l'alimentation est coupée.

On peut alors lancer le logiciel Scratch pour Arduino®. En revanche, on ne peut pas transférer les programmes conçus sous Scratch pour qu'ils deviennent résidents. C'est un problème en cas de conception de robot autonome !

Si l'installation précédente a été réalisée correctement, au démarrage de S4A, le logiciel tente de se connecter à la carte :

Si vous connectez l'interface Arduino®, le message ci-contre indique que la connexion est établie :

Dans S4A, vous découvrez les commandes compatibles avec cette interface en cliquant sur l'onglet « mouvement » :

La carte Arduino « UNO » ne suffit pas en elle-même à piloter des actionneurs comme des lampes ou des moteurs électriques. Il faut lui adjoindre une carte de puissance comme celle disponible ici.

I/O Shield pour Arduino® kit monté Velleman VMA05.

http://www.velleman.co.uk/contents/en-uk/ka05.pdf

Les instructions : digital n [on ou off] permettent le pilotage des sorties de l'interface.

Le compte rendu des entrées logiques ou analogiques se programme à partir de « value of sensor |Analog ou Digital | …» :

Caractéristiques techniques :

- six sorties sur relais ;

- six entrées analogiques ;

- six entrées numériques ;

- charge de 1 A (max.) par sortie.

Cette carte se monte directement sur la carte Arduino.

IV-H - Programmation de l'interface ROBO Computing porte de garage

Quelques ressources en ligne :

- http://ft-datenbank.de/web_document.php?id=46ab361a-2af2-4aea-aa81-a4c7f6c94dc0 [Notice de la boîte et différentes pièces] ;

- http://ft-datenbank.de/web_document.php?id=6825aef8-e096-4f18-addf-979415bbb469 [Page 38 pour construire la maquette] ;

- http://www.fischertechnik.de/en/PortalData/1/Resources/didactic/documents/activity-booklet/ProfiETech/E-Tech_F.pdf [Tutoriel d'utilisation du module E-Tech (que nous n'utiliserons pas dans ce cas)] ;

- http://ft-datenbank.de/web_document.php?id=b97581ed-4f74-4a83-8109-c98ef8cb520c [Documentation technique de l'interface ROBO] ;

- http://ft-datenbank.de/search.php?keyword= [Lien pour retrouver une documentation technique de la marque au format PDF].

Interface ROBO

Pour installer ScratchFisch, respectez bien la procédure ci-dessous :

- votre ordinateur doit tourner sur Windows XP ou XP-Pro impérativement ;

- si votre machine est munie d'un client pour permettre l'identification sur un réseau, désinstallez-le si possible ;

- il faut commencer par installer le support Java sur l'ordinateur. Vous pouvez le télécharger à cette adresse ;

- il faut également installer le driver de l'interface ROBO. Vous le trouvez dans le CDROM du logiciel ROBO Pro : pour cela, connectez l'interface ROBO à l'ordinateur, attendez la boîte de dialogue relative à l'installation d'un nouveau matériel. Choisissez l'installation manuelle en spécifiant l'emplacement :

Si vous ne disposez pas du cédérom, vous pouvez récupérer le driver à cette adresse ;

- maintenant, il faut vous rendre à l'adresse de ScratchFisch : http://www.scratchfisch.org/download.html :

Choisissez le deuxième lien correspondant à l'installation manuelle.

- une fois que le téléchargement est fait, il faut ouvrir le fichier compressé :

- glissez le répertoire ScratchFisch sur le bureau pour le décompresser :

- dans le dossier ScratchFisch, retrouvez le sous-répertoire Binaries :

recopiez son contenu dans : C:\WINDOWS\SYSTEM32 ;

- dans le répertoire ScratchFisch sur le bureau, lancez l'application Start-ScratchFisch.exe :

Ce message doit s'afficher si la connexion avec l'interface ROBO est correcte.

Il faut maintenant récupérer Scratch 1.4 à l'adresse suivante : https://scratch.mit.edu/scratch_1.4/.

Il ne reste plus qu'à installer et à lancer Scratch 1.4.

Pour pouvoir piloter l'interface ROBO, il faut encore créer un fichier de démarrage vide, mais qui contient le protocole pour que le logiciel communique avec l'interface.

À partir de Scratch, ouvrez le fichier « Heartbeat » situé dans les exemples « Beispiele » du répertoire ScratchFisch :

Créez un nouveau lutin en allant chercher le chat dans la bibliothèque, dans le répertoire « Animals » :

Supprimez les objets « Trommel » et « Hertz ». Enregistrez ce fichier « vide » sur le bureau avec le nom « Scratch pour ROBO ». C'est à partir de ce fichier que Scratch 1.4 sera lancé dorénavant.

Les éléments :

I1

Interface ROBO

Avertisseur sonore

I2

Moteur électrique

I3

Contacteur fin de course à relier sur I1 pour déclencher l'ouverture et la fermeture de la porte.

Contacteur fin de course à relier sur l'entrée I3 pour détecter la porte en position ouverte.

Contacteur fin de course à relier sur I2 pour détecter la porte en position fermée.

Le moteur est à relier sur la sortie M1.

L'avertisseur sonore est à relier sur la sortie M2.

Ce qui donne le câblage final des composants sur l'interface :

Comment rendre l'ouverture et la fermeture de la porte moins dangereuses ?

La réalisation de la maquette peut être envisagée dans le cadre de la réalisation collective.

Réponses possibles :

- déclencher un avertisseur sonore pendant l'ouverture et la fermeture de la porte ;

- déclencher une lumière clignotante pendant l'ouverture et la fermeture de la porte ;

- détecter une difficulté de fermeture ou d'ouverture de la porte.

Les programmes suivants permettent de comprendre comment déclencher deux actions simultanément.

Le premier programme permet l'ouverture et la fermeture de la porte de garage à partir d'un appui sur le contacteur fin de course relié sur I1 « Eingang1 » :

La sortie Motor1.7 : 1 est le numéro de la sortie ici M1. -7 et +7 correspondent à la quantité de courant envoyé au moteur ainsi que son sens de rotation. La vitesse de rotation du moteur peut varier de 0 à 8.

Le second programme permet de faire retentir une alarme pendant l'ouverture et la fermeture de la porte :

Il est nécessaire de créer une variable :

La variable « son » quand elle prend la valeur 1, permet de déclencher l'avertisseur sonore par intermittence pendant l'ouverture ou la fermeture de la porte.

V - Remerciements

Nous remercions Jean-Paul Bricard d'avoir autorisé Developpez.com à gabariser son tutoriel.

Ainsi que milkoseck pour la relecture orthographique.