Ateliers Python+Qt : Premiers pas : Comment - Mon Club-Elec

Transcription

Ateliers Python+Qt : Premiers pas : Comment - Mon Club-Elec
Ateliers Python+Qt : Premiers pas : Comment développez ses propres
interfaces graphiques sur le RaspberryPi ?
par X. HINAULT
www.mon-club-elec.fr
Tous droits réservés – 2013.
Document gratuit.
Ce support PDF d'atelier Python + Qt vous est offert.
Pour acheter d'autres supports d'ateliers Python + Qt rendez-vous ici :
http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQT
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 !
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 1 / 31
Ateliers Python+Qt : Premiers pas : Comment développez ses propres
interfaces graphiques sur le RaspberryPi ?
Par X. HINAULT – Janvier 2013 – www.mon-club-elec.fr – Tous droits réservés
Capture de la fenêtre VNC d'accès distant au bureau du RaspberryPi avec une interface PyQt lancée...
Ce que l'on va faire ici
•
Dans ce tuto, je vais vous présenter comment développer vos applications graphiques en Python + Qt sur le Raspberry-Pi : vous serez ainsi en
mesure, avec tous les tutos présentés ici, de créer vos propres interfaces graphiques pour le Raspberry Pi !
•
Développer des interfaces graphiques personnalisées pour le RaspberryPi est intéressant :
◦ pour visualiser des mesures réalisées avec Arduino par exemple
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 2 / 31
◦ pour contrôler des dispositifs, à distance à l'aide d'une tablette tactile (pas accès VNC)
◦ etc...
•
La visualisation pourra se faire :
◦ soit directement sur un écran connecté au RaspberryPi (par exemple sur un canal non utilisé d'une télévision)
◦ soit en accès distant (accès VNC) par réseau filaire ou sans fil (voir tuto dédié) :
▪ soit depuis un poste fixe pour intervenir ponctuellement sur le R-Pi
▪ soit même depuis une tablette tactile, l'interface graphique exécutée sur le RaspberryPi permettant le contrôle à distance à partir de la
tablette (l'idéal notamment pour contrôler un robot à distance par wifi...)
Pré-requis : un RaspberryPi avec une distro Raspbian opérationnelle + accès VNC opérationnel
•
Je suppose ici que vous disposez d'un RaspberryPi avec une distribution Raspbian installée et la fonction « serveur VNC » fonctionnelle (voir
au besoin tuto dédié sur ce site (section RaspberryPi )
Principe général pour travailler avec le RaspberryPi
•
Comme je l'explique dans la section dédiée RaspberryPi , il est possible grosso-modo d'utiliser le RaspberryPi de 2 façons distinctes :
◦ soit comme un PC classique, avec écran, souris, clavier connecté, et c'est ce que vous pouvez faire si vous le souhaitez,
◦ soit, et c'est ce que je conseille, de travailler sur le RaspberryPi depuis un poste fixe, en accès distant, via le réseau : c'est cette façon de faire
que nous utiliserons ici !
•
Le principe général de l'accès au bureau distant par réseau est le suivant (possible en wifi ou par éthernet) :
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 3 / 31
•
Idéalement, il est préférable que le routeur utilisé puisse accéder à internet, comme çà, vous pourrez facilement télécharger les fichiers des tutos
sur votre RaspberryPi.
•
L'autre possibilité consiste à utiliser la fonction de partage de fichier avec le poste fixe, comme cela est expliqué dans la la section dédiée
RaspberryPi
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 4 / 31
S'installer pour développer avec Python et Qt sur le Raspberry Pi
•
La première chose à faire consiste à installer tout ce qui est nécessaire pour développer avec Python et Qt sur le Raspberry Pi. La procédure à
suivre est celle qui est présentée en détail dans le tuto : S'installer pour coder des interfaces graphiques (GUI) en Python + Qt sous Gnu/Linux...
en 5 minutes !
•
La première chose à faire est donc de vous connecter à votre RaspberryPi depuis un poste fixe, ce qui donne (ici vous voyez la capture de la
fenêtre du client VNC sur le poste fixe utilisé) :
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 5 / 31
•
Une fois fait, ouvrez un Terminal (double clic sur LXTErminal sur le bureau …) :
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 6 / 31
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 7 / 31
•
La procédure d'installation se résume en fait à 3 installations simples par ligne de commande :
◦ L'interface de conception graphique de vos applications Qt, qt4-designer (l'interface de design des GUI ! )
◦ Pour éditer les codes, on utilisera l'éditeur libre Geany
◦ Les paquets Python utiles suivants devront par ailleurs être installés sur le système :
▪ python-qt4 (=PyQt, le portage Python de Qt)
▪ pyqt4-dev-tools (= utilitaires utiles, notamment pyuic4 )
▪ ainsi que les éventuels paquets spécifiques indiqués dans le tuto que vous utilisez (voir le paragraphe « Pré-requis ») : ici par exemple,
python-serial.
Installation de Python est déjà faite
•
Sur la Raspbian, comme la plupart des distribution Gnu/Linux, le langage Python est déjà installé. Pour le vérifier, vous pouvez lancer
l'interpréteur avec la commande
$ python
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 8 / 31
•
Vous voyez alors l'invite du Terminal qui se modifie en >>> : ceci pour indiquer que vous êtes passés en mode « interpréteur Python ». Vous
pouvez d'ailleurs saisir une commande de test pour voir, ici print »coucou ». Une fois le test fait, fermer le Terminal ou faire CTRL + D pour
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 9 / 31
quitter l'interpréteur tout en restant dans le Terminal.
Installation de PyQt4
•
On commence par installer les paquets :
◦ python-qt4
◦ pyqt4-dev-tools
•
Ceci se fait avec la commande suivante à saisir dans un Terminal (truc : vous pouvez faire un copier/coller de la ligne de commande du tuto sur
votre poste fixe vers le Terminal du RaspberryPi via le menu édition > coller du Terminal ) :
$ sudo apt-get install python-qt4 pyqt4-dev-tools
•
ce qui donne :
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 10 / 31
•
Vous pouvez à nouveau tester que l'installation s'est bien faite en lançant l'interpréteur Python avec la commande
$ python
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 11 / 31
•
Saisissez alors la commande Python >>> import PyQt4 : si vous n'obtenez aucun message d'erreur, c'est que tout est OK.
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 12 / 31
•
Fermer le Terminal ou faire CTRL + D pour quitter l'interpréteur tout en restant dans le Terminal.
Librairies Python complémentaires utiles
•
Selon les besoins, on pourra également installer certaines librairies spécifiques en fonction des besoins. Les paquets suivants
complémentaires pourront être installés :
◦ python-serial pour la communication série
◦ python-qwt pour le dessin de courbes graphiques
◦ python-opencv pour le traitement d'image et la capture vidéo webcam
◦ python-opengl pour la 3D
◦ etc...
•
D'une manière générale, les paquets nécessaires pour chaque tutoriel seront signalés : il sera ainsi possible de compléter à la demande votre
installation de base.
•
Pour les paquets à installer, le principe est toujours le même : ouvrir un terminal et saisir la commande :
$ sudo apt-get install nompaquet
•
Ici, nous allons installer python-serial qui sera indispensable pour communiquer avec Arduino notamment :
$ sudo apt-get python-serial
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 13 / 31
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 14 / 31
Installer le logiciel de conception de l'interface graphique
•
Pour créer et concevoir l'interface graphique du programme, nous allons utiliser un outil extrêmement pratique et puissant fournit avec Qt : j'ai
nommé Qt Designer
•
L'installation se fait avec la ligne de commande suivante :
$ sudo apt-get install qt4-designer
•
ce qui nous donne :
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 15 / 31
•
Pour lancer Qt Designer :
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 16 / 31
◦ soit en ligne de commande avec la commande : $ designer-qt4
◦ soit depuis le menu graphique de votre distribution : Applications >Programmation/Developpement> qtdesigner
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 17 / 31
•
on obtient l'interface suivante (dont l'utilisation est détaillée par ailleurs dans un tuto dédié...) :
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 18 / 31
Capture de la fenêtre VNC d'accès distant au bureau du RaspberryPi : vous ne rêvez pas, Qt Designer est lancé et le processeur reste peu utilisé !
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 19 / 31
Installer l'éditeur de code à coloration syntaxique
•
Pour écrire vos programmes Python, vous aurez besoin d'un éditeur à coloration syntaxique supportant le Python. La solution la plus simple et
la plus légère est l'éditeur libre Geany qui dispose également d'un bouton « Exécuter » qui permet de lancer le code Python directement depuis
l'éditeur.
•
L'installation se fait avec la ligne de commande suivante :
$ sudo apt-get install geany
•
ce qui donne :
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 20 / 31
•
Pour lancer l'éditeur Geany :
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 21 / 31
◦ soit depuis un Terminal avec la commande : $ geany
◦ soit depuis le menu graphique de votre distribution : Applications >Programmation/Developpement> geany
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 22 / 31
•
On obtient l'interface suivante :
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 23 / 31
Capture de la fenêtre VNC d'accès distant au bureau du RaspberryPi : l'éditeur Geany à coloration syntaxique est lancé et le processeur reste toujours peu utilisé !
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 24 / 31
Développez et exécutez vos applications graphique Python + Qt sur le Raspberry-Pi
Soit utiliser un tuto Python + Qt du site www.mon-club-elec.fr
•
Pour vous lancer, cette façon de faire est la plus simple : les codes sont prêts et ont déjà été testés, donc çà doit fonctionner du premier coup !
•
Dans l'ordre, vous devrez :
◦ Télécharger l'archive des codes à partir du lien dans le tuto utilisé
◦ L'extraire,
◦ Lancer l'exécution du code
Télécharger l'archive des codes avec le lien direct présent dans le tuto que vous utilisez
•
Une fois que vous disposez du PDF du tuto, allez à la rubrique « Exécution » (vers la fin) : vous allez y trouver un lien de téléchargement de
l'archive contenant les codes du tuto de la forme :
Pratique : L'archive contenant les codes de ce tuto est disponible ici :
http://www.mon-club-elec.fr/lien/de/l/archive/des/codes/du/tuto
•
Une fois que vous avez téléchargé l'archive, l'extraire : vous obtenez un répertoire avec 2 fichiers :
◦ le fichier python nomFichier.py correspondant au fdichier généré à partir du fichier nomFichier.ui avec la commande pyuic4 et décrivant
l'interface graphique
◦ et le fichier python contenant le code actif à proprement parler, le fichier nomFichierMain.py
•
Vous pouvez tester la procédure avec le tuto gratuit suivant : Votre premier programme PyQt : Hello World !
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 25 / 31
Lancer l'exécution du code
•
A ce stade, vous pouvez lancer l'exécution du code :
◦ soit par simple double clic sur le fichier nomFichierMain.py
◦ soit en ligne de commande avec ./nomfichierMain.py (se placer au préalable dans le bon répertoire avec le commande cd chemin ...)
◦ ou directement depuis l'éditeur Geany avec le bouton
, le fichier nomFichierMain.py étant ouvert.
•
Vous pouvez tester la procédure avec le tuto gratuit suivant : Votre premier programme PyQt : Hello World !
•
Voilà, c'est fait, l'application doit se lancer :
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 26 / 31
Le tuto de cet exemple est disponible ici : Affichage dans 12 widgets d'affichage LCD de 6 valeurs numériques reçues sur le port série et converties en unités.
Non, non, vous ne rêvez pas : un Terminal Série Arduino écrit en PyQt + 12 widgets LCD + analyse de chaines en temps réel... et çà tourne sur le Raspberry-Pi !
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 27 / 31
Soit coder votre propre application sur votre poste fixe et l'exécuter sur le RapberryPi
•
Pour un plus grand confort de développement, il est tout à fait possible de développer vos applications sur votre poste fixe, en installant au
préalable tout le nécessaire. Ceci sera d'autant plus simple que vous travaillerez sous Gnu/Linux sur votre poste fixe également. Mais on pourra
tout à fait le faire également sous Windows ou Mac.
•
Dans le tuto Principe général d'écriture d'un programme PyQt à partir d'un fichier généré avec QtDesigner j'ai détaillé toute la procédure à
suivre pour écrire une application Python + Qt opérationnelle.
•
Ensuite, comme vous le feriez pour un tuto, copier/coller les codes sur votre RaspberryP et exécutez-les.
Soit coder votre propre application directement sur le RaspberryPi
•
Dans le tuto Principe général d'écriture d'un programme PyQt à partir d'un fichier généré avec QtDesigner j'ai détaillé tous la procédure à suivre
pour écrire une application Python + Qt opérationnelle : vous pouvez le faire directement sur le R-Pi.
Soit à partir d'un fichier *.deb prêt à l'emploi
•
Certains codes seront prochainement proposés sous forme d'une archive *.deb au téléchargement, « prêts à l'emploi » sur le Raspberry Pi. Pour
pouvoir les utiliser, vous avez besoin d'un utilitaire d'installation de paquets *.deb, GDebi.
•
Pour installer GDebi, il suffit de saisir la ligne de commande :
$ sudo apt-get install gdebi
•
ce qui donne :
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 28 / 31
•
Une fois fait, vous pourrez directement installer un fichier*.deb sur le RaspberryPi pour une exécution immédiate, comme n'importe quel autre
programme, par simple clic droit sur le paquet *.deb que vous aurez téléchargé au préalable ou par le menu graphique Système > installateur de
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 29 / 31
paquets GDebi :
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 30 / 31
Dépannage
•
Si l'application ne se lance pas, lancez-là en ligne de commande en vous plaçant au préalable dans le répertoire que vous avez obtenu avec
l'archive et analyser les messages obtenus.
•
Le cas de figure le plus fréquent est le manque d'un paquet nécessaire : l'installer et tout devrait rentrer dans l'ordre.
Conclusion
•
Comme vous pouvez le constater, il est assez simple de travailler avec Python + Qt sur le RaspberryPi : vous pourrez ainsi utiliser les nombreux
tutos du site ou alors développer vos propres applications.
•
Amusez-vous bien !
Ateliers Python + Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? – p. 31 / 31