Aller au contenu

Pan-Tilt-Controller : Du clavier aux commandes série des moteurs

Ce contrôleur pan-tilt archivé relie une interface desktop à une unité de positionnement série. L’implémentation combine une boucle Qt et des commandes pyserial, avec les positions demandées conservées dans des variables globales.

Matériel et infographie Archivé
  • Mis à jour
  • 2
  • Python · 100%
Langages du dépôtPython 100%1

Parts calculées à partir des octets GitHub Linguist.

Langage%Octets
Python100%9 538

GitHub · README · Statistiques de langages

Aperçu

Pourquoi il existe

Contrôleur série et démon de mouvement pour unité robotique pan-tilt de précision PTU-46.

Cas d’usage

Positionnement robotique de caméras pour la vision par ordinateur.

Démarrage

Ces commandes viennent de la documentation du dépôt. Elles n’ont pas été exécutées pendant cette revue.

Références du dépôt

Extraits des guides du dépôt, dans leur langue d’origine. Les liens ouvrent la version du code consultée.

Prérequis et premier essai

Requirement libary

README.md

-Python 2.7 -Pyserial -Kivy(GUI)
Lire les instructions complètes ↗
Documentation source

1 documents lus parmi 1 candidats.

Fonctions et composants 2

Événements d’interface
pantiltcontroller.py utilise PyQt5 et installe un filtre de touches. Les flèches et boutons modifient une position, puis construisent une commande pp ou tp. Ce code diffère de l’ancien framework décrit dans le README.
Initialisation du matériel
Le module ouvre COM3 à 9600 bauds et écrit des commandes dès son chargement. L’interface dépend donc immédiatement du matériel, avant le choix d’un port ou la confirmation d’un mouvement.

Architecture

Les composants et leurs liens restent lisibles en texte. Le diagramme ajoute une vue interactive.

Contexte système Contexte
  1. Touche ou bouton Qt
  2. Position demandée
  3. Commande série
  4. Connexion pyserial
  5. Matériel pan-tilt

Liens vérifiés dans le dépôt.

Mermaid Diagramme interactif (chargement à l’ouverture)

Vue générale des composants et des échanges vérifiés dans le dépôt.

Vue statique de l’architecture de Pan-Tilt-Controller
Aperçu statique. Le diagramme interactif le remplace après le chargement de Mermaid.
flowchart LR
  n0["Touche ou bouton Qt"]
  n1["Position demandée"]
  n2["Commande série"]
  n3["Connexion pyserial"]
  n4["Matériel pan-tilt"]
  n0 --> n1
  n1 --> n2
  n2 --> n3
  n3 --> n4
Version texte du diagramme
  • Touche ou bouton Qt → Position demandée
  • Position demandée → Commande série
  • Commande série → Connexion pyserial
  • Connexion pyserial → Matériel pan-tilt
Suivre un parcours dans le code

Suivez une flèche depuis positionPan ou positionTilt jusqu’à ser.write. La variable représente la cible commandée, pas une mesure indépendante de la position physique.

Types et structure des fichiers

5 types déclarés, dont 5 dans l’aperçu des relations de base.

Diagramme des types
classDiagram
direction TB
class t8cae8612b927["DialogControl"] {
  __init__()
  eventFilter()
  Control()
  buttonClick()
}
class tdb265aef05cf["MenuFile"] {
  __init__()
  Menu()
}
class t087f3f225d99["FormWidget"] {
  __init__()
  UI()
  textBox()
  buttonClick()
}
class t3ad2e1e58327["Controller"] {
  do_move()
  do_reset()
}
class t3c914b206877["PTC"] {
  build()
}
class b909aa1bfe7bf["QDialog"] {
  <<unresolved_base>>
}
b909aa1bfe7bf <|-- t8cae8612b927
class b368405a93f17["QWidget"] {
  <<unresolved_base>>
}
b368405a93f17 <|-- t8cae8612b927
class bc4c59610cef7["QMainWindow"] {
  <<unresolved_base>>
}
bc4c59610cef7 <|-- tdb265aef05cf
t8cae8612b927 <|-- tdb265aef05cf
b368405a93f17 <|-- t087f3f225d99
class bc742617f043e["Screen"] {
  <<unresolved_base>>
}
bc742617f043e <|-- t3ad2e1e58327
class b21d28968c3d5["App"] {
  <<unresolved_base>>
}
b21d28968c3d5 <|-- t3c914b206877

Les bases non résolues restent identifiées; les signatures complètes ne sont pas reconstruites.

Index des types
  • DialogControl (class) · pantiltcontroller.py:43

    Méthodes dans l’aperçu : __init__, eventFilter, Control, buttonClick.

    Bases déclarées : QDialog, QWidget.

  • MenuFile (class) · pantiltcontroller.py:130

    Méthodes dans l’aperçu : __init__, Menu.

    Bases déclarées : QMainWindow, DialogControl.

  • FormWidget (class) · pantiltcontroller.py:154

    Méthodes dans l’aperçu : __init__, UI, textBox, buttonClick.

    Bases déclarées : QWidget.

  • Controller (class) · old/PTC.py:27

    Méthodes dans l’aperçu : do_move, do_reset.

    Bases déclarées : Screen.

  • PTC (class) · old/PTC.py:51

    Méthodes dans l’aperçu : build.

    Bases déclarées : App.

Référence

4 / 4 fichiers admissibles lus (5 dans l’arbre); 0 trop volumineux, 0 échec de lecture et 0 diagnostic de syntaxe.

Ce que couvre l’analyse

Les dossiers connus de dépendances et de compilation, les fichiers d’identifiants et les binaires sont exclus. La collecte couvre les README, les manifestes reconnus et les fichiers source pris en charge.

Les statistiques Linguist couvrent l’ensemble du dépôt et peuvent inclure d’autres langages.

Carte des fichiers
flowchart TD
  root["Pan-Tilt-Controller"]
  f0["PTC-command.py"]
  root --> f0
  f1["README.md"]
  root --> f1
  f2["pantiltcontroller.py"]
  root --> f2
  f3["old/PTC.py"]
  root --> f3

Fichiers à lire 3

Références