Bonjour à tous,
Je cherche à développer un application qui à pour but de contrôler un moteur pas à pas par l'intermédiaire d'un driver piloté par une Raspberry PI grâce à ses GPIOs.
De plus, je souhaite récupérer l'information de position du moteur grâce à un capteur de position connecté mécaniquement à l'axe du moteur et électriquement à la Raspberry PI via une interface SPI.
L'application aura une interface graphique pour permettre à l'utilisateur de faire tourner le moteur et d'afficher sa position.
J'ai choisi d'utiliser python car ce langage semble très bien adapté à la Raspberry PI et je voudrais construire mon application en respectant le pattern MVC.
Pour la parie "Modèle", je compte donc créer des classes suivantes :
- Raspberry
- Driver
- Moteur
- Capteur
Pour la partie "Vue", je vais créer une classe qui définit l'interface graphique.
Enfin, la partie "Contrôleur" fera la liaison entre les actions utilisateur de la "Vue" et les actions des objets du "Modèle".
Afin de gérer la communication entre les différents objets, je souhaitais utiliser le pattern "Observer" pour gérer les liaisons entre les objets.
1) Le Driver observe la Raspberry
2) le Moteur observe le driver
3) le capteur observe le moteur
4) la Rapberry observe le capteur
Exemple d'utilisation:
1) L'utilisateur clique sur un bouton de l'interface graphique pour faire avancer le moteur d'un pas
2) La "Vue" envois un message au "Contrôleur" pour lui indiqué que le bouton a été pressé
3) Le "Contrôleur" envois un message à la "Raspberry" pour lui indiquer de générer une impulsion vers le "Driver"
4) La "Raspberry" génère un message pour indiquer qu'elle envoyé une impulsion au "Driver"
5) Le "Driver" reçoit le message et envois un message au "Moteur" pour l'indiquer qu'il a générer le signal pour faire tourner le moteur d'un pas
6) Le "Moteur" reçoit message et envois le message au "Capteur" pour lui indiquer qu'il à tourné
7) Le "Capteur" reçoit le message et envois une message à la "Raspberry" pour lui indiquer que la valeur de position a changé
8) La "Raspberry" interroge le "Capteur" via le SPI pour obtenir la nouvelle position
9) La "Raspberry" envois un message au "Contrôleur" pour l'informer que la nouvelle position est disponible
10) Le "Contrôleur" transmet la position du "Capteur" à la "Vue" pour mettre à l'affichage de l'interface graphique
N'étant pas expert dans l'utilisation des patterns, pourriez-vous me dire si vous voyez des incohérences dans l'approche que je fais de l'application?
Merci d'avance.
Partager