Category: Non classé

Tuto : gestion d’une manette en Python

Un petit tutoriel en langage Python pour gérer une manette de jeu :

-> Ce code gère uniquement les touches directionnelles

import pygame  # Importation de la bibliothèque Pygame pour gérer une manette
from time import sleep
import sys

# Initialisation de Pygame pour préparer à l'utilisation de ses modules.
pygame.init()

# Compte le nombre de manettes connectées à l'ordinateur.
joystick_count = pygame.joystick.get_count()

# Vérification si aucun joystick n'est détecté
if joystick_count == 0:
print("Erreur, pas de joystick détecté !") # Affiche un message d'erreur si aucun joystick n'est connecté.
pygame.quit() # Arrête Pygame proprement.
sys.exit() # Quitte le programme.

else:
# Si un joystick est détecté, initialisation de celui-ci.
joystick = pygame.joystick.Joystick(0) # Récupère le premier joystick (index 0).
joystick.init() # Initialise le joystick pour pouvoir l'utiliser.

# Récupération du nombre de "hat switches" (poignées de contrôle directionnelles, souvent utilisées pour la direction).
hats = joystick.get_numhats()

# Fonction pour traiter les mouvements de la "hat switch" (direction du joystick)
def getHat(number):
# Si le "hat" n'est pas en position (0,0), il a été déplacé
if joystick.get_hat(number) != (0, 0):

# Si le mouvement sur l'axe Y du "hat" est vers le haut
if joystick.get_hat(number)[1] == 1:
print("Avancer") # Afficher "Avancer" lorsque le mouvement est vers le haut.

# Si le mouvement sur l'axe Y du "hat" est vers le bas
if joystick.get_hat(number)[1] == -1:
print("reculer") # Afficher "reculer" lorsque le mouvement est vers le bas.

# Si le mouvement sur l'axe X du "hat" est vers la droite
if joystick.get_hat(number)[0] == 1:
print("tourner à droite") # Afficher "tourner à droite" lorsque le mouvement est vers la droite.

# Si le mouvement sur l'axe X du "hat" est vers la gauche
if joystick.get_hat(number)[0] == -1:
print("tourner à gauche") # Afficher "tourner à gauche" lorsque le mouvement est vers la gauche.


# Boucle principale du programme
while True:
for event in pygame.event.get(): # Écoute tous les événements (comme les mouvements du joystick).
if event.type == pygame.QUIT: # Si l'utilisateur ferme la fenêtre
pygame.quit() # Arrête Pygame proprement.
sys.exit() # Quitte le programme.

# Si le joystick a des hats (directionnels)
if hats != 0:
for i in range(hats): # Parcours chaque hat
getHat(i) # Appelle la fonction getHat pour traiter les mouvements de chaque hat.

sleep(0.1) # Petite pause pour réduire l'utilisation du processeur.

 

Outils de base pour la réparation de carte électroniques

La réparation de cartes électroniques nécessite des outils spécifiques pour diagnostiquer, dessouder, ressouder, nettoyer et tester les composants.

Réparation de carte électronique

Outils de base

  • Fer à souder : Pour brassé les composants électroniques. Idéalement réglable en température.
  • Bobine d’étain sans plomb
  • Tresse à dessouder
  • Pinces de précision (Brucelles) : Pour manipuler les petits composants (CMS/SMD).
  • Multimètre numérique : avec des pointes pointues de préférence pour avoir plus de précision et évité le risque de dérappage.
  • Tournevis de précision
  • Alimentation de laboratoire pour avoir les tensions de bases : 3.3V, 5V, 12V, 24V
  • Ventilation ou extracteur de fumée
  • Station à aire chaud
  • Alcool isopropylique : nettoyage du circuit imprimé

 

La réparation de carte électronique une solution contre l’obsolescence programmée !

Conseils supplémentaires

  • Travaillez toujours dans un environnement bien éclairé et bien ventilé.

  • Gardez des cartes électroniques HS pour récupérer des composants.

  • Ayez un bon schéma de la carte si disponible (ou dessinez-le vous-même au fur et à mesure).

Liens intéressants

  • Code des couleurs pour une résistance traversante :

https://www.digikey.fr/fr/resources/conversion-calculators/conversion-calculator-resistor-color-code

  • Recherche marquage CMS :

https://www.s-manuals.com/smd

Présentation du robot MR-25

MR-25 est un petit robot mobile basé sur une carte Raspberry Pi. Il est très facile à programmer et personnalisable.  Sa petite taille vous permet de facilement le programmer sur une table de bureau.

Ce robot est fabriqué de manière artisanale en Bretagne !

MADE IN FRANCE

Caractéristiques techniques :

 

 

  • Dimensions :
    • Diamètre de 130 mm
    • Hauteur : 85 mm
  • Compatible avec la carte Raspberry Pi 3, 4, 2W ou 5
  • Une Led RGB
  • Coprocesseur : Raspberry Pi Pico
  • Un buzzer
  • Un capteur de courant, mesure tension batterie
  • Deux encodeurs magnétiques
  • Deux moteurs à courant continu 100 RPM
  • 5 capteurs de distances Time-of-Flight VL6180X.
  • Batterie : 3 accumulateurs 18650 lithuim
  • Un bouton on/off
  • Un connecteur de rechargement de la batterie

Exemple de création de carte avec les capteurs :

 

Robot programmable : 

Le robot MR-25 est programmable en langage Python3 :

/static/community_logos/python-logo.png

 

Traitement d’images

Le robot MR-25 peut être équipé d’une caméra Pi pour faire du traitement d’images avec Open Cv.

Documentation du robot MR-25

Lien du document PDF

 

Licences Hardware et Software:

Raspberry Pico – Interruption timer répéter en C/C++

Exemple d’un programme en langage C/C++ d’ une minuterie répétitive appelée à plusieurs reprises à l’intervalle spécifié en millisecondes :

#include <stdio.h>

#include "pico/stdlib.h"

static uint compteur = 0;

// Interruption
bool repeating_timer_callback(struct repeating_timer *t)
{

  printf("Compteur IRQ timer %d\n", compteur);

  compteur = compteur + 1;

  return true;

}// Fin interruption


int main()
{
struct repeating_timer timer;

  stdio_init_all();
 
  // ajouter minuterie toute les 2000 microsecondes
  add_repeating_timer_ms(2000, repeating_timer_callback, NULL, &timer);

  // boucle infini
  while(1)
  {
     printf("wait irq ...\n");

     sleep_ms(1000);// attendre 1 seconde
  }

  return 0;

}

Résultat sous Putty :