SmoothieBoard : Différence entre versions
(Page créée avec « =Carte SmoothieBoard= C'est une carte de contrôle pour des machines CNC Le site est http://smoothieware.org/smoothieboard A plateformeC, cette carte est présente dans ... ») |
|||
(13 révisions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
+ | __TOC__ | ||
+ | |||
+ | |||
=Carte SmoothieBoard= | =Carte SmoothieBoard= | ||
− | C'est une carte de contrôle pour des machines CNC | + | C'est une carte de contrôle pour des machines CNC. |
+ | |||
Le site est http://smoothieware.org/smoothieboard | Le site est http://smoothieware.org/smoothieboard | ||
+ | |||
+ | Le Github : https://github.com/Smoothieware/Smoothieware | ||
A plateformeC, cette carte est présente dans les | A plateformeC, cette carte est présente dans les | ||
* Les imprimantes 3D | * Les imprimantes 3D | ||
− | * La découpe laser | + | * La découpe laser jaune |
+ | * La découpeuse laser rouge | ||
* Le routeur CNC | * Le routeur CNC | ||
Ligne 25 : | Ligne 32 : | ||
systemctl restart systemd-udev-settle.service | systemctl restart systemd-udev-settle.service | ||
</code> | </code> | ||
+ | |||
+ | |||
+ | ==cablage== | ||
+ | |||
+ | les entrées sorties sur la carte beta : | ||
+ | |||
+ | [[Image:Smoothie wiring diagram.png|500px]] | ||
+ | |||
+ | |||
+ | ==firmware== | ||
+ | ===Compilation=== | ||
+ | ====Pour obtenir les sources==== | ||
+ | |||
+ | git clone git://github.com/Smoothieware/Smoothie.git | ||
+ | |||
+ | |||
+ | ====Pour obtenir la chaine de compilation==== | ||
+ | |||
+ | Windows: win_install.cmd | ||
+ | OS X: mac_install | ||
+ | Linux: linux_install | ||
+ | |||
+ | ensuite (pour linux) | ||
+ | |||
+ | ./BuildShell | ||
+ | |||
+ | ====Pour compiler==== | ||
+ | |||
+ | make clean all | ||
+ | |||
+ | ===Un exemple de modification du firmware=== | ||
+ | Ajout d'un module affichant du texte | ||
+ | |||
+ | Voici un module, position, qui affiche une phrase dans la console à chaque évènement enregistré. Il m’a servi à effectuer une première approche de la programmation par module de la smoothieboard. | ||
+ | |||
+ | Le module se compose ainsi : | ||
+ | * Un fichier .h header [[Fichier:Position.h]] | ||
+ | * Un fichier .cpp pour le corps du programme [[Fichier:Position.cpp]] | ||
+ | |||
+ | Le fichier header contient la déclaration de la classe de l’objet. Il ne contient qu’une partie « public » qui décrit les différentes méthodes de la classe : | ||
+ | Le constructeur | ||
+ | Le destructeur | ||
+ | * « on_module_loaded » : obligatoire pour l’appel du module | ||
+ | * « on_block_end » : est appelé en fin de bloque d’exécution des contrôleurs moteurs | ||
+ | * « on_gcode_execute » est appelé à chaque exécution d’un Gcode | ||
+ | |||
+ | La liste des événements au quels on peut souscrire se trouve à la page listofevents. Il me semble que la liste est non exhaustive : le module que j’ai pris pour exemple, le module laser, possède en plus les méthodes « on_play » et « on_pause ». | ||
+ | |||
+ | Le header contient aussi l’appel de la classe kernel : « #include "libs/Module.h" » | ||
+ | |||
+ | Le fichier du corps du programme contient les differents header utilisé pour la programmation (il reste à définir qui fait quoi) et les différentes méthodes crées dans le header du module. | ||
+ | |||
+ | Il faut faire une déclaration dans le fichier main.cpp : | ||
+ | Inclure le header du module crée : « #include "modules/tools/position/Position.h" » | ||
+ | Crée un instance du module : « kernel->add_module( new Position() ); » | ||
+ | |||
+ | Les différentes méthodes du module position execute le même code : afficher un texte dans la console. Le code utilisé est : « THEKERNEL->streams->printf("Texte à afficher"); ». | ||
+ | |||
+ | |||
+ | =Autres pages FabLabo.net= | ||
+ | |||
+ | - https://archive.fablabo.net/wiki/SmoothieBoard_Laser | ||
+ | |||
+ | - https://archive.fablabo.net/wiki/SmoothieWare_fins_de_course | ||
+ | |||
+ | . | ||
[[Catégorie:Hardware]] | [[Catégorie:Hardware]] |
Version actuelle en date du 26 avril 2023 à 13:24
Sommaire
Carte SmoothieBoard
C'est une carte de contrôle pour des machines CNC.
Le site est http://smoothieware.org/smoothieboard
Le Github : https://github.com/Smoothieware/Smoothieware
A plateformeC, cette carte est présente dans les
* Les imprimantes 3D * La découpe laser jaune * La découpeuse laser rouge * Le routeur CNC
Configuration
Règles udev
Sous fedora la carte est en conflit avec le modem manager (id OpenMoko), il faut donc ajouter une règle pour la blacklister.
Dans /usr/lib/udev/rules.d/77-mm-usb-device-blacklist.rules, ajoutez en fin de fichier les lignes suivantes :
- Smoothie board
ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="6015", ENV{ID_MM_DEVICE_IGNORE}="1"
Ensuite il faut redemarer udev :
systemctl restart systemd-udevd.service
systemctl restart systemd-udev-trigger.service
systemctl restart systemd-udev-settle.service
cablage
les entrées sorties sur la carte beta :
firmware
Compilation
Pour obtenir les sources
git clone git://github.com/Smoothieware/Smoothie.git
Pour obtenir la chaine de compilation
Windows: win_install.cmd OS X: mac_install Linux: linux_install
ensuite (pour linux)
./BuildShell
Pour compiler
make clean all
Un exemple de modification du firmware
Ajout d'un module affichant du texte
Voici un module, position, qui affiche une phrase dans la console à chaque évènement enregistré. Il m’a servi à effectuer une première approche de la programmation par module de la smoothieboard.
Le module se compose ainsi :
- Un fichier .h header Fichier:Position.h
- Un fichier .cpp pour le corps du programme Fichier:Position.cpp
Le fichier header contient la déclaration de la classe de l’objet. Il ne contient qu’une partie « public » qui décrit les différentes méthodes de la classe : Le constructeur Le destructeur
- « on_module_loaded » : obligatoire pour l’appel du module
- « on_block_end » : est appelé en fin de bloque d’exécution des contrôleurs moteurs
- « on_gcode_execute » est appelé à chaque exécution d’un Gcode
La liste des événements au quels on peut souscrire se trouve à la page listofevents. Il me semble que la liste est non exhaustive : le module que j’ai pris pour exemple, le module laser, possède en plus les méthodes « on_play » et « on_pause ».
Le header contient aussi l’appel de la classe kernel : « #include "libs/Module.h" »
Le fichier du corps du programme contient les differents header utilisé pour la programmation (il reste à définir qui fait quoi) et les différentes méthodes crées dans le header du module.
Il faut faire une déclaration dans le fichier main.cpp : Inclure le header du module crée : « #include "modules/tools/position/Position.h" » Crée un instance du module : « kernel->add_module( new Position() ); »
Les différentes méthodes du module position execute le même code : afficher un texte dans la console. Le code utilisé est : « THEKERNEL->streams->printf("Texte à afficher"); ».
Autres pages FabLabo.net
- https://archive.fablabo.net/wiki/SmoothieBoard_Laser
- https://archive.fablabo.net/wiki/SmoothieWare_fins_de_course
.