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.
Langages du dépôtPython 100%1
Parts calculées à partir des octets GitHub Linguist.
| Langage | % | Octets |
|---|---|---|
| Python | 9 538 |
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
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.
- Touche ou bouton Qt
- Position demandée
- Commande série
- Connexion pyserial
- 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.

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:43Méthodes dans l’aperçu :
__init__, eventFilter, Control, buttonClick.Bases déclarées :
QDialog, QWidget.MenuFile(class) ·pantiltcontroller.py:130Méthodes dans l’aperçu :
__init__, Menu.Bases déclarées :
QMainWindow, DialogControl.FormWidget(class) ·pantiltcontroller.py:154Méthodes dans l’aperçu :
__init__, UI, textBox, buttonClick.Bases déclarées :
QWidget.Controller(class) ·old/PTC.py:27Méthodes dans l’aperçu :
do_move, do_reset.Bases déclarées :
Screen.PTC(class) ·old/PTC.py:51Mé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