No description
images | ||
.gitignore | ||
clock.svg | ||
controller.py | ||
GCode_Interpreterdc.py | ||
hardware.py | ||
main.py | ||
README.md | ||
shell.nix | ||
simulator.py | ||
svgtogcode.py | ||
svgtroppagcode.py |
Contrôleur de Petite Machine à Bois (PMB™)
Utilisation
Pour lancer le script, d'abord lancer le simulateur dans un terminal, puis, dans un second terminal lancer le programme main
.
Dans main
on met les instructions gcode, qui peuvent être converties depuis un fichier svg par le programme svgtroppagcode.py
. Ce dernier utilisant la bibliothèque toppra
, il faut une version compatible numpy<=1.21.6
, version de numpy qui n'est installable que pour des versions de python pré 3.6, ce qui rend le code contrôlleur très complexe à utiliser...
N'hésitez pas à revenir vers nous si besoin.
Fonctionnement
Le programme fonctionne de la manière suivante:
- On crée une socket par laquelle vont transiter les informations.
- On dispose d'un contrôleur "local" et d'un simulateur "distant" qui dispose d'un modèle physique plus réaliste que notre contrôleur.
- En se basant sur le GCode en entrée, le contrôleur calcule les vitesses de commande à envoyer aux deux moteurs de la PMB™ et les envoie à la socket.
- Le simulateur intègre alors les vitesses des moteurs pour obtenir une position "réelle" (en réalité ce sera directement des capteurs sur la PMB™) et les envoie à la socket.
- Le contrôleur va alors modifier les vitesses de commande pour s'adapter aux positions "mesurées".
Contrôle de l'Entrée
Pour l'entrée, on propose deux méthodes:
- Une qui traduit fidèlement un fichier .svg sans prendre en compte aucune contrainte.
- Une qui échantillonne des points sur des fichiers .svg et reparamétrise les courbes en tenant en compte de contraintes de vitesses maximales et d'accélération maximale. Cette seconde méthode à le grand défaut de linéariser les courbes, avec une précision fortement arbitraire.