SmoothieBoard : Différence entre versions

De fablabo
Aller à : navigation, rechercher
 
(3 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 7 : Ligne 7 :
  
 
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 61 : Ligne 64 :
 
===Un exemple de modification du firmware===
 
===Un exemple de modification du firmware===
 
Ajout d'un module affichant du texte
 
Ajout d'un module affichant du texte
 
Module de Test
 
 
  
 
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.
 
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 :
 
Le module se compose ainsi :
- Un fichier .h header
+
* Un fichier .h header [[Fichier:Position.h]]
- Un fichier .cpp pour le corps du programme
+
* 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 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 constructeur
 
Le destructeur
 
Le destructeur
« on_module_loaded » : obligatoire pour l’appel du module
+
* « 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_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
+
* « on_gcode_execute » est appelé à chaque exécution d’un Gcode
La liste des évenements 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 ».
+
 
 +
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 header contient aussi l’appel de la classe kernel : « #include "libs/Module.h" »
Ligne 89 : Ligne 90 :
 
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"); ».
 
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


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 :

  1. 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 :

Smoothie wiring diagram.png


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 :

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

.