Fiche d’identité
Développé dans le but de contrôler des machines de découpe CNC, ce contrôleur apporte toute la puissance d’un OS temps réel tout en gardant une contrainte de taille réduite.
Plus d’infos ci-dessous sur Github.
Le contrôleur (ZEPTO MPG) intègre 1 µC STM32. Il gère les touches de la manette de contrôle. Un second stm32, situé sur la carte ZEPTO CTRL permet de piloter toutes les IOs, la gestion des moteurs et de la sécurité.
Une classe USB keyboard a été implémentée dans le premier µC et relié au CPU imx6 via USB.
Idem pour le second µC qui gère les IOs, une classe CDC a été implémentée et relié directement au CPU imx6.
Les deux classes USB sont gérées sous LINUX dans l’imx6.
Un schéma vaut mieux que de longs discours.
L’utilisation d’un SOM de chez Toradex, simplifie grandement le design et donc le PCB. Seulement 4 couches et beaucoup d’espace de travail comme le montre les photos ci-dessous. Pas de contraintes particulières sur ce design, si ce n’est les paires différentielles USB et ETHERNET.
Une grosse partie des widgets QT ont été refaits afin de respecter la charte graphique.
Un “morceau” d’open CV a été récupéré afin de faire de la détection de forme via une caméra IDS sur port ethernet. Cela permet entre autres de pouvoir corriger un alignement et de réajuster une rotation et un offset.
Le plus gros du travail de développement a été d’intégrer un debuggueur LUA via eclipse (dernière image), car le contrôleur doit pouvoir être programmé suivant un programme GCode, mais aussi de manière à être utilisé comme un PLC (automate programmable) afin d’exécuter certaines tâches en parallèle.