Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. Ateliers Pyduino par X. HINAULT www.mon-club-elec.fr Tous droits réservés 2013. Ce document légèrement payant est soumis au droit d'auteur et est réservé à l'usage personnel. Afin d'encourager la production de supports didactiques de qualité, ce document est légèrement payant. La licence d'utilisation est attribuée pour un usage personnel uniquement, dans le cercle familial. Mise en ligne et diffusion non autorisées. Si vous n'êtes pas le détenteur de la licence attribuée pour l'usage de ce document, soyez sympa, merci d'acheter votre exemplaire personnel ici : http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=main.atelierspyduino Pour tout problème lié à l'utilisation de ce document, veuillez envoyer une copie ici : support@mon-club-elec.fr Pour obtenir tout autres types de licence d'utilisation (enseignement, commercial, etc...), veuillez contacter l'auteur ici : support@mon-club-elec.fr Vous avez constaté une erreur? une coquille? N'hésitez pas à nous le signaler à cette adresse : support@mon-club-elec.fr Truc d'utilisation : visualiser ce document en mode diaporama dans le visionneur PDF. Navigation avec les flèches HAUT / BAS ou la souris. En mode fenêtre, activer le panneau latéral vous facilitera la navigation dans le document. Bonne lecture! Lancer également le logiciel Pyduino afin de pouvoir tester au fur et à mesure les codes d'exemples! Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 1/17
1. Intro L'objectif ici est : d'écrire un programme Pyduino affichant un message dans le Terminal du mini-pc d'apprendre à utiliser le Terminal pour visualiser les messages sur le mini-pc afin d'être en mesure d'afficher des messages dans le Terminal du mini-pc. Prêt? C'est parti! Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 2/17
2. Pour passer à l'action... avec Pyduino : le matériel Pour utiliser Arduino, vous aviez besoin : On a besoin : d'une carte Arduino d'un poste fixe (netbook, portable, etc..) d'un câble USB La programmation et la communication avec la carte Arduino : se fait à partir du logiciel Arduino, via le port USB la connexion au poste fixe n'est pas nécessaire en mode exécution Pour utiliser un mini-pc avec Pyduino, c'est presque pareil : On a besoin : d'une carte mini-pc avec un système Gnu/Linux installé opérationnel (typiquement interface graphique LXDE) d'un poste fixe (netbook, portable, etc..) d'un routeur réseau éthernet / wifi +/- switch (pas indispensable) de 2 câbles éthernet et/ou clé wifi La programmation et la communication avec le minipc : se fait par «accès au bureau distant» depuis le poste fixe : on programme directement dans l'éditeur sur le minipc à partir du poste fixe. la connexion au poste fixe n'est pas nécessaire en mode exécution La vraie différence consiste à utiliser un routeur en plus. Noter qu'un tel routeur serait aussi nécessaire avec Arduino dès lors que l'on voudrait utiliser un shield Ethernet. En résumé : Un principe de fonctionnement relativement similaire, à la différence près que l'on communique avec le poste fixe par réseau au lieu de communiquer par USB. Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 3/17
3. Matériel nécessaire pour les ateliers Pyduino Pour cet atelier, vous aurez besoin de tout ou partie des éléments suivants pour pouvoir réaliser les exemples proposés : De l'espace de développement Pyduino L'espace de développement Pyduino associe : un ordinateur sous Windows, Mac Os X ou Gnu/Linux (Ubuntu) avec le logiciel Geany ou l'ide Pyduino installé un réseau local auquel est connecté le mini-pc et le poste fixe une carte mini-pc Noter qu'il est également possible d'utiliser une carte Arduino avec le poste fixe. disponible chez : http://www.gotronic.fr/ Du nécessaire pour réaliser des montages sans soudure Pour réaliser des montages sans soudure, vous aurez besoin : d'une plaque d'essai ou breadboard moyenne (450 points) de quelques câbles souples (ou jumpers) mâle/mâle disponible chez : http://www.gotronic.fr/ De quelques composants de base Pour vous simplifier la vie, nous avons négocié ce kit pour vous! Vous pouvez commander ce kit complet directement en 1 clic chez notre partenaire http://www.gotronic.fr/ avec le code express 701710 Pour les ateliers Pyduino niveau débutant, vous devrez idéalement disposer des composants suivants : des LEDs 5mm Rouges(x20), Vertes (x5) et 3 Jaunes (x5) digit à cathode commune rouge 13mm (x1) Résistances (1/4w - 5%) de 270 Ohms (x20), 4,7K Ohms (x1), 1K Ohms (x1) mini bouton-poussoir (x3) Opto-fourche (x 1) Résistance variable linéaire 10K (x 1) Photo-résistance 7mm (x 1) Capteur de température LM35DZ (-55/+150 C - 10mV/ C) (x 1) Capsule son piézoélectrique (x 1) ULN 2803A (CI amplificateur 8 voies, 500mA/ voie) (x 1) LED 5mm multicolore RVB cathode commune (x 1) Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 4/17
4. Le réseau type : minipc + poste fixe sur un même réseau soit en en éthernet soit en wifi soit un mix des 2 (le poste fixe en filaire et le mini-pc en wifi : c'est la situation potentiellement la plus courante) La bonne nouvelle : la librairie Pyduino est portée sur Raspberry Pi, sur le pcduino et est potentiellement portable sur tout type de mini-pc Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 5/17
5. Concrètement, ce que vous devez faire pour passer à l'action... Constituer votre réseau local de travail Vous devez avant toute chose constituez un réseau local opérationnel entre le mini-pc et le poste fixe comme décrit précédemment. Lancer votre mini-pc Je présuppose ici que vous disposez d'un mini-pc opérationnel (c'est à dire un pcduino ou un RaspberryPi avec une distribution Gnu/Linux installée) avec accès VNC activé. Veuillez vous reporter au tuto dédié si ce n'est pas déjà le cas. Mettez votre mini-pc sous tension. Détecter votre mini-pc à partir de votre poste fixe Ensuite, mettre sous tension le poste fixe sur lequel vous travaillez, si ce n'est déjà fait. Puis réaliser un «scan» du réseau local afin de détecter l'adresse IP attribuée au mini-pc. Se connecter au mini-pc par accès VNC Une fois l'adresse ip du mini-pc connue, connectez-vous par accès VNC. Si vous ne savez pas comment faire, reportez-vous au tuto dédié. Noter que si vous préférez, vous pouvez travailler directement sur le mini-pc en lui connectant écran + souris + clavier. Vous devez obtenir le bureau de votre mini-pc sur votre poste fixe : Lancer le logiciel Pyduino sur le mini-pc Lancer le logiciel Pyduino sur le mini-pc : une fois fait, vous êtes parés pour travailler sur votre mini-pc et passer à la suite! Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 6/17
6. Apprendre à lire la fiche technique d'une fonction Pyduino Une instruction Pyduino est une fonction : sa fiche technique va donc indiquer : son rôle, ce qu'elle fait (= description) la manière de l'écrire (=syntaxe) le ou les paramètres qu'elle reçoit la valeur renvoyée La librairie Pyduino comporte : une cinquantaine de fonctions de base ainsi que les dizaines de fonctions thématiques (équivalent des «librairies» Arduino) auxquelles s'ajoutent les fonctions de «haut-niveau» (synthèse et reconnaissance vocale, capture d'image, etc ) Pas de panique : on peut démarrer avec quelques instructions pour écrire un programme Pyduino et l'apprentissage se fait au fur et à mesure. Au fur et à mesure de vos besoins, vous trouverez les fiches techniques de toutes les fonctions de la librairie Pyduino : depuis le logiciel Pyduino : Bouton <Doc Pyduino> sur mon site : http://www.mon-clubelec.fr/pmwiki_reference_pyduino/pmwiki.php?n=main.referenceetendue Si vous connaissez le langage Arduino, vous allez très vite vous sentir en territoire connu! La documentation Pyduino reprend le même format que ma traduction française du langage Arduino. La plupart des fonctions Arduino existent à l'identique dans la librairie Pyduino qui comporte par ailleurs en natif les fonctions de gestion du temps réel, des fichiers, du réseau... Le logiciel Pyduino supporte la coloration syntaxique des fonctions «à la façon Arduino», le tout directement sur le mini-pc! Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 7/17
7. Les fonctions Serial.print() et print() Description Serial.println() : Affiche les données dans le Terminal suivi d'un passage à la ligne suivante. print() : Fait exactement la même chose. Syntaxe Serial.println(data) Serial.println(data, format) print data Paramètres data : tous types de données format : précise le format d'affichage d'une valeur numérique entière parmi DEC, HEX, BIN, OCT Valeur renvoyée Aucune Exemples print «Salut» Serial.println("Salut") Serial.println(12) Serial.println(12,DEC) Serial.println(12,BIN) Serial.println(12,OCT) Serial.println(12,HEX) Pour comprendre... La fonction Serial.println() est une ré-implémentation pour la console système du mini-pc de la fonction Arduino équivalente Serial.println(). Cette fonction affiche les données non pas sur le port série comme avec Arduino, mais dans la console système, permettant une émulation du Terminal Série, bien que l'on utilise une carte mini-pc. Le but ici est d'être le plus proche possible du langage Arduino lui-même. Techniquement, Serial.println() réimplémente la fonction native Python print(), tout simplement. La documentation détaillée est disponible ici : http://www.mon-club-elec.fr/pmwiki_reference_pyduino/pmwiki.php?n=main.serialprintln Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 8/17
8. Pyduino : Rappel : Règles d'écriture (ou syntaxe) de base à connaître et à ne pas oublier! Les règles de syntaxe d'un code Pyduino sont celles du langage Python Règle 1 Toute ligne comportant une instruction devra se terminer par un saut de ligne Règle 2 Tout bloc d'instruction débute par : et se termine par un retour de chariot Règle 3 Tout bloc d'instruction doit être indenté avec des tabulations! Cette règle est la plus importante à maîtriser lorsque l'on débute avec Python et Pyduino! Règle 4 Toute ligne commençant par un # est un commentaire sur une ligne Règle 5 On pourra écrire un commentaire sur plusieurs ligne en le débutant par """et en le terminant par """ Truc de programmation : commenter vos programmes au maximum aussi bien pour vous que pour les autres! Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 9/17
9. Pyduino : «Hello world!» : Ecrire votre 1er programme Pyduino affichant un message dans le Terminal du mini-pc Ce qu'on va faire ici... Ici, nous travaillons sur un mini-pc en accès distant à partir d'un poste fixe (voire directement sur le mini-pc si on lui a connecté un écran, clavier, souris). Par conséquent, à la différence d'arduino, nous disposons d'emblée sur le système d'une solution pour afficher des messages : la console système ou Terminal. A la différence d'arduino, il n'est pas nécessaire ici d'utiliser une communication série USB pour «parler» au Terminal : cela se fait directement. Le principe d'utilisation du Terminal dans un programme Pyduino consiste à utiliser les fonctions Serial.println() ou print() lorsqu'on en a besoin : soit dans setup() pour afficher des messages une seule fois au début du programme, soit dans loop() pour afficher des messages à intervalles réguliers ou en boucle. Téléchargement du code Voici les liens de téléchargement de ce code : *.yno : http://www.cloud-mon-club-elec.fr/public.php?service=files&t=6f208cd992fb0d5a72ae23097efe0f18&download Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 10/17
Fonction setup() Laissée vide ici, aucune initialisation particulière n'étant nécessaire. def setup(): return Fonction loop() Notre premier programme utilisant le Terminal va afficher un message toutes les secondes avec les instructions suivantes : pour afficher une chaîne : Serial.println(«mon message») delay(1000) Attention : Une chaine de caractères s'écrit entre pour réaliser une pause d'une seconde (=1000 millisecondes) : l'instruction Pyduino delay(duree) : Note technique : Comme pour Arduino, les chaînes de caractères de message sont stockées en mémoire RAM. Mais à la différence d'arduino, avec Pyduino sur un mini-pc, on n'a pas de limite de taille de la RAM disponible qui est généralement de plusieurs centaines de Mo disponibles!!!! Ainsi, même si l'on écrit de nombreux messages texte dans un code, il n'y aura pas besoin de se soucier de la taille occupée en RAM! Voici la fonction loop() complète : def loop(): Serial.println("Coucou") delay(1000) Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 11/17
Fonctionnement du programme Lancer l'ide Pyduino sur le mini-pc. Saisir le code précédent puis lancer l'exécution du code sur le mini-pc en cliquant sur le bouton <exécuter> dans l'ide Pyduino : La fenêtre terminal s'affiche et vous devez obtenir quelque chose comme çà : Bravo! Vous venez d'exécuter votre premier code Pyduino affichant un message dans le Terminal! Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 12/17
10. Pyduino : Tester les fonctions Serial.println() et print() dans la console Python Ce qui est vraiment bien avec le langage Python, et donc avec Pyduino, c'est qu'il est possible de tester des instructions «à la volée» dans une «console» Python. Pour cela, ouvrir la console Python de votre choix, par exemple DreamPie que je vous conseille. Puis charger la librairie Pyduino avec la commande : >>> from pyduino_pcduino import * Tester l'instruction Serial.println() A présent, amusez-vous à saisir diverses chaînes dans la console Python et observez le résultat obtenu : >>> Serial.println("Salut") Salut >>> Serial.println(12) 12 >>> Serial.println(12,DEC) 12 >>> Serial.println(12,HEX) 0xc >>> Serial.println(12,BIN) 0b1100 Tester l'instruction print() De la même façon, vous pouvez tester la fonction print(), fonction native du langage Python : >>> print("salut") Salut Je pense que vous saisissez tout l'intérêt de la console Python pour tester les fonctions Pyduino «à la volée»!! C'est l'idéal pour apprendre en douceur! Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 13/17
11. Les fonctions Pyduino étudiées dans cet atelier : Les fonctions d'affichage dans le Terminal Emulation «Terminal Série» Serial.println() Fonction native du langage Python print() La documentation complète de la librairie Pyduino en français est disponible ici : http://www.mon-club-elec.fr/pmwiki_reference_pyduino/pmwiki.php?n=main.referenceetendue Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 14/17
12. A présent, vous devriez être capable : D'afficher des messages dans le Terminal du mini-pc à l'aide des fonctions Pyduino. De tester des fonctions Pyduino directement dans la console Python. Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 15/17
Table des matières Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. Intro Pour passer à l'action... avec Pyduino : le matériel Matériel nécessaire pour les ateliers Pyduino Le réseau type : minipc + poste fixe sur un même réseau Concrètement, ce que vous devez faire pour passer à l'action... Apprendre à lire la fiche technique d'une fonction Pyduino Les fonctions Serial.print() et print() Pyduino : Rappel : Règles d'écriture (ou syntaxe) de base à connaître et à ne pas oublier! Pyduino : «Hello world!» : Ecrire votre 1er programme Pyduino affichant un message dans le Terminal du mini-pc Pyduino : Tester les fonctions Serial.println() et print() dans la console Python Les fonctions Pyduino étudiées dans cet atelier : A présent, vous devriez être capable : Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 16/17
Bravo! vous avez terminé cet atelier Pyduino! Prêt pour la suite? Retrouvez de nombreux autres thèmes d'ateliers Pyduino ici : http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=main.atelierspyduino Atelier Pyduino : Apprendre à afficher des messages et à utiliser le Terminal du mini-pc. p. 17/17