dimanche 6 avril 2025

Dessiner un point avec Pygame.



Examinons ce programme ligne par ligne. Tout d'abord, nous importons
le module Pygame pour accéder à ses fonctionnalités. 

En ligne-2, nous initialisons Pygame, ou le configurons pour l'utiliser. La commande pygame.init() doit être appelée à chaque utilisation de Pygame, et elle intervient toujours après la commande import pygame et avant toute autre fonction Pygame.

En  ligne -3, pygame.display.set_mode([800,600]) crée une fenêtre d'affichage de 800 pixels de large sur 600 pixels de haut. Nous la stockons dans une variable appelée screen. Dans Pygame, les fenêtres et les graphiques sont appelés surfaces, et la surface d'affichage screen est la fenêtre principale où tous les autres graphiques seront dessinés.

En ligne 4, vous reconnaîtrez peut-être notre variable de boucle, keep_going :
nous l'avons utilisée dans nos boucles de jeu HighCard.py et FiveDice.py au chapitre 6 comme indicateur booléen pour indiquer à notre programme de continuer à jouer.
Ici, dans notre exemple Pygame, nous utilisons une boucle de jeu pour continuer à dessiner l'écran graphique jusqu'à ce que l'utilisateur ferme la fenêtre.

En ligne-5, nous définissons deux variables, GREEN et radius, pour dessiner notre cercle. La variable GREEN est définie sur la valeur du triplet RVB (0, 255, 0), un vert vif. (RVB, ou Rouge, Vert, Bleu, est l'une des nombreuses façons de spécifier une couleur. Pour choisir une couleur, il faut choisir trois nombres, chacun compris entre 0 et 255. Le premier nombre détermine.

La quantité de rouge dans votre couleur, le deuxième nombre correspond à la quantité de vert et le troisième au bleu. Nous avons choisi 255 comme valeur pour le vert et 0 pour le rouge et le bleu. Notre couleur RVB est donc entièrement verte, sans rouge ni bleu. Notre variable GREEN est une constante. Nous écrivons parfois des constantes (variables que nous ne souhaitons pas modifier) ​​en majuscules. Comme la couleur doit rester la même tout au long du programme, nous avons utilisé des majuscules pour GREEN. Nous définissons la variable radius à 50 pixels, pour un cercle de 100 pixels de diamètre.

 La boucle while en ligne-5 est notre boucle de jeu et continuera à exécuter la fenêtre Pygame jusqu'à ce que l'utilisateur décide de la quitter. La boucle for en ligne 6 gère tous les événements interactifs que l'utilisateur peut déclencher dans notre programme. Dans cet exemple simple, le seul événement que nous vérifions est si l'utilisateur a cliqué sur le X rouge pour fermer la fenêtre et quitter le programme. Si c'est le cas, keep_going est défini sur False (non)et notre boucle de jeu se termine.



 

pygame(déplacer l'image avec la sourie)

 


Nous avons besoin de deux images : une pour l'arrière-plan et une autre pour le curseur de la souris.  Si vous n'avez pas accès à Internet actuellement, vous pouvez utiliser les fichiers image de votre disque dur ou les créer avec n'importe quel logiciel de retouche photo ou graphique. N'importe quelle image convient pour l'arrière-plan(background), à condition qu'elle mesure au moins 640 x 480 (au-delà, l'excédent sera rogné). Pour le curseur de la souris(mouse_cursor), il vous faudra une image plus petite qui s'intègre parfaitement à l'arrière-plan ; une taille idéale est de 80 x 80. Pour poursuivre sur le thème du fugu du premier chapitre, l'arrière-plan officiel sera une image de bols et de baguettes, et une image d'un fugu très brut pour le curseur de la souris. Les deux premières lignes définissent les noms de fichiers des images ; si vous utilisez des images différentes, remplacez lés par leur emplacement.



Il initialise chacun des sous-modules du paquet Pygame, qui peut charger les pilotes et interroger le matériel afin que Pygame soit prêt à utiliser tous les périphériques de votre ordinateur. 
Vous pouvez initialiser uniquement les modules que vous souhaitez utiliser en appelant la fonction init dans chaque sous-module individuellement ; par exemple, pygame.sound.init() initialisera le module son. 
Cela peut accélérer le démarrage du script, car seuls les modules réellement utilisés seront initialisés. Pour les jeux, vous aurez besoin de la plupart, voire de la totalité, des modules ; nous nous en tiendrons donc à cette fonction d'initialisation fourre-tout. Après l'avoir appelée, nous disposons de toute la puissance de Pygame !



L'affichage peut être une fenêtre sur votre bureau ou l'écran entier, mais vous y accédez toujours via un objet Surface de Pygame. L'appel à pygame.display.set_mode dans notre script renvoie l'objet Surface représentant la fenêtre sur votre bureau. Il nécessite trois paramètres ; seul le premier est requis : il s'agit d'un tuple contenant la largeur et la hauteur de l'affichage que nous souhaitons créer. Notre fenêtre mesurera 640 × 480 pixels, ce qui est suffisant pour voir ce qui se passe, sans pour autant masquer une partie trop importante du bureau. 
Le paramètre suivant que nous donnons à set_mode est une valeur contenant les options utilisées lors de la création de l'affichage. Une option est une fonctionnalité qui peut être activée ou désactivée ; vous pouvez combiner plusieurs options avec l'opérateur OU binaire (|). Par exemple, pour créer une surface matérielle à double tampon, définissez le paramètre des options sur DOUBLEBUF|HWSURFACE.

La première chose que nous faisons avec notre surface nouvellement créée est d'appeler set_caption dans le module d'affichage pour définir la barre de titre de la fenêtre Pygame. Nous définissons le titre sur ( frist game with pygame)



La fonction load lit un fichier sur votre disque dur et renvoie une surface contenant les données de l'image. Ces objets sont du même type que notre écran, mais ils représentent des images stockées en mémoire et ne sont visibles qu'une fois affichés sur l'écran principal. Le premier appel à pygame.image.load lit l'image d'arrière-plan, puis appelle immédiatement convert, une fonction membre pour les objets Surface. Cette fonction convertit l'image au même format que notre écran, car il est plus rapide d'afficher des images à la même profondeur. Le curseur de la souris est chargé de la même manière, mais nous appelons convert_alpha plutôt que convert. En effet, l'image de notre curseur contient des informations alpha, ce qui signifie que certaines parties de l'image peuvent être translucides ou totalement invisibles. Sans ces informations, nous nous retrouvons limités à un carré ou un rectangle disgracieux ! Le chapitre suivant abordera plus en détail les formats alpha et image.


Cette boucle while a pour condition True (vrai), ce qui signifie qu'elle tournera en boucle jusqu'à ce que nous la quittions ou la forcions à quitter d'une autre manière. Tous les jeux ont une boucle similaire, qui se répète généralement une fois par rafraîchissement d'écran.




Un événement est la façon dont Pygame vous informe qu'un événement s'est produit en dehors de votre code. Les événements sont créés pour de nombreuses raisons, de l'appui sur une touche à la réception d'informations provenant d'Internet, et sont mis en file d'attente jusqu'à ce que vous les gériez. 

La fonction get du module pygame.event renvoie tous les événements en attente, que nous parcourons ensuite dans une boucle for. Pour ce script, nous nous intéressons uniquement à l'événement QUIT, généré par Pygame lorsque l'utilisateur clique sur le bouton de fermeture de la fenêtre Pygame. 

Ainsi, si l'événement est de type QUIT, nous appelons keep_going=False  pour fermer le programme, et tous les autres événements sont ignorés. Dans un jeu, bien sûr, nous aurions à gérer un plus grand nombre d'événements.





Cette ligne utilise la fonction membre blit de l'objet Surface de l'écran, qui prend une image source (ici, notre arrière-plan de( 800 × 800) et un tuple contenant la position de destination.

 L'arrière-plan ne bougera jamais ; nous souhaitons simplement qu'il recouvre toute la fenêtre Pygame. Nous effectuons donc un blit à la coordonnée (400, 400), qui correspond au center de l'écran.




Obtenir la position de la souris est simple et efficace ; le module pygame.mouse contient tout ce dont nous avons besoin pour utiliser la souris, y compris get_pos, qui renvoie un tuple contenant les coordonnées de la souris. 

La première ligne décompose ce tuple en deux valeurs pour plus de commodité : x et y. Nous pourrions utiliser ces deux valeurs comme coordonnées lorsque nous déplacerions le curseur de la souris, mais cela placerait le coin supérieur gauche de l'image sous la souris, et nous souhaitons que le centre de l'image soit sous la souris. 

Nous effectuons donc un petit calcul (pas de panique !) pour ajuster x et y afin que l'image de la souris soit déplacée de moitié vers le haut et de moitié vers la gauche. Ces coordonnées placent le centre de l'image juste sous le pointeur de la souris, ce qui est plus esthétique.

 C'est du moins le cas pour l'image d'un poisson. Si vous souhaitez utiliser une image de pointeur plus classique, ajustez les coordonnées pour que la pointe se trouve sous les coordonnées réelles de la souris. Le blitting de l'image de la souris s'effectue de la même manière que celui de l'arrière-plan, mais nous utilisons les coordonnées calculées plutôt que (0, 0). 

Cela suffit pour obtenir l'effet recherché, mais il reste encore une étape à franchir avant de pouvoir visualiser quoi que ce soit :



Lorsque vous créez une image à l'aide de blits à l'écran, vous ne les voyez pas immédiatement.
 En effet, Pygame crée d'abord l'image dans un tampon arrière, un affichage invisible en mémoire, avant de l'afficher. Sans cette étape, l'utilisateur verrait les blits individuellement au fur et à mesure qu'ils se produisent, ce qui provoquerait un scintillement désagréable.

 Pour les programmeurs de jeux vidéo, le scintillement est l'ennemi numéro un ! Nous voulons une animation fluide et convaincante. Heureusement, un appel à pygame.display.update() suffit pour garantir que l'image créée en mémoire s'affiche sans scintillement.





samedi 22 mars 2025

Button poussoir en parallèle

 Circuit  en parallèle

COMPOSANTS EN PARALLÈLE FONCTIONNENT CÔTE À CÔTE


Maintenant que vous maîtrisez l'art de la mise en série. (https://solutionmeca.blogspot.com/2025/03/button-poussoir-en-serie.html), il est temps de câbler les interrupteurs en parallèle. Laissez les interrupteurs et la LED  où ils sont, mais retirez la connexion entre les deux interrupteurs. Connectez les deux interrupteurs à la résistance. Fixez l'autre extrémité des deux interrupteurs à la LED, comme illustré à la photo 1. Lorsque vous appuyez sur l'un ou l'autre bouton, le circuit est fermé et la lumière s'allume.



Ces deux interrupteurs sont en parallèle. Cela signifie que le courant électrique est réparti entre eux. Si l'un d'eux est actionné, la LED s'allume.
photo 1



mercredi 19 mars 2025

assistant de démarrage en cote pour golf 6





 Adaptation de l'assistant de maintien en cote(assistant de démarrage en cote

pour golf 6).

dans le calculateur de freinage ABS, vous avez la possibilité d'adapter la fonction

de l'assistant de maintien(assistant de démarrage en cote) sur la VW golf VI.

Codage:

-STG 03(frein/ABS)sectionner. 

-adaptation STG--fonction 10.

-aide au démarrage en cote ou canal 58 sélectionner.

-Effectuer le réglage: 

    -0=Aide au démarrage en cote normal.

    -1=Démarrage en cote .aide au démarrage précoce(démarrage a basse vitesse).

    -2= Aide au démarrages en cote tardive (démarrage a vitesse plus élevée  et embrayage a friction)par exemple pour tracter une remorque.

mardi 11 mars 2025

Button poussoir en série

 Circuit  en série

LES COMPOSANTS EN SÉRIE VIENNENT LES UNS APRÈS LES AUTRES

Une fois que vous avez retiré votre source d'alimentation, ajoutez un interrupteur à côté de celui qui se trouve déjà sur votre plaque d'essai. Connectez lès ensemble en série comme indiqué sur la photo. 10. Connectez l'anode (longue patte) de la LED au deuxième interrupteur. Connectez la cathode de la LED à la terre. Rallumez l'Arduino : maintenant, pour allumer la LED, vous devez appuyer sur les deux interrupteurs. Comme ils sont en série, ils doivent tous les deux être fermés pour que le circuit soit terminé


           
                                                              
                                                                         photo.10
Les deux interrupteurs sont en série. Cela signifie que le même courant électrique circule dans les deux, de sorte qu'il faut appuyer sur les deux pour que la LED s'allume



COUPEZ TOUJOURS L'ALIMENTATION AVANT DE CHANGER QUOI QUE CE SOIT DANS VOTRE CIRCUIT.

Button poussoir

Button poussoir avec Arduino.

 Projet 02

Votre premier circuit interactif, utilisant un interrupteur, une résistance et une LED. Arduino n'est que la source d'alimentation de ce circuit ; dans les projets ultérieurs, vous connecterez ses broches d'entrée et de sortie pour contrôler des circuits plus complexes.

BLINK LED




Vous allez utiliser l'Arduino dans ce projet, mais uniquement comme source d'alimentation. Lorsqu'il est branché sur un port USB ou une pile de 9 volts, l'Arduino fournira 5 volts entre sa broche 5 V et sa broche de terre que vous pourrez utiliser. 5 V = 5 volts, vous le verrez souvent écrit de cette façon.

Si votre Arduino est connecté à une batterie ou à un ordinateur via USB, débranchez le avant de construire le circuit !



Connectez un fil rouge à la broche 5 V de l'Arduino et placez l'autre extrémité dans l'une des longues lignes de bus de votre platine d'expérimentation. Connectez la terre de l'Arduino à la ligne de bus adjacente avec un fil noir. Il est utile de conserver une couleur de fil cohérente (rouge pour l'alimentation, noir pour la terre) dans tout votre circuit.

Maintenant que votre carte est sous tension, placez votre interrupteur au centre de la carte. L'interrupteur se trouvera au centre dans une direction. La courbure des pattes de l'interrupteur pointe vers le centre de la carte.

Utilisez une résistance de 220 ohms pour connecter l'alimentation à un côté de l'interrupteur. Les illustrations de ce livre utilisent 4 bandes. Votre kit peut avoir un mélange de résistances à 4 et 5 bandes. Utilisez l'illustration sur le côté pour vérifier la bonne pour ce projet. Regardez la page 41 pour une explication détaillée des codes de couleur des résistances. De l'autre côté de l'interrupteur, connectez l'anode (longue branche de la LED. Avec un fil, connectez la cathode (courte branche) de la LED à la terre. Lorsque vous êtes prêt, branchez le câble USB sur l'Arduino.
Une fois que tout est prêt, appuyez sur le bouton. Vous devriez voir la LED s'allumer. Félicitations, vous venez de réaliser un circuit ! Une fois que vous en avez assez d'appuyer sur le bouton pour allumer la lumière, il est temps de changer les choses en ajoutant un deuxième bouton



Vous placerez des composants sur la plaque d'essai en série et en parallèle. Les composants en série se succèdent les uns après les autres. Les composants en parallèle fonctionnent côte à côte.


AVEC DEUX BUTTON POUSSOIR


samedi 8 mars 2025

Allume une LED pendant une seconde, puis l'éteint pendant une seconde, de manière répétée.

 Project 01

DESSINS DE CIRCUIT

Tout au long de ces projets, vous verrez deux vues de circuits : l’une en vue plaque d'essaie(comme dans la photo. 5), qui ressemble à ce que contient votre kit. L’autre est une vue schématique (comme dans la photo. 6), qui est une manière plus abstraite de montrer les relations entre les composants d’un circuit.

Les schémas n’indiquent pas toujours où les composants sont placés les uns par rapport aux autres, mais ils montrent comment ils sont connectés.


photo. 5


Vue schématique
photo. 6

VOS PREMIERS COMPOSANTS




Une LED, ou diode électroluminescente, est un composant qui convertit l'énergie électrique
en énergie lumineuse. Les LED sont des composants polarisés, ce qui signifie qu'elles ne laissent passer l'électricité que dans un seul sens. La branche la plus longue de la LED est appelée anode, elle se connecte à l'alimentation. La branche la plus courte est une cathode et se connecte à la terre. Lorsque la tension est appliquée à l'anode de la LED et que la cathode est connectée à la terre, la LED émet de la lumière




Une résistance est un composant qui résiste au flux d'énergie électrique (voir la liste des composants pour une explication sur les bandes colorées sur le côté). Elle convertit une partie de l'énergie électrique en chaleur. Si vous mettez une résistance en série avec un composant comme une LED, la résistance utilisera une partie de l'énergie électrique et la LED recevra donc moins d'énergie. Cela vous permet de fournir aux composants la quantité d'énergie dont ils ont besoin. Vous utilisez une résistance en série avec la LED pour l'empêcher de recevoir trop de tension. Sans la résistance, la LED serait
plus lumineuse pendant quelques instants, mais grillerait rapidement

code Arduino:

/*
Blink
Allume une LED pendant une seconde, puis l'éteint pendant une seconde, de manière répétée.
*/

// la fonction de configuration s'exécute une fois lorsque vous appuyez sur reset ou que vous mettez la carte sous tension

void setup()
// initialise la broche numérique 13 en tant que sortie.
pinMode(2, OUTPUT);
}

// la fonction de boucle s'exécute encore et encore pour toujours

void loop() {

digitalWrite(2, HIGH); // allume la LED (HIGH est le niveau de tension)
delay(1000); // attend une seconde
digitalWrite(2, LOW); // éteint la LED en réduisant la tension à BASSE
delay(1000); // attend une seconde
}