Ateliers Pyduino - Mon Club-Elec

publicité
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éser vé à 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 : [email protected]
Pour obtenir tout autres types de licence d'utilisation (enseignement, commercial, etc...), veuillez contacter l'auteur ici : [email protected]
Vous avez constaté une erreur ? une coquille ? N'hésitez pas à nous le signaler à cette adresse : [email protected]
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 les ateliers Pyduino niveau débutant, vous devrez idéalement disposer
des composants suivants :
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
•
•
•
•
•
•
•
•
•
•
•
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 »)
Attention : Une chaine de caractères s'écrit entre « »
◦ pour réaliser une pause d'une seconde (=1000 millisecondes) : l'instruction Pyduino delay(duree) :
delay(1000)
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
Téléchargement