<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.electroniciens.cnrs.fr/index.php?action=history&amp;feed=atom&amp;title=Hello_World</id>
	<title>Hello World - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.electroniciens.cnrs.fr/index.php?action=history&amp;feed=atom&amp;title=Hello_World"/>
	<link rel="alternate" type="text/html" href="https://wiki.electroniciens.cnrs.fr/index.php?title=Hello_World&amp;action=history"/>
	<updated>2026-05-07T00:53:39Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.electroniciens.cnrs.fr/index.php?title=Hello_World&amp;diff=4087&amp;oldid=prev</id>
		<title>William.benharbone le 20 septembre 2019 à 22:16</title>
		<link rel="alternate" type="text/html" href="https://wiki.electroniciens.cnrs.fr/index.php?title=Hello_World&amp;diff=4087&amp;oldid=prev"/>
		<updated>2019-09-20T22:16:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div class=&amp;quot;subtab&amp;quot;&amp;gt;[[Accueil]] - [[Les_Groupes_ARM|Les Groupes ARM]] - [[Les_Groupes_ARM_:_Raspberry_Pi|Raspberry Pi]] - [[Les_Groupes_ARM_:_Raspberry_Pi2|Raspberry Pi2]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;subtab&amp;quot;&amp;gt;[[Les_Groupes_ARM_:_Distribution_Raspian_personnalisée_Du_réseau|Distribution_Raspian_personnalisée_Du_réseau]] - [[Les_Groupes_ARM_:_Raspberry_un_datalogger_de_A..à..Z|Raspberry un datalogger de A..à..Z]] - [[Interface PyGAME|Interface PyGAME]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour apprendre notre [[Interface_PyGAME]], nous allons créer notre premier &amp;quot;Hello World&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
Nous considérons que vous avez installé les utilitaires wget et unzip, si vous les avez déjà, vous pouvez passer cette première étape.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
~$                               # le &amp;quot;$&amp;quot; en début de ligne de commande indique vous n&amp;#039;avez pas de privilèges d&amp;#039;installation et êtes simple utilisateur&lt;br /&gt;
~$ su                            # pour passer en root (superuser)&lt;br /&gt;
~#                               # le &amp;quot;#&amp;quot; est un commentaire, mais en début de ligne il indique que vous êtes bien root&lt;br /&gt;
~# apt-get update                # mise a jour des listes des paquets&lt;br /&gt;
~# apt-get upgrade               # mise a jour des paquets installés&lt;br /&gt;
~# apt-get install sudo          # permettra de lancer des commandes sudoers (superutilisateur) rapidement&lt;br /&gt;
~# apt-get install wget          # installation de l&amp;#039;utilitaire wget&lt;br /&gt;
~# apt-get install unzip         # installation de l&amp;#039;utilitaire unzip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Hello World ! =&lt;br /&gt;
&lt;br /&gt;
Créons l&amp;#039;arborescence des dossiers :&lt;br /&gt;
&lt;br /&gt;
Pour Raspbian/Debian/Linux&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
~$ mkdir helloworld              # Création du dossier racine pour notre premier programme helloworld&lt;br /&gt;
~$ mkdir helloworld/fonts        # Création du sous-dossier pour les fonts&lt;br /&gt;
~$ mkdir helloworld/img          # Création du sous-dossier pour les images&lt;br /&gt;
~$ mkdir helloworld/src          # Création du sous-dossier pour les fichiers .svg sources&lt;br /&gt;
&lt;br /&gt;
~$ cd helloworld/fonts           # on se place dans le dossier font pour télécharger une police&lt;br /&gt;
&lt;br /&gt;
                                # on télécharge une font 100% gratuit que l&amp;#039;on nomme lcd.zip avec l&amp;#039;utilitaire wget&lt;br /&gt;
~$ wget -O lcd.zip https://dl.dafont.com/dl/?f=lcd_lcd_mono     &lt;br /&gt;
&lt;br /&gt;
~$ unzip lcd.zip                 # décompressons l&amp;#039;archive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que la police LCDWinTT/LCD-BOLD.TTF est présente, replaçons nous à la racine du dossier.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
~$ cd ..&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Éditons avec l&amp;#039;éditeur &amp;quot;nano&amp;quot; le code ci-dessous et voyons comment il se comporte :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
~$ nano helloworld.py            # on crée/édite le fichier python helloworld.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(abusez du CTL+C / CTRL+V ou plus explicitement copié/collé)&lt;br /&gt;
Nous utiliserons volontairement des noms de variables explicites pour vous donner des repères.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import pygame&lt;br /&gt;
from pygame.locals import *&lt;br /&gt;
&lt;br /&gt;
# VARIABLES ############################################################&lt;br /&gt;
Titre = &amp;#039;RDE - PyGAME&amp;#039;          # Titre de la fenetre&lt;br /&gt;
LargeurEcran = 800              #&lt;br /&gt;
HauteurEcran = 480              #&lt;br /&gt;
Couleurs     = 32               # 32 bits 16.7 millions de couleurs &lt;br /&gt;
&lt;br /&gt;
# Initialisation ----------------------------------------------------- #&lt;br /&gt;
pygame.init()                   # Appel de la fonction d&amp;#039;initialisation&lt;br /&gt;
&lt;br /&gt;
# Limitation dela vitesse de rafraichissement de l&amp;#039;écran - 30 fps suffisent&lt;br /&gt;
pygame.time.Clock().tick(30)&lt;br /&gt;
fpsClock = pygame.time.Clock()&lt;br /&gt;
&lt;br /&gt;
# Taille de fenetre et Titre ----------------------------------------- #&lt;br /&gt;
# pour un mode fenetré, nous déclarons notre affichage &amp;quot;fenetre&amp;quot; avec les&lt;br /&gt;
# configurations de la largeur/hauteur et nombre de couleurs&lt;br /&gt;
fenetre = pygame.display.set_mode((LargeurEcran, HauteurEcran), 0, Couleurs)&lt;br /&gt;
&lt;br /&gt;
# pour un mode plein écran, on utilisera les paramètres ci-dessous :&lt;br /&gt;
# fenetre = pygame.display.set_mode((LargeurEcran, HauteurEcran), pygame.FULLSCREEN)&lt;br /&gt;
&lt;br /&gt;
# initialisation de la police utilisé :&lt;br /&gt;
# A chaque fois que nous voudrons utiliser la police LCD-BOLD avec la taille de 40, nous ferons appel à &amp;quot;TXT_GENERIC_FONT_40&amp;quot;&lt;br /&gt;
TXT_GENERIC_FONT_40 = pygame.font.Font(&amp;#039;fonts/LCDWinTT/LCD-BOLD.TTF&amp;#039;, 40)&lt;br /&gt;
&lt;br /&gt;
# Nous pouvons en créer une autre d&amp;#039;une taille de 80 que nous nommerons &amp;quot;TXT_GENERIC_FONT_80&amp;quot;&lt;br /&gt;
taille = 80                                    # voyons avec cette variable, la déclaration de la taille de notre texte.&lt;br /&gt;
                                               # La seule limite est votre imagination... enfin sans exagérer non plus !&lt;br /&gt;
TXT_GENERIC_FONT_80 = pygame.font.Font(&amp;#039;fonts/LCDWinTT/LCD-BOLD.TTF&amp;#039;, taille)&lt;br /&gt;
&lt;br /&gt;
# Préparons l&amp;#039;objet texte et sa couleur&lt;br /&gt;
couleur_texte_40 = [255,255,255]               # La couleur se déclare en [Rouge,Vert,Bleu] de 0(noir) à 255 (Clair)&lt;br /&gt;
mon_texte = &amp;quot;Hello World ! &amp;quot;                   # un texte en chaine de caractère&lt;br /&gt;
TXT_GENERIC_OBJ_40  = TXT_GENERIC_FONT_40.render(mon_texte, True, couleur_texte_40)&lt;br /&gt;
                                               # Nous venons de créer l&amp;#039;objet &amp;quot;TXT_GENERIC_OBJ-40&amp;quot; contenant le texte et les paramètres associés&lt;br /&gt;
&lt;br /&gt;
# nous pouvons récupérer la taille de l&amp;#039;objet crée en fonction de son contenu (nombre de caractère)&lt;br /&gt;
TXT_GENERIC_RECT_40 = TXT_GENERIC_OBJ_40.get_rect()&lt;br /&gt;
&lt;br /&gt;
# Cela est utile, notamment pour positionner l&amp;#039;objet nommé par un point en son centre (x,y)&lt;br /&gt;
TXT_GENERIC_RECT_40.center = (400,240)         # positionnons le texte au centre de notre écran ( LargeurEcran/2 , HauteurEcran/2 )&lt;br /&gt;
&lt;br /&gt;
# Nous en avons fini des déclarations et allons entrer dans une boucle infini pour surveiller les actions de l&amp;#039;utilisateur&lt;br /&gt;
# Initialisation d&amp;#039;une variable de boucle&lt;br /&gt;
continuer = 1&lt;br /&gt;
&lt;br /&gt;
while continuer:&lt;br /&gt;
     # on rempli le fond de l&amp;#039;écran &amp;quot;fenetre&amp;quot; avec une couleur unie (R,V,B)&lt;br /&gt;
     fenetre.fill([100,100,100])&lt;br /&gt;
     # notre texte viens se placer dessus (car il est déclaré après)&lt;br /&gt;
     fenetre.blit(TXT_GENERIC_OBJ_40, TXT_GENERIC_RECT_40)&lt;br /&gt;
&lt;br /&gt;
     # on detecte si un evenement (touche ESC) est passé&lt;br /&gt;
     for event in pygame.event.get():                 # Pour chaque évenement dans Pygame, nous analysons l&amp;#039;action&lt;br /&gt;
        if (&lt;br /&gt;
              event.type == pygame.QUIT or            # si nous cliquons la croix de la fenetre ou&lt;br /&gt;
              (event.type == pygame.KEYUP and         # si une touche du clavier est relachée&lt;br /&gt;
                event.key == K_ESCAPE)                # et que c&amp;#039;est la touche ESC&lt;br /&gt;
            ):&lt;br /&gt;
                     continuer = 0                    # alors, on arrête la boucle while et on quitte&lt;br /&gt;
                     pygame.quit()                    # On quitte pygame&lt;br /&gt;
                     sys.exit()                       # On quitte proprement notre programme&lt;br /&gt;
&lt;br /&gt;
        # sinon on rafraichi l&amp;#039;affichage avec un framerate de 30 FPS&lt;br /&gt;
        pygame.display.update()&lt;br /&gt;
	fpsClock.tick(30)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on enregistre CTRL+X puis on valide le nom du fichier Y(es) ou O(ui)&lt;br /&gt;
&lt;br /&gt;
ensuite on lance le code Pygame :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
~$ python helloworld.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La Touche ESC ( échap ) du clavier permet de sortir ou la croix en haut de la fenetre&lt;br /&gt;
&lt;br /&gt;
Ce qui nous donne :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Ecran_hello_world_Pygame.png|500px|thumb|center|Fenetre affichée]]&lt;br /&gt;
&lt;br /&gt;
Revenons à notre [[Interface_PyGAME]]&lt;/div&gt;</summary>
		<author><name>William.benharbone</name></author>
	</entry>
</feed>