Author: macerobotics

EP1 : Présentation du ROV Rinkin

Épisode n°1

Voici la présentation d’un projet R&D en cours chez Mace Robotics, un ROV d’exploration appelé Rinkin.

ROV = (remotely operated underwater vehicle)

Ce ROV est un sous-marin Open Source réalisé avec un tube PVC, des turbines et des pièces en impression 3D.

Objectifs

  • Projet Open Source (hardware + Software)
  • Profondeur : 10 m maximum pour la version 0.1
  • Exploration des fonts marin & collecte de données

Mécanique

Modélisation du ROV avec ces 5 turbines :

  • 2 turbines pour avancer et reculer
  • 3 turbines pour la gestion de la profondeur et du tangage
  • Une camera est installé à l’avant du ROV (bouchon avant)
  • A chaque extrémité du tube PVC, il y a 2 bouchons pour gérer l’étanchéité du tube.
  • Ces 2 bouchons sont imprimés en PETG et peint avec de l’époxy

Électronique

Voici l’architecture électronique du ROV :

  • Un joystick de jeu permet de contrôler les mouvements du ROV (avancer, reculer, tangage, plonger, …). Ce joystick est relié par une liaison USB à un PC.
  • Le PC est relié au ROV via une liaison par fibre optique
  • La carte Raspberry Pi reçoit les commandes du PC, envoie les données vidéo et gère la communication avec le microcontrôleur Pico.
  • Une centrale inertielle est reliée via un bus i2c à la carte Raspberry Pi. Cette IMU permet de connaître l’orientation du ROV sur les 3 axes.
  • Le microcontrôleur Raspberry Pi Pico gère les commandes des 5 turbines via les ESC (Electronic speed controller)
  • La batterie 3S est constituée d’accumulateurs 18650.

Fin du premier épisode

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.

 

Réparation d’une carte électronique de chaudière SIEMENS

Réparation d’une carte électronique de chaudière de référence RVS21.831/127 :

  • Problème sur la commande d’une relais
  • Entrée : 230VAC

Le commande en puissance des bobines des cinq relais est réalisé par le composant MC1413 :

  • Vérifier l’alimentation +5V du microcontrôleur
  • Vérifier le clignotement de la led verte
  • Vérifier l’alimentation +12V des 2 MC1413

Nicolas