THÉMATIQUE 18 L’informatique et la programmation Mettre en œuvre un programme Support 1 MIT App Inventor La création d’une application pour smartphone Une application mobile est un logiciel développé spécifiquement pour un appareil électronique mobile : un téléphone portable, un smartphone, un baladeur numérique, une tablette tactile. Les applications sont pour la plupart distribuées par des plateformes de téléchargement comme le Play Store (Google) ou l’App Store (Apple). Mais il est possible de développer soimême une application, grâce à l’outil graphique appelé « MIT App Inventor ». Applications sous Androïd ? © Éditions Foucher Comment créer simplement une application pour smartphone Androïd 152 9782216132294.indb 152 17/03/16 15:25 Connaître et être capable de… u Analyser le comportement attendu d’un système réel et décomposer le problème posé en sous-problèmes afin de structurer un programme de commande S 1 S 2 u Écrire, mettre au point (tester, corriger) et exécuter un programme S2 S3 u Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs S 3 Domaines 1 et 4 du socle commun Support 2 Langage Python La programmation avec Python Le langage Python est un langage de programmation objet. Il est placé sous une licence libre et utilise une syntaxe simple. Il a en effet été conçu pour être un langage lisible, visuellement épuré, contrairement au langage C ou Pascal. Ce qui le rend facile à apprendre, à lire, à comprendre et à écrire. De plus, il est compatible avec de multiples plateformes, de Windows à Linux, sans modification. Comment s’initier au langage Python ? Support 3 Raspberry Pi 2 type B Projet Un projet sous Raspberry Pi 2 B © Éditions Foucher Le Raspberry Pi 2 B est un ordinateur monocarte de la taille d’une carte de crédit, qui peut se connecter à un téléviseur et à un clavier. Il démarre directement depuis la carte micro-SD et fonctionne sous OS Linux, mais il est aussi compatible avec Windows 10. Il peut aisément piloter des actionneurs grâce au langage Python. Comment piloter des actionneurs avec un Raspberry Pi 2 B ? 153 9782216132294.indb 153 17/03/16 15:25 THÉMATIQUE L’informatique et la programmation Support 1 MIT App Inventor doc 1 L’App Inventor App Inventor pour Androïd est un site interactif développé à l’origine par Google. Il simplifie la création d’applications sous Androïd et les rend accessibles, même pour les novices et ceux qui ne sont pas familiers avec les langages de programmation. Il est possible de créer de multiples applications pouvant même piloter des objets réels. Ainsi, des blocs préprogrammés pour les lego Mindstorms existent et il est possible de piloter une carte type Arduino. doc 2 L’interface « Designer » de l’App Inventor 2 L’interface « Designer » est découpée en quatre volets. Le premier, appelé « Palette », permet de sélectionner les composants de l’interface utilisateur. Le concepteur dispose de boutons, de cases à cocher, de zone image, de zone de texte, etc. Le deuxième volet, appelé « Interface », présente l’écran du smartphone tel qu’il sera une fois l’application lancée. Il est possible de masquer des composants pour ne les faire apparaître que plus tard. Le troisième volet est appelé « Composants ». C’est une colonne dans laquelle s’affichent tous les éléments que le concepteur a insérés sur l’interface. Ce volet permet de sélectionner plus facilement les composants pour les paramétrer. Enfin, le quatrième volet est appelé « Propriétés ». Ce volet change en fonction du composant sélectionné et permet de régler les dimensions de celui-ci, sa couleur et ses caractéristiques propres. L’interface « Blocs de programmation » L’interface « Blocs » est découpée en deux volets. Pour y accéder, il suffit de créer des éléments dans l’interface « Designer » puis de cliquer sur le lien « Blocs » situé en haut à droite de l’écran. La partie gauche de l’écran, appelée « Blocs » également, permet de sélectionner le type d’action à réaliser comme les blocs « Contrôle » (si… alors…), des blocs « Logiques » (vrai, faux), des blocs « Maths » (… + … , …=… , etc.), des blocs « Texte » (comparer textes, majuscules, contient texte), etc. Dans la partie droite, c’est la programmation qui se fait par assemblage des blocs disponibles. Il suffit de glisser les blocs et de les assembler en fonction des actions attendues. Ainsi, réaliser une application Androïd devient aussi facile que de construire une structure en lego. Très simple d’apprentissage, ce système de blocs préprogrammés est de plus en plus utilisé dans l’initiation à la programmation. 1 Quel avantage présente le logiciel du MIT pour des développeurs débutants (doc 1) ? 2 Comment rajouter un bouton « Indice » sur l’écran du smartphone (doc 2) ? 3 Reformulez en quelques phrases les actions qui seront réalisées lors du clic sur le composant « Bouton_ Vérifier » (doc 3). 4 Comment programmer le bouton « Indice » que vous venez de rajouter (doc 3) ? 5 Testez votre solution sur le site du MIT App Inventor 2. © Éditions Foucher doc 3 154 9782216132294.indb 154 17/03/16 15:25 18 Mettre en œuvre un programme Support 2 Langage Python doc 1 La programmation avec Python Python est un langage de programmation inventé par Guido van Rossum. La première version de Python est sortie en 1991. Python est un langage de programmation interprété, c’est-à-dire qu’il n’est pas nécessaire de le compiler avant de l’exécuter. En effet, avec les langages précédents, il fallait écrire le programme puis le compiler afin de générer un nouveau fichier exécutable mais non modifiable. Au contraire, le langage Python est directement modifiable et plus facile à partager. doc 2 Des exemples d’applications réalisées sous Python doc 3 Les bibliothèques De nombreuses fonctions existent dans le langage de base mais il est très facile d’étendre les fonctionnalités existantes. Il existe ce que l’on appelle des « bibliothèques » qui aident le développeur à travailler sur des projets particuliers, par exemple la création d’une boîte de dialogue à partir d’un modèle existant. Plusieurs bibliothèques peuvent être installées pour développer des interfaces graphiques en Python ou encore pour piloter des cartes comme le Rapsberry Pi. © Éditions Foucher doc 5 Le résultat après l’exécution du programme doc 4 Un programme permettant de créer une machine à calculer 1 Expliquez avec vos propres termes « un langage de programmation interprété » (doc 1). 2 Cherchez d’autres applications réalisées avec Python. 3 À quoi servent les bibliothèques ? Quel est leur intérêt (doc 3) ? 4 Quelle bibliothèque est utilisée pour afficher une fenêtre (doc 4) ? 5 Listez les variables utilisées dans le programme et précisez leur fonction et leur type (doc 4). 155 9782216132294.indb 155 17/03/16 15:25 THÉMATIQUE L’informatique et la programmation Projet Support 3 Raspberry Pi 2 Étude préalable doc 1 doc 2 Le Raspberry Pi 2 La nomenclature du Raspberry Pi 2 7 6 Le Raspberry Pi 2 est une petite carte de type mini PC, à moins de 40 €. Le but initial du projet était de permettre aux étudiants de s’équiper du même matériel qu’en classe. Après plusieurs années de développement et plusieurs versions, le projet a bien évolué. Ces cartes disposent désormais de multiples entrées-sorties pour piloter des objets réels. doc 3 La carte Raspberry et ses connexions possibles 1 5 4 2 3 doc 4 La carte et ses ports d’entrées-sorties Les numéros renvoient au doc 2. 1 Connecteur USB pour brancher un clavier, une souris, un disque dur externe, etc. 2 Connecteur Ethernet pour relier la carte au réseau et à Internet. 3 Connecteur audio pour brancher un casque ou une enceinte. 4 Connecteur HDMI pour brancher un moniteur ou un écran tactile. 5 Prise d’alimentation type micro USB. 6 Connecteur carte mémoire SD contenant l’OS. 7 Connecteur GPIO pour piloter des actionneurs ou recevoir l’information de capteurs. Les entrées et sorties numériques La carte Raspberry Pi donne accès à des entrées et sorties numériques appelées GPIO (General Purpose Input & Output) et contrôlées par le processeur ARM. Elles sont à usage multiple : – en entrée numérique tout ou rien (détection d’un interrupteur) ; – en sortie numérique tout ou rien (activation d’un relais) ; – en sortie numérique PWM (contrôle puissance moyenne) ; – en protocole I2C ou SPI (échange entre une ou plusieurs puces) ; – en protocole UART (échange avec une seule puce ou un PC). 1 Quelles différences relevezvous entre le Raspberry Pi 2 et un ordinateur « classique » (docs 1, 2 et 3)? 2 De combien d’entrées et sorties dispose un Raspberry (doc 4) ? 3 Que signifie GPIO (doc 5) ? 4 Quel est l’intérêt des broches à usage multiple (doc 5) ? 5 Cherchez des applications, via Internet, mettant en œuvre ce type de carte. © Éditions Foucher doc 5 156 9782216132294.indb 156 17/03/16 15:25 18 Mettre en œuvre un programme Application doc 6 doc 7 La programmation GPIO de la led connectée sur le port 2 avec Python Un montage Le montage d’une led sur le port 2 et d’un boutonpoussoir sur le port 3 d’un Raspberry Pi doc 8 L’utilisation du langage Python Le programme écrit en Python permet d’affecter le port 2 en sortie et de faire clignoter la led à la fréquence d’une seconde. Les commentaires donnés par le développeur permettent de comprendre les différentes étapes exécutées par la carte. Le passage par le langage Python offre davantage d’options dans l’utilisation et le paramétrage de la carte. Il est également possible de créer des scripts différents et un script principal qui les appelle, simplifiant ainsi les modifications. doc 9 Une programmation GPIO avec Scratch doc 10 L’utilisation du logiciel Scratch Ici, le programme, développé avec le logiciel Scratch, permet de lire l’état du bouton-poussoir connecté sur le port 3. S’il est actif, le programme allume la led sur le port 2 durant une seconde, puis le programme recommence indéfiniment. 6 Comparez les deux programmes (docs 7 et 9). Quelles différences observeriez-vous si les deux programmes étaient exécutés ? 7 Quel langage vous paraît le plus simple à utiliser pour démarrer ? © Éditions Foucher 8 Selon vous, quel avantage présente l’utilisation du langage Python dans un projet (docs 7 et 8) ? 9 Programmez un robot avec un Raspberry Pi en utilisant le langage de programmation avec lequel vous êtes le plus à l’aise : soit Scratch, soit directement en langage Python. 10 Travail en équipe : vous souhaitez automatiser votre boîte aux lettres afin qu’elle vous adresse un signal lorsqu’une lettre ou un colis y a été déposé. L’information sera affichée par une led qui s’allumera si la boîte aux lettres a été ouverte. Proposez un projet complet illustrant vos solutions à l’aide d’un Raspberry et de capteurs. Le choix des capteurs est libre mais devra être justifié. Votre dossier doit contenir une présentation des solutions choisies, ainsi que la programmation prévue de la boîte aux lettres domotisée. 157 9782216132294.indb 157 17/03/16 15:25